微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 你拖动鼠标,想把图片里黄色出租车的引擎盖"拉开"

你拖动鼠标,想把图片里黄色出租车的引擎盖"拉开"

2026-11-10 11:52
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-11-10 11:52 • 科技行者

你有没有试过用那种拖拽式修图软件,点一个点,拉到另一个地方,期待图片能跟着变?多数时候你会失望。你想把出租车的引擎盖"拉开",结果软件只会把你点中的那块像素硬生生地挪到新位置,变成一块扭曲的金属疙瘩,完全不知道"引擎盖"是什么,也不知道"打开"意味着铰链转动而不是平移。

这就是当下拖拽式图像编辑面临的尴尬。新加坡南洋理工大学S-Lab的研究团队盯上了这个问题,做出了一个叫THINKDRAG的系统,核心思路说出来挺朴素:与其把拖拽当成一个几何位移任务,不如先让模型"看懂"图里在发生什么,再决定怎么动。

拖拽编辑的老毛病

拖拽式图像编辑(Drag-based image editing):一种让用户通过指定"起点"(handle point,鼠标按下的位置)和"终点"(target point,拖到的位置)来控制图像局部修改的交互方式,最早由2023年的DragGAN提出。

DragGAN当年挺惊艳,用GAN的生成先验实现了拖拽编辑,但GAN本身的能力边界卡死了它的应用范围,换成真实世界里五花八门的照片就露怯。后来扩散模型(Diffusion Model)接棒,把拖拽编辑扩展到更广的视觉领域,但走的路子基本是三条:一是测试时优化(Test-Time Optimization,简称TTO),在生成过程里反复调整,让目标点和起点对应上内容;二是一步法(One-step),追求速度;三是前馈生成(Feed-forward),直接根据坐标条件生成结果。

这三条路子有个共同的盲点。它们都把"拖拽指令"理解成了一个纯粹的空间位移向量,起点到终点的距离、方向,仅此而已。可问题是,同样一段位移,放在不同物体上,合理的解读天差地别。拖一下人物的手臂末端,可能意味着手臂要抬起来,这是一个围绕肩膀关节的旋转动作,而不是把手整个平移到新位置。模型如果不懂这一层,给出的结果要么违反人体结构,要么干脆就是像素级的硬拖拽,看起来很假。

论文里给了一个很贴切的例子:用户想把出租车的引擎盖打开,配合文字说明"抬起黄色出租车的前部"。传统方法,包括测试时优化这种相对精细的方案,面对这种大幅度、带有机械结构含义的拖拽,往往直接failed,生成的图像里车身扭曲变形,完全不像一辆车该有的样子。而THINKDRAG能先"想明白"用户要的是引擎盖掀起这个动作,再据此生成结果。

这里有必要讲清楚研究者的思路从何而来。DragGAN的成功证明了一件事:只要生成模型的先验知识足够强,点约束就能驱动出合理的编辑。那么,如果换成当下能力更强、知识面更广的统一多模态模型(Unified Multimodal Model,一种把语言理解、视觉理解和图像生成整合进同一个神经网络框架的模型,比如本文用到的BAGEL),是不是就能把这套逻辑铺展到任意图像、任意物体上?这个推理链条,正是THINKDRAG诞生的起点。

先思考,再动手:推理轨迹是怎么回事

THINKDRAG最显眼的设计,是它支持生成一段显式的推理轨迹(Reasoning Trace),在真正动笔改图之前,先用文字把"我理解你想做什么"说出来。

举个论文里的实际例子。图里是一只长颈鹿站在沙滩上,脖子和头扭向左边。用户给了两个拖拽:一个把鼻尖从某点拉向中心偏右下的位置,另一个把左边的小角往右拉。模型生成的推理文字大致是这样:这两个拖拽共同作用,是在把长颈鹿的头转向正面,面对观众,同时保持沙滩、棕榈树和身体其他部分不变。

这段文字看起来简单,但它完成了一件以前的方法做不到的事:把两个孤立的点约束,整合成一个连贯的、有物理意义的动作解释。没有这层中间推理,模型很容易把两个拖拽当成两个互不相干的局部形变,结果就是五官错位、脖子扭曲这种诡异画面。

