云端部署Stable Diffusion整合包:趋动云GPU实例实战指南
2026/7/31 4:39:25 网站建设 项目流程

1. 项目缘起:为什么要在云端部署Stable Diffusion整合包?

作为一名长期在AIGC领域折腾的开发者,我最近被一个老问题给“卡”住了:本地显卡性能捉襟见肘,跑个高分辨率图或者训练个LoRA模型,风扇狂转不说,时间成本也高得吓人。相信很多朋友都遇到过类似的情况,尤其是当你手头只有一张消费级显卡,或者干脆在用笔记本的时候。本地部署Stable Diffusion,尤其是功能齐全的整合包,对硬件的要求确实不低。

这时候,云GPU就成了一个非常诱人的选择。它能把我们从硬件的束缚中解放出来,按需使用强大的算力。在众多云GPU平台里,趋动云(VDriver Cloud)以其相对友好的定价和针对AI开发者的优化环境,进入了我的视野。而秋葉aaaki大佬的Stable Diffusion整合包,可以说是中文社区里最知名、最易用的发行版之一,集成了WebUI、大量插件和优化,开箱即用。

那么,一个很自然的想法就产生了:能不能把这两者结合起来?把秋葉整合包部署到趋动云的Linux GPU实例上,打造一个随时随地可以访问、性能强劲的“个人AI画室”?这个想法听起来很美,但实际操作起来,从云环境初始化、依赖配置到整合包适配,每一步都可能藏着坑。网上关于在趋动云上部署特定整合包的详细教程并不多,大多停留在基础环境搭建。因此,我决定把这次完整的部署过程、遇到的坑以及最终的优化方案记录下来,希望能给有同样需求的朋友铺平道路。

2. 趋动云环境准备与核心配置解析

在开始上传和运行整合包之前,我们必须先把趋动云上的“地基”打好。这个环节的配置直接决定了后续所有步骤的顺畅程度,也是与本地部署差异最大的地方。

2.1 实例规格选择:不只是看显存

登录趋动云控制台,创建新项目并进入“开发机”页面。这里的选择至关重要。对于Stable Diffusion WebUI,显存(GPU Memory)是首要考量因素。运行基础模型(如SD 1.5)生成512x512的图片,8GB显存是较为舒适的起点。如果你想玩转SDXL模型、高分辨率修复(Hires.fix)或者进行LoRA训练,那么16GB或以上的显存是必须的。

在趋动云上,你可以看到诸如“RTX 4090 (24GB)”、“RTX 3090 (24GB)”、“A100 (40/80GB)”等选项。我的建议是:

  • 入门尝鲜/轻度使用:选择RTX 3090 24GB或同级别卡。24GB显存足以应对绝大多数应用场景,性价比相对较高。
  • SDXL与高阶应用:如果预算充足,直接上A100 40GB。大显存在处理复杂工作流、多图批次生成时优势明显,能极大减少显存不足导致的崩溃。

除了GPU型号,还需要注意实例的磁盘空间。趋动云的默认系统盘大小可能只有50GB左右。秋葉整合包解压后本身就有10-20GB,再加上你后续要下载的各种基础模型、LoRA、Embedding,50GB是远远不够的。务必在创建实例时,将数据盘(比如/workspace)容量扩展到100GB以上,我强烈建议直接拉到200GB或更多,避免后续频繁清理空间的麻烦。你可以将整合包和所有模型都放在这个数据盘路径下。

2.2 系统镜像与关键环境配置

趋动云提供了多种预置的深度学习镜像。对于Stable Diffusion,我们通常选择PyTorch相关的镜像。一个常见的选择是PyTorch 2.0.1,并搭配CUDA 11.812.1的版本。秋葉的整合包v4版本通常对PyTorch 1.x和2.x都有较好的兼容性,选择较新的PyTorch 2.x镜像有利于获得更好的性能和未来插件的兼容性。

