当前位置: 首页 > news >正文

EmuEdit

EmuEdit详解:统一多任务图像编辑的扩展性范式


引言:图像编辑的困境

近年来,扩散模型(Diffusion Models)在图像合成和编辑方面取得了巨大进展,如 Prompt-to-Prompt (P2P)InstructPix2PixDiffEdit 等方法。然而,它们往往存在以下问题:

  • 局限于单一任务(Single-task),例如只能修改颜色、添加对象等;
  • 方法碎片化:每种任务用不同的pipeline,缺乏统一框架;
  • 难以扩展新任务(Poor generalization),新增任务通常需要微调整个模型;
  • 缺乏鲁棒性和任务区分能力

这些问题严重限制了图像编辑系统的通用性、交互性和扩展性


EmuEdit的目标

EmuEdit 提出一个统一框架,用于支持多种图像编辑任务,并在不重新训练整个模型的情况下,适应新任务

其核心目标:

  • 支持多任务图像编辑
  • 使用任务嵌入 Task Embedding作为条件信号
  • 实现训练后无调参地扩展新任务(Task Inversion,类似于Textual Inversion的思想)

min ⁡ v new E y , ϵ , t [ ∥ ϵ − ϵ θ ( z t , t , E ( c I ) , c T , v new ) ∥ 2 2 ] \min_{v_{\text{new}}} \, \mathbb{E}_{y, \epsilon, t} \left[ \left\| \epsilon - \epsilon_\theta\left(z_t, t, E(c_I), c_T, v_{\text{new}} \right) \right\|_2^2 \right] vnewminEy,ϵ,t[ϵϵθ(zt,t,E(cI),cT,vnew)22],where v n e w v_{new} vnew is the learned task embedding


EmuEdit如何建模图像编辑任务?

EmuEdit将图像编辑任务统一建模为四元组 (I, T, Tar, TI)

  • I:原始图像
  • T:用户编辑指令文本
  • Tar:目标编辑图像(监督信号)
  • TI:任务类型嵌入(Task Index / Embedding)

本质上是一个条件图像生成问题
给定输入图像 I,文本指令 T,和任务向量 TI,生成目标图 Tar


核心组件与设计

1. 文本指令(T)的构造:人类 + GPT增强

已知image caption和task index,然后利用LLM的in-context learning来给定few-shot examples输出edit instruction。

instruction的格式如下:1)edit指令;2)edit的目标(edited object);3)新的image caption;4)原始目标(original object)

2. 编辑对((I, Tar))的构造:基于 Soft Mask-based Attention Control

EmuEdit 训练需要大量成对图像(输入图像 I 和目标图像 Tar),这些编辑对需保持:

  • 一致的内容结构(同一场景/物体)
  • 明确的编辑目标
  • 可用于监督模型学习图像编辑行为
2.1 背景:从 Prompt-to-Prompt (P2P) 到 Attention Control

最初,Prompt-to-Prompt (P2P) 方法基于扩散过程中的注意力模块修改生成行为,并保持内容一致性。其核心思想是利用文本中词语的注意力,对应地修改图像的局部区域。

但这种方式存在两个局限:

  • 需要 word-to-word alignment,即源指令和目标指令之间词汇的一一对应;
  • 对于复杂或模糊的编辑需求(如“使天空更梦幻”),这种对齐变得不现实。
2.2 引入 Mask-based Attention Control

为了解决上述问题,研究者提出了基于显式 mask 的 attention control方法:

  • 利用图像中显式的空间 mask(如要修改的区域)来调控注意力;
  • 在生成图像时,仅在被 mask 区域施加指令影响,其余区域保持不变。

但 Mask-based Attention Control 也存在问题:

  • Mask 区域边界硬,过于“精确”导致 artifact;
  • 单一 mask 来源不够稳健(例如 DINO 分割不准时会误导注意力);
  • 无法兼顾编辑粒度、形状和上下文一致性。
2.3 EmuEdit 的创新:Soft Mask-based Attention Control

为解决上述问题,EmuEdit 提出 Soft Mask 机制:将多个来源的 mask 混合生成 连续权重分布,让注意力控制更平滑自然。

Soft Mask 是以下三种 mask 的融合(以权重线性组合):

Mask 类型描述
精准 Mask使用 DINO + SAM 提取精细目标区域,获得精确前景掩码;
平滑 Mask将精准 mask 先 膨胀 (dilation),再加上 高斯模糊,获得软边界区域;
Bounding Box Mask用于提供更大但粗糙的上下文编辑范围;用于保证覆盖性;

最终类似于DiffEdit的方法进行融合得到一个 Soft Mask M(x, y) ∈ [0, 1],表示每个像素被编辑的程度。

这种 soft mask 被用于控制 attention weight,在扩散生成图像时:

  • 高 mask 值区域 → 强烈施加新指令影响
  • 低 mask 值区域 → 保持原图信息
2.4 筛选高质量训练对

