Stable Diffusion本地部署:3步跑通文生图

📅 2026/8/24 1:26:35
Stable Diffusion本地部署:3步跑通文生图
Stable Diffusion本地部署3步跑通文生图【免费下载链接】stable-diffusionA latent text-to-image diffusion model项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusionStable Diffusion 是一个把「文生图」扩散模型搬到本地运行的开源项目在一张 10GB 显存的显卡上输入一句英文描述就能生成 512×512 的图片仓库里还附带图生图、局部重绘等可直接运行的脚本。下面是我部署、调参、排障的完整经过。门槛先说清楚10GB 显存是一条真实存在的线我接触这批模型的时候主流的文生图服务要么闭源、要么按次收费提示词进去结果出来中间完全是黑盒。真正劝退人的是硬件当时能拿到公开权重的模型训练和推理都指着 A100 去。Stable Diffusion 把这条线拉低了不少——860M 参数的 UNet 加 123M 参数的 CLIP 文本编码器官方给出的运行要求是「至少 10GB 显存的 GPU」。我第一台跑得动的机器就是一张 11GB 的消费级显卡第一张 512 像素的图大概花了 40 秒。出图慢但出图这个动作本身第一次发生在我自己的机器上这个感觉和调 API 完全不一样。Stable Diffusion 是什么在压缩空间里做去噪的文生图模型它是论文《High-Resolution Image Synthesis with Latent Diffusion Models》的参考实现名字里的「Stable」来自与 Stability AI、Runway 的合作训练。理解它只需要抓住两点latent潜在空间去噪扩散模型的工作是「从纯噪声里一步步还原出图」。直接在 512×512 的像素空间里做这件事计算量很大。Latent Diffusion 的做法是先用一个 8 倍下采样的自编码器把图压成 64×64×4 的小张量在压缩空间里去噪最后再解码回像素。打个比方不是逐块擦干净整个房间而是先把房间打包压缩擦完包再拆。CLIP 文本条件一段冻结的 CLIP ViT-L/14 文本编码器把提示词变成向量通过交叉注意力注入 UNet模型据此「知道」该往哪个方向去噪。和同类工具比它的差异点很明确对比闭源服务Imagen、DALL·E 这类权重公开采用 CreativeML OpenRAIL-M 许可提示词和图片不出本机不产生按次费用对比后来的 WebUI 封装项目这是官方参考实现就是几个纯 Python 脚本没有图形界面但每个采样参数都裸露在命令行里想搞懂原理、做二次开发它比封装好的壳子直白得多对比训练数据在 LAION-5B 的一个子集上预训练和微调v1.2 起换用美学评分过滤后的数据所以画面普遍更「耐看」。官方模型卡里写得很直白这些权重是研究产物不建议不加安全机制就直接用于产品或对外服务。下面所有用法都按这个前提来。能力速览一张表看懂它能干什么能力脚本输入关键参数备注文生图scripts/txt2img.py英文提示词--scale 7.5、--ddim_steps 50默认 512×512单次 3 张草图/底图改图scripts/img2img.py提示词 初始图片--strength 0.8值越接近 1输出越偏离原图局部重绘scripts/inpaint.py图片 黑白 mask 配对--steps 50需要另配 inpainting 模型权重放大重绘scripts/img2img.py低分辨率图较低的--strengthREADME 明确给出的典型用法仓库内置了 4 个 v1 系列检查点差别主要在训练数据权重区别v1.1首个完整版本256×256 预训练 512×512 微调v1.2换成 LAION 美学评分 5.0 的子集续训画面更「好看」v1.3 / v1.4在 v1.2 基础上继续训练并加入 10% 无文本条件丢弃引导采样效果更稳官方用 FID保真度和 CLIP 分数文图匹配度测过各版本在不同引导强度下的表现v1.3/v1.4 在两端都略优。参考脚本还内置了两道安全机制一个 NSFW 安全检测器以及把「StableDiffusionV1」字样打进像素的隐形水印。本地部署三步走从克隆代码到第一张图第一步拉代码、建环境git clone https://gitcode.com/gh_mirrors/st/stable-diffusion cd stable-diffusion conda env create -f environment.yaml conda activate ldmenvironment.yaml锁的是 Python 3.8.5 PyTorch 1.11 CUDA 11.3。如果你的机器比较新、装不上 CUDA 11.3README 给了另一条路在已有的 latent diffusion 环境里手动pip install transformers4.19.2 diffusers invisible-watermark再pip install -e .。第二步放模型权重权重文件如sd-v1-5.ckpt来源见仓库 README 指出的官方模型页面放好后建一个软链接mkdir -p models/ldm/stable-diffusion-v1/ ln -s /你的路径/sd-v1-5.ckpt models/ldm/stable-diffusion-v1/model.ckpt为什么绕这一步因为txt2img.py的默认--ckpt就是models/ldm/stable-diffusion-v1/model.ckpt以后想换 v1.1、v1.4 对比效果只改链接不用改任何命令。第三步跑第一条文生图命令python scripts/txt2img.py --prompt a photograph of an astronaut riding a horse --plms结果写在outputs/txt2img-samples/samples/下同目录还会多一张grid-XXXX.png拼图。注意两点首次运行会从网络拉取安全检测器模型没联网会卡住每张图过完安全检测被判为不适内容的会直接替换成一张占位梗图对就是那张 Rick and Morty 图这是脚本故意的行为不是 bug。最值得调的 3 个参数scale、采样器、strength引导强度 --scale贴文程度和画面质量的平衡它控制「模型听你提示词的话」到多听话默认 7.5。调这个参数前先看官方测过的一组数据——不同 cfg 值下各检查点的 FID/CLIP 曲线档位大致表现取舍 3画面偏抽象和提示词的关系很松出图「自由发挥」适合当素材找灵感7.5默认文图匹配和画质都在线的平衡点日常主力档位README 推荐组合也是这个≥ 10细节「用力过猛」容易过饱和、重复纹理贴文很紧但观感发腻不建议常驻采样器与步数速度和质量怎么换采样器怎么开步数取舍DDIM默认50稳定但最慢PLMS加--plms可减到 25–50README 参考脚本的推荐搭配同质量下更快DPM-Solver加--dpm_solver更少步数最少相对更新出问题先回退到 PLMS另外两个常用开关--seed 42固定随机种子做可复现实验--fixed_code让同批样本共享起始噪声方便横向对比提示词差异。修改强度 --strength图生图保留多少原图scripts/img2img.py给初始图加噪再按提示词去噪--strength控制加多少噪strength效果典型用法0.3–0.5原图构图、细节基本保留低清放大重绘0.7–0.8构图还在风格大改草图变成品图README 示例用 0.8≥ 0.9只借个大概轮廓想要全新画面但用原图构图引导README 里的官方示例一张用绘图软件画的粗糙山脉草图配一句A fantasy landscape, trending on artstation排障清单出图不对时先查这 6 处现象原因对策首次运行长时间卡在导入阶段安全检测器模型是首次运行时下载的保持联网之后会走本地缓存出图被一张 Rick and Morty 梗图替换安全检测器判为不适内容属脚本预设行为调整提示词措辞这是特性不是故障中文提示词出图模糊或文不对题训练数据几乎全是英文图注模型卡明确说非英文提示词效果显著更差一律用英文提示词批量出图时显存爆掉OOM512×512 × 多张批大小对显存不友好调小--n_samples或降--H/--W到 256--precision autocast默认已开加载权重报错或出现 unexpected keys检查点和推理配置不匹配比如混了非 EMA 权重推理配置里use_emaFalse是为 EMA-only 的 ckpt 设计的版本对不上时显式传--config和--ckptimg2img 输出和原图毫无关系--strength给太高加噪太多回落到 0.5–0.7 再逐步上调行动清单照抄就能跑通确认显卡显存 ≥ 10GBgit clone https://gitcode.com/gh_mirrors/st/stable-diffusionconda env create -f environment.yaml激活ldm环境下载 v1 系列权重mkdir -p models/ldm/stable-diffusion-v1/并建软链接指向model.ckptpython scripts/txt2img.py --prompt a photograph of an astronaut riding a horse --plms去outputs/txt2img-samples/看第一张图出图后按顺序玩先动--scale5 → 7.5 → 10再换采样器对比速度最后拿一张自己的图跑img2img--strength从 0.6 起步把它当研究工具用模型卡列明的短板无法渲染可读文字、组合式构图偏弱、人脸不稳定、带有训练数据偏见都不是调参能解决的别在这上面花时间。【免费下载链接】stable-diffusionA latent text-to-image diffusion model项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考