实例启动后,通过Web Terminal(JupyterLab Terminal或独立的SSH终端)进入系统。首先,我们需要进行一些基础检查与配置:

  1. 检查GPU驱动与CUDA:这是云平台的优势,通常无需我们手动安装。输入nvidia-smi命令,确认GPU被正确识别,并查看CUDA版本。输出信息会显示显卡型号、驱动版本和CUDA版本。记下这个CUDA版本(例如12.1),后续如果需要手动编译某些插件,会用到。
  2. 配置Python环境与包管理:预置镜像通常已经安装了conda或配置好了基础的Python环境。检查一下Python版本:python3 --version。Stable Diffusion WebUI推荐使用Python 3.10.x。如果版本不符,可以使用conda创建一个新的环境:
    conda create -n sdwebui python=3.10.6 conda activate sdwebui
    但请注意,秋葉整合包内通常自带了Python解释器。我们更关心的是系统层面是否有必要的编译工具。
  3. 安装系统级依赖:有些Python包(如torchvision)或WebUI的组件在安装时需要编译。确保系统已安装编译工具和必要的库:
    # 对于Ubuntu/Debian系镜像 sudo apt-get update sudo apt-get install -y build-essential git libgl1 libglib2.0-0 wget git-lfs # git-lfs 用于大模型文件(如.ckpt, .safetensors)的拉取,非常重要!
    安装git-lfs后,需要初始化:git lfs install

完成以上步骤,一个为Stable Diffusion准备好的基础Linux环境就配置好了。接下来,就是主角登场。

3. 秋葉整合包v4的部署与适配调整

秋葉整合包之所以受欢迎,就是因为它把复杂的依赖、环境变量和启动脚本都打包好了,在Windows上几乎是双击即用。但在Linux环境下,尤其是云服务器上,我们需要手动处理一些路径和权限问题。

3.1 获取与解压整合包

由于整合包体积巨大(通常超过10GB),我们不建议通过git clone(除非作者提供了仓库)。更实际的做法是:

  1. 本地下载:从秋葉大佬发布的网盘链接(如百度网盘)将整合包v4的压缩文件(通常是.7z.zip格式)下载到本地。
  2. 上传至云端:在趋动云实例的文件管理界面(JupyterLab文件浏览器),找到你的数据盘路径,例如/workspace。然后通过上传功能,将本地的整合包压缩文件上传到此目录。云服务器的上传速度通常很快。
  3. 解压:在终端中,进入上传目录进行解压。
    cd /workspace # 如果是 .7z 文件 sudo apt-get install p7zip-full -y # 如果未安装7z 7z x sd-webui-aki-v4.7z -o./sd-webui # 如果是 .zip 文件 unzip sd-webui-aki-v4.zip -d ./sd-webui
    解压后会得到一个名为sd-webui或类似的文件夹,里面就是整合包的全部内容。

3.2 核心启动脚本分析与修改

这是Linux部署的核心步骤。整合包根目录下会有一个关键的启动脚本,在Windows上是启动器.exewebui-user.bat,而在Linux下,我们需要关注的是webui.sh(如果存在),或者我们需要自己创建一个。

首先,查看整合包内是否有webui.shlaunch.py。秋葉的整合包可能主要面向Windows,Linux脚本可能不完整或需要调整。我们可以参考官方Stable Diffusion WebUI的webui.sh来修改或创建。

进入解压后的目录:

cd /workspace/sd-webui

情况一:如果存在webui.sh用文本编辑器(如nanovim)打开它,检查以下几个关键点:

  • Python路径:脚本开头可能会定义python_cmd。我们需要将其指向云实例中可用的Python。如果使用了我们前面创建的conda环境,可以修改为:
    python_cmd="conda run -n sdwebui python" # 或者直接使用conda环境中的python绝对路径,可以通过 `conda env list` 和 `which python` 在激活环境后查看
  • 启动参数:这是优化的重点。在commandline_args变量中,我们可以添加适用于服务器环境的参数。一个推荐的配置如下:
    export COMMANDLINE_ARGS="--listen --port 7860 --api --enable-insecure-extension-access --no-half-vae --xformers"
    • --listen:允许服务器监听所有网络接口,这样你才能通过公网IP访问。
    • --port 7860:指定WebUI服务的端口。
    • --api:启用API接口,方便其他程序调用。
    • --enable-insecure-extension-access:允许从任何URL安装扩展,避免权限错误。
    • --no-half-vae:禁用VAE的半精度计算,可以解决一些模型加载时的黑图问题(尤其是SDXL),代价是轻微增加显存占用。
    • --xformers:启用xformers库,可以大幅优化显存使用并提升生成速度。前提是云环境已安装xformers。趋动云的PyTorch镜像很可能已经预装了。如果没有,可以尝试在启动脚本中让WebUI自动安装(但可能失败),或者手动pip install xformers
  • 环境变量:检查是否有设置TORCH_CUDA_ARCH_LIST等环境变量的语句,一般云环境不需要改动。

