最近,lvmin 带来了最新模型 Paints-UNDO。这款 AI 生成工具可以根据图片还原整个绘画过程,整个 AIGC 社区都为之震撼。
Paints-UNDO 的演示 demo。
早在 1 个月前,NUS,SJTU,Tiamat 等机构联合已经发布了一篇做类似任务的工作 ProcessPainter: Learn Painting Process from Sequence Data。Paints-UNDO 技术报告还未公布,让我们一起看看 ProcessPainter 是如何实现的吧!
- 论文标题:ProcessPainter: Learn Painting Process from Sequence Data
- 论文链接:https://arxiv.org/pdf/2406.06062
- 代码链接:https://github.com/nicolaus-huang/ProcessPainter
翻开任意一本绘画教学书籍,都能看到按照步骤画画的指导。然而,在生成式 AI 时代,通过去噪过程完成图像生成和人类画家绘画过程完全不同,AI 画画的过程无法直接用于绘画教学。
为了解决这一问题,ProcessPainter 通过在合成数据和人类画师绘画视频上训练时序模型,首次实现了让扩散模型生成绘画过程。此外,不同题材、画师的绘画过程差异巨大,风格迥异。然而,目前很少有研究将绘画过程作为研究对象。论文作者在预训练的 Motion Model 基础上,通过在特定画师的少量绘画序列上训练 Motion LoRA,学习画师的绘画技法。
深入解读 ProcessPainter 的核心技术
1. 时序注意力机制(Temporal Attention)
用时序注意力学习生成绘画过程是 ProcessPainter 的核心创新。绘画序列生成的关键是,整个序列是同一张图从抽象到具体的变化过程, 前后帧在内容和构图上是一致且相关的。为了实现这一目标,作者为 Unet 引入了来自 AnimateDiff 的时序注意模块。该模块位于每一层扩散层之后,通过帧间自注意机制来吸收不同帧的信息,确保整个序列的平滑过渡和连续性。
实验证明,该训练策略可以在帧之间保持一致的绘画效果。绘画过程生成和视频生成任务不同之处在于,绘画过程前后变化更加剧烈,首帧是完成度很低的色块或线稿,而尾帧是完整的画作,这对模型训练带来挑战。为此,论文作者先在大量合成数据集上预训练时序模块,让模型学习各种各种 SBR(Stroke-based rendering) 方法的逐步绘画过程,再用数十个艺术家的绘画过程数据训练 Painting LoRA 模型。
2. 艺术品复制网络(Artwork Replication Network)
绘画实践中,我们更希望知道一幅作品是如何画出来的,以及如何从半成品绘画继续细化以达到期待的成品效果。这就引申出了两个任务:绘画过程重建和补全。鉴于这两个任务都有图像的输入,论文作者提出了艺术品复制网络(Artwork Replication Network)。
这一网络设计能够处理任意帧的图像输入,灵活控制绘画过程的生成。与之前的可控性生成方法类似,论文作者引入一个 ControlNet 的变体,来控制生成结果中的特定帧与参考图一致。
3. 合成数据集与训练策略由于真实绘画过程数据较难获取,数量不足以支持大规模训练。为此,论文作者构建了用于预训练的合成数据集。
具体采用了三种合成数据方法:
1. 采用 Learn to Paint 来产生半透明贝赛尔曲线笔触的绘画序列; 2. 通过自定义笔触,用 Neural style painting 生成油画风格和中国画风格的绘画序列。3. 上述 SBR(Stroke base painting)方法是从粗到细的拟合一张目标图像, 意味着允许对于已经绘画的部分进行覆盖和修改,然而很多绘画种类,如中国画和雕刻,由于材料的限制,无法大幅度修改已经完成的部分, 绘画过程是分区域完成的。为此,论文作者采用 SAM(segment anything) 和显著性检测方法,从空白画布逐个子区域添加内容,先绘制显著性物体, 然后逐步向背景扩散,从而合成绘画过程视频。
在训练阶段,论文作者首先在合成数据集上预训练了 Motion Model,然后冻结了 Motion Model 的参数并训练了 Artwork Replication Network。在微调绘画 LoRA 模型时,第一步只使用最终帧来微调空间注意力 LoRA,以防止半成品绘画训练集损害模型的生成质量。
此后,论文作者冻结了空间注意力 LoRA 的参数,并使用完整的绘画序列微调时间注意力 LoRA。在推理阶段,当从文本生成绘画序列时,ProcessPainter 不使用艺术品复制网络。在绘画过程重建和补全任务中,ProcessPainter 使用艺术品复制网络接收特定帧的参考输入。为了确保生成的绘画序列中的帧尽可能与输入图像匹配,ProcessPainter 采用了 DDIM 反演技术来获取参考图像的初始噪声,并在 UNet 中替换特定帧的初始噪声。
ProcessPainter 效果展示在合成数据集上训练的 ProcessPainter base model 可以生成过程上有风格差异的绘画序列。
通过在少量人类画师的绘画序列上分别训练 Motion Lora,ProcessPainter 可以学习特定画师的绘画过程和风格。
指定参考图像,ProcessPainter 可以将完成的艺术品逆向解构为绘画步骤,或者从半成品推演出完整的画作。
这些技术组件的结合,让 ProcessPainter 不仅能够从文本生成绘画过程,还能将参考图转换成绘画序列,或是对未完成的画作进行补全。这无疑为艺术教育提供了新工具,同时也为 AIGC 社区开辟了新赛道。也许不久的将来,Civitai 上会有各种模拟人类画师绘画过程的不同 Lora 出现。