跳转至

Implicit Style-Content Separation using B-LoRA

会议: ECCV 2024
arXiv: 2403.14572
代码: 项目主页 (有)
领域: 图像生成
关键词: 风格迁移, LoRA, 风格-内容分离, SDXL, 图像风格化

一句话总结

提出 B-LoRA,通过分析 SDXL 架构发现仅联合训练两个特定 transformer block 的 LoRA 权重(Block 4 控制内容、Block 5 控制风格)即可隐式实现单张图片的风格-内容分离,支持风格迁移、文本风格化、一致风格生成等多种任务。

研究背景与动机

图像风格化是计算机视觉中的经典任务,需要在改变图像风格的同时保持内容。核心挑战在于风格与内容的强耦合,导致风格变换与内容保持之间存在固有权衡。

现有方法的不足:

微调方法(DreamBooth、LoRA 等):在特定图像上微调模型容易过拟合,且风格和内容纠缠在一起

两个独立 LoRA 的组合:需要分别训练风格 LoRA 和内容 LoRA,组合方式不明确(权重插值需要手动搜索系数)

ZipLoRA:提出学习混合系数来合并两个 LoRA,但每次新的风格-内容组合都需要额外优化

零样本方法(StyleAligned、IP-Adapter 等):无法明确分离风格和内容,可能出现风格图像的语义泄漏

B-LoRA 的核心发现:SDXL 架构内部天然存在风格-内容解耦——特定 transformer block 分别控制生成图像的内容和风格。利用这一性质,仅训练这两个 block 的 LoRA 权重就能实现隐式分离。

方法详解

整体框架

核心流程: 1. 分析 SDXL 的 11 个 transformer block,确定哪些 block 控制内容、哪些控制风格 2. 仅训练 Block 4\(\Delta W^4\),内容)和 Block 5\(\Delta W^5\),风格)的 LoRA 权重 3. 训练完成后,两个 B-LoRA 可作为独立组件插拔使用

关键设计

1. SDXL 架构分析

SDXL 的 UNet 包含 70 个 attention layer,分为 11 个 transformer block。其中 6 个中间 block(\(W_0^1\)\(W_0^6\))各含 10 个 attention layer。

分析方法:向某个 block 注入不同的文本 prompt \(\hat{p}\),其余 block 使用 prompt \(p\),通过 CLIP 相似度评估该 block 对内容/风格的影响:

\[\mathcal{C}(I_{\hat{p}\to i, p\to j}, \hat{p}) = sim(C_I(I_{\hat{p}\to i, p\to j}), C_T(\hat{p}))\]

对 400 对内容和风格 prompt 进行实验,结论: - Block 2 和 Block 4 主导内容(注入不同物体 prompt 可改变生成物体) - Block 5 主导颜色/风格

为什么选 Block 4 而非 Block 2?

通过 LoRA 训练对比实验发现,\(\{\Delta W^4, \Delta W^5\}\)\(\{\Delta W^2, \Delta W^5\}\) 更优: - \(\Delta W^4\) 能更好捕捉输入物体的精细细节(更深层保留更精细特征,与 Plug-and-Play 的发现一致) - \(\{\Delta W^4, \Delta W^5\}\) 的重建质量更高

2. B-LoRA 训练方案

给定单张输入图像 \(I\): - 冻结 SDXL 全部模型权重和文本编码器 - 仅优化 Block 4 和 Block 5 的 LoRA 权重 \(\Delta W^4, \Delta W^5\) - 目标是重建输入图像,使用通用 prompt "A [v]"(故意不指定内容或风格描述) - 训练结果:\(\Delta W^4\) 捕获内容\(\Delta W^5\) 捕获风格

关键优势: - 仅训练两个 block 就够——存储减少 70% - 联合训练使两个 block 各司其职——单独训练无法实现分离 - 训练 1000 步不会过拟合(普通 LoRA 通常限制 400 步以防过拟合)

3. 三种风格化应用

(a) 基于参考图像的风格迁移: - 分别训练内容图像 \(I_c\) 和风格图像 \(I_s\) 的 B-LoRA - 组合 \(\Delta W_c^4\)(内容)和 \(\Delta W_s^5\)(风格),直接插入 SDXL - 推理时使用 "A [c] in [s] style" 格式的 prompt - 无需额外优化或微调

(b) 基于文本的风格化: - 仅使用 \(\Delta W_c^4\)(内容),丢弃 \(\Delta W_c^5\) - 通过文本 prompt 指定风格,如 "oil painting"、"sketch" 等 - 因为风格和内容已分离,可以实现大胆的风格变换

(c) 一致风格生成: - 仅使用 \(\Delta W_s^5\)(风格),丢弃 \(\Delta W_s^4\) - 模型适配到特定风格,可用文本生成该风格的任意内容

损失函数 / 训练策略