情况二:如果没有webui.sh我们可以创建一个。最简单的方式是复制官方WebUI的脚本,或者自己写一个简单的。创建一个webui.sh文件:

#!/bin/bash # 激活你的conda环境(如果用了的话) # conda activate sdwebui # 设置WebUI目录 cd /workspace/sd-webui # 设置启动参数 export COMMANDLINE_ARGS="--listen --port 7860 --api --enable-insecure-extension-access --no-half-vae --xformers" # 执行启动Python脚本 python launch.py $COMMANDLINE_ARGS

然后给脚本执行权限:chmod +x webui.sh

3.3 首次启动与依赖安装

保存好启动脚本后,就可以尝试首次启动了:

./webui.sh

脚本会开始运行。它会自动检查并安装所需的Python依赖包(如torch,gradio,transformers等)。这个过程可能会比较漫长,并且完全依赖于网络状况。在云服务器上,速度通常比个人网络快很多。

关键注意事项:首次启动时,很可能会卡在安装gfpganclip等包的环节,或者下载某些模型(如sd-vae-ft-mse)时超时。这是因为默认的pip源和模型下载地址可能在国内访问较慢。

解决方案

  1. 修改pip源:在启动前,可以设置环境变量使用国内镜像源加速。你可以编辑webui.sh,在python launch.py之前添加:
    export PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
  2. 手动干预:如果脚本在某个包安装上卡死,可以按Ctrl+C中断,然后手动进入venv环境(如果整合包用了虚拟环境)或用系统python,执行pip install [包名] -i https://pypi.tuna.tsinghua.edu.cn/simple。安装完成后再次运行./webui.sh,脚本通常会跳过已安装的包。
  3. 模型下载问题:对于启动时自动下载的VAE等小模型,如果失败,可以手动从Hugging Face或国内镜像站下载,并放置到models/VAE目录下。脚本检测到本地已有文件就会跳过下载。

当终端输出类似Running on local URL: http://0.0.0.0:7860的信息时,恭喜你,WebUI服务已经启动成功了!

4. 网络访问、持久化与高级配置

服务跑起来了,但怎么访问?数据怎么保存?下次开机还要重新配置吗?这是云部署区别于本地的另一个核心。

4.1 配置公网访问与安全

