菜单

使用指南

相关源文件

本指南提供了使用 Stable Diffusion 图像生成功能的全面说明。它涵盖了主要的使用模式、命令行选项和实用示例,以帮助您通过文本提示生成和修改图像。有关安装说明,请参阅安装与设置

主要功能

Stable Diffusion 提供两种主要功能

  1. 文本到图像生成:将文本描述转换为图像
  2. 图像到图像修改:根据文本指令转换现有图像

下图说明了基本的使用工作流程

来源:README.md80-101 scripts/txt2img.py98-348

基本使用模式

文本到图像生成

从文本生成图像的基本命令

python scripts/txt2img.py --prompt "your text description" [options]

示例

python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms

这将使用 PLMS 采样器和默认设置生成与您的文本描述匹配的图像。

有关更详细的信息,请参阅文本到图像生成

来源:README.md100-103 scripts/txt2img.py98-140

图像到图像修改

修改现有图像

python scripts/img2img.py --prompt "your text description" --init-img path/to/image.jpg --strength 0.8 [options]

strength参数(0.0-1.0)控制原始图像的改变程度。值越接近1.0,创造性越强,但与原始图像的偏差越大。

有关更详细的信息,请参阅图像到图像修改

来源:README.md169-190

模型组件与数据流

下图展示了您的输入是如何在系统中处理的

来源:scripts/txt2img.py246-317

命令行参数

脚本支持众多参数来自定义生成。以下是关键参数

参数描述默认使用示例
--prompt期望图像的文本描述---prompt "日落群山"
--ddim_steps采样步数50--ddim_steps 100
--scale引导比例(越高 = 越遵循提示)7.5--scale 10
--H图像高度512--H 768
--W图像宽度512--W 768
--seed用于可重现性的随机种子42--seed 123
--n_samples批次大小(每个提示的图像数)3--n_samples 6
--n_iter要生成的批次数。2--n_iter 4
--plms使用 PLMS 采样器--plms
--dpm_solver使用 DPM-Solver 采样器--dpm_solver
--fixed_code跨样本使用相同的起始噪声--fixed_code
--outdir输出目录outputs/txt2img-samples--outdir my_images

有关参数的完整列表,请参阅命令行参数和选项

来源:scripts/txt2img.py99-234

采样方法

Stable Diffusion 提供三种采样策略,每种策略都有不同的特性

要选择采样器,请使用

  • --plms 用于 PLMS 采样器
  • --dpm_solver 用于 DPM-Solver 采样器
  • 不带标志使用默认的 DDIM 采样器

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

配置和代码流

下图说明了代码组件在图像生成过程中如何交互

来源:scripts/txt2img.py98-348

实际示例

基本图像生成

python scripts/txt2img.py --prompt "a fantasy landscape with mountains and a castle" --ddim_steps 50 --scale 7.5 --n_samples 4

这将生成 4 张奇幻风景图像,使用默认的 DDIM 采样器,50 步,引导比例为 7.5。

高质量生成

python scripts/txt2img.py --prompt "detailed portrait of a viking, highly detailed, cinematic lighting" --plms --ddim_steps 100 --scale 10

这使用了 PLMS 采样器,100 步,并且更高的引导比例以获得更详细的结果。

更大的图像

python scripts/txt2img.py --prompt "futuristic cityscape at night" --H 768 --W 768 --ddim_steps 70 --n_samples 2

这将生成 768x768 的大图像,而不是默认的 512x512。

从文件批量生成

python scripts/txt2img.py --from-file prompts.txt --n_samples 1 --n_iter 1

这将从文本文件(每行一个提示)读取提示,并为每个提示生成一张图像。

来源:README.md100-140 scripts/txt2img.py268-277

高级特性

处理种子

使用特定的种子可确保结果可重现

python scripts/txt2img.py --prompt "cyberpunk street scene" --seed 42

要生成同一概念的变体,请保持种子不变,但更改其他参数。

图像到图像的强度控制

图像到图像中的 `strength` 参数控制原始图像的转换程度

  • 低值(0.2-0.4):细微变化,保持原始构图
  • 中等值(0.5-0.7):适度转换
  • 高值(0.8-1.0):显著变化,可能产生新的构图

来源:README.md176-179

安全特性

Stable Diffusion 包含两种安全机制

  1. 安全检查器:自动过滤潜在不安全的内容
  2. 隐形水印:为所有生成的图像添加隐形水印

这些功能默认启用,有助于确保模型的负责任使用。

来源:scripts/txt2img.py87-95 scripts/txt2img.py261-264 scripts/txt2img.py317-326

常见问题排查

GPU 内存问题

如果您遇到 GPU 内存不足的错误

  • 减小图像尺寸(`--H` 和 `--W`)
  • 减小批次大小(`--n_samples`)
  • 考虑使用半精度(`--precision autocast`)

生成速度慢

如果图像生成速度太慢

  • 使用更少的步数(`--ddim_steps 30`)
  • 尝试 DPM-Solver 采样器(`--dpm_solver`)
  • 生成较小的图像,然后放大它们

有关特定用例的更详细信息,请参阅专门的指南部分:文本到图像生成图像到图像修改命令行参数和选项