使用 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 实现。生成过程需要准备一个条件图像(例如线稿图),并将其连同提示一起传递给管道。

关键控制参数

两个主要参数允许用户微调适配器的影响:

  1. adapter_conditioning_scale:控制调节效果的强度。数值越高,外部信号对输出的影响越大。
  2. 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.0TencentARC/t2i-adapter-depth-zoe-sdxl-1.0 获得。
  • OpenPose 引导:使用 TencentARC/t2i-adapter-openpose-sdxl-1.0 模型。

Sources