菜单

命令行参数和选项

相关源文件

本文档提供了 Stable Diffusion 仓库中所有可用命令行参数和选项的综合参考。它涵盖了文本到图像(txt2img.py)和图像到图像(img2img.py)脚本的参数,并解释了它们的用途、语法以及对生成过程的影响。

有关如何使用这些脚本生成图像的信息,请参阅 文本到图像生成图像到图像修改

1. 命令行界面概述

Stable Diffusion 提供了两个主要的命令行界面:

  • txt2img.py - 从文本提示生成图像
  • img2img.py - 根据文本提示修改现有图像

这两个脚本共享许多通用参数,同时也有一些针对其特定功能的独特选项。

来源:README.md107-139 scripts/txt2img.py99-235

2. 命令行参数与管道流

下图说明了命令行参数如何影响 Stable Diffusion 管道的各个组件。

来源:scripts/txt2img.py251-257 scripts/txt2img.py286-311

3. 通用参数参考

3.1 输入/输出选项

参数默认描述
--prompt"a painting of a virus monster playing guitar"用于生成的文本提示
--outdir"outputs/txt2img-samples"保存结果的目录
--from-fileNone包含提示的文件的路径(每行一个)
--skip_grid不保存所有生成图像的网格
--skip_save不保存单个图像(对基准测试有用)

来源:scripts/txt2img.py101-124

3.2 模型配置

参数默认描述
--config"configs/stable-diffusion/v1-inference.yaml"模型配置文件路径
--ckpt"models/ldm/stable-diffusion-v1/model.ckpt"模型检查点路径
--laion400m使用 LAION-400M 模型而不是 Stable Diffusion
--precision"autocast"评估精度(full 或 autocast)

来源:scripts/txt2img.py210-234

3.3 采样参数

参数默认描述
--ddim_steps50去噪步数
--plms使用 PLMS 采样代替 DDIM
--dpm_solver使用 DPM-Solver 采样
--ddim_eta0.0DDIM eta 参数(0.0 = 确定性)
--fixed_code在所有样本中使用相同的起始噪声
--scale7.5分类器自由引导尺度
--seed42用于可复现结果的随机种子

来源:scripts/txt2img.py125-156 scripts/txt2img.py200-227

3.4 图像参数

参数默认描述
--H512图像高度(像素)
--W512图像宽度(像素)
--C4潜在通道数
--f8下采样因子

来源:scripts/txt2img.py163-186

3.5 批量处理

参数默认描述
--n_iter2采样迭代次数
--n_samples3每个提示的样本数量(批次大小)
--n_rows0输出网格中的行数(默认值:n_samples)

来源:scripts/txt2img.py157-198

4. 脚本特定参数

4.1 txt2img.py 参数

通用参考中的所有参数都适用于 txt2img.py 脚本。

4.2 img2img.py 参数

img2img.py 脚本包含所有通用参数以及以下内容:

参数默认描述
--init-img必填输入图像的路径
--strength0.8噪声强度(0.0-1.0);值越高,变化越大,但与原始图像的相似度越低

来源:README.md176-179

5. 参数关系和依赖

某些参数协同工作或影响彼此的行为。

来源:scripts/txt2img.py251-257 scripts/txt2img.py267-278 scripts/txt2img.py284-286

6. 使用示例

6.1 基本文本到图像生成

此命令使用 PLMS 采样器和默认设置生成宇航员骑马的图像。

6.2 定制图像生成

此命令将

  • 生成夜晚赛博朋克城市的图像
  • 将图像尺寸设置为 768×512 像素
  • 每次迭代生成 4 个样本,共 2 次迭代(共 8 张图像)
  • 使用特定种子(123)以实现可复现性
  • 将引导尺度增加到 9.0,以更强地遵循提示

6.3 图像到图像修改

此命令获取一张输入图像,并将其转换为奇幻风景,保留原始结构的 20%。

7. 高级选项

7.1 采样器选择

Stable Diffusion 提供了三种具有不同特性的采样方法:

采样器标志描述
DDIM默认Denoising Diffusion Implicit Models - 基线采样器
PLMS--plmsPseudo Linear Multistep - 通常在较少步骤下提供更好的质量
DPM-Solver--dpm_solverDifferential Probability Models Solver - 在相同质量下通常更快

来源:scripts/txt2img.py251-257 ldm/models/diffusion/ddim.py ldm/models/diffusion/plms.py ldm/models/diffusion/dpm_solver.py

7.2 控制随机性

可以通过以下方式控制生成过程:

  • --seed - 设置随机种子以实现可复现结果
  • --fixed_code - 在所有样本中使用相同的初始噪声,使变化仅来自条件

来源:scripts/txt2img.py284-286

7.3 从文件进行批量处理

要自动处理多个提示,请:

  1. 创建一个文本文件,每行一个提示。
  2. 使用 --from-file 选项指定此文件。
  3. 设置 --n_samples 来控制每个提示要生成的图像数量。

来源:scripts/txt2img.py273-277

8. 性能考量

各种参数会影响性能:

参数性能影响
--ddim_steps值越高 = 步数越多 = 质量越好,但生成速度越慢
--H / --W更大的尺寸需要更多的内存和处理时间
--n_samples更高的批次大小会使用更多的 GPU 内存,但效率可能更高
--precision"full" 使用更多内存但可能更准确;"autocast" 更快

来源: scripts/txt2img.py125-130 scripts/txt2img.py163-174 scripts/txt2img.py229-234

9. 总结

Stable Diffusion 的命令行界面通过各种参数提供了对生成过程的广泛控制。本文档已涵盖

  • 输入和输出选项
  • 模型配置参数
  • 采样和生成控件
  • 图像尺寸设置
  • 批处理选项
  • 特定脚本参数
  • 示例用法场景

了解这些选项可以让用户根据自己的需求微调生成过程,以达到期望的结果,平衡质量、速度和多样性。