在趋动云实例的控制台,找到“开发机”详情页,通常会有一个“自定义访问端口”或“访问地址”的配置区域。我们需要将实例内部的7860端口映射到公网。

  1. 添加端口映射:在控制台添加一条规则,将容器端口(或实例端口7860映射到一个公网端口(例如10086)。趋动云会自动分配一个公网域名或IP+端口。
  2. 获取访问链接:配置完成后,你会得到一个类似https://xxxx.vdriver.cloud:10086的访问地址。
  3. 安全警告:直接使用--listen参数并暴露公网端口存在安全风险,因为WebUI默认没有身份验证。强烈建议设置访问密码。修改启动参数:
    export COMMANDLINE_ARGS="--listen --port 7860 --api --enable-insecure-extension-access --no-half-vae --xformers --gradio-auth username:password"
    usernamepassword替换为你自己的用户名和密码。这样,通过公网访问时就需要输入账号密码了。

现在,你可以在世界任何地方,通过浏览器打开那个公网地址,输入密码,就能进入你的云端Stable Diffusion WebUI了。

4.2 数据持久化与模型管理

云实例的一个特点是“无状态”。如果你关闭了实例,默认情况下,对系统盘的修改(比如/root下的内容)可能会丢失。但趋动云的数据盘(如/workspace)是持久化存储的。这就是为什么一开始就强调要把所有东西放在数据盘。

  • 模型存放:将你下载的.ckpt.safetensors大模型文件,放入/workspace/sd-webui/models/Stable-diffusion/目录。
  • LoRA/Embedding存放:分别放入/workspace/sd-webui/models/Lora//workspace/sd-webui/embeddings/目录。
  • 扩展插件:通过WebUI界面安装的扩展,默认会存放在/workspace/sd-webui/extensions/下,这些数据也在持久化盘上,下次启动实例时会保留。
  • 输出图片:生成的图片默认在/workspace/sd-webui/outputs/,记得定期下载备份或清理。

一个重要的技巧:你可以修改WebUI的设置,让所有路径都指向数据盘下的自定义目录,方便统一管理。这可以通过修改webui-user.sh中的环境变量实现,但秋葉整合包的路径结构相对固定,直接使用其默认子目录即可。

4.3 性能调优与问题排查

部署完成后,为了获得最佳体验,还需要进行一些微调。

  1. 启用Xformers:如前所述,--xformers参数至关重要。如果启动日志中有关于xformers的警告或错误,可以尝试将其改为--force-enable-xformers,或者先卸载再让WebUI重装:在终端中,先停止WebUI,然后执行pip uninstall xformers -y,再重新启动./webui.sh
  2. 优化VAE:对于SD 1.5模型,使用--no-half-vae可能不是必须的,可以尝试移除以节省显存。但对于SDXL,保留这个参数更稳定。你还可以尝试在WebUI的设置 -> Stable Diffusion 页面中,将“VAE”设置为“自动”或指定一个轻量化的VAE(如vae-ft-mse-840000-ema-pruned)。
  3. 应对OOM(显存溢出):如果生成大图时崩溃,可以尝试以下启动参数:
    • --medvram--lowvram:为显存优化的模式,会牺牲一些速度。
    • --opt-split-attention:另一种显存优化。
    • 在WebUI的设置中,降低“最大分辨率”,关闭“Pad prompt/negative prompt to same length”。
  4. 查看日志:所有启动和运行中的问题,首先查看终端输出的日志。错误信息通常会明确指出是某个Python包缺失、版本冲突,还是CUDA out of memory。

5. 打造可持续的云端AI工作流

一次成功的部署只是开始。要让这个云端SD成为生产力工具,还需要考虑稳定性和效率。

创建自定义镜像:这是趋动云非常实用的一个功能。当你花费大量时间配置好一个完美的环境(包括整合包、常用模型、插件)后,可以将其保存为“自定义镜像”。下次创建新实例时,直接选择这个镜像,瞬间就能获得一个完全一样的、立即可用的环境,无需重复部署。具体操作在趋动云的控制台“镜像”页面,选择从当前实例创建即可。

自动化脚本:你可以编写一个更完善的启动脚本,包含环境检查、依赖安装、模型更新等逻辑。例如,在webui.sh中加入检查git-lfs是否安装、自动更新WebUI核心和扩展的代码(需谨慎,更新可能导致兼容性问题)。

成本控制:云GPU是按使用时长计费的。不用的时候,一定要记得停止实例。趋动云停止实例后通常只收取存储费用(数据盘的费用),这比让GPU一直空转要划算得多。你的所有数据(模型、配置、输出)都保存在持久化盘上,下次启动实例后,一切都会恢复原样。

最后,分享一个我踩过的坑:早期我将整合包放在系统盘,结果一次实例重置后所有东西都没了。所以,“数据盘是生命线”这句话请务必牢记。另外,在安装第三方扩展时,尤其是那些需要复杂Python依赖(如segment-anything)的,最好先在终端里手动pip install试试,确保能成功,再通过WebUI界面安装,这样可以更清晰地定位问题。

通过这一整套流程,你不仅获得了一个高性能的云端Stable Diffusion工作站,更重要的是掌握了一套在云平台上部署和管理复杂AI应用的方法论。无论是用于个人创作,还是作为团队共享的资源池,这种灵活、强大的模式都能极大地提升效率。下次当本地显卡再次发出哀嚎时,你可以从容地打开浏览器,连接到属于你自己的云端算力,继续你的AI创作之旅。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询