为什么推理轨迹特别管用在多拖拽场景?论文给了一组数据很说明问题:在DragBench++基准上,带推理的生成方式在单拖拽样本里赢过直接生成的比例是35.7%,但到了拖拽数量达到3个的样本,这个胜率跳到64.9%。换句话说,拖拽点越多,各点之间需要协调的语义关系越复杂,推理带来的收益越大。

这个现象其实挺容易理解。你让一个人单独搬一把椅子,他不需要想太多,直接搬就行。但你让他同时协调三四个人一起抬一张桌子,如果不先说清楚"我们往哪边走、谁先抬哪个角",大概率会撞到门框或者有人没用上力。多拖拽编辑就是这种"多人协作"的场景,推理轨迹起到的就是那句"我们先说好怎么抬"的作用。如果跳过这一步直接动手,极有可能出现几个拖拽各自为政、互相打架的结果,图像崩坏的概率显著上升。

不过这里有个诚实的地方要说:推理轨迹不是免费的。它靠自回归语言模型逐字生成,会拖慢推理速度。论文里实测,直接生成模式大约14.3秒出一张图,加上推理之后变成22.9秒,慢了将近9秒,显存占用倒是基本没变化。所以THINKDRAG的默认策略是直接编辑模式照常可用,推理模式作为可选项,交给用户或者未来的自适应机制去决定什么时候值得多花这几秒钟。

拖拽端点标记:让目标点"记住"自己从哪儿来

光靠文字理解拖拽意图还不够,因为生成图像的时候,模型需要在像素/特征层面精确执行"这里的内容要挪到那里"这个指令。THINKDRAG为此引入了一个叫拖拽端点标记(Drag Endpoint Markers,简称DEM)的机制。

这个设计的由来挺有意思。研究团队先做了个观察实验:在生成图像的过程中,查看模型的跨图像注意力(Cross-image Attention,指生成图像的某个区域在生成时,主要参考了输入图像中哪个区域的信息),发现一个规律,生成图里的每个区域,它的内容大多来自输入图里"注意力权重最高"的那个源区域。

跨图像注意力:一种衡量生成图像每个位置在计算时,主要依赖输入图像哪些位置信息的度量方式,论文中用它来判断模型是否真的"记得"该把哪块内容挪到目标位置。

换句话说,如果目标点的注意力能准确地聚焦到它对应的起点上,这个拖拽就大概率能被精准执行;如果注意力跑偏了,拖拽的内容就会错位或者失真。这个发现直接启发了DEM的设计:既然文本坐标传达对应关系的方式比较间接,那不如直接在图像特征层面给起点和终点打上同一个"信号标签",让模型在生成时天然就知道"这两处是配对的"。

具体做法是这样的,每个拖拽会关联一个标记向量,这个向量由两部分组成,一部分是所有拖拽共享的基础向量,另一部分是专属于这个拖拽编号的身份向量,保证不同拖拽彼此不会混淆。这个标记会同时加在起点和终点对应的图像特征位置上,相当于给这一对点打上了同一枚"胎记"。

这里值得打个比方。想象你在一个嘈杂的机场接人,如果你和对方事先约好了"我穿红色外套,你也穿红色外套",那哪怕人群再拥挤,你们也能一眼找到彼此。DEM干的就是这件事:给拖拽的起点和终点穿上同一件"颜色外套",模型在生成的时候,目标位置会优先去注意力图里寻找那件同色外套,从而准确锁定该从哪里"取材料"。如果不这样做,模型就得靠文本坐标间接猜测对应关系,相当于接机的人没有约定暗号,只能凭一张模糊的照片在人群里瞎找,找错的概率自然高得多。

这套设计带来的效果提升是实打实的。论文做了个消融实验,去掉DEM之后,模型在DragBench上的点追踪误差(Mean Distance,简称MD,衡量生成图中内容实际落点和目标点之间的距离,数值越小越精确)从28.84飙升到45.42,几乎翻了一倍半。更直观的是注意力峰值统计:没有DEM的时候,只有6.1%的拖拽,其目标点注意力真正落在对应起点附近;加上DEM之后,这个比例跳到50.7%。这个对比相当清楚地说明,靠文本坐标传递空间对应关系,模型学得并不扎实,真正起作用的是这枚显式的"胎记"。

数据从哪儿来:一条自动化流水线

