跳转至

Anchoring and Steering Diffusion: Enhancing the Faithfulness of Text-to-Image Generation at Inference Time

会议: ECCV2026
论文: https://eccv.ecva.net/virtual/2026/poster/5400
PDF: https://media.eventhosts.cc/Conferences/ECCV2026/pdfs/10390.pdf
作者: Xinyi Wang, Yuyang Huang, Yalin Su, Pengcheng Luan, Tao Zhang, Feiming Wei, Wenxian Yu
领域: 图像生成
关键词: 文本图像对齐、语义锚定、LP-SDS、反思式引导、组合生成

一句话总结

AnchorSteer 在不训练模型权重的前提下,用 CLIP 先验与冻结扩散模型共同优化初始化,再在去噪途中诊断、擦除和补全语义错误,使 SDXL 的 GenEval 总分由 55.933 提升到 63.393,代价是显著增加推理计算。

研究背景与动机

文生图模型已经能生成外观自然的单个物体,但多个对象、属性和空间约束组合后,仍可能漏画对象、弄错数量,或把属性绑定到错误对象。简单增加去噪步数或提高 classifier-free guidance(CFG)强度,并不能告诉模型“现在具体错在哪里”。一旦早期布局走偏,后续采样可能只是把错误结果画得更加逼真。

已有推理时改进主要处理两个位置:初始化方法从噪声池挑选有利起点,或直接优化噪声;轨迹方法则在生成过程中调整引导,甚至通过重新加噪回到较早状态。前者受候选池、评分可靠性和分布漂移限制;后者虽然允许回退,却不一定能区分应删除的内容与应补充的内容。本文因而把初始化和中途纠错视为两个互补问题,而不是期望单一对齐分数解决所有错误。

核心 idea:先把文本语义转成与扩散模型先验兼容的起点,再让视觉语言模型分别指出“多了或错了什么”和“缺了什么”,用带方向的局部回退与重绘阻止语义错误继续积累。

方法详解

整体框架

输入为文本提示,输出为与对象、属性及关系约束更一致的图像。语义锚定(Semantic Anchoring)在采样之前完成:CLIP 合成伪图像,LP-SDS 将其潜变量向扩散模型的条件分布调整,再进行 DDPM 前向加噪。反思式引导(Reflective Steering)则插入正常去噪过程,由 Think 诊断和 Erase–Retouch 纠错组成。

这里的“training-free”指不更新预训练模型权重,不代表没有优化计算:伪图像和潜变量仍需逐提示优化,VLM 也会反复推理。纠错操作作用于潜变量与文本引导,正文没有提供显式空间掩码模块,因此不能把“定向擦除”理解成有严格区域隔离保证的局部编辑。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    Input["文本提示"] --> Anchor["语义锚定<br/>CLIP 先验与 LP-SDS"]
    Anchor --> Step["前向加噪后开始采样<br/>执行正常去噪步"]
    Step -->|检查时刻| Think["Think 双重诊断<br/>解码干净图像估计"]
    Think --> Edit["Erase–Retouch 纠错<br/>负向回退与正向补全"]
    Edit -->|还有去噪步| Step
    Step -->|非检查时刻且未结束| Step
    Edit -->|最后一步| Output["解码最终图像"]
    Step -->|结束且无需检查| Output

关键设计

1. 语义锚定:先提取文本结构,再修复与扩散先验的域差距

第一步不是从检索库取图,而是通过 Direct Ascent Synthesis(DAS)优化一张可学习图像,使其 CLIP 图像嵌入与提示的文本嵌入具有更高余弦相似度。得到的伪图像能携带目标对象、颜色分布及空间结构,但往往伴随高频伪影和不自然颜色。CLIP 认为匹配的画面,并不一定是扩散模型熟悉的自然图像;直接拿来初始化会把语义信号和分布偏移一起带入采样。

为此,作者先用 VAE 编码伪图像,再直接优化它的潜变量。每次采样一个噪声时刻,对当前潜变量加噪,用冻结的扩散去噪网络预测噪声,然后用预测噪声与实际噪声的差作为更新信号。LP-SDS 沿用 SDS 省略 U-Net Jacobian 的做法;这里优化的是当前提示对应的潜变量,而不是 U-Net 参数。根据原文式 (4) 整理可读记号,核心更新方向为:

