stable-diffusion.cpp Windows本地AI绘图教程

不依赖复杂的 Python 环境,从官方源码构建 CPU、CUDA 或 Vulkan 版本,选择合适的模型格式,并用命令行完成第一张本地生成图片。

适用对象:想在 Windows 本地运行 Stable Diffusion、希望用轻量 C/C++ 命令行工具出图,或需要 CPU、CUDA、Vulkan 多后端选择的用户。本文只引用上游程序和模型页面,不提供第三方整合包或模型权重。

stable-diffusion.cpp与ComfyUI有什么不同

stable-diffusion.cpp 是纯 C/C++ 推理项目,主要通过 sd-cli 运行。上游列出的支持平台包括 Windows,支持 CPU、CUDA、Vulkan、Metal、OpenCL 和 SYCL,并能读取 safetensors、GGUF 及部分 PyTorch checkpoint。它更适合命令行、自动化和轻量部署;需要可视化节点工作流时,应选择 ComfyUI Windows本地部署教程

安装前:硬件、空间与许可证

项目核验结果
系统与依赖本文面向64位Windows;需要Git、CMake和可用的C/C++编译器,Visual Studio Build Tools是常见方案
CPU官方支持x86平台的AVX、AVX2、AVX512;没有独显也能构建CPU版本,但速度取决于模型和硬件
NVIDIA显卡CUDA构建需要CUDA Toolkit;官方构建文档建议至少4GB显存
磁盘至少预留程序构建文件、一个模型和生成图片的空间;模型大小由所选权重决定,上游未给统一最低值
许可证stable-diffusion.cpp代码采用MIT License;模型权重有独立许可证和用途限制,下载前必须分别核验

第一步:从官方源码构建CPU版本

在已配置C++编译环境的终端中执行:

git clone --recursive https://github.com/leejet/stable-diffusion.cpp
cd stable-diffusion.cpp
cmake -B build
cmake --build build --config Release

官方构建说明要求递归克隆子模块。若之前只执行了普通克隆,可运行 git submodule initgit submodule update。构建完成后,Windows多配置生成器通常会把程序放在 build\bin\Release;实际路径以构建输出为准。

第二步:按显卡选择后端

NVIDIA CUDA

cmake -B build-cuda -DSD_CUDA=ON
cmake --build build-cuda --config Release

先安装与驱动兼容的 CUDA Toolkit。配置阶段若找不到 CUDA,不要从不明网站下载 DLL;先使用 CPU 版本确认程序和模型正常,再排查工具链。

Vulkan

cmake -B build-vulkan -DSD_VULKAN=ON
cmake --build build-vulkan --config Release

Vulkan构建需要官方文档指定的 Vulkan SDK。它可以作为不同品牌显卡的备选路径,但是否可用和性能取决于驱动、显卡及模型,不能仅凭“支持Vulkan”保证所有设备都能顺利运行。

第三步:安全选择模型

上游快速入门示例使用 Stable Diffusion 1.5 的 safetensors 权重,并明确支持 .ckpt.safetensors.gguf。初次测试优先选择来源清楚、许可证明确的 safetensors 或 GGUF 文件。

  • 不要把项目代码的MIT许可证误认为模型也能任意商用。
  • 下载模型时核对发布者、许可证、文件大小与哈希;不要使用来历不明的网盘整合包。
  • 不同模型可能需要额外的VAE、文本编码器或专用参数,不能只改文件名强行加载。

第四步:生成第一张图片

把模型放到自建的 models 目录。以官方快速入门的基本参数为例:

build\bin\Release\sd-cli.exe -m models\model.safetensors -p "a quiet mountain village at sunrise"

-m 指向模型,-p 是提示词。不同发布版本的可执行文件路径和参数可能变化,先运行:

build\bin\Release\sd-cli.exe -h

再根据当前帮助设置输出路径、尺寸、采样方式、步数、随机种子和负面提示词。上游说明会把生成参数写入PNG元数据;需要复现时,应同时保存图片、提示词、种子、模型版本和后端。

常见问题排查

提示找不到子模块或头文件

确认使用了 --recursive 克隆。已有目录运行 git submodule update --init --recursive,然后删除失败的构建目录重新配置。

模型无法加载或生成全黑图

先确认模型类型与当前版本支持范围,检查是否缺少VAE或文本编码器,并用上游快速入门列出的基础模型验证。模型文件损坏时应重新从原始发布页下载并核对哈希。

显存不足

降低图像尺寸,选择更小或量化模型,并参考上游性能说明中的Flash Attention、VAE tiling等选项。4GB只是CUDA构建文档的建议下限,不代表所有模型都能在4GB显存运行。

CPU能运行但非常慢

CPU推理速度受指令集、线程、模型体积和图像尺寸影响。先用小模型和较低分辨率验证流程,再决定是否构建CUDA或Vulkan版本,不要相信固定“几秒出图”的非官方承诺。

卸载、更新与安全边界

停止运行后,删除源码目录、构建目录、模型和输出图片即可移除本项目;Git、CMake、Visual Studio及CUDA属于共享工具,应单独决定是否保留。更新源码前先记录可用提交或发布标签,避免新版本参数变化导致旧脚本失效。

生成内容仍需遵守模型许可证、肖像权、著作权和所在地区法律。不要用未经授权的真人素材训练或生成欺骗性内容;商业用途尤其要核验模型与LoRA的许可。

相关教程与官方来源

偏好可视化节点工作流可继续阅读 ComfyUI Manager自定义节点安全指南;本地文本模型可参考 llama.cpp Windows运行GGUF模型教程

核验日期:2026-07-18。项目发布频繁,构建开关、模型支持和命令行参数可能变化,请以官方仓库当前文档和 sd-cli -h 为准。