有了方法,还得有数据喂养模型。这是THINKDRAG论文里一个容易被忽略但分量很重的部分。

此前的同类工作,比如InstantDrag和LightningDrag,走的是从视频里扒数据的路子:从一段视频里抽两帧,用光流(Optical Flow,一种估计视频相邻帧之间像素运动轨迹的计算机视觉技术)或者点追踪算法计算出画面里的运动,当作拖拽监督信号。

光流:计算机视觉中用来描述图像序列里像素点运动方向和速度的技术,常被用来估算视频前后帧之间物体的位移。

这条路子听起来合理,但有三个硬伤。一是从视频里提取出来的对应关系本质上只是几何运动,不一定反映用户真正想要的语义编辑意图;二是光流在物体发生大幅位移或者被遮挡的时候很不稳定,容易算错;三是真实视频里经常混杂着摄像机晃动、背景变化这些噪声,会污染本该干净的监督信号。

THINKDRAG团队干脆换了一条路,靠合成数据+大模型协同标注,搭了一条四阶段的流水线。

第一步是合成图像对生成。他们先用多模态大语言模型(MLLM,能同时理解图像和文本的大模型)从一个主题和场景的词库里生成多样化的源图提示词,再用当下最强的几个文生图模型,包括Qwen-Image、FLUX.2和Z-Image,把这些提示词渲染成源图像。接着针对每张源图,再让MLLM提出一个"适合拖拽式编辑"的修改指令,这个指令被严格限定在"能用空间运动表达"的范围内,比如物体平移、姿态改变、非刚性形变、局部几何形变,而刻意排除了物体插入删除、全局风格迁移这类和拖拽逻辑不沾边的编辑类型。拿到修改指令后,用编辑模型FLUX.2生成目标图像,最后再用MLLM做一轮二元过滤,把质量差或者编辑失败的样本踢出去。

第二步是语义关键点匹配,这一步调用了Gemini 3 Pro,去识别能解释源图到目标图之间变化的关键点,每个拖拽包含一个起点、一个终点,以及这个匹配元素在两张图里的语义描述。考虑到大模型偶尔会"看错"产生幻觉,团队还用DINOv3(一种自监督视觉特征提取模型,擅长判断图像局部区域的相似性)的特征做校验,加上人工抽查。

第三步是推理链条生成,让Gemini 3 Flash根据源图、目标图、编辑指令和关键点标注,写出一段解释性文字,描述场景、逐个解读拖拽的语义含义、总结整体变换,并明确哪些区域应该保持不变。由于每对图像可以双向使用(源图变目标图,目标图也可以反过来变回源图),这一步会为两个方向各生成一条推理链。

整套流程跑下来,从大约19.3万个初始生成的图像对出发,经过MLLM过滤剩下9.7万,关键点匹配后剩5万,最终验证完成的数据集定格在约1.1万对源图目标图,覆盖7千张不同的源图像。考虑到双向使用,实际可用的拖拽编辑样本大约是2.2万条。平均每个样本带2.15个拖拽点,74%的样本包含多个拖拽,推理文字平均长度123个单词。这个规模放在数据集里不算大,但胜在质量,每一条都是"知道自己在编辑什么"的样本,而不是光流算出来的盲目位移。

新的考题:DragBench++

光有新方法不够,还得有能检验它的考场。论文团队发现,行业里通用的DragBench基准,题目相对简单,大多数拖拽都是局部的、直接的点位移,很难区分出谁真正"懂"语义,谁只是在硬拖像素。

于是他们用同一套数据构建流水线,做出了DragBench++,包含145个样本,全部由人工标注拖拽指令,刻意挑选那些需要更高层级场景理解、物体结构推理的编辑场景。和DragBench相比,DragBench++平均每个样本的拖拽数量是2.51个,而DragBench只有1.70个;位移距离平均107.8像素,是DragBench的58.5像素的将近两倍。更关键的是,DragBench++为每个样本都配了一张参考编辑图像,相当于给这道"拖拽题"配了一份参考答案,哪怕拖拽编辑本身是一个开放性问题,允许多种合理解法,这张参考图至少证明了"这道题至少存在一个可行解"。

