首页 域名注册 帮助中心 新闻中心 关于我们

GPU服务器部署Stable Diffusion AI绘画完整教程:从0到1搭建专属AI绘画平台

上个月帮一个做电商的朋友搞AI作图,他自己家的电脑是RTX3060 12G,跑SD一张512x768的图要40多秒,训练个LoRA模型要跑一整晚,电脑还不能干别的,开个浏览器都卡。我给他开了台LuckVM的RTX4090 24G GPU服务器,同样的图2秒出,训练LoRA速度快了8倍,而且不占本地资源,随时开随时用。

很多人觉得云GPU部署Stable Diffusion很复杂,其实现在有Docker镜像,10分钟就能搭好,不需要懂复杂的环境配置。这篇文章我从选配置、部署环境、装WebUI、装插件、优化性能到常见问题排查,一步步带你搞定,全程复制命令就行,小白也能跟着做。

本文适配所有带NVIDIA显卡的Linux服务器,推荐Ubuntu 22.04系统,RTX3090/4090/A10显卡均可,显存≥10G即可流畅运行SD WebUI。

一、先选对配置:不同需求对应什么GPU?

选GPU服务器最核心的指标是显存大小,其次才是显卡性能。Stable Diffusion跑不同的功能对显存要求差很多,先搞清楚你要干嘛再选配置,别乱花钱买贵的,也别贪便宜买不够用的。

GPU配置对比卡片
图1:不同需求对应的GPU配置对比
档位 显卡配置 显存 月付价格(参考) 适用场景
入门体验 RTX3090 24G $59/月 日常出图、512-1024分辨率、少量LoRA训练、个人使用
专业创作 RTX4090 24G $89/月 高清出图(2048+)、ControlNet多模型同时开、批量出图、快速LoRA训练
企业商用 A10 24G $139/月 多人同时使用、API接口服务、大规模模型训练、7x24稳定运行
重度训练 A100 40/80G $299/月起 训练大模型、大规模批量生成、企业级AI服务
避坑提醒:别买共享GPU的实例,显存和性能都会被其他人抢占,跑图的时候速度忽快忽慢,训练模型很容易中途崩溃。一定要选独享GPU的服务器,显卡整个给你一个人用,性能稳定。LuckVM所有GPU节点都是独享显卡,不超售。

最低配置要求:显存≥10G(比如RTX3080 10G),内存≥16G,磁盘≥50G NVMe SSD,带宽≥10M(下载模型需要大带宽)。低于这个配置跑起来会很卡,不推荐。

二、环境准备:10分钟装好驱动和Docker

推荐用Ubuntu 22.04 LTS系统,兼容性最好,下面所有命令都是基于Ubuntu 22.04的,其他发行版命令可能略有不同。

步骤1:连接服务器

买好服务器后,用SSH连接,默认用户root,端口22,密码在控制台可以看到。Windows用户用Putty或者FinalShell,Mac/Linux直接终端ssh命令连就行。

ssh root@你的服务器IP

步骤2:安装NVIDIA驱动

这一步最容易出问题,直接用Ubuntu官方源的驱动就行,别去官网下载.run包手动装,很容易装坏。

# 更新源 apt update apt upgrade -y # 安装NVIDIA驱动535版本(稳定版,兼容CUDA12.2) apt install nvidia-driver-535 -y # 重启服务器 reboot

重启后重新连接服务器,输入下面的命令验证驱动是否安装成功:

nvidia-smi

如果出现类似下面的输出,显示你的显卡型号、显存大小、驱动版本,就说明装好了:

nvidia-smi输出截图
图2:nvidia-smi显示显卡信息,驱动安装成功
重要提醒:安装驱动前别装CUDA!驱动已经包含了对应版本的CUDA,单独装CUDA很容易版本冲突。如果nvidia-smi报错,先执行apt purge nvidia-*把旧驱动删干净,再重新装。

步骤3:安装Docker和NVIDIA容器工具包

我们用Docker部署,不用自己配Python、PyTorch环境,一键搞定所有依赖:

# 安装Docker curl -fsSL https://get.docker.com | bash # 安装NVIDIA容器工具包,让Docker能调用GPU curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | tee /etc/apt/sources.list.d/nvidia-container-toolkit.list apt update apt install nvidia-container-toolkit -y # 重启Docker服务 systemctl restart docker

验证Docker GPU是否正常:

docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi

如果能正常显示显卡信息,说明环境全部配好了。

三、Docker一键部署Stable Diffusion WebUI

我们用最流行的AUTOMATIC1111版本的Stable Diffusion WebUI,功能最全、插件最多、社区最活跃。现在有现成的Docker镜像,一行命令就能启动。

步骤1:创建数据目录

模型、生成的图片、配置都存在宿主机目录里,就算容器删了数据也不会丢:

mkdir -p /data/sd/{models,outputs,config,extensions} cd /data/sd

步骤2:一条命令启动SD WebUI

docker run -d \ --name sd-webui \ --gpus all \ -p 7860:7860 \ -v /data/sd/models:/stable-diffusion-webui/models \ -v /data/sd/outputs:/stable-diffusion-webui/outputs \ -v /data/sd/extensions:/stable-diffusion-webui/extensions \ -v /data/sd/config:/stable-diffusion-webui/config \ --restart always \ siutin/stable-diffusion-webui-docker:latest \ --xformers \ --listen \ --port 7860 \ --enable-insecure-extension-access \ --no-half-vae

参数解释:

  • --gpus all:调用所有GPU
  • -p 7860:7860:映射7860端口,WebUI默认用这个端口
  • -v:把容器里的目录挂载到宿主机,数据持久化
  • --restart always:服务器重启后自动启动SD
  • --xformers:启用xformers加速,大幅降低显存占用、提升速度
  • --listen:允许外部IP访问

启动后等1-2分钟镜像下载完成,再等30秒左右服务启动,在浏览器输入 http://你的服务器IP:7860 就能看到WebUI界面了:

Docker启动SD终端
图3:Docker启动成功,正在下载镜像和模型
SD WebUI主界面
图4:Stable Diffusion WebUI主界面,部署完成
防火墙放行:如果访问不了7860端口,记得在服务器防火墙和云平台安全组里放行7860端口(TCP)。LuckVM控制台可视化安全组里点一下添加就行,不用敲命令。

四、必装插件推荐

刚装好的WebUI是基础版,装几个插件体验直接翻倍,在WebUI的"扩展"→"从URL安装"里输入插件地址安装就行,装完重启WebUI生效。

插件名称 作用 安装地址
ControlNet 控制人物姿势、线稿上色、构图固定,AI绘画必备神器 https://github.com/Mikubill/sd-webui-controlnet
中文语言包 把界面翻译成中文,新手友好 https://github.com/VinsonLaro/stable-diffusion-webui-chinese
LoRA模型管理器 可视化管理所有LoRA模型,预览图、分类、一键启用 https://github.com/liasece/sd-webui-lora-block-weight
高清修复插件 一键放大图片、修复细节,比自带的高清修复效果更好 https://github.com/0x3EF2/sd-webui-upscaler
Tag自动补全 写提示词的时候自动补全Danbooru标签,不用死记硬背 https://github.com/DominikDoom/a1111-sd-webui-tagcomplete

五、模型下载与管理

刚装好的SD默认只有一个很小的测试模型,出图效果很差,你需要自己下载大模型(Checkpoint)和LoRA模型。

常用模型下载网站

  • C站(Civitai):https://civitai.com ,全球最大的SD模型站,各种风格的大模型、LoRA、VAE都有,免费下载
  • HF站(Hugging Face):https://huggingface.co ,官方模型、大公司发布的模型基本都在这
  • 魔搭社区:https://modelscope.cn ,国内的模型站,下载速度快

模型存放路径

模型类型 存放路径 后缀名
大模型(Checkpoint) /data/sd/models/Stable-diffusion .safetensors / .ckpt
LoRA模型 /data/sd/models/Lora .safetensors
VAE模型 /data/sd/models/VAE .safetensors
ControlNet模型 /data/sd/models/ControlNet .pth / .safetensors

推荐新手先下这几个通用模型,足够用很久:

  • Realistic Vision:写实人像、真实场景最好用的模型之一
  • Anything V5:二次元、动漫风格首选
  • Deliberate:通用模型,写实和插画都能出,容错率高
  • Counterfeit V3:日系动漫风格,出图质量很高
