一句话定义
Outpainting = 把画布扩大、留出的新区域交给模型生成:本质是 inpainting 的变体——蒙版覆盖所有新增区域,原图作锚,模型向外"编"出连续的世界。
为什么重要
1:1 改 16:9 横幅、竖图变海报、商品图扩成场景……平台尺寸适配需求源源不断;外扩比重新生成省时且保主体。
前置知识
局部重绘(Inpainting):只改该改的地方(蒙版机制)。
核心概念
- 节点:ImagePadForOutpainting(官方,一步完成扩边+蒙版)或手动 EmptyImage + Composite + Mask 组合;另有社区节点按方向/比例自动扩展。
- 扩多少:一次外扩超过约 50% 尺寸,新区域易失去上下文而出戏;每次扩 20-30%、循环多轮是社区经验值。
- 方向策略:主体居中时四周均扩;海报类先扩顶部留文案空间。
原理与机制
原图(锚) ─┐
├─▶ 扩边后的大画布: 中心=原图, 外圈=空白+mask=1
目标尺寸 ─┘
KSampler 在外圈从噪声生成,中心(蒙版=0)原样保留
生成质量取决于: 外圈宽幅、提示词对新区域的描述、模型的世界知识衔接质量的两个关键:蒙版边缘羽化(同 局部重绘(Inpainting):只改该改的地方),以及提示词要覆盖新增区域的内容(只写原图描述,模型只能猜外圈画什么)。
直观类比
外扩像给老照片续画边:留原照当"锚",新纸部分请画师按原图的透视、光影、材质补画——每次只续一小条,画师有参照才不会画走样。
实例与案例
- 1:1 → 16:9 电商横幅:先左右各扩 25%(共两轮),再顶部扩 15% 留标题区;每轮独立调整 prompt。
- 竖图变封面:扩到目标比例后,按 高清放大(Upscaling):两条路线与取舍 再统一放大到平台要求分辨率。
- 官方模板库搜 "outpaint",从可运行样例开始改。
常见误区
- 一步扩到目标尺寸:超大幅空白区上下文不足,常生成"第二张不相干的图";分轮扩。
- 提示词不更新:每轮应描述新增区域(如先" Extended city street background",再" sky with clouds above")。
- 扩边后忘改 latent 分辨率对齐:新尺寸仍须 8/64 倍数(潜空间与 VAE:压缩的图像世界),ImagePadForOutpainting 已处理,手动组合时要自查。
- 指望模型"凭空补透视":极端广角延伸、复杂透视常崩;必要时分多轮、加 ControlNet 引导线稿。
自测题
- 为什么外扩要分多轮?单轮上限的经验值?
- ImagePadForOutpainting 一个节点做了哪两件事?
- 外扩区域出现"画风突变",优先检查什么?
- 外扩与 高清放大(Upscaling):两条路线与取舍 放大的执行顺序如何安排?
参考答案
- 新区域需要足够的原图上下文作参照;经验上限单轮约 30-50% 尺寸。
- 按目标尺寸/方向扩展画布,并自动生成对应蒙版(新增区=1)。
- 蒙版边缘羽化是否缺失、该轮提示词是否覆盖新区域、扩幅是否过大。
- 先外扩定构图,最后统一放大出图;避免在中间分辨率反复放大重绘造成质量损耗。
与其他知识点的关系
- 局部重绘(Inpainting):只改该改的地方 提供蒙版基础设施;本页是其应用变体。
- 高清放大(Upscaling):两条路线与取舍 收尾放大;SDXL 与多编码器家族:换模型换什么 决定扩到 1024 家族时的模型选择。
延伸阅读
- ComfyUI 模板库 outpaint 系列模板