评价指标这块,论文也做了一个很诚实的反思。传统做法是用DIFT(一种基于扩散模型特征的图像对应关系估计方法)去追踪生成图里目标点对应的内容,计算和真实目标位置的距离。但在DragBench++这种大幅结构变化的场景下,DIFT经常追踪失败。证据很直接:即便是那张"标准答案"参考图,用DIFT算出来的误差都高达43.42,这显然不合理,因为参考图按照定义就是完美满足拖拽要求的。换成用GPT-5.5做点追踪之后,参考图的误差降到27.38,更贴近真实情况。这说明DIFT的误差里,相当一部分其实是追踪算法本身失灵导致的噪声,而不是编辑质量的真实反映。基于这个发现,论文同时报告两套指标,在DragBench++上以GPT-5.5的结果为主要参考。

实验结果:数字说话

把THINKDRAG和几类主流方法摆在一起比,包括测试时优化流派的DragDiffusion、DragNoise、DragLoRA,一步法流派的FastDrag、GeoDrag,以及微调式前馈生成流派的InstantDrag、LightningDrag。

在DragBench++上,THINKDRAG拿到了图像保真度(Image Fidelity,简称IF,衡量生成图像与输入图像的相似程度,数值越高代表无关区域保留得越好)0.875,对比参考图的IF*达到0.905,均为所有方法里最高。点追踪误差MD是47.66,MDMLLM是34.24,两项都是最优。而LightningDrag作为最强的微调式前馈方法,MD是57.49,MDMLLM是57.28,差距相当明显。

在传统的DragBench上,THINKDRAG的IF是0.918,FID(Fréchet Inception Distance,一种衡量生成图像整体质量和真实感的统计指标,数值越低代表生成图像越逼真)是30.05,两项依然最佳。点追踪精度上,THINKDRAG没有拿到最低的MD,反而是那些在推理阶段强行逼近点位移的测试时优化方法占了优势,这也容易理解,毕竟这类方法本来就是以点位精度为优化目标的。但有意思的是,后续的用户研究结果里,THINKDRAG在DragBench上照样拿到62%的编辑准确度投票,反超了那几个DIFT指标更好看的基线方法,这说明单纯的像素级距离,并不能完全代表人类眼里"这个编辑对不对"。

说到用户研究,团队请了30名参与者,每人从两个基准里抽样回答20道题,对比DragLoRA、GeoDrag、LightningDrag和THINKDRAG的匿名结果。最终,THINKDRAG在DragBench++上拿到79.7%的整体偏好票数,在DragBench上是61.0%,两个基准合并起来大约70%的投票都倒向了它。这个比例,说直白点,十个人里差不多七个会选它。

此外论文还做了一个很扎实的消融实验,把模型拆解成零件逐一验证贡献。直接用未经改造的BAGEL原模型,在DragBench上MD高达58.92,几乎完全没有拖拽编辑能力;用编辑模型FLUX.2零样本测试,MD是58.56,同样失效,而且它的高IF(0.933)很大程度是因为它干脆没怎么改动图像。单独在THINKDRAG数据集上训练但不加DEM,MD降到45.42,说明数据本身已经起了很大作用;再加上DEM,MD进一步降到28.84。这组对照清晰地展示出,数据质量和端点标记这两个创新点,各自都贡献了不可替代的一块拼图。

一个意外的收获:坐标也能"看懂"图像

训练过程中还浮现出一个研究者没有刻意设计、却自然长出来的能力,论文管它叫坐标落地(Coordinate Grounding)。

具体做法是,研究团队从DragBench++里人工标注了250个起点坐标对应的物体和部位,然后给模型一张图和一个归一化坐标,让它直接说出"这个坐标落在什么物体的什么部位"。结果显示,原始BAGEL模型的回答准确率只有38.0%,经过THINKDRAG训练后的模型准确率跳到了72.8%,几乎翻倍。

论文里举了个例子很说明问题。给模型一张老虎的照片,标出鼻子附近的坐标,原版BAGEL会答"这是一把椅子,这个部位是椅背",完全牛头不对马嘴;而THINKDRAG能准确说出"这是老虎,这个部位是鼻子"。这个现象之所以有意思,在于模型训练时从未被专门要求去学"理解坐标",它只是被要求执行拖拽指令,但副产品是它对"坐标在图像里对应什么内容"这件事,理解力也跟着变强了。

