Stable Diffusion 本地部署实战指南:从零搭建你的AI绘画工作站

“老师,我电脑配置不够,是不是就玩不了SD?”——这是我在火星人教育AIGC设计课堂上被问得最多的问题。上周有位学员小张,用一台4GB显存的老笔记本跑来问我,他试了在线版SD,但出图慢、限制多,想本地部署又怕搞不定。我让他现场跟着步骤操作,30分钟后,他已经能稳定生成第一张图了。今天,我就把这套流程拆解给你看。

一、部署前的环境准备:别急着装软件,先搞定这几步

很多新手一上来就下载Stable Diffusion WebUI,结果卡在依赖报错、显存不足或版本冲突上。本地部署不是简单的“双击安装”,而是一个系统工程。我们先解决两个核心问题:硬件门槛环境搭建

1. 硬件最低要求(实测可跑)

  • 显卡:NVIDIA GTX 1060 6GB(或同等性能以上),显存≥4GB。AMD显卡暂不推荐,因为CUDA生态更成熟。
  • 内存:16GB DDR4(建议32GB,尤其当使用ControlNet或高清修复时)。
  • 硬盘:50GB空余空间(模型文件动辄5-10GB/个)。
  • 系统:Windows 10/11 64位或Ubuntu 22.04。
  • > 注意:如果你只有4GB显存,别急着放弃。后面我会教你用`–medvram`参数优化,实测能稳定出512×512图。

    2. 必装工具清单(版本号精确)

  • Python 3.10.6:不要用3.11或3.12,太多依赖不兼容。下载地址:python.org
  • Git:用于拉取WebUI源码。Windows用户装Git for Windows 2.40+
  • CUDA 11.8:NVIDIA显卡驱动版本≥525.60.13。用`nvidia-smi`命令检查驱动版本。
  • cuDNN 8.7.0:配合CUDA 11.8使用,解压后把`bin`目录路径加到系统PATH。
  • 避坑提示:很多人装完Python后忘记勾选“Add Python to PATH”,导致终端找不到python命令。安装时务必勾选。

    Python安装勾选PATH

    二、核心部署:Stable Diffusion WebUI 安装与首次运行

    步骤1:拉取官方仓库(耗时约5分钟)

    打开终端(CMD或PowerShell),进入你想安装的目录(比如`D:\SD`),执行:

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

    如果网速慢,可以用国内镜像(如GitCode):

    git clone https://gitcode.net/gh_mirrors/stable-diffusion-webui.git
    

    步骤2:创建虚拟环境并安装依赖

    进入`stable-diffusion-webui`目录,执行:

    python -m venv venv
    venv\Scripts\activate  # Windows激活
    

    或者 Linux/mac: source venv/bin/activate

    然后安装依赖(注意:不要用`pip install -r requirements.txt`,因为官方脚本会自动处理):

    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
    

    等待约10分钟(取决于网速)。如果中途报错,大概率是网络问题,建议用`pip install -i https://pypi.tuna.tsinghua.edu.cn/simple` 临时切换清华源。

    步骤3:下载基础模型(Checkpoint)

    WebUI本身不包含模型,需要手动下载。推荐新手用 Stable Diffusion 1.5SDXL 1.0

  • SD1.5:`sd_v1-5-pruned-emaonly.ckpt`(约4GB),下载后放入`models\Stable-diffusion`文件夹。
  • SDXL 1.0:`sd_xl_base_1.0.safetensors`(约6.9GB),需同时下载`sd_xl_refiner_1.0.safetensors`。
  • 模型下载地址:Hugging Face(需要注册)或国内镜像站如`modelscope.cn`。
    注意:`.safetensors`格式比`.ckpt`更安全(无恶意代码),推荐优先使用。

    步骤4:首次启动与参数优化

    在终端(确保虚拟环境已激活)中运行:

    python webui.py --medvram --xformers --no-half-vae
    
  • `–medvram`:显存优化模式,4GB显存用户必加。
  • `–xformers`:加速注意力计算,减少显存占用。
  • `–no-half-vae`:避免VAE精度问题导致的图像噪点。
  • 启动成功后,终端会显示`Running on local URL: http://127.0.0.1:7860`,浏览器打开即可看到界面。

    WebUI首次启动界面

    三、实战案例:从“生成一张图”到“控制构图”

    很多学员卡在“为什么我生成的图跟网上教程不一样?”——因为提示词参数是核心。

    案例1:生成一张赛博朋克风格女性肖像

    目标:掌握提示词结构、采样器、CFG Scale。

    操作步骤
    1. 选择模型:在左上角下拉菜单选`sd_xl_base_1.0.safetensors`。
    2. 输入提示词
    – 正向:`(masterpiece, best quality), 1girl, cyberpunk style, neon lights, rain, city street, detailed face, intricate armor, glowing blue eyes, cinematic lighting`
    – 反向:`(worst quality, low quality:1.4), nsfw, blurry, ugly, deformed, bad anatomy`
    3. 设置参数
    – 采样器:`DPM++ 2M Karras`(速度与质量平衡)
    – 步数:30
    – CFG Scale:7.5(太高会过饱和,太低会模糊)
    – 尺寸:`768×768`(SDXL原生尺寸)
    – 种子:`-1`(随机,找到好图后固定种子微调)
    4. 点击“Generate”,等待约15-20秒(RTX 3060 12GB实测)。

    结果分析:如果人脸崩了,可以勾选`Restore Faces`(使用GFPGAN模型修复)。如果背景杂乱,尝试降低CFG到5.0。

    案例2:用ControlNet控制人物姿势

    目标:从一张参考图提取姿势,生成新角色。

    前置准备

  • 安装ControlNet扩展:在WebUI的`Extensions`标签页,点击`Available`,搜索`ControlNet`,安装后重启。
  • 下载ControlNet模型:`control_v11p_sd15_openpose.pth`(约1.4GB),放入`extensions\sd-webui-controlnet\models`文件夹。
  • 操作步骤
    1. 打开一张姿势参考图(比如一个站立的人影),拖入ControlNet面板。
    2. 勾选`Enable`,选择预处理器`OpenPose`,模型`control_v11p_sd15_openpose [c0f9d3b0]`。
    3. 在正向提示词中输入新角色的描述:`1girl, fantasy warrior, holding sword, armor, forest background, detailed`。
    4. 设置采样器为`Euler a`,步数20,CFG 6.0。
    5. 点击生成,观察角色姿势是否与参考图一致。

    常见问题:如果姿势不对,检查ControlNet的`Control Weight`(默认1.0),可以调高到1.2增强控制力。如果背景被过度干扰,降低`Control Mode`中的`Pixel Perfect`。

    ControlNet姿势控制示例

    四、总结与进阶建议

    本地部署SD的核心在于:环境匹配(Python、CUDA版本)和��数微调(显存优化、模型选择)。当你成功跑通第一张图后,下一步可以探索:

    1. LoRA训练:用20张你自己的照片,训练一个专属风格模型(推荐`kohya_ss`工具)。
    2. Tiled VAE:解决高分辨率(如2048×2048)显存不足问题。
    3. ComfyUI:节点式工作流,适合复杂任务(如多模型组合)。
    4. 模型融合:用`SuperMerger`插件将两个模型按比例混合,创造独特画风。

    最后提醒:定期更新WebUI(`git pull`)和扩展,但注意备份`models`和`outputs`文件夹。如果遇到报错,先查终端日志——90%的问题都能在`Traceback`中找到线索。

    常见问题 FAQ

    Q1:启动时报错“RuntimeError: CUDA out of memory”怎么办?
    A:显存不足。尝试:① 加`–medvram`参数;② 关闭其他占用显存的程序(如Chrome);③ 降低生成尺寸(如从768×768降到512×512);④ 使用`–lowvram`(更激进,但速度慢)。

    Q2:为什么我生成的图片全是噪点或黑色?
    A:可能是模型加载失败。检查`models\Stable-diffusion`���件夹中是否有`.ckpt`或`.safetensors`文件,且文件名不带中文。另外,确保启动时加了`–no-half-vae`。

    Q3:ControlNet插件安装后不显示?
    A:重启WebUI。如果还不显示,检查`extensions`目录下是否有`sd-webui-controlnet`文件夹。手动安装:在终端执行`git clone https://github.com/Mikubill/sd-webui-controlnet.git extensions/sd-webui-controlnet`。

    Q4:SDXL模型生成速度极慢怎么办?
    A:SDXL原生尺寸大,显存消耗高。建议:① 使用`–opt-sdp-attention`替代`–xformers`(兼容性更好);② 生成时先用512×512预览,再用高清修复(Hires. fix)放大;③ 换用SD1.5模型(速度更快)。

    Q5:如何将生成的图片保存为PNG格式?
    A:WebUI默认输出PNG。如需JPG,在`Settings` → `Saving images/grids`中设置`Image format`为`jpeg`。注意:JPG会损失细节,建议保留PNG用于后期修图。

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