简介:这份PDF资料面向希望上手AI绘画的开发者与爱好者,系统讲解Stable Diffusion的安装与使用流程,帮助零基础读者跨过环境配置门槛,顺利跑通文本生成图像。资源包共1个PDF文件,约814KB,内容以图文步骤形式组织,涵盖环境准备、依赖安装、代码与模型下载、运行命令及参数调节等核心环节,并针对生成图像、提示词设置、采样算法选择、步数调整与图像优化等操作给出具体说明,同时提醒GPU等计算资源的实际需求。目前已有945人学习下载,适合作为入门参考手册,便于读者按章节对照操作,快速理解Stable Diffusion的部署逻辑与调参思路,为后续艺术创作或科研实验打下基础。
1. 从一次显存不足说起:Stable Diffusion 安装前必须对齐的三件事
第一次在一台旧工作站上装 Stable Diffusion,我按教程一路pip install走完,结果跑txt2img.py时直接报显存不足,进程被系统杀掉。后来才发现,问题不在代码,而在装之前没对齐三件事:Python 版本、PyTorch 的 CUDA 版本、以及显卡驱动版本。这三者只要有一个错位,轻则回退到 CPU 推理慢到怀疑人生,重则直接崩在加载模型那一步。Stable Diffusion 属于人工智能绘画软件里对运行环境比较挑的一类,它不像普通 Python 脚本装完就能跑,GPU 加速链路必须一次配通。这篇笔记面向的是准备本地部署、想用文本生成图像、又不想在环境上反复翻车的开发者,从环境准备一路写到跑通验证,中间把版本取舍和踩坑点都摊开讲。
2. 环境准备:Python、PyTorch 与 GPU 驱动的版本对齐
2.1 Python 版本怎么选,3.7 只是下限
项目正文里写的是 Python 3.7 或更高版本,这个说法没错,但实际装的时候我一般不会停在 3.7。原因是 3.7 已经停止维护,很多依赖包的新版本不再为它构建 wheel,装requirements.txt时容易卡在编译阶段。常见做法是选 Python 3.10,它在兼容性和依赖覆盖上比较稳,既不会太新导致部分包没有预编译版本,也不会太旧被依赖抛弃。
验证 Python 版本:
python --version # 期望输出 Python 3.10.x如果系统里同时有多个 Python,建议直接用python3.10 -m venv指定解释器创建虚拟环境,避免默认python指向 2.x 或 3.6。这一步看着简单,但它是后面所有依赖能装上的前提。
2.2 虚拟环境:别省这一步
项目正文把创建虚拟环境标为可选但推荐,我的经验是:不要省。Stable Diffusion 依赖的 torch、torchvision、torchaudio 版本互相咬得很死,一旦和系统里其他项目的包混在一起,升级一个就可能带崩另一个。虚拟环境就是给这套环境单独划一块地。
Linux / macOS:
python -m venv stable-diffusion-env source stable-diffusion-env/bin/activateWindows:
python -m venv stable-diffusion-env stable-diffusion-env\Scripts\activate激活后命令行前面会出现(stable-diffusion-env)前缀,说明后续pip install都装进这个隔离环境里了。退出用deactivate。这里有个细节:Windows 下如果提示脚本被禁止运行,是执行策略问题,用管理员权限的 PowerShell 执行Set-ExecutionPolicy RemoteSigned即可,不用去改系统环境变量。
2.3 PyTorch 与 CUDA:版本错位是最大的坑
PyTorch 是加速图像生成的核心,装错版本是新手最常见的翻车点。项目正文建议去 PyTorch 官网查对应命令,这个方向对,但很多人忽略了要先确认显卡驱动支持的 CUDA 上限。
先看驱动和 CUDA 能力:
nvidia-smi # 右上角 CUDA Version 表示驱动支持的最高 CUDA 版本假设nvidia-smi显示 CUDA Version 12.1,那你可以装 cu121 版本的 PyTorch,但不能装 cu124 的,否则运行时会报 CUDA 初始化失败。装 GPU 版:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121没有 NVIDIA 显卡、或者只想先跑通流程的,装 CPU 版:
pip install torch torchvision torchaudio参数说明:--index-url指向 PyTorch 官方为特定 CUDA 版本预编译的 wheel 源,比默认源装得快也不容易编译失败。装完立刻验证 GPU 是否可用:
python -c "import torch; print(torch.cuda.is_available())" # 输出 True 表示 GPU 链路通了,False 说明还在 CPU 模式这一步输出 False 却继续往下装,后面生成图像会慢到让你以为程序卡死。我一般在这里就卡住,不通不往下走。
3. 拉代码装依赖:从仓库克隆到模型落盘
3.1 克隆代码库与安装 requirements
环境通了之后,拉代码。项目正文用的是 CompVis 的 Stable Diffusion 仓库,流程是克隆、进目录、装依赖:
git clone https://github.com/CompVis/stable-diffusion.git cd stable-diffusion pip install -r requirements.txtrequirements.txt里锁定了这个仓库运行所需的 Python 库版本,包括 transformers、diffusers 相关的依赖。装的过程中如果报某个包编译失败,八成是缺系统级编译工具。Linux 下常见做法是先补上:
sudo apt-get install build-essential python3-devWindows 下则需要装 Visual C++ Build Tools。这一步不是每次都会遇到,但一旦遇到,报错信息通常很长,核心就一句Microsoft Visual C++ 14.0 or greater is required,看到它就去补编译环境,别去反复重装 pip。
3.2 预训练模型的下载与放置
代码只是骨架,模型权重才是真正决定生成质量的部分。项目正文提到模型下载链接通常在 README 里,这点很关键——模型文件动辄几个 GB,放错目录程序会直接报找不到权重。
常见做法是先把权重下载到本地,再放到仓库约定的路径下。以常见的sd-v1-4.ckpt为例,仓库默认会去models/ldm/stable-diffusion-v1/找:
mkdir -p models/ldm/stable-diffusion-v1/ # 将下载好的权重文件放入该目录,并确认文件名与配置一致 ls -lh models/ldm/stable-diffusion-v1/参数说明:-p保证多级目录一次创建,-lh用人类可读的方式列出文件大小,方便确认权重是不是完整下载(几个 GB 的文件如果只有几百 KB,就是下载中断了)。模型文件建议校验一下大小或哈希,网络不稳时半截文件是隐形炸弹,加载时报的错往往和文件损坏无关,很难往下载上想。
3.3 依赖与模型的版本对应关系
这里补一个正文没细说但很要命的点:代码仓库、依赖版本、模型权重三者是有对应关系的。用旧版代码配新版权重,或者反过来,可能出现加载成功但生成结果全是噪声的情况。我一般会先看仓库 README 里推荐的权重文件名,再对照configs/stable-diffusion/下的 yaml 配置,确认里面写的ckpt路径和实际放的文件名一致。不一致就改配置或改文件名,别硬跑。
4. 跑通第一张图:txt2img 参数怎么调
4.1 最小可运行命令
依赖和模型都就位后,用项目正文给的基础命令跑第一张图:
python scripts/txt2img.py --prompt "a fantasy landscape" --plms这条命令里,--prompt是文本提示,模型据此生成图像;--plms指定使用 PLMS 采样算法。第一次跑建议就用默认参数,先确认能出图,再去调质量。生成结果默认落在outputs/txt2img-samples/下。如果这一步报错,优先看是不是模型路径没对上,而不是怀疑参数。
4.2 关键参数逐个说清
项目正文列了--prompt、--plms/--ddim、--steps,我把实际调参时的取舍补全:
| 参数 | 作用 | 取值建议 |
|---|---|---|
--prompt | 文本提示,决定画面内容 | 描述具体,主体+风格+光线 |
--plms/--ddim | 采样算法 | 默认 plms,追求速度可试 ddim |
--steps | 采样步数 | 50 起步,超过 150 收益递减 |
--H/--W | 生成图高宽 | 默认 512,显存不够先降 |
--n_samples | 一次生成几张 | 显存紧张时设为 1 |
--seed | 随机种子 | 固定它可复现同一张图 |
--steps不是越大越好。步数从 50 提到 100,细节会好一点,但耗时几乎翻倍;超过 150 之后肉眼基本看不出差别,纯属浪费算力。--seed是我最常用的参数,调提示词时固定种子,才能判断画面变化到底是提示词改的,还是随机性带来的。
4.3 中文提示与显存控制
项目正文里给了中文提示的例子,比如“一只飞翔的龙”。实际用的时候要注意,底层文本编码器对英文更友好,中文提示经常出现语义偏移。常见做法是中文构思、英文书写提示词,或者用翻译工具转一道再喂给模型。
显存方面,512x512 是安全线。想生成更大尺寸,直接调--H--W很容易爆显存。稳妥的做法是先出 512 的图,再用放大流程处理。如果显存实在紧张,把--n_samples降到 1,并关掉其他占显存的程序。跑图时开着浏览器一堆标签页,也可能成为压垮显存的最后一根稻草。
5. 避坑与排查:装完跑不起来先看这几条
5.1 现象:torch.cuda.is_available()返回 False
原因:PyTorch 装成了 CPU 版,或者 CUDA 版本和驱动不匹配。解决:先用nvidia-smi确认驱动支持的 CUDA 上限,再按对应版本重装 GPU 版 PyTorch,装完重启终端再验证。别在 False 的状态下硬跑,那是在用 CPU 硬扛。
5.2 现象:加载模型时报文件找不到或格式错误
原因:权重文件没放对目录,或者下载不完整。解决:对照配置里的ckpt路径检查实际文件位置,用ls -lh看文件大小是否正常。半截文件重新下载,别试图修复。
5.3 现象:生成到一半进程被 killed
原因:显存或内存不足,系统触发了 OOM。解决:降低--n_samples和生成尺寸,关掉占资源的后台程序。Linux 下可以用dmesg | tail看是不是 OOM killer 干的,确认后从参数上减负,而不是加内存条。
5.4 现象:装 requirements 时某个包编译失败
原因:缺系统级编译工具或 Python 开发头文件。解决:Linux 补build-essential和python3-dev,Windows 装 Visual C++ Build Tools。看到Microsoft Visual C++ 14.0 or greater is required就是它。
5.5 现象:出图全是噪声或纯色块
原因:模型权重和代码版本不匹配,或采样步数过低。解决:确认权重与仓库推荐版本一致,把--steps提到 50 以上再试。这类问题最玄学,往往不是代码错,而是版本对不上。
6. 装完怎么验证:三步确认这套环境真的能跑
装完不等于跑通,我习惯用三步验证,确认这套 Stable Diffusion 环境是活的,而不是碰巧出了一张图。
第一步,验证 GPU 链路。这条命令必须返回 True,否则后面所有加速都是空谈:
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))" # 期望输出:True 加你的显卡型号第二步,用固定种子跑一张可复现的图。固定--seed后,同样的提示词和参数应该每次得到几乎一致的结果,这能排除随机性掩盖的环境问题:
python scripts/txt2img.py --prompt "a fantasy landscape" --plms --steps 50 --seed 42 --n_samples 1跑完去outputs/txt2img-samples/下确认有图,且尺寸是预期的 512x512。如果图能出但尺寸不对,说明参数没生效,回去检查命令拼写。
第三步,做一次参数对照。把--steps从 50 改成 100,其他不变,再跑一次,对比两张图的细节差异和耗时。这一步不只是验证,也是熟悉参数手感的开始。下面这张对照表可以帮你判断参数是否按预期起作用:
| 验证项 | 预期结果 | 不符时的排查方向 |
|---|---|---|
| GPU 可用性 | True | 重装对应 CUDA 版 PyTorch |
| 固定种子出图 | 结果可复现 | 检查 seed 是否被覆盖 |
| 步数翻倍 | 耗时增加、细节略好 | 确认参数拼写与生效 |
| 输出目录 | 有对应尺寸图片 | 检查 H/W 参数 |
这三步走完,基本能确定环境是通的。从那以后我每次装完 Stable Diffusion,都会强制走一遍固定种子出图这一步,因为它能一次性暴露模型、依赖、参数三类问题,比单纯看命令有没有报错靠谱得多。环境这东西,跑通一次不算数,能稳定复现才算数。希望这套流程能帮你少走几个弯路。
本文还有配套的精品资源,点击获取