\[ \nabla_z\mathcal L_{\mathrm{LP\text{-}SDS}} riangleq \mathbb E_{t,\epsilon}\left[w(t)\left(\hat\epsilon_\phi(z_t;c,t)-\epsilon\right)\right]. \]

其中 \(z_t\) 是当前潜变量加噪后的状态,\(\hat\epsilon_\phi\) 是带文本引导的预测,\(w(t)\) 为时间权重。直观上,DAS 提供“要画什么”的结构,LP-SDS 再借助冻结生成模型回答“怎样的潜变量更像这个模型会生成的图”。正文将其解释为跨时间加权的条件 KL 散度优化,但这不是每一步都保留全部组合语义的严格保证。

优化后的 \(z^*\) 经标准 DDPM 前向加噪成为采样起点:

\[ z_T=\sqrt{\bar\alpha_T}\,z^*+\sqrt{1-\bar\alpha_T}\,\epsilon, \qquad \epsilon\sim\mathcal N(0,I). \]

这一步比任意修改噪声更贴近模型已知的前向过程,但要谨慎理解论文随后“仍服从 \(\mathcal N(0,I)\)”的说法。对固定 \(z^*\),该式实际给出均值为 \(\sqrt{\bar\alpha_T}z^*\)、协方差为 \((1-\bar\alpha_T)I\) 的高斯分布;只有当残余信号充分小时才近似标准高斯。若信号完全消失,锚定语义也会消失,因此本文的分布一致性更适合视为近似动机,而不是无条件定理。

2. Think 双重诊断:把模糊的不对齐拆成可执行的两类反馈

