Stability AI 常见问题与解决方案

image进阶7 分钟阅读2026/10/20

Stability AI 常见问题与解决方案:我踩过的坑和填坑方法

一切始于一张永远画不好的手

去年我需要给一个客户项目批量生成产品概念图,第一次认真用 Stable Diffusion。结果第一个晚上我就被三个问题搞得快崩溃:生成的人脸是扭曲的、显存直接爆了(OOM 报错刷屏)、好不容易生成一张好图,参数却怎么也复现不出来。

折腾了两周,我把遇到的问题一个个解决掉了。这篇文章就是我当时的笔记整理,希望能帮你少走弯路。

环境准备:先说清楚我用的是什么

  • WebUI:AUTOMATIC1111 版本(当时最新版)
  • 显卡:RTX 3060 12GB
  • 模型:SD 1.5 + 后来换了 SDXL
  • 系统:Windows 11

如果你配置类似,下面的方案应该都能直接用。

问题一:CUDA out of memory(显存不足)

这是最高频的问题。报错长这样:

torch.cuda.OutOfMemoryError: CUDA out of memory. 
Tried to allocate 2.50 GiB...

我第一次跑 SDXL 就遇到了,因为 SDXL 基础模型就需要 8GB 以上显存,我开着浏览器和一堆后台程序,12GB 根本不够。

解决方案,按我实际使用的顺序:

  1. 降低分辨率。1024×1024 是 SDXL 的舒适区,但你可以先用 768×768 生成,再用高清修复放大。

  2. 在 WebUI 的启动参数里加这些(修改 webui-user.bat):

set COMMANDLINE_ARGS=--medvram --xformers

--medvram 会把模型分块加载,我的显存占用从 11GB 降到了 7GB 左右。如果还不够,换 --lowvram,速度会慢一些但能跑。

  1. 开启 xformers。这个优化注意力计算的库能省 20-30% 显存,还能加速。安装:
pip install xformers
  1. 别贪批量数量。Batch size 设 4 听起来很爽,但每张图都要占显存。我现在的习惯是 batch size 1 + batch count 8,效果一样,显存压力小得多。

问题二:人脸扭曲、手画不对

这是 SD 1.5 时代的经典痛点。我生成的第一张人物图,手指有六根,脸像被门夹过。

我的解决组合拳:

  1. 换更好的模型。这是见效最快的一步。别用原始的 SD 1.5 base,去 Civitai 找评分高的人像模型,写实方向当时我用的效果立竿见影。

  2. 加负面提示词。这是很多人的盲区。我的通用负面词模板:

bad hands, extra fingers, deformed, blurry, 
low quality, worst quality, mutated, disfigured
  1. 用 ADetailer 扩展修复人脸。装好后在设置里启用,它会自动检测人脸区域,裁剪出来单独重新生成再贴回去。装了之后我的面部崩坏率从大概 30% 降到了几乎为零。

  2. 手的问题:说实话,SD 1.5 没有完美方案。升级到 SDXL 后改善明显,再加 ADetailer 的手部检测模型,基本可用了。

问题三:参数复现不出来

有次我生成了一张构图特别满意的图,想微调提示词再来几张,结果怎么调都回不到原来那个质量。后来才明白是种子的问题。

关键操作:

  • 在 txt2img 页面把 Seed 设为 -1 之外的固定值。每次生成后 WebUI 会显示实际用的种子,点旁边的 ♻️(recycle)按钮可以直接复用。
  • 打开 "Extra" 里的 "Variation seed",让变化种子在 0 到 0.3 之间浮动,可以在保持构图的前提下产生变体。
  • 建议开启 PNG Info 功能:把生成图的拖进去,所有参数(模型、采样器、CFG、提示词)自动还原。这是 WebUI 最实用的功能之一,但我用了两周才发现。

问题四:采样器和步数怎么选

刚入门时我被几十个采样器选项搞晕了,随机试浪费了大量时间。

我的实测结论:

采样器 步数 适用场景
DPM++ 2M Karras 25-30 日常出图首选,质量稳定
Euler a 20-25 想要多变化的快速探索
DPM++ SDE Karras 25-30 细节更丰富,但速度慢
DDIM 30+ 配合 img2img 变化小的时候用

CFG scale 我固定在 6-8 之间。之前我误以为越高越“听话”,设到 15 结果颜色全部过饱和、画面发硬。这是新手最常犯的错误之一。

问题五:生成速度慢得离谱

在 3060 上,1024×1024 的 SDXL 图一张要 40 秒以上。优化手段:

  1. 确认没用 CPU 在跑。启动日志里如果看到 Device: cpu,说明 PyTorch 装的是 CPU 版。重装:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
  1. TensorRT(进阶):NVIDIA 的 TensorRT 扩展可以把 SDXL 推理速度提升接近一倍,但编译过程要 10-20 分钟,第一次配置比较折腾。建议其他都优化完再考虑。

  2. 别开多余的扩展。有段时间我装了十几个扩展,启动时间和生成速度都受影响。砍到只用 ADetailer 和 ControlNet 后明显改善。

一些额外建议

  • 备份你的配置。WebUI 升级偶尔会出问题,config.json 和 ui-config.json 记得备份,我吃过一次亏,升级后所有自定义参数丢了。
  • 模型文件放对位置。新手常犯的错误是把 checkpoint 放到根目录。.safetensors 文件要放 models/Stable-diffusion/,LoRA 放 models/Lora/。
  • 下载模型认准 .safetensors 格式,pickle 格式的 .pt/.ckpt 文件有安全风险,除非来源完全可信。
  • 提示词别堆太长。超过 75 个 token 后会被分段处理,后面词语的权重会变弱,重要内容放前面。

诚实的局限性说明

最后说点实话:Stable Diffusion 不是一个“开箱即用”的工具。上面的方案都是针对 WebUI 本地部署的,显存低于 6GB 的显卡体验会比较挣扎,Mac 用户(尤其 M 系列芯片)的配置路径和 Linux 命令跟我这里写的会有出入。

另外文生图模型的版权和商用授权问题,每个模型在 Civitai 上的许可协议都不一样,商用前一定要看清楚——这不是技术问题,但比技术问题更容易栽跟头。

总体来说,花一两天把环境调顺之后,Stable Diffusion 的工作流是稳定的。我现在的出图效率大概是初期的五倍,主要就是靠上面这些坑一个个填出来的。如果你刚起步,建议按顺序解决:先跑通、再修脸、再调参、最后才考虑速度优化。一步到位的想法往往会让你在错误的地方浪费最多时间。

相关 Agent

D

DALL-E

DALL-E 是由 OpenAI 开发的 AI 模型,能够根据文字描述生成图像。

了解更多 →