采用标准 DreamBooth LoRA 训练设置:

  • 基础模型: SDXL v1.0
  • 优化器: Adam,学习率 \(5\times10^{-5}\)
  • LoRA rank: \(r=64\)
  • 训练 prompt: "A [v]"(通用占位符)
  • 训练步数: 1000 步(约 10 分钟/单图/A100)
  • 数据增强: 仅中心裁剪
  • 损失函数: 标准扩散去噪损失
\[\mathcal{L} = \mathbb{E}_{z_t, \epsilon, t}\left[\|\epsilon - \epsilon_\theta(z_t, t, c)\|_2^2\right]\]

关键:文本编码器在训练中完全冻结,避免风格-内容信息通过文本路径耦合。

实验关键数据

主实验

与其他方法的定量对比(DINO ViT-B/8 特征余弦相似度):

方法 风格得分(多图)↑ 风格得分(单图)↑ 内容得分(多图)↑ 内容得分(单图)↑
StyleDrop 0.826±0.07 0.790±0.06 0.817±0.06 0.874±0.08
StyleAligned 0.855±0.05 0.829±0.05 0.779±0.05 0.792±0.06
ZipLoRA 0.796±0.07 0.782±0.05 0.841±0.05 0.933±0.05
DB-LoRA 0.863±0.06 0.881±0.05 0.769±0.05 0.790±0.05
B-LoRA 0.863±0.06 0.881±0.05 0.769±0.05 0.790±0.05

用户研究结果(34 名参与者,1020 次投票):

对比方法 偏好 B-LoRA 的比例
vs. StyleAligned 94%
vs. ZipLoRA 91%
vs. StyleDrop 88%

消融实验

Block 选择的消融(训练不同 block 组合):

训练的 Block 重建质量 内容捕获 风格分离
\(\{W^2, W^5\}\) 次优 丢失细节 较好
\(\{W^4, W^5\}\) 保留细节

prompt 选择的影响:使用通用 prompt "A [v]" 效果最佳,显式指定内容或风格的 prompt 反而会干扰自然的风格-内容分离。

关键发现

  1. 用户研究压倒性优势:88-94% 的用户偏好 B-LoRA,远超所有对比方法
  2. ZipLoRA 的内容过拟合问题:ZipLoRA 内容得分最高但风格得分低,表明它过度拟合了内容而无法有效迁移风格
  3. 单图 vs 多图:所有方法在单图条件下内容分数上升但风格分数下降,提示过拟合;B-LoRA 因天然分离机制受此影响最小
  4. 无需额外优化:不同于 ZipLoRA 每次新组合都需额外训练,B-LoRA 的组件可直接插拔
  5. 风格化图像也可作为内容输入:B-LoRA 能从风格化图像中提取内容结构,这对其他方法是挑战

亮点与洞察

  1. 发现了 SDXL 的内在结构属性:不同 transformer block 天然具有风格-内容的功能分工,这一观察具有独立的学术价值
  2. 极简而有效的设计:不需要额外的网络、训练数据集或复杂的注入机制,简单的 LoRA + block 选择就够了
  3. 模块化和可组合性:训练一次,风格和内容 B-LoRA 可以无限次重组,无需重新训练
  4. 过拟合的反直觉:训练更长时间(1000 步 vs 普通 LoRA 的 400 步)反而效果更好,因为仅训练两个 block 天然正则化
  5. 实用价值极高:10 分钟训练,存储减少 70%,直接兼容 SDXL 生态系统

局限与展望

  1. 颜色归入风格:对象的颜色通常被编码到风格组件中,在某些情况下颜色是身份的关键部分(如红色消防车),导致身份保持不佳
  2. 背景泄漏:单张参考图的风格组件可能包含背景元素,而非仅聚焦中心物体的风格
  3. 复杂场景限制:对包含大量元素的复杂场景,内容 B-LoRA 可能无法完整捕获场景结构
  4. 仅适用 SDXL:依赖 SDXL 特定架构的 block 分布,无法直接迁移到其他扩散模型
  5. 未来可探索更细粒度的分离(结构、形状、颜色、纹理等子组件)

相关工作与启发

  • Plug-and-Play:发现深层特征控制结构、浅层控制外观,与本文的 block 分析互补
  • ZipLoRA:提出学习混合系数合并 LoRA,但需要额外优化;B-LoRA 免去了这一步骤
  • StyleAligned:通过 attention 共享实现风格一致生成,但缺乏明确的内容控制
  • Custom Diffusion:也研究了哪些层对特定属性敏感,方法论上类似
  • 启发:大型模型内部的功能分区是一个值得深入研究的方向,不仅限于风格-内容分离

评分

  • 创新性: ★★★★★ — 对 SDXL 架构的深入分析揭示了出乎意料的风格-内容分离特性
  • 实验充分度: ★★★★☆ — 用户研究强力支持,但定量评估依赖 DINO 相似度有局限
  • 写作质量: ★★★★★ — 论述逻辑清晰,可视化丰富且直观
  • 实用价值: ★★★★★ — 简单、高效、模块化,极具落地价值

相关论文