使用 T2I-Adapters 进行 SDXL 的高效可控生成
T2I-Adapter-SDXL 是一个轻量级的即插即用引导模型,允许用户在保持基础模型冻结的情况下,使用外部信号来控制 Stable Diffusion XL (SDXL) 的生成。通过将内部模型知识与外部控制信号对齐,T2I-Adapters 为实现丰富的编辑和控制效果提供了一种相比 ControlNet 计算开销更低的替代方案。
相比 ControlNet 的效率提升
与 ControlNet 相比,T2I-Adapters 在参数量和计算成本方面实现了显著降低。ControlNet 需要在每个去噪步骤中同时运行 ControlNet 和 UNet,并且涉及复制 UNet 编码器,而 T2I-Adapters 在整个去噪过程中仅需运行一次。
基于 SDXL 的控制模型的参数量和存储(fp16)对比:
| 模型类型 | 模型参数 | 存储 (fp16) |
|---|---|---|
| ControlNet-SDXL | 1251 M | 2.5 GB |
| ControlLoRA (rank 128) | 197.78 M | 396 MB |
| T2I-Adapter-SDXL | 79 M | 158 MB |
如所示,T2I-Adapter-SDXL 相比 ControlNet-SDXL 在参数量上实现了 93.69% 的降低,在存储上实现了 94% 的降低。
技术实现与训练
T2I-Adapter-SDXL 使用一个仅 79M 参数的小型适配器来驱动具有 26 亿参数的 SDXL 模型。这些模型在 LAION-Aesthetics V2 数据集的 300 万对高分辨率图像-文本对上,使用 diffusers 库进行训练。
训练配置
- 训练步骤: 20,000 到 35,000
- 批次大小: 总批次大小为 128(每个 GPU 16,通过数据并行)
- 学习率: 常数 1e-5
- 混合精度: fp16
在 Diffusers 中控制生成
与 diffusers 库的集成通过 StableDiffusionXLAdapterPipeline 实现。生成过程需要准备一个条件图像(例如线稿图),并将其连同提示一起传递给管道。
关键控制参数
两个主要参数允许用户微调适配器的影响:
adapter_conditioning_scale:控制调节效果的强度。数值越高,外部信号对输出的影响越大。adapter_conditioning_factor:决定在去噪过程中调节应用的持续时间。值为 1.0 时,适配器应用于所有时间步;值为 0.5 时,仅应用于前 50% 的步骤。
支持的调节方式
T2I-Adapter-SDXL 提供了多种不同控制信号的预训练检查点,使得多样化的图像生成工作流成为可能:
- 线稿引导:使用
TencentARC/t2i-adapter-lineart-sdxl-1.0模型。 - 草图引导:使用
TencentARC/t2i-adapter-sketch-sdxl-1.0模型。 - Canny 引导:使用
TencentARC/t2i-adapter-canny-sdxl-1.0模型。 - 深度引导:可通过
TencentARC/t2i-adapter-depth-midas-sdxl-1.0和TencentARC/t2i-adapter-depth-zoe-sdxl-1.0获得。 - OpenPose 引导:使用
TencentARC/t2i-adapter-openpose-sdxl-1.0模型。