想象你拍了一张普通的街景照片,想让它在黄昏时分变成一幅油画。如果从零开始画,你也许要花上一整天;但如果你把照片递给一位画师说“照着这个轮廓,用莫奈的风格重画一遍”,他可能几小时就能完成。Stable Diffusion 的图生图(img2img)功能,就是那位能“照着轮廓重画”的魔法画师——它会仔细阅读你给的参考图,在保留原始构图的基础上,把风格、氛围、甚至细节全部焕然一新。 图生图与文生图最大的区别在于“起点不同”:文生图是从一团噪声里凭空捏造,而图生图是从一张真实照片出发,让 AI 沿着“照片的轮廓”去重新构思。这就像做拼贴画时先用铅笔描好了底稿,再决定往底稿里填什么颜色。你不再需要绞尽脑汁描述“构图是什么样”,AI 直接帮你省下了一大半思考量。
学会图生图,等于解锁了 AI 绘画的“精修模式”——无论是给照片换风格、修复老照片、还是生成产品设计稿,你都能在已有素材上快速产出创意视觉,这是 AI 时代设计师和创作者不可缺的核心技能。
可视化演示
动态演示图生图img2img实战教程的核心机制,通过架构/数据/状态/性能四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
图生图img2img实战教程:图生图与 图生图与前向加噪的工作原理 重绘幅度 Denoising 核心机制可视化 图生图img2img实战教程整体架构与关键组件
基础原理
文生图和图生图,就像两位不同的画师。文生图画师面前只有一张白纸,你告诉它“画一座雪山”,它便凭空从白纸上开始勾勒;而图生图画师面前摊着一张现成的照片,你只消说“请把这片湖改成夕阳下的玫瑰金色”,它便能沿着照片的轮廓重新上色。这就是最本质的区别——起点不同。文生图从一个随机噪声开始,图生图则从你提供的那张真实图片开始。
从技术上讲,图生图的输入不再是“一句描述”,而是“一张图 + 一句描述”的组合。AI 先把你给的图片压缩成一个浓缩的“潜空间向量”(可以理解为把图片的笔画结构提炼成一组数字密码),然后在这组密码的基础上加入一点“噪声”,再通过提示词的引导,一步步把噪声擦除,重新绘制出一张新图。就像你先把照片复印到一张草稿纸上,橡皮擦掉部分细节,再根据备注的批注重新画上去。
这个过程的数学表达非常简单:
回到比喻里:你递给 AI 画师一张“基础底稿”(输入图),他保留了底稿的构图骨架,再按你的文字需求重新填充颜色与笔触。这就是图生图最核心的魔法——有据可依的再创造。
- Encoder(编码器)把输入图片压缩成一组带语义的潜空间向量,就像把一幅画概括成“色彩分布+构图结构”的摘要卡片。
- 加入噪声往潜空间向量里注入随机扰动,强度由重绘幅度决定,相当于在摘要卡片上洒水晕染,让部分笔迹模糊掉。
- Denoise(去噪)根据提示词引导,一步步从带噪声的向量中去掉噪声,恢复出清晰的“新内容”,就像蒙着眼睛摸黑擦拭玻璃,逐渐看清窗外的风景。
- Decoder(解码器)把最终的潜空间向量还原为像素级图片,输出成你能看到的新作品。
img2img工作流程
你已经知道了图生图的大致原理,接下来看看实际操作时它如何一步步完成“旧图换新颜”的完整流程。假设你手上有一张老旧的旅行照片,想让 AI 把它变成一幅宫崎骏风格的动画截图背景。点击“图生图”按钮后,AI 内部其实在跑一条流水线。
首先是输入预处理。AI 会检查你的图片大小、比例,并把它缩放到模型期望的尺寸(通常是 512×512 或 768×768 的倍数)。这一步就像洗照片前先裁剪底片,让照片尺寸标准化,否则后续步骤无从下手。紧接着是潜空间编码——图片被编码器压缩成潜空间向量,从而将“高清大图”转换成“浓缩密码”。
然后是提示词引导。你的文字提示词会参与去噪过程的每一步,像导航仪一样引导去噪器在每个时间步决定“该保留什么、该丢弃什么”。比如提示词写"warm sunlight, anime background style",去噪器就会更有倾向性地生成温暖的阳光光影和动画质感。
最后是重构出图。当去噪器完成所有步骤后,解码器把潜空间向量还原成一张完整的图像。整体流程可以用一句话概括:读图 → 压缩 → 引导 → 重建。
整个流程就像给照片做了一次“画皮手术”:预制脸模(预处理)、提取五官数据(编码)、按新风格化妆(提示词引导)、揭下面具(解码)。理解这条流水线,你调参时就能更快定位问题——比如出图模糊,可能是预处理尺寸不对;风格不对,大概率是提示词引导不到位。
- 输入预处理缩放裁剪到统一尺寸,保证模型能处理。
- 潜空间编码压缩图像为潜变量,只保留核心语义。
- 去噪循环每一步按提示词修正潜变量,重复迭代。
- 解码出图把最终潜变量翻译回像素图像。
重绘幅度控制
重绘幅度(Denoising Strength)是图生图里最重要的一个旋钮,也是初学者最需要理解的概念。如果说提示词是“装修清单”,那重绘幅度就是“拆改程度”——你可以只给墙刷一层新漆(幅度低),也可以干脆把隔断墙砸了重新布局(幅度高)。
在技术实现上,重绘幅度决定了第一步加入噪声的多少。幅度值通常在 0 到 1 之间,数值越大,加噪越强,原始图片被破坏得越严重,AI 发挥的余地也就越大。你可以把它想象成一个橡皮擦,幅度低时橡皮轻轻擦拭,只擦掉颜色和纹理;幅度高时橡皮猛力摩擦,把线条结构也擦得所剩无几。
实践中的经验:
- 0.2 ~ 0.4:轻度重绘——只改颜色和光影,保留原始构图。适合给照片换滤镜、调整色调。
- 0.4 ~ 0.6:中度重绘——构图基本保留,但细节可能改变。适合风格迁移,比如照片变水彩画。
- 0.6 ~ 0.8:高度重绘——结构允许被重塑,AI 自由创作空间大。适合从一张参考图中获取灵感,生成完全不同但构图相似的画面。
- 0.8 以上:接近文生图,参考图基本只保留“构图印象”。
与图生图的数学对应关系是:
其中 $s$ 是重绘幅度。$s$ 越大,噪声占比越大,最终画面越偏离原图。
记住“火候”的比喻:做菜时你希望保留食物原味,就用小火(低重绘);想做融合料理,就用大火(高重绘)。重绘幅度的本质就是控制“AI 的自由度”,而非一个固定的“质量开关”。
- 权重配比原图与噪声按比例混合,$\sqrt{1-s}$ 是原图的保留权重。
- 噪声插值$\sqrt{s}$ 是噪声的权重,幅度越大噪声权重越高。
- 混合生成最终输入去噪器的初始潜变量,是原图潜变量与随机噪声的加权和。
提示词撰写技巧
提示词在文生图中是唯一的输入,但在图生图中却是“辅助输入”——真正的主干是参考图。所以很多人以为随便写两句就行,这是个误区。好提示词能显著提升图生图的效果,关键在三个技巧:风格描述、否定词、权重强调。
风格描述要具体而不空洞。与其写“beautiful picture“,不如写”watercolor painting, soft brush strokes, pastel colors“。就像你让画师”画好看点“,他只会一头雾水,但你告诉他”用淡彩笔触、粉彩配色”,他就有了明确方向。图生图中参考图已经提供了构图,提示词主要负责提供风格和氛围。
否定词帮助你排除不想要的内容。比如你想把照片转成古风插画,但不想看到现代人的牛仔裤,就写“negative prompt: jeans, modern clothing“。这就像你告诉装修师傅”地板不要用瓷砖,墙面不要刷深色”——用排除法缩小范围,比单纯说你想要什么更高效。
权重强调用括号改变关键词的影响力,格式是(keyword:1.2)。数值大于 1 表示强调(最高 1.5 左右),小于 1 表示弱化。权重本质是影响去噪时注意力机制分配的比例,数学上表示为:
回到画师比喻:提示词技巧就是你和画师之间的精确沟通术。风格描述是说“用什么画风”,否定词是说“别画什么”,权重强调是说“哪个元素最重要”。三者配合,画师就能百分百领会你的意图。
- 加权缩放每个关键词的注意力分数乘以它的权重系数。
- 归一化除以所有关键词分数之和,得到注意力占比。
- 加权求和模型按注意力占比决定每个区域受哪个关键词影响更多。
参数组合设置
重绘幅度和提示词都掌握后,还需要理解其他参数如何搭配。图生图不是“只调一个旋钮就能出好图”的事,而是多个参数协同作用的结果。就像做咖啡,水温、研磨度和萃取时间一起决定一杯咖啡的好坏。
采样步数(Sampling Steps):去噪过程要迭代多少步。太少则画面粗糙,太多则边际收益下降甚至引入伪影。通常 20~30 步是甜蜜区间。你可以把采样步数理解为画师作画时的“反复润色次数”——画 5 笔和画 50 笔,效果差别巨大,但画 200 笔并不会比 150 笔好多少。
CFG 尺度(Classifier-Free Guidance Scale):控制提示词对画面的影响强度。CFG 越高,画面越贴合提示词,但过高会让颜色过饱和、构图呆板;CFG 越低,AI 越自由发挥,可能跑题。图生图中推荐 CFG 在 7~11 之间,因为参考图本身已经约束了构图,不需要太高的 CFG 来拉回主题。
尺寸匹配:输入图的尺寸最好与模型训练尺寸一致,否则可能产生构图异常。实际操作时,常用做法是把图片缩放到 512×512 或 768×768。它们的数学关系并不复杂,可以理解为一种距离度量:
参数搭配的“咖啡理论”,是每个参数单独看都简单,组合起来千变万化。建议你固定一组值,每次只调一个变量,慢慢摸索出自己最顺手的搭配。
- 采样步数去噪过程迭代次数,多步近似连续微分方程。
- CFG 尺度调整条件生成与无条件生成的差距,数值越大越贴近提示词。
- 尺寸匹配当输出尺寸与训练尺寸偏差较大时,图像质量下降,需要保持一致性。
经典应用场景
掌握了原理和参数,我们来看看图生图最常见的三个实战场景。这些场景覆盖了设计师、摄影师和内容创作者的高频需求。
照片转艺术画风是最直观的应用。把一张旅行照片放入图生图,设置重绘幅度 0.4~0.5,加上提示词"oil painting style, warm sunset colors, impasto texture",你就能得到一张梵高风格的风景画。这个场景直接验证了你前面学到的所有技能:构图来自参考图,风格来自提示词,改变程度由重绘幅度把控。
老照片修复上色是图生图在人文领域的高价值应用。面对黑白模糊的老照片,先用超分模型增大分辨率,再以低重绘幅度(0.2~0.3)输入图生图,提示词描述“natural skin tones, realistic photo, sharp details“。由于老照片结构信息宝贵,低重绘幅度能确保 AI 不上色过头或”修旧成新”。
产品概念图生成是商业应用的热点。设计师画了张粗糙线稿,想快速生成多种配色方案,只需将线稿放入图生图,重绘幅度设 0.6~0.7,提示词写“minimalist product design, matte black finish“或”glossy white finish with gold accents“,几秒钟就能生成多个概念图,极大提升提案效率。这个场景利用了”图生图能保留结构、同时自由改材质”的特点。
综合来看,三个场景代表三类输入结构:有丰富结构的照片(用低重绘保护好)、有残缺信息的旧图(用超分+低重绘修复)、只有简单结构的线稿(用高重绘激发创意)。学会辨别输入图的“结构价值”,就能快速决定重绘幅度该开多大。
AI 应用场景
摄影师批量转风格
阶段:后期处理与风格化
解决的问题:传统修图需要逐张手工调色,一个风格预设的灵感套用到十张照片可能要花半天,且色调难以统一。
具体案例:摄影师用 Lightroom 批量导入照片后,将每张照片分别送入图生图,统一使用"fine art landscape, dramatic light, high contrast"提示词和固定的重绘幅度 0.35。十张照片在两分钟内完成统一风格化,客户看到初稿后仅需微调即可交付。
电商产品图快速产出
阶段:创意方案生成
解决的问题:电商设计师需要为同一款水杯生成不同配色和场景图,传统方式需要重新搭建拍摄场景,成本高且有周期性。
具体案例:设计师用白底产品照作为输入图,设重绘幅度 0.5,配合提示词"product on wooden desk, cozy morning light, minimalist style",再改提示词中的颜色关键词,快速生成 20 张不同场景图,用于 A/B 测试挑选最佳素材。
Python 演示
import mathimport random def load_image(path): """模拟加载一张输入图片,返回灰度矩阵""" return [[random.random() for _ in range(64)] for _ in range(64)] def add_noise(image, strength): """按重绘幅度给图像添加噪声""" noisy = [] for row in image: new_row = [] for pixel in row: noise_val = random.gauss(0, 1) mixed = math.sqrt(1 - strength) * pixel + math.sqrt(strength) * noise_val new_row.append(mixed) noisy.append(new_row) return noisy def denoise(image, prompt_scale, steps=30): """简单的模拟去噪过程:每次迭代向均值收缩""" denoised = [row[:] for row in image] for _ in range(steps): for i in range(len(denoised)): for j in range(len(denoised[i])): avg = sum(denoised[i]) / len(denoised[i]) denoised[i][j] = denoised[i][j] * (1 - prompt_scale * 0.05) + avg * prompt_scale * 0.05 return denoised def decode_image(signal): """把浮点矩阵还原为 0-255 的像素值""" return [[max(0, min(255, int(p * 255))) for p in row] for row in signal] def img2img_pipeline(input_path, strength, prompt_scale): """完整图生图流程:编码->加噪->去噪->解码""" original = load_image(input_path) encoded = [[p * 0.8 for p in row] for row in original] noisy = add_noise(encoded, strength) cleaned = denoise(noisy, prompt_scale) output = decode_image(cleaned) return output if __name__ == "__main__": random.seed(42) result = img2img_pipeline("photo.jpg", strength=0.4, prompt_scale=0.7) print("输出图片尺寸:", len(result), "x", len(result[0])) print("样例像素值:", result[10][:5])
noise_val = random.gauss(0, 1)生成标准正态分布的随机噪声,这是加噪步骤的原材料。mixed = math.sqrt(1 - strength) * pixel + math.sqrt(strength) * noise_val核心加噪公式,按重绘幅度混合原始像素与噪声。denoised[i][j] = denoised[i][j] * (1 - prompt_scale * 0.05) + avg * prompt_scale * 0.05模拟提示词引导的去噪过程,让像素向整体均值靠拢。encoded = [[p * 0.8 for p in row] for row in original]模拟编码器,压缩像素的动态范围。random.seed(42)固定随机种子,确保每次运行结果可复现,便于调试。
常见误区
误区“我想让 AI 自由发挥,重绘幅度直接拉到 0.9,效果一定惊艳”——结果生成的图跟原图毫无关系,构图崩坏。
正解重绘幅度不是画质旋钮,而是“自由度”旋钮。幅度太高时,参考图的信息几乎全被噪声淹没,AI 输出跟文生图无异,你反而失去了图生图的优势。合适的做法是从 0.4 起步,不断微调,找到一个“保留了构图又有新鲜感”的平衡点,就像炒菜放盐——少了没味,多了齁人。
为何常见:初学者误以为幅度越大代表 AI 能力越强,忽略率图生图的核心价值是“基于参考图做可控修改”。
误区“我要把所有想到的形容词全塞进提示词,AI 就能画出完美作品”——结果画面元素过度拥挤,重点全丢。
正解提示词的关键不是数量,而是结构。图生图场景下,提示词负责“风格与氛围”,构图由参考图决定。写 3~5 个精准的风格词加 2~3 个否定词,效果远好于堆砌 20 个修饰词。这就像点菜——你说“少盐、微辣、不要香菜”,服务员立刻明白,但你啰嗦五分钟讲完整个烹饪史,厨师反而不知道该做什么。
为何常见:人们习惯性地认为信息越多越明确,忘记 AI 对关键词的注意力是有限且稀疏的。
误区“我有一张严重破损的老照片,直接丢进图生图就能变清晰”——结果破损区域出现奇怪的纹理。
正解图生图不是修复工具,而是重绘工具。严重的破损、缺失部分属于“修复”范畴,需要先做局部修复(inpainting)或使用专门的超分模型。图生图适合的是整体风格转换和轻度调优。就像你要修古董花瓶,不该用大刷子直接刷漆,得先补裂纹,再小心上色。
为何常见:图生图能改善画质,但改善的是“纹理清晰度”,而非“缺失信息重建”。
面试题
Q1. 图生图和文生图最核心的区别是什么?
- A.图生图的输出尺寸更大
- B.图生图有输入图像作为起点← 正确答案
- C.文生图不需要提示词
- D.图生图使用不同的模型
答案:B。图生图的本质是从一张已有图片出发,在此基础上修改、融合风格;文生图则从随机噪声开始生成。尺寸、模型并非决定性差异,两者都可以使用 Stable Diffusion 模型;文生图也需要提示词。
Q2. 重绘幅度设置为 0.2 时,输出图最可能的特点是?
- A.与输入图完全不同
- B.完全不变
- C.保留大体构图,色彩质感变化← 正确答案
- D.生成一张纯噪声图
答案:C。低重绘幅度(0.2)意味着加入的噪声很少,AI 的改动空间小,通常保留构图和结构,只调整风格、颜色、质感。如果完全不变则说明功能失效,完全不同的高幅度特征对应 0.7+ 的设定。
Q3. 关于图生图工作流程,下列说法正确的是?
- A.输入图会被编码成潜空间向量← 正确答案
- B.提示词在去噪过程中起引导作用← 正确答案
- C.编码和去噪之间需要加入噪声← 正确答案
- D.解码器输出的图片一定是 512×512
答案:ABC。图生图流程包含编码、加噪、去噪、解码。提示词引导去噪器每一步的生成方向。解码器的输出尺寸取决于模型配置和输入尺寸,不一定是 512×512。
Q4. CFG 尺度在参数组合中的作用是?
- A.控制采样过程的随机性
- B.控制提示词对画面的影响强度← 正确答案
- C.决定输出图片的分辨率
- D.控制去噪步数的多少
答案:B。CFG(Classifier-Free Guidance Scale)衡量生成时贴近提示词的程度。数值高则更贴合提示词、可能过饱和;数值低则更自由。它不控制随机性、分辨率或步数。
Q5. 提示词权重 (watercolor:1.3) 的含义是?
- A.水彩风格被弱化
- B.水彩风格被增强 30%← 正确答案
- C.采样步数增加 30%
- D.提示词长度增加
答案:B。权重写法 (keyword:数值) 中,大于 1 表示增强关键词的注意力。1.3 表示将 watercolor 的注意力权重提升到 1.3 倍。它不影响采样步数或提示词长度。
Q6. 哪些做法能提高老照片修复的效果?
- A.先用超分模型提高分辨率← 正确答案
- B.使用较低的重绘幅度← 正确答案
- C.重绘幅度直接拉满
- D.提示词描述自然肤色和清晰细节← 正确答案
答案:ABD。老照片修复应优先超分增强细节,再用 0.2~0.3 的低重绘幅度保留原结构,提示词补充“自然肤色、清晰细节”等方向性描述。重绘幅度过高会丢失原照片的结构信息。
Q7. 重绘幅度 s 与噪声权重的关系是?
- A.噪声权重随 s 线性增大
- B.噪声权重等于 sqrt(s)← 正确答案
- C.噪声权重不变,只改变原图像素
- D.s 越大,噪声加入越少
答案:B。混合公式为 $x\_{noisy} = \sqrt{1-s} \cdot x\_{init} + \sqrt{s} \cdot \epsilon$,噪声权重是 $\sqrt{s}$。所以 s 越大,噪声占比越高,画面变化越大,非线性增长。
Q8. 图生图中写出过多的提示词关键词,最可能的影响是?
- A.每个关键词注意力都被强化
- B.注意力稀疏,核心风格被稀释← 正确答案
- C.去噪步数自动增加
- D.参考图的结构信息丢失
答案:B。提示词的注意力总和是归一化的,关键词太多会稀释每个词的注意力分配,导致核心风格表达不足。正确做法是精简关键词,并用权重强调重要词。
Q9. 关于重绘幅度和 CFG 的搭配,以下哪些描述正确?
- A.低重绘幅度时可适当降低 CFG,让风格自然融合← 正确答案
- B.高重绘幅度时 CFG 过高可能导致画面过饱和← 正确答案
- C.重绘幅度与 CFG 无关,无法互相补偿
- D.低重绘幅度时 CFG 设置过高可能过度干预细节← 正确答案
答案:ABD。在低重绘情况下,原图已经提供了强结构约束,过高的 CFG 会过度扭曲细节;高重绘加上高 CFG 容易色彩过艳。合理地搭配两个参数比单独调高一个更有效。
Q10. 产品设计场景中,设计师把粗糙线稿放入图生图并希望生成多个配色方案,最适合的参数组合是?
- A.低重绘幅度 + 高 CFG
- B.中高重绘幅度 + 中低 CFG← 正确答案
- C.低重绘幅度 + 低 CFG
- D.高重绘幅度 + 高 CFG
答案:B。线稿仅提供粗略构图,需要较高的重绘幅度(0.6~0.7)让 AI 发挥材质和配色创意,同时中低 CFG 避免画面被固定风格束缚,从而获得多样的设计方案。