Stable Diffusion 本地部署实战指南

上周有位学员带着一张模糊的AI生成图来找我:“老师,我用在线工具生成了这张图,但放大后全是锯齿,而且每次生成都要排队半小时。”他展示了那张本应精细的赛博朋克城市夜景,却因为在线平台的压缩和延迟,变成了像素块堆砌的“马赛克艺术”。这其实是许多AIGC爱好者的共同痛点——依赖云端服务,不仅受限于算力配额、生成速度,更无法自由调整模型、插件和参数。今天,我们就用Stable Diffusion本地部署,彻底解决这些问题。

一、部署前的系统与环境准备

在动手之前,先确认你的硬件能扛住。Stable Diffusion的核心是显卡的显存与CUDA核心数。最低要求是NVIDIA显卡(4GB显存起步,建议8GB以上),AMD显卡(需ROCm支持,但兼容性稍差)。如果你用苹果M1/M2芯片,也能运行,但速度会慢30%-50%。内存建议16GB以上,硬盘预留至少50GB(模型+临时文件会吃掉20-30GB)。

1. 安装Python与Git

Stable Diffusion WebUI基于Python 3.10.6(注意版本号,3.11及以上可能报错)。从Python官网下载对应版本,安装时勾选“Add Python to PATH”。Git用于拉取仓库,从git-scm.com下载安装,一路默认即可。

2. 拉取Stable Diffusion WebUI

打开终端(Windows用PowerShell),输入:

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui

这是目前最主流的WebUI版本,版本号v1.8.0。如果你需要更稳定的旧版,可以切到`git checkout v1.6.0`,但建议用最新版,因为修复了大量bug并支持SDXL模型。

3. 安装依赖与启动

Windows用户直接双击`webui-user.bat`。首次运行会自动下载依赖包(约2GB,需科学上网)。如果遇到“torch”安装失败,手动指定CUDA版本:

pip install torch==2.1.0+cu121 torchvision==0.16.0+cu121 --index-url https://download.pytorch.org/whl/cu121

启动成功后,浏览器会自动打开`http://127.0.0.1:7860`,看到经典的“Stable Diffusion WebUI”界面,恭喜你,本地部署完成。

WebUI启动界面

二、模型选择与基础参数实战

很多学员第一次打开WebUI会懵:左侧是提示词输入框,右侧是参数面板,但“Checkpoint”下拉菜单里只有默认的`v1-5-pruned-emaonly`。这个模型是1.5版本的官方基础模型,生成质量一般。我们需��换更专业的模型。

案例1:用“二次元模型”生成动漫风格角色

从Hugging Face或Civitai下载模型。比如想要“二次元”风格,推荐`Anything V5`(v5.0版本)。下载`anything-v5-PrtRE.safetensors`(约2.2GB),放入`stable-diffusion-webui/models/Stable-diffusion/`目录。回到WebUI,点击“Checkpoint”右侧的刷新按钮,选择“anything-v5-PrtRE”。

