M6-057M6: Multimodal & Generative ModelsGuidance & Fast Sampling (CFG / DDIM)Hard
Mastery:
Guidance & Fast Sampling (CFG / DDIM): 解释扩散模型的潜在空间编辑(SDEdit / inversion)。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: SDEdit:加噪到中间步再用新提示去噪;inversion:用确定性采样把图像反推到噪声,再改提示重生成。
📌 Key Takeaways
- •SDEdit:加噪到中间 t,再用新 prompt 去噪(保留结构、改变风格)
- •Inversion:用 DDIM 确定性采样反推到 x_T,改 prompt 后重生成
- •核心:加噪强度 t 控制'保留多少原图'(t 小则变化小)
📐 Mathematical Derivations
数学机理:<strong>SDEdit(Meng 等 2022)</strong>——(1) <strong>加噪</strong>——把真实图像 x_0 用前向过程加噪到中间时间步 t(用闭式解:x_t=√ᾱ_t x_0+√(1−ᾱ_t)ε);(2) <strong>去噪</strong>——从 x_t 出发,用<strong>新的 prompt</strong> c' 做反向采样(而非从纯噪声出发)。<strong>效果</strong>——(a) <strong>保留原图的低层结构</strong>(因为 x_t 保留了部分原图信息);(b) <strong>改变高层语义/风格</strong>(因为去噪时用新 prompt 引导);(c) <strong>t 控制编辑强度</strong>——t 小(加噪少)→ 保留多、变化小;t 大(加噪多)→ 保留少、变化大(接近'重新生成')。<strong>典型应用</strong>——图像翻译('把照片变成油画')、风格迁移、局部修改、草图上色。<strong>Inversion(反演)</strong>——(1) <strong>反推</strong>——用<strong>确定性采样器</strong>(DDIM/DPM-Solver)把真实图像 x_0 <strong>反向</strong>推到噪声 x_T(DDIM inversion:沿 ODE 反向积分);(2) <strong>修改</strong>——改变 prompt(或做插值/编辑);(3) <strong>重生成</strong>——从 x_T 正向采样得到 x_0'。<strong>与 SDEdit 的差异</strong>——(a) <strong>SDEdit</strong> 是'加噪到中间步'(不精确反推,因为加噪是随机的);(b) <strong>Inversion</strong> 是'精确反推到起点'(需要确定性采样,故可逆);(c) Inversion 理论上能'完全重建原图'(若不改 prompt,x_0'≈x_0),故编辑更精确。<strong>Inversion 的核心问题</strong>——<strong>误差累积</strong>:DDIM inversion 是近似可逆的(数值误差 + 线性化近似),故反推再正向会<strong>偏离原图</strong>(不能完全重建)。缓解:(a) <strong>Null-text inversion</strong>(优化 null 条件以精确重建);(b) <strong>EDICT</strong>(用两分支耦合实现精确可逆);(c) <strong>BDIA</strong>(双向积分近似);(d) <strong>用更高阶求解器</strong>(减少误差)。<strong>其他编辑方法</strong>——(a) <strong>Prompt-to-Prompt</strong>(在注意力层做编辑:替换/添加/删除 token 的注意力图);(b) <strong>Attention injection</strong>(把原图的注意力注入新生成);(c) <strong>Cross-attention 编辑</strong>(只改特定区域的注意力);(d) <strong>InstructPix2Pix</strong>(用指令微调的编辑模型);(e) <strong>局部重绘(inpainting)</strong>(只改掩码区域)。<strong>评估</strong>——(a) <strong>重建保真度</strong>(不改 prompt 时能否重建原图);(b) <strong>编辑准确度</strong>(是否实现目标修改);(c) <strong>非目标区域的一致性</strong>(未编辑区域是否保持);(d) 人工评估。<strong>实践建议</strong>——(a) <strong>简单编辑/风格迁移</strong> → SDEdit(简单、无需反演);(b) <strong>精确编辑/保留原图</strong> → inversion(+ Null-text/EDICT 减少误差);(c) <strong>局部编辑</strong> → inpainting(掩码 + 重绘);(d) <strong>指令式编辑</strong> → InstructPix2Pix 类模型。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'t 控制编辑强度'是 SDEdit 的核心旋钮</strong>——t 小保留多、t 大变化大;这是'保真 vs 编辑'的连续调节。② <strong>'Inversion 的误差累积'是主要难题</strong>——DDIM inversion 是近似可逆的;故有 Null-text/EDICT 等改进;面试中能提到这一点是深度理解的标志。③ <strong>'SDEdit 不需反演'是它的优势</strong>——简单、通用(可用于任意图像);代价是'不精确'(无法保证保留原图的所有细节)。④ <strong>'编辑的关键是'保留什么、改变什么'</strong>——不同方法在'保留低层结构'与'改变高层语义'之间取舍;故需按任务选。⑤ <strong>'与条件控制的关系'</strong>——SDEdit/inversion 是'基于已有图像'的编辑;ControlNet/IP-Adapter 是'基于额外条件'的控制(见条件控制题);两者可组合(如用 ControlNet 保持结构 + 用 prompt 改风格)。⑥ <strong>面试要点</strong>——被问'怎么编辑图像',应给出'<strong>SDEdit(加噪到 t + 新 prompt 去噪,t 控强度)+ Inversion(确定性反推 + 改 prompt 重生成,有误差累积)+ Prompt-to-Prompt / inpainting</strong>';能指出'Null-text inversion 解决重建误差'是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕用随机采样做 inversion(不可逆)
- ✕忽略 inversion 的误差累积(不能精确重建)
🎯 Interviewer Follow-ups
- ?SDEdit 的 t 如何控制编辑强度?
- ?Inversion 的误差累积问题?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.