生成 (I, Tar) 后,使用以下方式筛选有效数据对:

  • 计算 CLIP 图文匹配分数,保证图像与指令语义一致;
  • 图像保真度检测,防止生成图偏离原图结构;
  • 保留高质量样本进入训练集。

最终构建了一个具有强一致性与鲁棒性的 高质量多任务图像编辑数据集


3. 任务嵌入(TI)

  • 为每种任务(如“变颜色”、“加对象”、“去背景”)分配唯一任务 ID
  • 映射成任务向量 v_task,作为扩散模型的条件之一
    值得注意的是,在推理阶段,用户无需输入task index,作者基于Flan-T5-XL训练了一个task index预测模型,来根据用户输入的instruction预测出相应的task index。

模型结构与训练流程

输入:原始的image caption,原始的image object,原始的image caption用Diffusion生成的图片和编辑后的image caption,编辑后的image object。
输出:编辑后的image

此外,为了缓解多轮编辑中误差积累导致的伪影(artifacts)问题,EmuEdit 在每一轮编辑后引入了 逐像素阈值处理步骤(per-pixel thresholding step)

多轮编辑中的逐像素阈值处理策略(Per-pixel Thresholding in Multi-turn Editing)

在每一轮编辑 s s s中,设输出图像为 c I s + 1 c_I^{s+1} cIs+1 ,输入图像为 c I s c_I^s cIs。我们首先计算 RGB 通道上的绝对差值图:

d = ∥ c I s + 1 − c I s ∥ 1 d = \|c_I^{s+1} - c_I^s\|_1 d=cIs+1cIs1

接着,将差值图 d d d 通过低通滤波器平滑,得到平滑差值 d ˉ \bar{d} dˉ,以消除前后帧之间的小尺度波动,并增强过渡的自然性。然后,对每一个像素应用如下逐像素阈值函数:

c I s + 1 = { c I s , if  d ˉ < α c I s + 1 , otherwise c_I^{s+1} = \begin{cases} c_I^s, & \text{if } \bar{d} < \alpha \\ c_I^{s+1}, & \text{otherwise} \end{cases} cIs+1={cIs,cIs+1,if dˉ<αotherwise

其中, α \alpha α 是设定的变化阈值。若某像素的变化小于该阈值,就保留前一轮的像素值,防止无意义的小幅编辑扰动。EmuEdit论文中采用的阈值为:

α = 0.03 \alpha = 0.03 α=0.03

通过该策略,EmuEdit 有效抑制了多轮图像编辑中微小扰动的累积,提高了最终生成图像的稳定性和视觉一致性。这一技术尤其适用于 multi-turn editing 场景。

模型结构基于 条件扩散模型(U-Net + text encoder + task encoder),训练目标如下:
min ⁡ θ E ( I , T , T a r , T I ) [ ∥ ϵ − ϵ θ ( z t , T , E ( I ) , T I ) ∥ 2 ] \min_{\theta} \mathbb{E}_{(I, T, Tar, TI)} \left[ \left\| \epsilon - \epsilon_{\theta}(z_t, T, E(I), TI) \right\|^2 \right] θminE(I,T,Tar,TI)[ϵϵθ(zt,T,E(I),TI)2]

相关文章:

  • JAVA EE(进阶)_进阶的开端
  • IS-IS 中间系统到中间系统
  • Java IO框架
  • 安卓端互动娱乐房卡系统调试实录:从UI到协议的万字深拆(第一章)
  • ADVB帧格式
  • 生产模式下react项目报错minified react error #130的问题
  • 学习黑客Active Directory 入门指南(三)
  • 《沙尘暴》观影记:当家庭成为人性的修罗场
  • React中巧妙使用异步组件Suspense优化页面性能。
  • 【Spring】核心机制:IOC与DI深度解析
  • 存内计算在AI推理中的落地挑战:从理论算力到实际吞吐量的鸿沟
  • 蓝桥杯19682 完全背包
  • 用户下单-01.需求分析和设计-接口设计
  • 【Linux网络编程】Socket编程-Socket理论入门
  • 深入了解linux系统—— 基础IO(上)
  • Redis学习打卡-Day3-分布式ID生成策略、分布式锁
  • 基于First Order Motion与TTS的AI虚拟主播系统全流程实现教程
  • UI-TARS本地部署
  • 中级网络工程师知识点7
  • 学习黑客Active Directory 入门指南(一)
  • 15年全免费,内蒙古准格尔旗实现幼儿园到高中0学费
  • 中国新闻发言人论坛在京举行,郭嘉昆:让中国声音抢占第一落点
  • 东部沿海大省浙江,为何盯上内河航运?
  • 技术派|威胁F-35、击落“死神”,胡塞武装防空战力如何?
  • 中方是否计划解除或调整稀土出口管制?外交部回应
  • 刘国中将出席第78届世界卫生大会并顺访瑞士、访问白俄罗斯