简介:本文从显存占用、模型训练分辨率与工程落地成本出发,解释入门级局部重绘工作流为何普遍采用“先缩放整图再重绘”的策略,而非“裁剪遮罩、重绘后拼回原图”。读者将理解两种路线的技术边界、显存与画质权衡,以及如何在有限硬件上稳定跑通流程。
在图像生成领域,局部重绘是一项高频需求:修手、换背景、改服饰、去瑕疵,都希望在保留原图整体构图的前提下,只对遮罩区域做重新生成。很多入门工作流并没有采用“裁剪遮罩区域 → 局部重绘 → 拼回原图”的直观路线,而是先把整张图缩小,再在缩小后的画布上执行重绘,最后再放大输出。这个选择看似绕路,背后却涉及显存、模型认知边界与工程稳定性的多重约束。
图像生成模型在推理时,显存占用与分辨率并非线性关系,而是近似指数级增长。原因在于扩散模型的每一步去噪都要在潜空间中对整张特征图做注意力计算,而注意力机制的计算复杂度与序列长度的平方成正比。当分辨率翻倍,潜空间中的 token 数量翻倍,注意力矩阵随之变为四倍,显存峰值也随之大幅抬升。
以当前主流的消费级显卡为例,4B 参数级别的模型在 FP16 精度下,仅权重加载就需要约 8GB 显存,加上文本编码器、VAE 解码器以及推理过程中的中间激活值,实际峰值往往在 13GB 左右。这意味着 12GB 显存的显卡在 1024×1024 分辨率下已经接近临界点,若直接把 4K 图像送入潜空间做重绘,哪怕是 24GB 显存的旗舰卡也会瞬间触发显存不足。
入门工作流的设计目标不是“理论上最优”,而是“在多数用户设备上能跑通”。把整图缩小到模型训练分辨率附近再重绘,可以把显存峰值压到可控范围,避免新手在第一次运行时就遇到崩溃。
另一个常被忽略的因素是模型对分辨率的“认知惯性”。多数基础模型在训练时采用固定分辨率,例如 512×512 或 1024×1024。模型在这些尺度下学习到了物体比例、纹理密度与空间关系。如果强行让它在一个远大于训练分辨率的画布上重绘,模型会因为感受野与位置编码的错位而“迷失”。
具体表现包括:在遮罩区域反复叠加多余肢体、生成密集且无意义的纹理、或把原本正常的结构扭曲成多头多手的怪物。这并不是模型“能力不足”,而是输入分布超出了它的训练分布。把整图缩放到训练分辨率附近,再执行重绘,模型看到的上下文更接近它熟悉的尺度,生成结果自然更稳定。
“仅裁剪遮罩区域 → 局部重绘 → 拼回原图”在技术上是成熟方案。它的核心优势在于:重绘区域小,显存占用低;遮罩外像素完全不变,保真度最高。但它对工作流的工程实现提出了更高要求。
第一,裁剪区域需要外扩上下文。如果只裁剪遮罩本身,模型看不到遮罩边缘与周围内容的衔接关系,拼回后容易出现明显接缝。通常需要按遮罩边界向外扩展一定比例,再把扩展后的区域送入重绘。外扩比例、羽化边缘、颜色匹配都需要调参。
第二,裁剪区域的分辨率必须与模型训练分辨率匹配。如果遮罩区域本身很小,直接裁剪后分辨率过低,生成细节会模糊;如果遮罩区域很大,裁剪后仍然会爆显存。工程上往往需要先把裁剪区域缩放到目标分辨率,重绘后再缩放回原始尺寸,这又引入了两次重采样损失。
第三,拼回原图时需要处理边缘融合。简单覆盖会留下硬边,需要做羽化、泊松融合或颜色校正。这些步骤在节点式工作流中需要额外搭建,对新手而言学习曲线陡峭。
因此,裁剪拼接路线更适合有经验的用户,在明确知道遮罩尺寸、外扩比例与融合参数的情况下使用。入门工作流选择全局缩放,本质是用“整图分辨率下降”换取“流程简单、参数少、不易崩溃”。
综合来看,入门工作流采用全局缩放而非原图拼接,主要基于以下三点:
部分运行时框架内置了显存与内存的交换机制。当显存不足时,系统会把部分权重或中间张量临时换出到主机内存,需要时再换入。这确实能避免直接崩溃,但代价是推理速度显著下降,因为内存带宽远低于显存带宽。对于入门用户而言,这种机制可以作为兜底,但不能作为常规工作流的性能预期。全局缩放策略正是为了在交换机制介入之前,就把显存需求压到安全线以下。
如果你使用的是小显存设备,又不想在参数调优上投入过多时间,可以遵循以下原则:
这种“先缩放重绘、再放大补细节”的两段式流程,兼顾了显存安全与最终画质,也是多数入门工作流默认采用全局缩放策略的现实原因。
局部重绘的两种路线各有适用场景。裁剪拼接路线在保真度与显存效率上更优,但工程复杂度高,适合有经验的用户精细控制。全局缩放路线在画质上有所妥协,但胜在流程简单、显存安全、模型友好,是入门工作流在“让新手一次跑通”这一目标下的理性选择。理解背后的显存约束与模型认知边界,才能在不同硬件条件下做出合适的工程取舍。