每到检查时刻,先完成一次普通去噪,得到中间潜变量 \(z'_{t-1}\)。VLM 并不是直接检查带噪潜变量,也不是等最终图像完成才评分;系统先按 DDIM 的预测关系估计干净潜变量,再经 VAE 解码成当前最终图像的预测,交给 VLM 与原提示比较。

诊断结果分为缺失内容 \(D_{\mathrm{pos}}\) 与不一致内容 \(D_{\mathrm{neg}}\)。前者包括提示要求但尚未充分出现的对象、属性和关系,后者包括多余、幻觉或与提示冲突的内容。这样做的作用不是提供更细的排行榜分数,而是产生两个不同的控制目标:遗漏对象需要补入,错误对象需要抑制,单纯强化整句提示无法明确区分这两件事。

其代价是诊断质量成为新的瓶颈。尤其在早期,干净图像预测仍可能模糊,VLM 所见不一定等于最终画面。正文给出了不同规模 VLM 的性能比较,却未报告错误诊断率或置信度门控,不能据此认为每次反馈都可靠。

3. Erase–Retouch 纠错:回退时压制错误,同时在往返两程补强缺失语义

得到诊断后,系统把一次常规去噪扩展为 \(z_t\rightarrow z'_{t-1}\rightarrow z_t^*\rightarrow z_{t-1}^*\)。Erase 用 \(D_{\mathrm{neg}}\) 替代 CFG 中原本的无条件输入,通过负向引导的 DDIM inversion 回到更高噪声的时刻。与随机再加噪不同,回退方向由当前错误的语义决定,目标是在重绘前削弱不一致内容,而不是只给错误图像增加一次随机机会。

Retouch 把缺失描述并入原提示,形成增强条件 \(c^+=c\cup D_{\mathrm{pos}}\)。关键细节是正向条件同时用于重新加噪和重新去噪:回退时,以增强提示为正向条件、错误描述为负向条件;返回时,对增强提示使用标准 CFG。因而 Erase 和 Retouch 的作用在回退子步中有重叠,不能把它们实现成互不相干的“先擦一下、再只在最后补一下”。

重绘后的潜变量继续进入正常采样,下一次检查重新诊断,而不是永久沿用最初错误清单。正文式 (6)–(11) 在本地文本抽取中存在符号缺损,本笔记仅保留明确的状态路径与条件替换逻辑,不自行补全引导系数或 inversion 公式;精确实现应对照原 PDF。

一个完整示例

原文图 7 使用提示 “A horse and a giraffe”,展示前 8 个去噪步骤的干净图像预测。标准 SDXL 将两个概念混淆,画成两只长颈鹿;AnchorSteer 逐渐去掉错误实例并恢复缺失的马。

按本文机制理解,语义锚定先提供与两种对象相关的起点;Think 随后需要识别缺失的马与多余的长颈鹿;Erase–Retouch 通过带负向条件的回退和增强条件的重绘纠正它们。这是对图示与算法的解释,不是缓存中提供的逐字 VLM 输出,也没有证据表明所有同类提示都能在固定步骤内成功。

损失函数 / 训练策略

主实验使用 SDXL 与 HunyuanDiT-v1.2,DDIM 采样步数为 \(T=50\),常规 CFG scale 为 5。DAS 使用 OpenCLIP ViT-B/32,LP-SDS 优化步数为 \(N_{\mathrm{lp}}=400\);反思式引导使用 Qwen-VL-Chat,检查步长 \(\tau=1\),擦除与修补引导参数分别为 \(\gamma_e=1.0\)、\(\gamma_r=5.0\),硬件为 NVIDIA H100。

主文没有在实现细节中给出 DAS 的具体迭代数、学习率及所有优化器设置;这些不能凭经验填入。缓存也不含正文所引用的补充实验,因此少步蒸馏模型和人工偏好研究只能视为作者提及的后续证据,不能在这里补出结果。

实验关键数据

主实验

下表摘自原文表 2,为 SDXL 在 GenEval 上的结果,所有指标越高越好,保留论文的分数刻度。总分提升应读作分数点差,不是相对百分比;本文没有在所有子项上独占最优。

方法 Two Objects Counting Position Attribute Overall
Standard 81.06 30.31 11.00 21.25 55.933
InitNO 85.10 37.81 16.00 22.75 58.540
DNO 80.81 44.06 12.75 22.00 58.430
Zigzag 85.35 40.94 12.25 20.50 58.547
Diffusion DPO 92.42 46.25 15.00 18.50 60.744
AnchorSteer 91.16 52.50 17.75 24.00 63.393

SDXL 总分增加 7.460,Counting 增加 22.19;但 Two Objects 低于 Diffusion DPO 的 92.42。原文表 1 还显示,HunyuanDiT 的总分从 68.342 升到 72.470,增加 4.128,支持其对两种不同骨干有效,而非证明适用于所有扩散架构。

下表摘自原文表 3 的部分列,均为 T2I-CompBench++ 的 SDXL 结果;2D-S/3D-S 指空间关系,Non-S 指非空间关系,Num 指数量约束,所有列越高越好。

方法 Color 2D-S 3D-S Non-S Num Complex
Standard 0.5766 0.2015 0.3824 0.3139 0.5029 0.3382
Zigzag 0.6172 0.2011 0.4024 0.3206 0.5349 0.3504
Diffusion DPO 0.6351 0.2153 0.4017 0.3156 0.5223 0.3536
AnchorSteer 0.6712 0.2158 0.4135 0.3171 0.5796 0.3759

复杂组合和数量约束改善明显,但 Non-S 不及 Zigzag。原文表 4 另报告 ImageReward 从 0.4891 升至 0.8781;多样性指标 \(1-\mathrm{LPIPS}\) 从 0.3860 降至 0.3794,DINO 相似度从 0.6638 降至 0.6314。这里两项相似度越低代表样本差异更大,不能误写成多样性退化。

消融实验

下表来自原文表 5。Anchor-only 和 Steer-only 分别表示只使用一个组件,不应把 Steer-only 当成先加入 Anchor 再追加 Steer 的累计配置。

骨干 配置 Two Objects Counting Attribute Overall
SDXL Standard 81.06 30.31 21.25 55.933
SDXL Anchor-only 88.64 44.38 24.00 60.731
SDXL Steer-only 91.67 42.50 20.25 59.868
SDXL AnchorSteer 91.16 52.50 24.00 63.393
HunyuanDiT Standard 93.18 64.69 39.00 68.342
HunyuanDiT Anchor-only 93.43 66.88 46.75 70.395
HunyuanDiT Steer-only 96.72 71.56 45.50 71.728
HunyuanDiT AnchorSteer 95.71 72.50 48.25 72.470

关键发现

  • 两组件对总分互补,但并非对子项单调叠加。SDXL 的 Steer-only 属性分数为 20.25,低于基线 21.25;两个骨干的完整方法在 Two Objects 上也都低于 Steer-only。
  • 原文表 6 中,将诊断模型换成 Qwen2-VL-2B、Qwen2.5-VL-3B 后,总分分别为 62.073、62.843,Qwen-VL-Chat 为 63.393。不过模型家族与版本同时变化,不能把差异完全归因于参数量。
  • 原文表 7 的单图耗时为 Standard 3.7 秒、Zigzag 8.3 秒、AnchorSteer 68.5 秒、DNO 155.5 秒。AnchorSteer 的耗时分解为 Anchor 18.0 秒、Steer 46.7 秒、其他 3.8 秒;主要瓶颈是逐步诊断与往返纠错,而不是额外一次普通采样。

亮点与洞察

  • 将“初始语义不够好”和“途中发生偏移”分开处理,消融也显示单个组件无法替代另一个。对推理时优化而言,起点控制与在线反馈值得分别设计和计量。
  • 把判别模型中的语义先验先转换到生成模型更熟悉的分布,再作为初始化使用,比直接追逐 CLIP 分数更有针对性。可迁移的是“先验提取后做生成先验校准”的思路,而非认为任何 CLIP 高分图都能直接生成自然图像。
  • 缺失与冲突采用不同方向的控制信号,使 VLM 反馈具有明确执行语义。借鉴到其他生成任务时,应同时验证反馈准确率与纠错副作用,而不能只展示最终对齐总分。

局限与展望

  • 作者明确承认额外推理成本。68.5 秒对 3.7 秒的差距意味着它更适合忠实度优先的场景;正文比较并非等时延预算实验,不能据此断言其计算效率优于多次采样择优。
  • 从本笔记的分析看,终点近似高斯与保留语义残余之间存在需要量化的张力。未来应同时测量噪声统计、对齐收益和不同终点噪声强度,而不是只依赖标准前向加噪的形式。
  • 缓存主文没有提供去掉 LP-SDS、去掉负向擦除、仅在单程使用正向条件的细粒度消融,也没有提供检查间隔扫描。现有证据支持 Anchor/Steer 的模块级效果,尚不足以确定每个内部设计的独立收益。
  • 早期图像预测可能诱发 VLM 误诊,文本负向引导也不保证只改变目标区域。可考虑置信度触发检查和区域约束,但这些属于后续研究建议,不是本文已实现的功能。
  • 主文未展示重复运行误差条、置信区间或更广泛骨干验证;缺失的补充材料不能用推测补全。空间与属性指标的绝对水平也说明组合语义问题仍远未解决。

相关工作与启发

  • 对比 DAS 与 SDS:DAS 从 CLIP 中提取与文本相关的可视结构,SDS 提供冻结扩散模型的蒸馏梯度;本文把两者串在初始化阶段,优化潜变量来连接判别先验与生成先验,而非新增一个可训练生成模型。
  • 对比 InitNO、DNO 与 NPNet:这些工作围绕噪声选择或优化改善起点;AnchorSteer 不只依赖初始噪声质量,还在生成途中加入显式诊断。与此同时,本文的初始化也有迭代优化成本,不能等同于廉价的噪声替换。
  • 对比 Zigzag:双向采样为回退重绘提供基础,本文增加了错误类型诊断及正负条件控制。比较重点是回退为何发生、往哪个语义方向修正,而非是否存在往返本身。
  • 对比 Diffusion DPO:偏好训练改变模型参数,AnchorSteer 在固定模型上投入推理计算。两者代表不同的成本分配方式,表中胜负不能脱离训练与部署预算讨论。

评分

  • 新颖性: 4/5。两类先验的初始化衔接与双重诊断纠错组合明确,但基础技术来自 DAS、SDS、CFG 和双向采样。
  • 实验充分度: 4/5。包含两个骨干、两个组合基准、质量与多样性及耗时分析;缺少等预算和内部机制的更细消融。
  • 写作质量: 4/5。主线和模块级证据清楚,但标准高斯的表述需要条件限定,部分复现设置留在未提供的补充材料中。
  • 价值: 4/5。适合高忠实度优先的推理时研究;较大时延和诊断可靠性限制直接部署。