Stable Diffusion XL 文生图模型结构与部署解析
一、模型文件结构解析
stable-diffusion-xl-base-1.0/ │ ├── .gitattributes # Git LFS 大文件存储配置 ├── README.md # 模型介绍与使用说明 ├── LICENSE.md # OpenRAIL++ 许可证 ├── model_index.json # 总控配置文件,定义子文件夹对应 Python 类 ├── sd_xl_base_1.0.safetensors # WebUI/ComfyUI 专用整合包 (约 6.94 GB) ├── unet/ # 核心生成网络 (UNet2DConditionModel) │ ├── config.json # 网络架构参数 │ └── diffusion_pytorch_model.safetensors # 核心权重 (约 10.3 GB) ├── vae/ # 变分自编码器 (AutoencoderKL) │ ├── config.json # 架构参数 │ └── diffusion_pytorch_model.safetensors # 权重文件 (约 335 MB) ├── text_encoder/ # 文本编码器 1 (CLIP ViT-L/14) │ ├── config.json # 架构参数 │ └── model.safetensors # 权重文件 (约 492 MB) ├── text_encoder_2/ # 文本编码器 2 (OpenCLIP ViT-bigG/14) │ ├── config.json # 架构参数 │ └── model.safetensors # 权重文件 (约 2.78 GB) ├── tokenizer/ # 分词器 1 │ ├── tokenizer_config.json # 分词配置 ├── vocab.json # 词表 ├── merges.txt # BPE 合并规则 └── special_tokens_map.json # 特殊标记 ├── tokenizer_2/ # 分词器 2 │ ├── tokenizer_config.json ├── vocab.json ├── merges.txt └── special_tokens_map.json └── scheduler/ # 噪声调度器 (EulerDiscreteScheduler) └── scheduler_config.json # 算法参数
1. 核心引导文件
model_index.json: 模型的'总指挥',告诉程序加载各个组件(如text_encoder,unet)的路径。
2. 文本理解组件 (Text Encoders)
SDXL 使用两个不同的文本编码器:
text_encoder: 对应 OpenAI CLIP ViT-L/14,提取基础语义。text_encoder_2: 对应 OpenCLIP ViT-bigG/14,提取深层风格特征。config.json&model.safetensors: 定义网络架构和存储训练后的权重参数。
3. 文本处理组件 (Tokenizers)
tokenizer&tokenizer_2: 负责将文字切分为 Token ID。包含词表 (vocab.json)、合并规则 (merges.txt) 及配置。
4. 核心生成组件 (UNet)
unet/diffusion_pytorch_model.safetensors: 最核心的文件,体积最大。负责接收 VAE 压缩的图像信息和 Text Encoder 提供的文本信息,通过去噪过程生成图像。
5. 图像压缩组件 (VAE)
vae: '翻译官'。负责将像素图片压缩为潜空间数据,并将 UNet 生成的潜空间数据解码回彩色图片。
6. 调度器 (Scheduler)
- : 决定去噪节奏(如 Euler 或 DPM 算法),影响画图速度和质量。


