VibeEdit: Image Editing with Canvas Instructions
Jinjing Zhao, Fangyun Wei, Yitong Wang, Xiuyu Wu, Yunuo Chen, Yang Yue, Sirui Zhang, Wenbo Wang, Hongyang Zhang, Dong Chen, Yan Lu, Chang Xu
cs.CV, cs.AI
2026-10-09
VibeEdit 把画在图上的圈选、箭头加手写短注当完整编辑指令,419 例评测 VLM 评分 79.9,比最强文字基线高 12.5 分。
指令式图像编辑有个老毛病:说清「改什么」容易,说清「改哪个」难。三把一模一样的椅子,想让中间那把变蓝,用户得写「把中间那把椅子改成蓝色」,模型还得猜「中间」指哪把。指错目标、改错区域,是这类系统最常见的失败方式。语言是往像素空间里指东西的有损指针,相似物体一多就对不准。
空间控制是另一条路:DragGAN 用拖拽点,MagicQuill 用笔刷,定位准了,但语义还得靠配套的文本 prompt,一次编辑被拆成两个输入。VibeEdit 把两个输入合成一个动作:直接在图上画。圈住目标、写个词、拉条箭头,这些标记加可选短注构成 canvas instruction(画布指令),不再需要单独的文字 prompt,覆盖添加、删除、替换、属性修改、移动五类操作。
系统分三块:数据、架构、训练。
数据:155 万对编辑样本,标注在线渲染。 Florence-2 提候选物体,GPT-5.6-sol 挑出适合编辑的对象并生成编辑描述,SAM 3 分割出 mask。五类操作各有来源:移除由 ObjectClear 擦除重绘得到,反过来就是添加;属性修改和移动用 Qwen-Image-Edit 生成;替换用 FLUX.1 Fill 在 mask 内重画。关键设计是存储与渲染分离:库里只存源图、目标图、mask 和结构化编辑字段,训练时才在线渲染成画布指令,并随机变化笔画形状、粗细、手写或印刷字体。同一个编辑对能长出大量不同标注样式,模型学到的是指令语义,不是某一种笔迹。
架构:分层解耦条件(layer-decoupled conditioning)。 把标注后的合成图直接喂给生成通路,笔迹容易漏进输出。VibeEdit 拆成两路:冻结的 Qwen2.5-VL 读标注后的图,产出语义 token;VAE 分别编码干净源图和渲染在灰底上的指令层,作为 DiT 的生成条件。消融里这一拆收益明显:生成通路只编码源图 24.7 分,只编码合成图 58.6 分,拆成两路 67.8 分。
训练:区域加权 SFT 加 rubric 强化学习。 局部编辑里大多数像素不变,均匀损失会稀释真正被编辑的区域,于是把物体和标注区域的损失权重提到 1.5 倍,mask 膨胀 50 像素。SFT 之后用 DiffusionNFT 做强化学习:VLM 裁判按「编辑是否完成、区域外是否保持、局部质量好不好」三组二元题打分,外加区域外 PSNR 低于 25 dB 时的惩罚项。RL 数据也不是随机选的,专挑同一指令多次采样后奖励方差大的条件(共 3,520 条),方差大才有可学的对比信号。
评测集 419 例,人工构建,专测「相似物体中选对目标」。基线分两种输入:文字组拿到人写的详细指令,平均 21.3 词;VibeEdit 只拿标注后的图,没有文字 prompt。
| 方法 | 输入 | VLM rubric | 区域外 PSNR |
| FireRed-Image-Edit-1.0 | 详细文字 | 67.4 | 24.0 dB |
| GPT-Image-1 | 画布标注图 | 42.7 | 13.4 dB |
| VibeEdit-base(仅 SFT) | 画布指令 | 67.6 | 32.7 dB |
| VibeEdit(完整版) | 画布指令 | 79.9 | 32.8 dB |
FireRed 是全部文字基线里最强的。几个数字拆开看:
对做编辑产品的人,这篇验证了「指认目标的成本可以从语言挪到画布」,而且模型端是 Qwen-Image-Edit 上的 LoRA 适配,不用重训底座。圈一下加个词,比写一句带空间关系的准确描述便宜得多。
对做研究的人,两条经验可复用。一是「存编辑、在线渲染标注」的数据构造法,任何想把交互信号(点击、框选、轨迹)变成训练数据的工作都能照搬。二是分层解耦条件,解决了「指令要引导生成、但不能出现在输出里」这个矛盾,同样适用于其他带标注输入的生成任务。
也要说清:底座、inpainting、RL 算法都是现成的,贡献在接口定义、数据规模和组合方式,属于工程整合式的渐进改进。
论文没有独立的局限章节,作者自述的一条是:数据过滤无法清掉全部噪声,靠 RL 兜底。读下来还有几处存疑: