Stable Diffusion高级教程 - 图生图(img2img)模式
如果你已经玩过一段时间Stable Diffusion,肯定会遇到这样一个场景:文生图(txt2img)生成的结果,整体构图满意,但局部就是差点意思——人物的手崩了,脸型不够好看,或者只想要画面里某一块区域换成别的东西。重新抽卡又费时间,继续调提示词又未必有效。这时候真正能救场的,就是图生图(img2img)模式。
图生图,简单说就是拿一张已有的图片作为起点,让模型在保留原图某些特征的前提下,按照你的提示词重新绘制。它不只是"给照片加滤镜",而是可以精确控制生成方向的强大工具。做线稿上色、老照片修复、人物换装、局部重绘、图像风格化,全靠它。适合谁?用过SD但停留在"提示词抽卡"阶段的同学,或者想正经拿SD干活的设计师、美术从业者,这篇内容都能帮你把图生图的功能理顺。
这篇文章不打算停在参数说明层面,而是把每个关键选择背后的逻辑讲清楚,再给几套可以照搬的工作流。文末还有我踩过几次坑之后整理出的问题排查表和防崩坏技巧,建议先收藏再慢慢看。
1. 先搞清楚图生图的底层逻辑:它到底在做什么
1.1 从"猜噪声"说起:文生图与图生图的本质关系
想理解img2img,得先理解Stable Diffusion在文生图时干了什么。整个流程可以粗略看成:先生成一张纯噪声图,然后由模型配合提示词进行多步"去噪",一步步把噪声清理干净,最终呈现出画面。每个采样步骤,模型做的都是预测噪声、剥离噪声、还原清晰结构的动作。
图生图的妙处在于,它不等同于"从零开始",而是把一张已有的图片加一定程度的噪声干扰后再喂给模型,让模型跟着提示词去还原、修改、重塑画面。加了多少噪声,决定了模型在多大程度上沿用原图的颜色、构图和内容,又在多大程度上自由发挥。
这里有一个关键参数叫重绘幅度(Denoising Strength,也就是去噪强度)。它控制的是加噪声量的大小,范围通常设在0到1之间。数值越低,越接近原图;数值越高,模型可发挥的空间越大,但和原图的相似度会急剧下降。理解这一点之后,图生图的所有玩法基本都围绕这个参数展开。
1.2 为什么不能只用文生图硬调:三个绕不开的场景
有人会问:"既然提示词能描述一切,为什么还需要一张起始图?"这个问题很实际。举三个典型例子。
第一,构图控制。你想要的画面是"人物侧坐在窗边,阳光从左上方打下来,前景有一盆绿植"。文生图可以生成这类画面,但构图很容易飘,每次都在微调。如果你有一张接近构图的示意图或照片底子,哪怕只是粗略摆拍,图生图能帮你把布局稳稳锁住。
第二,局部修改。画好了整个场景,只有一处不满意,比如想让"浅蓝色的裙子"变成"正红色"。用文生图重画意味着整体重抽,可能其他细节全崩了。图生图的局部重绘(Inpaint)功能可以只对裙子区域重画,其他部分保持不动,既省时间又保稳定。
第三,风格转换。输入一张普通线性稿,让它变成厚涂水彩;输入一张真实照片,让它转成赛博朋克风插画。这类应用的输入和输出在内容结构上高度一致,但风格完全不同。文生图只能靠文字空想,图生图直接以原图为骨架,转风格的效果要稳定得多。
所以图生图不是文生图的替代品,而是补充和延伸。它的核心价值在于:把"不可控的随机生成"变成"可控的定向创作"。
2. 动手前准备:部署环境、模型选择与界面认知
2.1 本地部署方案怎么选:官方版、秋叶整合包还是ComfyUI
图生图的入口在WebUI和ComfyUI中都有。如果你还没部署,我个人最推荐新手从一键整合包开始,省去Python环境、Git、CUDA等环节的折腾。网上常见的是秋叶整合包,自带WebUI和常用模型,下载解压后点启动就能用。这也是当前社区里流传度最高的方式。
有基础的同学可以考虑官方仓库自行安装,好处是环境纯净、更新灵活,但需要自己配好torch、xformers等依赖,出问题排查成本高。至于ComfyUI,属于节点式工作流,特别适合做图生图、图生视频这类需要精细控制流程的复杂任务。它和WebUI的主界面逻辑有较大差异,但对老手来说效率极高,配合AnimateDiff还能玩出图生视频的效果。
我个人建议:先在一键整合包里把图生图原理玩透,再换ComfyUI去搭自动化工作流,能少走很多弯路。
2.2 显存和基础设置的硬指标
图生图对显存的要求并不比文生图高多少,但局部重绘和大图放大时需要额外的缓存空间。入门门槛大致是:
- 4GB显存:能跑,但建议开启FP8或SD优化的低显存模式,分辨率控制在768以内。
- 6GB到8GB显存:顺畅跑512和768分辨率,微调常用模型没问题。
- 12GB以上显存:可以折腾2K放大、InstantID等工作流,体验最好。
参数方面,采样步数(Sampling Steps)建议20到30之间,太低画面粗糙,太高浪费算力。采样器(Sampler)推荐DDIM或Euler a,前者变化平滑,后者风格更灵动。分辨率尽量对齐原图尺寸,图生图会对输入分辨率有预期,差异过大会导致构图拉伸变形。
2.3 模型怎么选:不同任务匹配不同底模和LoRA
图生图的结果上限,其实很大程度由模型决定。底模(Checkpoint)决定了整体画风底色,LoRA则负责微调某个特定维度,比如特定人物的脸、某种画风或者特定物件。
做真实感照片修复,推荐写实类底模,如ChilloutMix、MajicMix Realistic,配合人物细节的LoRA效果更好。做二次元线稿上色,用Anything V5或Counterfeit之类的动漫底模,颜色干净、线条保留好。做统一风格的角色一致性,可以结合InstantID或IP-Adapter这类扩展,用一张参考图锁定人脸特征,再配合图生图流程切换到不同姿势和场景。
如果你的画面涉及特定元素,比如机械结构、服装款式、植物形态,加入对应主题的LoRA往往能直接把准确率拉高一个级别。这块没有绝对公式,多下载多对比是必经之路。
3. 参数逐项拆解:弄清楚每个滑块在控制什么
3.1 重绘幅度:全流程最核心的旋钮
重绘幅度(Denoising Strength)是图生图的灵魂参数。它的效果是阶梯式的:
- 0.1到0.3:模型基本沿原图结构,只做细微微调和润色,适合人脸修细节、照片去噪。
- 0.3到0.5:能够较大幅度改动配色、风格和细部结构,适合换装、改光影。
- 0.5到0.7:构图会发生明显偏移,但还能隐约看出原图骨架,适合线稿上色的初步尝试。
- 0.7以上:基本是在原图基础上重新创作,原图只提供粗略的氛围和布局参考。
实际项目中,我从0.3开始试的情况最多。太低没有明显变化,太高容易把原本满意的细节彻底破坏。如果只是想小改动,0.15到0.25就够用;想换风格但不丢构图,0.4到0.55是安全区。
3.2 重绘尺寸与缩放模式的意义
图生图面板中的"重绘尺寸"决定输出图片的像素大小。它不直接等于放大镜,而是影响模型去噪时对整体结构的处理。你会想让输出尺寸和输入接近,这样模型不会为了适配尺寸而裁切或者拉伸构图。
缩放模式有"仅调整大小"、“裁剪后缩放”、“填充后缩放”等多种选项。仅调整大小是简单暴力地拉伸到目标尺寸,会变形;裁剪后缩放是等比例裁剪后到目标尺寸,会损失画面边缘;填充后缩放会在边缘填充内容,适合解决构图溢出问题。实际做设计稿扩展时,填充后缩放更常用。
3.3 蒙版模式与蒙版模糊:局部重绘的两个核心参数
局部重绘依赖蒙版(Mask),也就是你在画布上涂满需要重绘的区域。蒙版模式里的"重绘蒙版内容"相当于只重画选中区域,适合改局部物件;"重绘非蒙版内容"会重画未选中区域,适合用来保留某个固定主体,比如留着人物、换来换去背景。
蒙版模糊(Mask Blur)数值越高,重绘区域与原图过渡越柔和,边缘不容易出现明显的接缝痕迹。推荐设置在4到8之间,数值太低会出现生硬的边界线,太高会让改动范围向外溢出。
这里还有一个细节容易被忽略:蒙版边缘在去噪过程中是需要信息互补的。如果选区特别精细,比如只改眼球颜色,建议把重绘幅度压低到0.4以下,配合较小步数,能减少区域内外细节互相污染的概率。
3.4 批次数与种子值:稳定输出的两个辅助项
批次数(Batch Count)和每批数量(Batch Size)决定一次生成多少张图,原则上越多越容易选出满意结果,但也会大幅增加显存占用。普通用户先把每批数量设为1到2,批次数设为4就够用。
种子值(Seed)的作用是锁定随机噪声的初始状态。图生图中,找到一张满意的结果后固定种子,再微调提示词,就能让画面在可控范围内变化,而不是每次重新掷骰子。
4. 四套高频工作流:图生图到底能解决哪些实际问题
4.1 局部重绘工作流:改瑕疵、改细节,不想动的地方一律不动
这是日常使用频率最高的工作流。操作路径是:图生图界面选"局部重绘(Inpaint)",上传图片,用画笔涂出需要重绘的区域,填提示词,调整重绘幅度,生成。
实操要点有三个。第一,蒙版尽量贴合目标物件边缘,不要太大面积,重绘区域外是模型参考区间,选大了容易连带改动。第二,提示词不仅要写清楚"改成什么",还要顺带描述原图的其他关键属性,比如光线方向、色调氛围,帮助模型在局部重绘时保持整体统一。第三,对精细区域,把"蒙版模式"设为重绘蒙版内容,重绘幅度放在0.4上下,多生成几次选最佳。
我自己处理人物闭眼照片时,会只涂眼睛区域,提示词写old woman with closed eyes、soft lighting,重绘幅度控制在0.3到0.4。这样出来的结果几乎不影响周围皮肤纹理和头发细节,成功率比直接整图重绘高不少。
4.2 放大与修复工作流:老照片、低清素材怎么"凭空"变清晰
图生图放大主要有两种思路。第一种是直接在图生图中把重绘尺寸调大,重绘幅度压到0.2到0.3,相当于让模型在原图基础上脑补更多细节。这种方式速度快,但放大倍数别超过1.5倍,否则容易崩。
第二种更稳的做法是配合后期处理扩展(如Ultimate SD Upscale)或分块放大思路。先将图片切成若干块,每一块分别做图生图放大和细节还原,再拼合回完整大图。这样做显存压力小,细节也比整体放大更丰富,很适合从模糊老照片中还原人物轮廓。
我踩过的坑是:老照片修复时重绘幅度调太高,结果人物五官被画成了完全不同的人。现在我的经验是固定一个接近原图的种子,先把重绘幅度加到0.25找回些细节,不够再逐次加0.05,直到细节满意又不会换脸为止。
4.3 线稿上色与素描转渲染:从线稿到手绘感的完整链路
如果你手里有张白底黑线的线稿,想让SD自动上色并补全光影,图生图是最直接的方案。操作上,把线稿上传到图生图,提示词写清楚主题和想要的风格,比如watercolor illustration、soft pastel colors、detailed shading,重绘幅度建议从0.5起步。
线稿如果比较潦草,重绘幅度低了色彩盖不上线条,高了线条会被吞掉。建议先0.55试一次,观察结果再微调。另外,在提示词中加入"lineart"、"sketch"等关键词,能帮助模型更好地识别输入图的线条结构。
这个场景下,如果配合ControlNet的Canny或Scribble预处理器,可以让模型在精准遵循线稿笔触的前提下进行色彩填充。ControlNet相当于给生成过程加了结构约束,直接把"瞎改"风险降低一大截。对没有安装ControlNet的新手,我的建议是先去把插件装上,图生图体验完全不一样。
4.4 角色一致性与风格移植:从单张参考图到系列成图
很多人想要的效果是:给一张角色设定图,然后生成同样角色在不同场景、不同角度、不同姿势的新图。单纯的文生图无法锁定面部特征,但图生图可以做到。
传统做法是:输入角色全身图,通过局部重绘改背景、改服装颜色,或者配合ControlNet的OpenPose控制姿态。进阶方案则是使用InstantID这类扩展,先用一张正脸照片提取身份特征,在生成时用参考图控制人物长相,再用图生图对结果做细节打磨。
实际操作中,人物一致性最难的是"越改越不像"。我的方案是锁定种子值,保持参考图提供的特征向量参数不变,每次只改提示词中的场景和动作部分。这样出来的系列图,虽然每张细节略有差异,但整体辨识度能维持在较高水平。
4.5 额外一提:ComfyUI工作流中的图生图玩法
如果你觉得WebUI的图生图流程点来点去不够高效,ComfyUI里可以把图生图做成可视化节点流。加载图片、设置重绘幅度、接ControlNet、输出结果,都在一张"画布"上完成。配合不同节点组合,还能跑出图生视频工作流,比如用LTX Video等模型把一张静态图变成动态视频,或者用360度旋转镜头生成环绕视角。
这类工作流在社区分享中非常多见,名字通常带有"图生图工作流"或"图生视频工作流"关键词。希望学习和复刻的,可以直接把对应的JSON工作流文件导入ComfyUI,按自己的模型路径替换后运行。新手不用急着从头搭,先复现再修改,对理解节点语义很有帮助。
5. 常见问题与排查技巧实录:实测中躲不过去的坑
5.1 为什么图生图结果和原图一点都不像
这个问题九成出在重绘幅度太高。模型已经获得过大的自由度,自然不再需要参考原图。尤其是分辨率不一致、采样器画风变动、底模风格差异大时,偏差会成倍放大。
排查思路:先逐步降低重绘幅度,每降0.05看一次结果。如果0.15仍然不像,检查上传的原图是否被WebUI自动裁剪过,或底模与原图风格跨度太大。换一个更接近目标风格的底模,往往比猛调参数更有效。
5.2 局部重绘后边缘出现明显色块或接缝
这几乎是局部重绘初学者的头号问题。原因通常是蒙版边缘过渡不够,或者是蒙版区域压制了周围环境的色彩信息。把蒙版模糊数值调高一点,例如从4调到8,能明显改善。若仍然有痕迹,可以在局部重绘时把周围环境的关键颜色和光照写进提示词里,让模型自行补全过渡。
5.3 人物面部越修越崩,五官比例失真
人脸是SD最难处理的区域,因为它对结构一致性特别敏感。局部重绘眼睛、嘴巴这类小区域时,重绘幅度稍高就容易崩。我的对策是把面部区域拆成小块处理,一次只改眼睛、一次只改嘴唇。另外,在提示词里加入面部细节描述,比如detailed eyes、natural skin texture,能显著提升还原度。
如果整体面部都崩了,最有效的办法是回到整图重绘,把重绘幅度压在0.25到0.35之间,并加入与原始风格一致的负面提示词如bad anatomy、disfigured,再固定种子重抽几次。
5.4 生成结果色彩整体偏灰或色调被篡改
色彩偏差多源于底模风格与原图色调不一致。解决办法之一是尽量选择与原图风格同类的底模;另一个办法是在图生图时保持低重绘幅度,让模型更依赖原图像素。若需要转风格,记得在提示词中保留原图的主要色调描述,比如warm golden hour light、cool blue palette,避免模型自动漂移。
5.5 显存不足、生成中途报错
图生图放大和局部重绘需要额外的临时显存,4GB显存设备在1024以上分辨率很容易OOM。常用解法:
- 开启xformers或显存优化选项。
- 降低批次数和图片分辨率。
- 用分块放大代替整图放大,分批处理再拼图。
5.6 常见问题速查表
| 症状 | 最常见原因 | 优先排查项 |
|---|---|---|
| 结果与原图差异过大 | 重绘幅度过高 | 降到0.3以下重试 |
| 局部重绘有色块边界 | 蒙版模糊不足 | Mask Blur调到4到8 |
| 面部崩坏 | 小区域重绘幅度过高 | 拆分处理,幅度调到0.3附近 |
| 色彩严重偏色 | 底模风格不匹配 | 更换接近风格的底模 |
| 显存溢出 | 分辨率过高 | 缩小尺寸或分块处理 |
| 输出构图被裁切 | 尺寸变化导致缩放 | 使用填充后缩放 |
6. 组合技巧与进阶思路
6.1 ControlNet + 图生图:把结构控制玩到极致
图生图的本质是"输入图像作为影响因子",ControlNet则在这个基础上提供了更精确的结构引导。Canny可以锁定边缘,OpenPose可以锁定人体骨架,Depth可以锁定深度关系,Scribble可以强化手绘感。
比如你有一张姿势很棒但配色平庸的照片,想转成水彩插画风。在ControlNet里选择Candy处理器,提取边缘信息,再在图生图中用低重绘幅度配合水彩关键词生成。结果会严格保留原图的轮廓和姿态,颜色和质感却被完全替换。这套组合能做的场景非常广。
6.2 利用LoRA配合图生图做精细风格控制
LoRA体积小、效果好、加载快。如果你反复生成某个特定的机械风格或苔藓森林氛围,建议去找对应的LoRA模型。图生图中,LoRA权重通常设在0.6到0.9之间。权重太低风格不明显,太高则原图特征被压制。
实测技巧:先用低权重,比如0.5,生成一张结果后固定种子,再微调权重到0.7,对比两张图的差异。这种"参数扫描"方式能直观看到每个数值对结果的实际影响,比起盲调要可控得多。
6.3 多轮迭代式精修:把图生图当成"打磨工序"而不是一次性操作
一次图生图很难直接生成完美成图。更接近艺术家创作习惯的做法是多轮迭代:首轮从文生图或线稿产出粗稿,第二轮到图生图中做整体色彩和构图润色,第三轮再通过局部重绘做细节修正。每轮只改一个主要方向,尽量不叠加多个变量。这样能够避免参数互相干扰,也让每次瓶颈更容易定位。
6.4 把图生图做成批处理和自动化流水线
如果你要处理大量图片,比如给几百张产品图统一换背景,单张操作显然来不及。WebUI提供批量图生图功能,可以将整个文件夹的图片一次性按相同参数处理。ComfyUI更适合做复杂批处理流程,可以串联图片加载、图生图、放大、保存等节点,全流程自动跑完。
这种自动化链路在电商、游戏美术、表情包量产等场景中价值极高。配合API调用,甚至可以把图生图能力集成到自己的小程序或网页服务里。
7. 一些被很多人忽略的细节
图生图面板里还有一个容易被忽略的选项是"缩放模式"对结果影响的权重。很多人习惯默认设置,结果换了个分辨率后画面主体突然偏到一边,根源就是缩放策略和原图尺寸不匹配。输入尺寸和输出尺寸接近时,这种问题几乎不存在;一旦想做尺寸扩展,就要有意识地检查缩放模式。
另外,不要忽视负面提示词的积累。设计自己常用的负面提示词模板,比如lowres、bad anatomy、extra fingers、text、watermark这类高频干扰词,能大幅减少重绘时的"脏乱差"。图生图中也可复用,配合低重绘幅度,效果极其稳定。
我个人在实际操作中还有一个习惯:每张图生成前都会先固定一个种子值,后续所有微调都围绕这个种子进行。这样能保证每次尝试之间的差异是可控的,而不是从零开始的一场赌局。尤其在做局部重绘和放大修复时,这个方法能省掉大量无效时间。
最后再分享一个小技巧——当你拿不准当前参数组合是否合理时,先用低分辨率快速生成一张预览图,确定构图和色彩方向没问题后,再锁定同样的种子和参数,切到高分辨率正式出图。这一步看似简单,但能大幅减少高分辨率场景下的资源浪费。