参数设置

  • Prompt:`1girl, school uniform, blue eyes, smiling, anime style, high quality, masterpiece`
  • Negative Prompt:`lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry`
  • Sampling method:`Euler a`(动漫风格首选,速度快且细节丰富)
  • Sampling steps:20(20步即可,再多容易过拟合)
  • CFG Scale:7(控制提示词权重,7是通用值)
  • Width/Height:512×512(基础尺寸,后续可高清修复)
  • 点击“Generate”,等待10-15秒(取决于显卡)。如果显存不足(4GB),勾选“Batch size=1”并降低分辨率到384×384。生成结果应该是一个清晰、线条流畅的动漫少女。如果��部扭曲,说明模型不适合当前提示词,或需要添加“detailed face”等关键词。

    二次元角色生成结果

    案例2:用“写实模型”生成产品摄影图

    换一个写实模型,比如`Realistic Vision V5.1`(下载地址在Civitai)。替换Checkpoint后,尝试生成产品图:

  • Prompt:`product photography, a glass bottle of perfume on a wooden table, soft lighting, shallow depth of field, 8k, photorealistic`
  • Negative Prompt:`cartoon, painting, illustration, 3d, render, ugly, deformed, blurry, low quality`
  • Sampling method:`DPM++ 2M Karras`(写实风格推荐,细节更锐利)
  • Sampling steps:30(写实需要更多步数来平滑纹理)
  • CFG Scale:4.5(写实模型通常降低CFG,防止过度饱和)
  • Width/Height:768×512(产品图常用横构图)
  • 生成后,你会发现玻璃瓶的反射、木纹的质感都接近真实摄影。如果出现“玻璃瓶变形”,尝试添加“symmetrical, perfect shape”到提示词,或启用“Hires. fix”(高清修复)功能:勾选“Hires. fix”,设置Upscaler为`R-ESRGAN 4x+`,放大倍数2倍,Denoising strength 0.4。这样能修复边缘锯齿,让玻璃更通透。

    三、高级技巧:ControlNet与LoRA的联合使用

    只靠提示词和模型,很难精确控制构图。比如你想让AI生成一只“站在悬崖边的狼”,但默认结果可能狼在中间、悬崖在左边。这时需要ControlNet插件。

    1. 安装ControlNet

    在WebUI界面,点击“Extensions” -> “Available” -> 搜索“sd-webui-controlnet”,点击安装。重启WebUI后,界面下方会出现一个“ControlNet”折叠面板。打开它,点击“Enable”,然后上传一张参考图(比如手绘的狼和悬崖的线稿)。

    关键参数

  • Preprocessor:选择`Canny`(边缘检测)或`OpenPose`(姿态检测)。这里用Canny,它能提取线稿的边缘,让AI严格遵循轮廓。
  • Model:选择`control_v11p_sd15_canny`(需提前下载放入`models/ControlNet`目录)。
  • Control Weight:1.0(完全遵循控制图,降低到0.5则给AI更多自由)
  • Starting/Ending Control Step:默认0-1(全流程控制)
  • 2. 融合LoRA微调风格

    LoRA(Low-Rank Adaptation)是轻量级微调工具,可以给模型添加特定风格,比如“水墨画风格”或“特定角色脸型”。下载LoRA文件(比如`watercolor_style.safetensors`),放入`models/Lora`目录。在提示词中加入``,其中0.8是权重(0.5-1.0之间)。

    联合使用步骤
    1. 上传一张“狼的剪影线稿”到ControlNet,设置Canny预处理器。
    2. 提示词:`a wolf standing on a cliff, full body, detailed fur, dramatic sky, `
    3. 开启Hires. fix,设置放大倍数1.5倍。

    生成结果:狼的轮廓严格遵循线稿,但皮毛和背景呈现水墨渲染效果,既有控制又有创意。如果LoRA权重过高导致画面模糊,降低到0.4再试。

    ControlNet与LoRA联合生成效果

    四、性能优化与常见问题排查

    显存不足怎么办?

  • 方法1:启用“–medvram”参数。在`webui-user.bat`的`COMMANDLINE_ARGS`后添加`–medvram`(中等显存模式),4GB显存可运行512×512。
  • 方法2:使用“Tiled VAE”扩展。安装后勾选“Tiled VAE”,将大图分块处理,避免显存溢出。
  • 方法3:降低分辨率到384×384,生成后再用“Extras”页面的Upscaler放大。
  • 生成速度慢?

  • 检查是否开启了“xformers”:在参数中添加`–xformers`,能加速30%以上(仅限NVIDIA显卡)。
  • 使用“–no-half-vae”可避免VAE精度问题,但会降低速度,不推荐。
  • 总结与进阶建议

    本地部署Stable Diffusion的核心价值在于自由:你可以随意切换模型、组合插件、调整参数,甚至修改源码。从今天两个案例(动漫角色、产品摄影)和ControlNet+LoRA的高级用法,你应该已经掌握了基础到进阶的完整链路。

    进阶路径
    1. 训练自己的LoRA:用10-20张图片(比如你的宠物或产品),用`kohya_ss`工具训练专属LoRA,生成指定角色或风格。
    2. 尝试SDXL模型:下载`sd_xl_base_1.0.safetensors`(需8GB显存),生成1024×1024的高清图,细节远超1.5版本。
    3. 搭建自动化工作流:用`ComfyUI`替代WebUI,通过节点式编程实现批量生成、图像修复、视频帧处理等复杂任务。

    记住,AI绘画不是“一键生成”,而是“参数调优”的艺术。每次生成后,分析哪里不完美:是手部崩了?加入“perfect hands”到Negative Prompt;是光影不对?调整CFG Scale。保持实验精神,你的作品会越来越接近专业水准。

    常见问题 FAQ

    Q1:为什么我启动WebUI后报错“No module named ‘torch’”?
    A:通常是因为Python版本不对或pip源问题。确保你安装了Python 3.10.6,然后手动执行:`pip install torch torchvision –index-url https://download.pytorch.org/whl/cu118`(CUDA 11.8版本)。如果仍报错,检查显卡驱动是否支持CUDA(运行`nvidia-smi`查看版本)。

    Q2:生成的图片总是出现扭曲的手或脚,怎么办?
    A:这是Stable Diffusion 1.5的常见问题。可以在Negative Prompt中添加`extra fingers, missing fingers, bad anatomy, deformed hands`。更有效的方法是使用`ControlNet OpenPose`专门修正手部姿态,或安装`Hands Fix`专用LoRA模型。

    Q3:下载的模型文件(.safetensors)放到哪个文件夹?
    A:基础模型放入`models/Stable-diffusion/`,LoRA模型放入`models/Lora/`,VAE模型放入`models/VAE/`,ControlNet模型放入`models/ControlNet/`。注意文件名不能包含中文字符,否则WebUI可能无法识别。

    Q4:为什么我用了高分辨率(1024×1024)后显存溢出?
    A:8GB以下显存不建议直接生成1024×1024。先用512×512生成,然后启用Hires. fix(放大倍数2x),或使用“Tiled VAE”扩展。如果仍然溢出,降低Batch size到1,并关闭所有其他程序(包括浏览器标签页)。

    Q5:如何更新WebUI到最新版本?
    A:在`stable-diffusion-webui`目录下打开终端,执行`git pull`拉取最新代码。然后重启WebUI,它会自动检测并更新依赖。如果遇到冲突,先备份你的`models`和`outputs`文件夹,然后执行`git stash`再`git pull`。

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。