M6-081M6: Multimodal & Generative ModelsControllable Generation & Image EditingMedium
Mastery:

Controllable Generation & Image Editing: 解释 inpainting / outpainting 的实现方式。

📐 Mathematical Definition
xt←m⊙xtnoisy+(1−m)⊙xtknown;m=maskx_t\leftarrow m\odot x_t^{\text{noisy}}+(1-m)\odot x_t^{\text{known}};\qquad m=\text{mask}
⚡ Executive Summary
Core Concept: 用掩码标记重绘区域,在扩散中让掩码外保持原图(每步替换已知区域),掩码内按 prompt 生成。

📌 Key Takeaways

  • •
    掩码 m 标记重绘区域(1=重绘、0=保留)
  • •
    每步用'原图的加噪版本'替换掩码外区域
  • •
    掩码内由 prompt 生成;9 通道输入(图 + 掩码 + 掩码图)

📐 Mathematical Derivations

数学机理:<strong>inpainting(局部重绘)</strong> 的实现——(1) <strong>掩码</strong>——用二值掩码 m 标记'要重绘的区域'(m=1)与'要保留的区域'(m=0)。(2) <strong>条件输入</strong>——把 (a) 原图(或其潜变量)、(b) 掩码、(c) 掩码后的图(即原图 ×(1−m))拼成<strong>9 通道</strong>输入(Stable Diffusion Inpainting 的做法:4 潜通道 + 1 掩码 + 4 掩码图潜通道)。(3) <strong>每步替换</strong>——在采样的<strong>每一步</strong>,用'原图的加噪版本'替换掩码外区域:x_t←m⊙x_t^{noisy}+(1−m)⊙x_t^{known},其中 x_t^{known} 是'原图在时间步 t 的加噪版本'(用闭式解从原图加噪得到)。<strong>为什么每步替换</strong>——(a) 扩散的采样是'逐步去噪';若只在最后替换,则中间步的'保留区域'仍是噪声,会通过注意力<strong>影响重绘区域</strong>(导致不一致);(b) 每步替换使'保留区域'始终是'原图在该噪声水平的版本',从而 (i) 重绘区域能'看到'正确的上下文、(ii) 边界自然衔接。(4) <strong>掩码的'软边'</strong>——实践中常对掩码做<strong>羽化(blur)</strong>(使边界平滑过渡);否则会有明显的接缝。(5) <strong>掩码内生成</strong>——由文本 prompt 引导(可加 CFG);掩码内的内容与'保留区域'通过注意力交互,从而实现<strong>风格/光照一致</strong>。<strong>outpainting(画布扩展)</strong> 的实现——(a) <strong>扩展画布</strong>——把图像放在更大的画布中(新区域待生成);(b) <strong>掩码</strong>——新区域设为'重绘'(m=1)、原图区域设为'保留'(m=0);(c) <strong>生成</strong>——与原图区域在边界处衔接;(d) <strong>迭代扩展</strong>——若要扩展到很大,可<strong>分块迭代</strong>(每次扩展一圈,用上一次的结果作为新的'保留区域');(e) <strong>提示</strong>——常用'与原图一致的描述'(或让模型从原图推断)。<strong>其他方法</strong>——(a) <strong>专门的 inpainting 模型</strong>(SD Inpainting 版,9 通道);(b) <strong>用普通模型 + 掩码条件</strong>(不需专门模型,但效果稍差);(c) <strong>Blended Diffusion</strong>(在潜空间混合);(d) <strong>RePaint</strong>(用'重采样'策略)。<strong>与'图像编辑'的关系</strong>——inpainting 是'局部编辑'的基础(改局部内容);与 SDEdit/inversion(全局编辑)互补。<strong>评估</strong>——(a) <strong>边界一致性</strong>(接缝是否自然);(b) <strong>内容质量</strong>(掩码内);(c) <strong>与上下文的一致性</strong>(风格/光照/透视);(d) 人工评估。<strong>实践建议</strong>——(a) <strong>掩码羽化</strong>(避免硬边);(b) <strong>每步替换</strong>(关键);(c) <strong>合适的重绘区域大小</strong>(太大则失去上下文、太小则无意义);(d) <strong>prompt 描述一致</strong>(与原图风格匹配)。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>'每步替换'是 inpainting 正确性的关键</strong>——只在最后替换会导致不一致;面试中能解释'为什么每步'是深度理解的标志。② <strong>'掩码羽化'是消除接缝的实用技巧</strong>——硬边会产生明显接缝;羽化使过渡自然。③ <strong>'9 通道输入'是 SD Inpainting 的设计</strong>——把掩码与掩码图作为额外条件;这使模型'知道'哪些要保留。④ <strong>'outpainting 需迭代'</strong>——一次扩展太多会导致结构崩坏;故分块迭代(每次扩展一圈)。⑤ <strong>'与上下文一致性'是评估重点</strong>——掩码内的内容必须与保留区域在风格/光照/透视上一致;否则'看起来是贴上去的'。⑥ <strong>面试要点</strong>——被问'inpainting 怎么做',应给出'<strong>掩码 + 9 通道条件 + 每步替换保留区域 + 羽化</strong>'与'<strong>outpainting 的迭代扩展</strong>';能指出'每步替换的必要性'是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    只在最后替换保留区域(导致不一致)
  • ✕
    掩码不做羽化(出现明显接缝)
🎯 Interviewer Follow-ups
  • ?
    为什么每步都要替换(而不是只在最后)?
  • ?
    outpainting 如何实现?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM6-080: Controllable Generation & Image Editing: 解释 IP-Adapter 的机制与用途。📋Back to BankNext →M6-082: Controllable Generation & Image Editing: 解释商品图保真的技术组合。