图像到图像(img2img)是 Stable Diffusion Web UI 的核心功能,它根据文本提示和其他参数转换现有图像。与从头开始生成图像的文本到图像(参见第 4.1 节)不同,img2img 使用现有图像作为起点,允许您在保留原始结构某些方面的情况下对其进行修改、增强或完全转换。
img2img 系统提供多种操作模式
所有模式都依赖于相同的底层处理流程,但它们在准备输入图像和蒙版的方式上有所不同。
来源:modules/processing.py375-396 modules/processing.py819-864 modules/img2img.py152-253
来源:modules/img2img.py152-182 modules/img2img.py20-149
img2img 处理遵循以下步骤
负责 img2img 处理的主要类是 StableDiffusionProcessingImg2Img,它继承自基类 StableDiffusionProcessing 并增加了 img2img 特定的功能。
| 参数 | 描述 |
|---|---|
init_images | 要处理的输入图像列表 |
resize_mode | 图像调整大小的方式(0=仅调整大小,1=裁剪并调整大小,2=调整大小并填充,3=仅调整大小(潜在空间放大)) |
denoising_strength | 控制原始图像保留的程度(0.0-1.0) |
mask | 用于图像修复的可选蒙版 |
mask_blur | 应用于蒙版的模糊量 |
inpainting_fill | 填充蒙版区域的方法 |
inpaint_full_res | 是否以全分辨率进行图像修复 |
inpaint_full_res_padding | 全分辨率图像修复的填充量 |
来源:modules/processing.py136-227 modules/img2img.py192-215
在标准模式下,整个输入图像根据提示进行转换。去噪强度参数控制原始图像保留的程度
Original Image → VAE Encode → Add Noise (based on denoising_strength) → Denoise → VAE Decode → Result
来源:modules/img2img.py157-159 modules/processing.py375-396
草图模式允许使用简单的绘图或草图作为输入。模型将尝试解释草图并根据它生成详细图像
Sketch → VAE Encode → Add Noise → Denoise → VAE Decode → Detailed Image
草图模式最适合高去噪强度(0.8-1.0),因为草图通常缺乏细节。
来源:modules/img2img.py160-162 modules/ui.py545-546
图像修复允许通过指定蒙版选择性地修改图像的局部
使用专门的绘图界面,您可以在图像上绘制蒙版
Image + Mask → VAE Encode → Apply Mask → Add Noise to Masked Region → Denoise → VAE Decode → Result
结合了草图绘制和图像修复。草图和原始图像之间的变化会自动创建蒙版
Original + Sketch → Generate Mask from Differences → Apply Inpainting → Result
允许上传单独的图像和蒙版
Image + Separate Mask → Apply Inpainting → Result
来源:modules/img2img.py163-176 modules/ui.py548-568 modules/processing.py336-371
批量模式使用相同的参数处理多张图像
Multiple Images → Process Each with Same Parameters → Multiple Results
批量处理支持两种来源类型
来源:modules/img2img.py20-149 modules/ui.py570-592
img2img 过程中一个关键的部分是图像条件化,它向扩散模型提供输入图像的信息。根据模式的不同,使用不同的条件化方法
来源:modules/processing.py375-396 modules/processing.py336-371
这可能是 img2img 最重要的参数。它控制原始图像保留的程度
从技术上讲,去噪强度决定了在去噪过程开始之前,输入图像的潜在表示中添加了多少噪声。
| 模式 | 描述 |
|---|---|
| 仅调整大小 | 简单地将图像调整到目标尺寸 |
| 裁剪并调整大小 | 裁剪图像以保持纵横比,然后调整大小 |
| 调整大小并填充 | 调整大小并用内容填充空白区域 |
| 仅调整大小(潜在空间放大) | 在潜在空间中调整大小 |
| 参数 | 描述 |
|---|---|
| 蒙版模糊 | 模糊蒙版边缘以实现更平滑的过渡 |
| 蒙版 Alpha | 控制蒙版的不透明度/强度 |
| 图像修复填充 | 填充蒙版区域的方法(填充、原始、潜在噪声、潜在空) |
| 以全分辨率进行内容填充 | 仅以全分辨率处理蒙版区域 |
来源:modules/ui.py548-568 modules/img2img.py163-176
processing.py 中的 img2img_image_conditioning 函数根据模型类型处理不同的条件化方法
对于大多数模型,该函数从编码的潜在图像创建简单的条件张量。
对于图像修复模型(那些带有 conditioning_key 'hybrid' 或 'concat' 的模型),该函数
来源:modules/processing.py375-396 modules/processing.py336-371
img2img 系统旨在通过 ScriptRunner 系统与扩展脚本协同工作。在处理开始之前
这允许通过扩展对 img2img 过程进行广泛的自定义。
来源:modules/img2img.py131-142 modules/img2img.py240-242
img2imgmodules/img2img.py 中的 img2img 函数是 img2img 过程的主要入口点。它
StableDiffusionProcessingImg2Img 实例process_batch函数 process_batch 负责使用相同参数处理多张图像。它
img2img UI 在 modules/ui.py 中定义,包括
| 功能 | Img2Img | Txt2Img |
|---|---|---|
| 输入 | 需要初始图像 | 从随机噪声开始 |
| 控制 | 对构图有更高的控制 | 对精确细节的控制较少 |
| 去噪 | 使用去噪强度参数 | 始终使用全噪声(相当于强度=1.0) |
| 模式 | 多种模式(标准、草图、图像修复等) | 单一模式 |
| 用例 | 修改、细化、目标生成 | 从零开始创建、开放式生成 |
刷新此 Wiki
最后索引时间2025年4月17日(82a973)