Stable Diffusion文生图:本地 AI 绘画事实标准入门
Stable Diffusion 和它的经典界面 WebUI------在本地把一句描述变成一张图,显存门槛比很多人想象得低,4 GB 就能起步。这一篇从选版本(1.5 还是 XL)讲到出第一张图,再讲到用 LoRA 换风格,把新手最容易卡住的几步一次走完。

一、为什么需要它
本地 AI 部署这条路上,Stable Diffusion 是图像生成的事实标准------搜索"本地 AI 绘画"、"Stable Diffusion 安装"的人,多半是在找同一件事:在自己电脑里跑一个文生图服务,不用把提示词和成品交给任何云平台。它的吸引力来自三点:开源可私有化(数据不出本机)、生态庞大(SD1.5 时代积累的海量 LoRA/模型/checkpoint)、硬件门槛在可接受范围(4 GB+ 显存就能跑 SD1.5,这在整个 AI 硬件里都算下限友好)。
再说"为什么是现在":2025-2026 年的 SD 生态比两年前厚得多------LoRA 让"画风/角色"变成了可插拔的小文件(100-300 MB),社区模型站里随便一个细分领域(二次元、写实人像、国风水墨)都有一批打磨过的权重,下载下来叠加到基模上就能出图,零训练成本。这也是"Stable Diffusion 教程"长盛不衰的原因:它不只是一个模型,而是一整套"基模 + 微调权重 + 界面"的完整生态,而且整条链路都能落在本地。
WebUI 是最常见的入口。这里先立两个口径:
- 界面选型:本篇主线是 AUTOMATIC1111 的 stable-diffusion-webui(参数齐全、教程丰富、LoRA 生态成熟);如果你后面要玩"节点式工作流"(把出图流程画成流程图),那是 ComfyUI 的领地,见《AI-23 ComfyUI节点式工作流》。两条路线后端都吃同一批 SD 模型,不冲突。
- 模型代际 :SD1.5 → SDXL → Flux.1 是一路演进的关系。按本系列的新颖性原则,追求画质上限的新用户,2025-2026 年的主流选择已经是 Flux 家族(见《AI-24 Flux与SDXL模型进阶》);但 SD1.5 的生态体量(LoRA、ControlNet、工作流教程)仍然居前,而且它是少数能在 4 GB 显存上跑起来的主力模型之一,所以入门篇仍然以 SD1.5/SDXL 为主线展开,Flux 作为进阶方向给出交叉链。
二、环境要求
| 项目 | 要求 | 说明 |
|---|---|---|
| 显卡 | N 卡(SD1.5:4 GB+ 可跑;SDXL:12 GB 舒适 / 8 GB 需 fp16+优化) | 显存估算为经验值(AI-05 公式同样适用) |
| CPU / 内存 | 8 核以上 / 16 GB+(经验值) | SDXL 出图内存占用更高 |
| 磁盘 | 每套 checkpoint 5 GB 量级,预留 50 GB+ | 模型目录远离 C 盘(系列惯例) |
| 软件 | git + Python 3.10/3.11/3.12 | Python 环境见《AI-03 Python环境与虚拟环境》 |
| 网络 | 首次要 git clone 仓库 + 下载模型 | 国内方案见 3.2/3.3 与第六节 |
GPU 不是"必须":WebUI 可以纯 CPU 跑(加 --cpu 参数),但出图时间从分钟级退化到小时级,只适合体验不适合日常------非 N 卡用户先读《AI-30 非N卡方案与整套自检》。
三、安装与部署
3.1 克隆仓库
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
国内访问 GitHub 不稳(clone 极慢/失败)是高频坑,走镜像站/代理,或直接下 Release 压缩包(与《AI-06 模型下载全攻略》同一思路)。具体启动命令与依赖安装方式,以官方仓库 README 当前版本的说明为准------不同版本 README 的细节(如 Python 要求)会变,别照抄两年前的教程。
我一般的做法:克隆完成后先读一遍 README,确认它对 Python 的要求(3.10/3.11/3.12 区间内,具体以仓库当前说明为准)与本机一致再启动。启动脚本会在仓库目录下自建虚拟环境并装 PyTorch 等一堆依赖------这意味着首次启动会下载几个 GB 的东西,磁盘与带宽都要留足余量,这也是为什么环境要求里把磁盘单独列出来。
3.2 启动 WebUI
Linux:
./webui.sh
Windows:
webui-user.bat
首次启动会自动创建 Python 环境并安装依赖,时间从十几分钟到半小时不等(取决于网络),中途断网直接重跑同一条命令 ,安装支持续传。启动成功后终端打印本地地址(默认 http://127.0.0.1:7860),浏览器打开即见两个标签页:txt2img(文生图,本篇主角)与 img2img(图生图)。
两个体感提醒:一是首次启动的进度条可能停在某个依赖上不动 ,多半是网络慢而不是卡死,耐心等待或重跑续传;二是启动日志很长,报错通常出现在日志尾部,排错时把最后几十行截下来,比从头翻效率高得多。
3.3 下载模型并放对位置(国内网络重点)
WebUI 启动时如果 models/Stable-diffusion 目录是空的,它不会自带任何模型------模型必须自己下载。步骤:
- 从 HuggingFace 选一个 SD1.5 checkpoint(SD1.5 生态规模大,任选社区高评分模型即可,具体 repo 以 HF 站点实时列表为准);
- 国内网络直连 huggingface.co 会卡住/超时,两条路:设
HF_ENDPOINT=https://hf-mirror.com后用 huggingface-cli 下载(命令详见《AI-06 模型下载全攻略》),或浏览器直接从 hf-mirror.com / ModelScope 下.safetensors文件; - 把
.safetensors文件放进models/Stable-diffusion目录(子目录一般也认,以仓库说明为准); - WebUI 里点模型下拉框旁的刷新按钮,列表出现即成功。
经验提醒:.safetensors 比老式 .ckpt 更安全(不执行任意代码),优先选 safetensors 文件,这是 SD 社区的基本共识。
四、验证
- 仓库层 :
git clone完成,目录里有webui.sh/webui-user.bat; - 启动层 :
./webui.sh(或 bat)跑完依赖安装,终端打印http://127.0.0.1:7860本地地址; - 模型层:模型下拉列表里能选到你放进去的 checkpoint;
- 出图层 :txt2img 里输入
a cat, studio light,按 5.1 的新手参数点 Generate,几十秒到几分钟内出图且画面正常(不是全黑、不是彩噪)。
四层全过 = 部署成功。卡在哪层,第六节有对应条目。这四层顺序也是排错顺序------网络层不通(clone/下载失败)先不要怀疑 GPU;模型层没放对文件,后面调参数也难见效。我一般把第 4 步当成"毕业考":出一张能看的图,比前面所有"启动成功"的提示加起来都更能说明问题。
五、进阶技巧
5.1 核心参数:新手推荐值(经验值)
txt2img 面板里新手最常调的六项:
| 参数 | 作用 | 新手推荐 |
|---|---|---|
| Prompt 提示词 | 正向描述,逗号分隔多个特征 | 写"主体 + 风格 + 光线",英文效果更好 |
| Negative prompt 负面提示词 | 不想要什么(低质特征) | lowres, bad anatomy, bad hands, blurry(社区通用起手式) |
| Sampler 采样器 | 去噪算法 | 先固定用一个(如 DPM++ 2M Karras 类,以界面当前列表为准),别先纠结采样器 |
| Steps 步数 | 去噪迭代次数 | 20-30 起步,再加基本无感 |
| CFG Scale 提示词相关性 | 贴图程度 | 7 上下;太小跑题、太大画面"过饱和" |
| 尺寸 | 分辨率 | SD1.5 建议 512×512 起步;SDXL 建议 1024×1024(各自训练分辨率,跨用出图质量差) |
两条体感:SD1.5 用 512 尺寸出图、想更大就出小图后放大 ,直接开 1024 容易崩脸;负面提示词的作用比新手想象的大,空着负面提示词的出图质量普遍差一截。
把这两条展开:所谓"崩脸"是因为模型主要在学习它的训练分辨率附近工作,强行放大等于让它外推,解剖结构最容易先坏;负面提示词则是"白名单 + 黑名单"的另一半------正向提示词只说你要什么,不告诉你模型该避开什么,负面提示词就是那组"社区公认的低质特征黑名单",是几百万次出图攒下来的经验,直接抄起手式比自己摸索快得多。
5.2 LoRA 与 Embedding:小体积的风格/角色微调
LoRA 是 SD 生态的关键特性:一个 LoRA 权重文件通常只有 100 MB-300 MB (对比基模 checkpoint 5 GB 量级),装进 WebUI 的 LoRA 下拉框、强度给 0.6-1.0 试,就能给基模叠加特定画风、角色或概念。理解 LoRA 只需一句话:它是"给基模外挂的小补丁",多个 LoRA 还能叠着用。训练自己的 LoRA(用 10-30 张图训出你的角色/画风)见《AI-37 LoRA微调训练实战》。
Embedding(Textual Inversion) 更小(几 MB 量级),本质是"一个词 = 一种微调概念",常用来修正基模的常见缺陷(如特定缺陷的负面 Embedding)。新手顺序:先用现成 LoRA 体验效果 → 想要特定角色再考虑训练。
5.3 显存不足?启动参数降级(参数名以仓库说明为准)
低显存机器不要直接放弃,WebUI 提供了一组启动参数把"显存放不下"的模型压进显存,代价是速度:
--medvram:中等显存优化,显存不够时自动把部分计算卸载到内存。8 GB 卡跑 SDXL 的常用档位;--lowvram:更激进的拆分,4-6 GB 卡跑 SDXL 时再上它;--cpu:纯 CPU 兜底,不占显存,速度极慢(小时级出图)。
用法:把参数追加到启动命令/启动器里(Linux 是 ./webui.sh --medvram 这类写法,具体以仓库 README 与启动器设置为准 )。选档思路:先裸跑,报显存不足才加;--medvram 不够再 --lowvram,能不上 --cpu 就不上。
顺带交代和 ComfyUI 的关系:ComfyUI(AI-23)的显存优化参数名不同(如 --novae、--medvram、--lowvram、--cpu 兜底),思路完全一致------都是"显存放不下时,用内存/速度换空间"。同一批模型文件两个界面通用,所以本篇练出的显存判断在换界面时直接复用。
六、故障排查(按层定位)
| # | 症状(报错原文) | 层 | 原因 | 解决 |
|---|---|---|---|---|
| 1 | git clone 极慢/失败(GitHub) |
网络 | 国内访问 GitHub 不稳 | 走镜像站/代理,或直接下 Release 压缩包(《AI-06 模型下载全攻略》同一思路) |
| 2 | HuggingFace 下载卡住 / ConnectionError / 超时(下 checkpoint 时) |
网络 | 国内访问 huggingface.co 受限 | set HF_ENDPOINT=https://hf-mirror.com(Win)/ export HF_ENDPOINT=https://hf-mirror.com(Linux);或浏览器直下 hf-mirror.com / ModelScope 的 .safetensors |
| 3 | 模型加载失败(列表里看不到 / 选中后报错) | 应用 | 文件没放进 models/Stable-diffusion,或下载不完整(0 字节/半截文件) |
检查文件后缀与大小是否与来源页一致;删掉重下;放好后点 WebUI 模型刷新按钮 |
| 4 | 出图时 CUDA error: out of memory / torch.cuda.OutOfMemoryError |
显存 | 分辨率/批大小超出显存,或后台进程占卡 | 降分辨率(SD1.5 回 512×512)、batch 设 1;nvidia-smi 查谁在占显存并清掉;再不行按 5.3 加 --medvram/--lowvram(方法见《AI-28 CUDA报错大全与排查》) |
| 5 | CUDA error: no kernel image is available for execution on the device |
驱动/框架 | WebUI 依赖装的 PyTorch wheel 与显卡架构不匹配 | 重装与显卡匹配的 PyTorch(pytorch.org 选择器,详见《AI-02 PyTorch安装与验证》);老卡注意别装太新的 CUDA 编译版 |
| 6 | torch.cuda.is_available() 返回 False(WebUI 提示无 GPU、走 CPU) |
驱动/框架 | 装了 CPU 版 PyTorch,或驱动过老 | 重装对应 cuXXX 版 wheel;升级 NVIDIA 驱动到支持对应 CUDA 的版本 |
| 7 | 界面打开正常但提示词中文乱码 | 应用 | 编码问题(个别终端/字体环境)或模型不识别中文提示词 | 出图提示词优先用英文(SD 系模型以英文训练为主);界面乱码则检查系统字体与 WebUI 终端编码(以仓库 issue 区当前方案为准) |
| 8 | WebUI 端口打不开 / 提示端口被占 | 端口 | 7860 被其他服务占用 | `netstat -ano |
排错顺序:网络层(clone/下载顺不顺)→ 模型层(文件放没放对)→ 驱动/框架层(GPU 认不认)→ 显存层(装不装得下)→ 应用层(出不出图) 。新手出不了图的情况多卡在前两层,先确认模型文件确实放在 models/Stable-diffusion 里,再怀疑其他因素。