【论文阅读】Image Referenced Sketch Colorization Based on Animation Creation Workflow

intro

动机:解决空间纠缠的问题。参考图上色通常是:输入线稿/草图(sketch)+ 一张参考彩色图(reference),希望输出的颜色/材质"像参考图",但结构/布局"像线稿"。困难在于:reference 的图像特征(尤其是 ViT/CLIP 的 token)天然带有布局、大小、对象共现等语义,当 reference 是"只有角色的立绘/大头照"时,这些语义很容易"越权",导致模型在背景里也"长出角色碎片/衣服/头发纹理",或者把角色配色污染到背景------这就是空间纠缠。

论文:让模型在注意力层面做"前景/背景分治"。


总体框架:一个"带参考 token 的 LDM",但把 Cross-Attention 改造了。

backbone 是 latent diffusion(VAE latent 空间里做 U-Net 去噪),用 OpenCLIP 的 ViT 从参考图抽取 local tokens 当作 reference embeddings,通过 cross-attention 注入到 U-Net。

关键创新:把 cross-attention 分裂成前景一套、背景一套,并且用 LoRA 让这两套参数轻量可训练。


method

前景/背景掩码用开源的动画图像分割工具自动抽取:

  • 线稿的前景 mask:ms

  • 参考图的前景 mask:mr

然后设阈值 tss,tsr 把像素判成前景/背景(大于阈值为前景)。等于告诉模型"哪些位置属于角色(foreground),哪些位置属于背景(background)"。


Split Cross-Attention

(真正的"分治"发生在注意力里)

传统 cross-attention 里,某个位置的特征 z 通过同一套 Wq,Wk,Wv去和同一套参考 embeddings 做注意力。

论文把它改成:同一层注意力里,前景位置走前景分支,背景位置走背景分支

  • 前景分支:用 前景 LoRA 参数 + 参考图整体 embeddings e=ϕ(r)

  • 背景分支:用 背景 LoRA 参数 + 背景 embeddings eb

并且在训练时,按线稿 mask 做条件分流:

这里 W^=Wpretrained+WLoRA,也就是说原始预训练权重冻结,训练的只是 LoRA 增量

直觉上会觉得:"把背景区域裁出来提 embedding 不就完了?"------论文说不行。

原因是:前景/背景纹理、色调、细节分布差异很大 ,直接把背景 embeddings 生硬塞进背景分支,会导致结构保持/画面质量/风格化都变差。于是它加了一个可训练的 recovery transformer φ,专门"修复/适配"背景 embeddings:

  • e=ϕ(r) 来自整张 reference

  • eb=φ(ϕ(rb)),其中 rb 是 reference 的背景区域

也就是:背景不是"裁出来就用",而是"裁出来 → 过 recovery transformer 再用"。


Switchable inference mode

论文没有死板地要求"必须分割+必须双分支"。它设计了三种推理模式,按使用场景切换:

  1. Vanilla:只用预训练 cross-attention(不开 LoRA、不用 recovery transformer)

    • 适用:大多数普通情况

    • 弱点:reference 是"纯角色图"时容易空间纠缠

  2. Bg2Fig:只开"前景 LoRA"(背景主要靠模型自己生成)

    • 适用:reference 背景很复杂、语义很乱,或者你根本不想抄 reference 背景,只想抄角色配色

    • 这模式在角色上色上优于 Vanilla;背景生成上往往比 Fig2Fig 更自然(因为没被强行用背景 embeddings 约束)。

  3. Fig2Fig:前景+背景 LoRA 全开 + recovery transformer,全程 mask 引导做严格分治

    • 适用:figure-to-figure(参考图是角色图且背景简单)

    • 优点:最能消灭空间纠缠

    • 代价:对于需要"补画/大面积空白"的情况,mask 外区域可能因为缺少参考信息而表现不如另外两种。


LoRA 的规模设置(为什么它说"轻量",但背景 LoRA 其实不小)

论文明确给了 LoRA rank 的策略:

  • 前景 LoRA rank 固定 16

  • 背景 LoRA rank = 0.5×min⁡(Dq,Dkv)(比前景大得多)

直观解释:背景风格/纹理空间更大、变化更多,给更大的低秩容量;角色颜色更"可控",rank 16 已经够用。


experiment

  • 数据:Danbooru2021 ,构成 (sketch, color, mask) 三元组

    • 训练集:4.8M 三元组

    • 验证集:52,000 三元组(与训练集互斥)

  • 训练日程:

    1. 先训练 U-Net + sketch encoder 6 epochs

    2. 冻结 backbone,再训练 recovery transformer + switchable LoRAs 3 epochs

  • 参考输入 dropout:至少 50% reference 被丢弃(用于缓解训练/推理参考不匹配带来的偏移)

相关推荐
李加号pluuuus21 小时前
MangaNinja: Line Art Colorization with Precise Reference Following
扩散模型
R.X. NLOS2 天前
知识点1:DDPM数学原理及理解
大模型·大厂面试·扩散模型·ddpm·数学原理
scott1985126 天前
DIFIX3D+: Improving 3D Reconstructions with Single-Step Diffusion Models
人工智能·计算机视觉·扩散模型·生成式
AI生成未来8 天前
复刻“黑客帝国”子弹时间!SpaceTimePilot:视频变可操控4D游戏,倒放/变速/运镜随你掌控
人工智能·aigc·扩散模型·视频生成
盼小辉丶10 天前
PyTorch生成式人工智能(30)——扩散模型(Diffusion Model)
pytorch·深度学习·生成模型·扩散模型
这张生成的图像能检测吗1 个月前
Wonder3D: 跨域扩散的单图像3D重建技术
pytorch·深度学习·机器学习·计算机视觉·3d·三维重建·扩散模型
海边夕阳20061 个月前
【每天一个AI小知识】:什么是扩散模型?
人工智能·经验分享·深度学习·机器学习·扩散模型
Echo_NGC22371 个月前
【DDPM 扩散模型】Part 7:最后总结!Denoising Diffusion Probabilistic Models论文全维度详解
人工智能·深度学习·神经网络·扩散模型·ddpm·高斯噪声
豆芽8191 个月前
计算机视觉:异常检测(paper with code汇总更新中)
人工智能·神经网络·计算机视觉·视觉检测·扩散模型