本指南提供了使用 Stable Diffusion 图像生成功能的全面说明。它涵盖了主要的使用模式、命令行选项和实用示例,以帮助您通过文本提示生成和修改图像。有关安装说明,请参阅安装与设置。
Stable Diffusion 提供两种主要功能
下图说明了基本的使用工作流程
来源: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,创造性越强,但与原始图像的偏差越大。
有关更详细的信息,请参阅图像到图像修改。
下图展示了您的输入是如何在系统中处理的
脚本支持众多参数来自定义生成。以下是关键参数
| 参数 | 描述 | 默认 | 使用示例 |
|---|---|---|---|
--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 |
有关参数的完整列表,请参阅命令行参数和选项。
Stable Diffusion 提供三种采样策略,每种策略都有不同的特性
要选择采样器,请使用
--plms 用于 PLMS 采样器--dpm_solver 用于 DPM-Solver 采样器来源:scripts/txt2img.py251-256 ldm/models/diffusion/ddim.py ldm/models/diffusion/plms.py ldm/models/diffusion/dpm_solver
下图说明了代码组件在图像生成过程中如何交互
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` 参数控制原始图像的转换程度
Stable Diffusion 包含两种安全机制
这些功能默认启用,有助于确保模型的负责任使用。
来源:scripts/txt2img.py87-95 scripts/txt2img.py261-264 scripts/txt2img.py317-326
如果您遇到 GPU 内存不足的错误
如果图像生成速度太慢