爆肝实测!NAS 部署 Stable Diffusion 超详细教程,性能榨干!
Hello 大家好,我是 David
订阅我的频道 ,分享更多 NAS 教程和资讯 ~
Stable Diffusion WebUI:
一个基于 Stable Diffusion(一款流行的开源文本生成图像模型)开发的可视化操作界面,由开发者 AUTOMATIC1111 主导开发。它将复杂的模型参数调整、图像生成流程转化为直观的网页交互形式,让普通用户无需编写代码,就能轻松使用 Stable Diffusion 生成、修改图像,同时支持丰富的扩展功能。

TIP:
跑这个 AI 绘画需要用到 N 卡独显,我使用的设备是绿联全闪+显卡扩展坞,用起来还是挺稳定方便的。

关联教程:
怎样在 Docker 里调用 NVIDIA 显卡?适用于绿联,飞牛系统!_网络存储_什么值得买
磐镭 Link S-1 显卡坞开箱:NAS 加独显瞬间变身 AI 工作站!_接口转换器_什么值得买
下载模型
首先需要下载 AI 绘画模型,可以去 Hugging Face 或者国内的模型网站下载,文件通常以 .ckpt 或 .safetensors 为后缀。
来到 Hugging Face 官网:https://huggingface.co,点击“Models”

这里我们需要的是 Text-to-Image(文生图)

根据需要选择模型,这里我就随便选择一个了

这里有模型的相关介绍和效果图片,点击“Files and versions”

鼠标滑动到下面,这个就是需要下载的模型了

这里提示需要登录,这里我就换一个模型下载了

一般不需要登录,也是可以下载的

TIP:
这个 Stable-diffusion 目录,根据实际情况自行创建。首次运行项目最好放入模型,避免应用重启或者因为网络问题自动下载失败。
将下载的模型文件放入 /models/Stable-diffusion 路径下

安装
Docker Compose
services:
sd-webui:
image: universonic/stable-diffusion-webui:full
container_name: sd-webui
command: --no-half --no-half-vae --precision full
runtime: nvidia
restart: unless-stopped
ports:
- 8080:8080
volumes:
- /volume1/docker/sd-webui/inputs:/app/stable-diffusion-webui/inputs
- /volume1/docker/sd-webui/textual_inversion_templates:/app/stable-diffusion-webui/textual_inversion_templates
- /volume1/docker/sd-webui/embeddings:/app/stable-diffusion-webui/embeddings
- /volume1/docker/sd-webui/extensions:/app/stable-diffusion-webui/extensions
- /volume1/docker/sd-webui/models:/app/stable-diffusion-webui/models
- /volume1/docker/sd-webui/localizations:/app/stable-diffusion-webui/localizations
- /volume1/docker/sd-webui/outputs:/app/stable-diffusion-webui/outputs
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE
deploy:
mode: global
placement:
constraints:
- "node.labels.iface != extern"
restart_policy:
condition: unless-stopped
resources:
reservations:
devices:
- driver: nvidia
capabilities: [gpu]
TIP:
并不是每一个映射路径都需要用到,一般来说只需要 models 和 outputs 两个就行了
参数说明(更多参数建议去看文档)
/app/stable-diffusion-webui/inputs(路径):输入图片(如图生图的原图)
/app/stable-diffusion-webui/textual_inversion_templates(路径):文本反转模板
/app/stable-diffusion-webui/embeddings(路径):嵌入模型(文本反转词模型)
/app/stable-diffusion-webui/extensions(路径):安装的扩展插件(如ControlNet)
/app/stable-diffusion-webui/models(路径):核心模型(.ckpt/.safetensors 等格式的基础模型)
/app/stable-diffusion-webui/localizations(路径):本地化语言包文件
/app/stable-diffusion-webui/outputs(路径):生成的图片输出目录
第一次启动需要下载安装一些库,需要保证有良好网络

这里我重试了好几次,安装不成功的话就关闭再打开会重新下载的

这样就说明启动成功了(但是有可能东西还没下载完)

使用
浏览器中输入 http://NAS的IP:8080 就能看到界面

先选择需要加载的模型,如果没有显示可以点击旁边的刷新按钮

TIP:
如果模型一直卡着正在加载或者选择不上,可以试试刷新网页看看,还是不行重启容器重新再试。如果模型真的加载成功,查看显卡显存会有明显占用的。

模型加载成功后,输入描述文字,点击生成

进度条再跑,说明正常运行了

如果生成这样灰色,有可能模型有问题

成功生成图片

输入更多提示词,可以看到生成图片的质量还是挺不错
{{{Victoria black maid dress}}},hair ribbon,flowers on face,{long frills dress},maid headdress,white pantyhose,Skirt pleats,blue dress bow,yellow apron dress,(full body),mary janes
默认配置生成一张图片大概需要 8s 左右,还是挺快的
1boy, multicolored hair, black robe with orange lining, black cape-cloak with orange lining, cape collar, light skin, long hair, multicolor, black hair, orange hair, flaming hair, flaming eyes, black eyes, orange pupils, slit pupils, snake eyes, glowing eyes, black metal gauntlets, gauntlets with orange lining, holding a fire whip above head, realistic, large flaming black iron crown, masterpiece, photorealistic, fantasy, hyperrealistic, fair, holding weapon, laurel crown, face visible, 1 subject, light smile, ruffled hair, snakelike eyes, black around eyes, man face
如果分辨率调整为 1080P ,8G 显存不够跑到最后直接就爆了

测试了一下图生图功能也是没问题的

扩展
这里说一下怎么样切换语言为中文,方法有很多这里只说其中一种
来到 Github,下载语言包
https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CN/archive/refs/heads/Anne.zip

解压,并把文件夹放置在 extensions 文件夹中

在 Settings 选项卡,点击 页面右上角的 Reload UI 按钮刷新扩展列表(这里应用起不来的话,重启应用)

找到 User interface 分类的 User interface 子选项

回到顶部,切换语言,点击应用保存之后重新加载界面

现在界面就是中文的了,不过我个人还是感觉英文方便

总结
这个 Stable Diffusion 还是挺有名的,了解过 AI 绘画应该都知道。部署这个说实话还是挺麻烦的,首先就是镜像比较大要下载挺久的,而且会遇到各种情况,网上也基本没有什么 Docker 部署参考的教程。对于绝大部分 Window 用户我个人还是建议下载一键懒人包(比如:绘世),这样玩 AI 绘画要更加方便。
综合推荐:⭐⭐⭐⭐(Linux 用户推荐部署)
使用体验:⭐⭐⭐⭐(保证良好网络,就不会有奇怪问题)
部署难易:⭐⭐⭐⭐(需要有一定基础)︎
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

Sevenhei
File "/app/stable-diffusion-webui/launch.py", line 48, in
main()
File "/app/stable-diffusion-webui/launch.py", line 39, in main
prepare_environment()
File "/app/stable-diffusion-webui/modules/launch_utils.py", line 387, in prepare_environment
raise RuntimeError(
RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
~/stable-diffusion-webui
这里反复复启,是那里没有设置对呢?请指教一下,感谢!
校验提示文案
Sevenhei
File "/app/stable-diffusion-webui/launch.py", line 48, in
main()
File "/app/stable-diffusion-webui/launch.py", line 39, in main
prepare_environment()
File "/app/stable-diffusion-webui/modules/launch_utils.py", line 387, in prepare_environment
raise RuntimeError(
RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
~/stable-diffusion-webui
这里反复复启,是那里没有设置对呢?请指教一下,感谢!
校验提示文案