Stable Diffusion 3.5 本地私有化部署的模型下载与目录组织

文章导读
在本地或内网私有化部署 Stable Diffusion 3.5 时,最核心的问题是模型文件从哪来、下载后放在哪个目录、启动时如何让服务找到这些文件。本页围绕这个流程,给出一个可直接套用的目录组织方式和启动前校验步骤。
📋 目录
  1. A 先明确 Stable Diffusion 3.5 部署需要哪些文件
  2. B 按用途划分模型目录:权重、配置、输出分开
  3. C 启动前的环境变量与路径校验
  4. D 用日志和页面请求确认部署结果
A A

在本地或内网私有化部署 Stable Diffusion 3.5 时,最核心的问题是模型文件从哪来、下载后放在哪个目录、启动时如何让服务找到这些文件。本页围绕这个流程,给出一个可直接套用的目录组织方式和启动前校验步骤。

私有化部署 Stable Diffusion 3.5,建议先从官方渠道获取模型权重、配置文件和依赖清单,下载后按权重、配置、输出分离存放;通过环境变量或启动脚本固定模型路径,启动前校验文件存在性与权限;最后用日志中的加载提示和页面请求确认服务可用。边界:硬件和分支差异会导致参数需要结合环境调整。

先明确 Stable Diffusion 3.5 部署需要哪些文件

Stable Diffusion 3.5 的本地部署不是一个单独的可执行文件,而是由模型权重、配置文件、运行依赖和推理脚本组成的完整组件。缺少其中任何一块,启动时都可能出现“找不到模型”或“模型加载失败”。

部署前需要准备的文件,大致可以分成几类:

  • 模型权重文件:核心内容,通常是一个或多个 safetensors 或 bin 文件,保存了扩散模型的网络参数。没有这些权重,服务无法生成图片。
  • 配置文件:描述模型结构、采样器参数、tokenizer 设置或默认推理参数。一般以 YAML、JSON 或 TOML 格式存在,与权重文件配套。
  • 依赖环境:包括 Python 版本、PyTorch、diffusers 等库以及对应的依赖清单。私有化部署需要手动安装这些依赖,不能依赖在线拉取。
  • 可选组件:例如单独的 VAE 文件、文本编码器或 tokenizer 文件,如果权重包内已经包含,则不需要单独准备。

下载模型时,建议通过官方渠道获取,并核对文件哈希值。这一步可以避免下载到损坏或篡改的权重,也方便后续定位路径问题。

按用途划分模型目录:权重、配置、输出分开

很多临时部署把权重、配置、输出堆在一个目录里,导致后续升级或排查时难以区分。推荐按用途拆分成独立目录,至少把权重、配置、输出分开。

以下是一个可复用的目录结构示例:

/opt/sd3.5/
├── models/
│   ├── weights/        # 存放模型权重文件,如 *.safetensors
│   ├── config/         # 存放模型配置文件,如 *.yaml / *.json
│   └── tokenizer/      # 如有单独的 tokenizer 或文本编码器,放在这里
├── output/             # 生成的图片输出目录
├── logs/               # 服务运行日志
└── scripts/            # 启动脚本和校验脚本

路径配置时,建议使用绝对路径,避免启动目录不同导致找不到文件。例如在启动脚本中设置:

Stable Diffusion 3.5 本地私有化部署的模型下载与目录组织
export SD_MODEL_DIR=/opt/sd3.5/models/weights
export SD_CONFIG_DIR=/opt/sd3.5/models/config
export SD_OUTPUT_DIR=/opt/sd3.5/output

如果使用 diffusers 或自定义推理脚本,通常会在配置文件里写入模型路径。要让环境变量和配置文件统一,最好在启动脚本里从环境变量读取,再传入配置文件。

启动前的环境变量与路径校验

启动时最常见的错误是路径写错或目录权限不足。因此,在真正启动服务前,需要先检查当前生效的模型路径是否真实存在且可读。

环境变量的写法示例:

export SD_MODEL_DIR=/opt/sd3.5/models/weights
export SD_CONFIG_DIR=/opt/sd3.5/models/config

若使用配置文件管理路径,可以写成:

model_path: /opt/sd3.5/models/weights/model.safetensors
config_path: /opt/sd3.5/models/config/model.yaml

检查当前生效路径,可以在启动前用以下命令查看:

echo $SD_MODEL_DIR
python -c "import os; print(os.environ.get('SD_MODEL_DIR'))"

确认目录存在且文件完整:

Stable Diffusion 3.5 本地私有化部署的模型下载与目录组织
test -d "$SD_MODEL_DIR" && ls -l "$SD_MODEL_DIR"
test -f "$SD_CONFIG_DIR/model.yaml" && echo "config exists"

如果输出为空或路径不对,先修正环境变量或配置文件,再启动服务。还要确认运行用户对模型目录有读取权限,对输出目录有写入权限。

用日志和页面请求确认部署结果

服务启动成功后,日志中会出现关键状态信息。不同实现的具体文字有差异,但通常会包含以下信息:

  • 模型加载完成的提示,例如“Model loaded from ...”并给出实际加载路径。
  • 监听地址和端口,例如“Uvicorn running on http://0.0.0.0:7860”。
  • 启动完成提示,例如“Application startup complete”。

确认日志中出现了模型路径,且路径与预期一致,说明模型文件已被正确找到。

页面访问验证:在浏览器打开本机服务地址,例如 http://localhost:7860。如果能看到 Web UI 界面且不报错,说明基础服务正常。如果页面显示模型加载失败,则按日志中的路径去检查文件。

接口请求验证:可以用 curl 发送一个最简单的生成请求,确认推理链路可用。通用请求骨架:

curl -s http://localhost:7860/sdapi/v1/txt2img \
  -H "Content-Type: application/json" \
  -d '{"prompt": "test"}'

返回结果应包含生成的图片数据,或至少返回 HTTP 200 状态码。如果返回 404 或路径错误,说明服务端口或 API 路径配置不匹配,需要结合具体实现调整。