这多少有点像学做菜的过程。你本来只是在反复练习"把食材从案板移到锅里"这个动作,结果练着练着,你对食材本身的认知反而变精细了,哪块肉适合爆炒、哪块适合炖煮,你心里有了数,尽管没人专门教过你这个。THINKDRAG的坐标理解能力,就是这种"练着练着顺带学会的"副产品,它恰好也印证了论文一开始的核心主张:拖拽编辑如果脱离了对图像内容的理解,就只能停留在搬运像素的层面。

文字和拖拽的配合:联合调控

THINKDRAG还支持一个很实用的联合模式,拖拽点加文字提示同时输入。默认情况下,模型只靠拖拽点和图像本身去猜测用户意图,但很多时候,同一组拖拽点其实能对应好几种不同的合理解读。

论文给了个花的例子。拖拽点是把花瓣两侧往外拉,配上文字"make wider"(变得更宽),模型生成的是整朵花被撑大;换成文字"open petals"(打开花瓣),生成结果变成花瓣向外展开、露出花蕊。同样的拖拽指令,因为文字不同,走向了两个截然不同却都合理的结果。蜡烛的例子也类似,同一个向上拉的拖拽,配"taller candle"变成蜡烛本体变高,配"taller flame"变成火苗窜高,蜡烛本体保持不变。

这个功能并不是额外加了一套复杂机制实现的,而是统一多模态建模本身自然带出来的能力。训练时,团队只对10%的样本同时提供拖拽端点和对应的文字编辑描述,让模型学会两者协同,但不强制文字必须出现,推理时用户可以选择只给拖拽、只给文字,或者两者都给。这种设计比起此前专门针对"文字+拖拽联合"场景做定制化机制的工作(比如CLIPDrag)要轻巧得多,算是统一框架自带的红利。

写在后面

读完这篇论文,最让我回味的其实不是DEM或者推理轨迹这些主模块,而是那个关于坐标理解能力的意外发现。模型根本没被要求去学"看懂坐标",它只是在反复执行"把这里的东西挪到那里"这件事,结果顺带学会了辨认物体和部位。这让我想起一个更大的问题:当我们训练模型去完成一个具体的、看似狭窄的任务时,它到底在悄悄学会多少我们没有要求它学的东西?这种"隐性涌现"可能比我们精心设计的显性目标更值得追踪。

另一个值得单独拎出来说的细节,是论文对评价指标本身的反思。他们没有盲目相信DIFT这个业界常用的追踪工具,而是用参考图像去反向检验它,结果发现连"标准答案"自己都测不出低误差,这说明问题出在尺子上,不是答案错了。这种"先怀疑工具、再相信结果"的态度,在一堆追求数字好看的论文里其实挺少见的。

还有一个有点哭笑不得的对照组实验留在脑子里挥之不去。论文做了个控制实验,故意给模型一个错误的编辑指令,让它生成一段推理轨迹,看模型会不会被带偏去"自圆其说",结果只有2.8%的推理轨迹会跟着错误指令走,绝大多数时候模型还是坚持按照真实的拖拽点内容说话。这说明这套推理机制,至少在目前的训练数据下,更多是在"忠实转述它看到的图像内容",而不是被文字牵着鼻子走的空想。

你有没有想过,当未来的编辑工具越来越"懂"你的意图,你还需要精确地描述你想要什么吗,还是说,工具会反过来帮你意识到自己到底想要的是什么?

Q&A

Q1:THINKDRAG是什么?

A:THINKDRAG是南洋理工大学团队提出的一种拖拽式图像编辑模型,基于统一多模态框架,能在生成图像之前先用文字推理理解用户的拖拽意图,再执行精确的空间编辑,而不是单纯把拖拽点当作几何位移处理。

Q2:THINKDRAG和以前的拖拽编辑方法有什么不同?

A:以往方法大多把拖拽指令当成纯粹的位移向量,容易产生扭曲失真的结果。THINKDRAG通过语义级别的训练数据、可选的推理轨迹以及拖拽端点标记技术,让模型理解拖拽背后的物体结构和场景语义,生成质量和合理性明显更高。

Q3:DragBench++和原来的DragBench有什么区别?

A:DragBench++是论文新提出的基准,包含145个样本,平均每个样本拖拽数量和位移距离都远高于DragBench,还额外提供了参考编辑图像,专门用来考察模型应对复杂语义拖拽场景的能力。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-