模型管理界面
图5:模型管理界面,下载好的模型会自动显示在这里

六、性能优化:让出图速度快2-3倍

默认配置已经能用了,改几个参数可以让速度快很多,显存占用还更低:

  1. 开启xformers:启动参数里已经加了--xformers,能降低30-50%显存占用,速度提升20%左右
  2. 关闭不必要的功能:不用的时候把ControlNet关掉,不要同时开多个ControlNet模型
  3. 设置合适的分辨率:新手先从512x768/768x512开始,出图满意了再用高清修复放大,不要一开始就生成2048以上的大图,很容易爆显存
  4. 批量出图:批量生成4-8张图比一张一张生成快,因为模型不用反复加载
  5. 用--medvram-sdxl参数:如果跑SDXL模型爆显存,在启动命令最后加--medvram-sdxl,会优化显存占用,只是速度稍慢一点
不同显卡出图速度对比
图6:不同GPU生成1张512x768图的平均速度对比,RTX4090比3090快近1倍

七、常见问题排查

Q1:启动后访问IP:7860打不开怎么办?
先检查:1)服务器安全组/防火墙有没有放行7860端口;2)docker ps看看容器是不是在运行,没运行的话docker logs sd-webui看报错日志;3)启动参数有没有加--listen。
Q2:生成图的时候提示CUDA out of memory爆显存怎么办?
1)确认启动参数加了--xformers;2)降低生成分辨率,不要超过1024x1024;3)把"批次大小"设为1,"单批数量"可以调大;4)跑SDXL的话加--medvram-sdxl启动参数;5)如果还是爆,说明显存真不够,换更大显存的显卡。
Q3:模型下载太慢怎么办?
1)用国内的模型站比如魔搭社区下载;2)在服务器上用wget/axel多线程下载,比本地下载再传上去快很多;3)LuckVM服务器是100M带宽,下载国外模型速度一般能到5-10MB/s,大部分模型几分钟就能下完。
Q4:怎么更新WebUI到最新版本?
docker pull siutin/stable-diffusion-webui-docker:latest 拉取最新镜像,然后删掉旧容器重新run就行,数据都存在挂载目录里,不会丢。
Q5:能不能多人同时用?
可以,RTX4090 24G支持3-5个人同时用没问题,A10可以支持5-10人同时用。人多的话建议加--api参数开放API接口,配合前端页面给多人使用。
Q6:生成的图片存在哪里?
存在服务器的/data/sd/outputs目录里,可以直接在WebUI里下载,也可以用sftp/scp下载到本地。
Q7:训练LoRA需要什么配置?
训练LoRA显存至少16G,推荐RTX3090/4090 24G,训练一个LoRA模型大概需要10-30分钟,速度比本地显卡快5-10倍。
重要:不要用SD做违法违规内容,生成涉政、涉黄、侵权内容会导致服务器被封,且责任由使用者自行承担。

八、命令速查表

操作 命令
查看SD运行状态 docker ps
查看SD日志 docker logs -f sd-webui
重启SD docker restart sd-webui
停止SD docker stop sd-webui
更新SD镜像 docker pull siutin/stable-diffusion-webui-docker:latest
查看显卡使用情况 nvidia-smi 或者 watch -n 1 nvidia-smi 实时监控
进入容器内部 docker exec -it sd-webui bash
本地vs云GPU成本对比
图7:本地买显卡vs云GPU成本对比,短期使用云GPU划算很多

九、总结

用云GPU部署Stable Diffusion其实比你想象的简单很多,全程下来10-20分钟就能搞定,不用折腾复杂的Python环境、不用怕把本地电脑搞坏,速度还比大部分家用显卡快很多。

如果你只是偶尔用一下,或者想体验一下AI绘画,不用花几万块买RTX4090显卡,租个月付的GPU服务器,随时用随时开,不用了随时删,成本低很多。LuckVM的RTX4090 GPU节点目前公测首月8折,24G独享显存、100M带宽、NVMe SSD,部署完直接就能用,7天无理由退款,想试试的可以去官网看看。