翻开任意一本绘画教学书籍,都可以发现将绘画分解成若干步骤的案例。然而,通过去噪过程完成图像生成和人类画家绘画过程完全不同,生成过程无法被直接用于绘画教学。为了解决这一问题,ProcessPainter通过在合成数据和人类画师绘画视频上训练时序模型,首次实现了让扩散模型生成绘画过程。此外,不同题材、画师、的绘画过程差异巨大,和最终结果一样蕴含独特风格。然而对绘画过程的研究很少,作者在预训练的motion model基础上,通过在特定画师的少量绘画序列上训练motion lora, 学习画师的绘画技法。
深入解读ProcessPainter的核心技术:
1.时序注意力机制(Temporal Attention)
用时序注意力学习生成绘画过程是ProcessPainter的核心创新。通过在UNet的每一层引入时序模块,模型能够学习画面之间的关联,确保绘画过程的连贯性和前后帧的一致性。
2.艺术品复制网络(Artwork Replication Network)
除了从文本生成绘画过程的功能之外,ProcessPainter还引入了艺术品复制网络(Artwork Replication Network),这一网络设计能够处理任意帧的图像输入,灵活控制绘画过程的生成。无论是将完成的艺术品逆向解构为绘画步骤,还是从半成品推演出完整的画作,这一网络都能游刃有余。
3.合成数据集与训练策略
由于真实绘画过程数据较难获取,数量不足以支持大规模训练。因此,作者尝试使用大量合成数据训练 motion model,然后用少量真实绘画数据训练motion Lora来学习特定画家的绘画技法。具体采用了三种合成数据方法,1. 采用 Learn to Paint 来产生半透明贝赛尔曲线笔触的绘画序列;2. 通过自定义笔触,用Neural style painting生成油画风格和中国画风格的绘画序列。3. 上述Stroke base painting方法是从粗到细的拟合一张目标图像, 意味着允许对于已经绘画的部分进行覆盖和修改,然而很多绘画种类,如中国画和雕刻,由于材料的限制,无法大幅度修改已经完成的部分, 绘画过程是分区域完成的。为此,我们采用SAM(segment anything) 和显著性检测方法,从空白画布逐个子区域添加内容,先绘制显著性物体, 然后逐步向背景扩散,从而合成绘画过程视频。
ProcessPainter 应用展示:
在合成数据集上训练的ProcessPainter base model 可以生成 过程上有风格差异的绘画序列。
通过在少量人类画师的绘画序列上分别训练Motion Lora, ProcessPainter 可以学习特定画师的绘画过程和风格。
指定参考图像,ProcessPainter 可以将完成的艺术品逆向解构为绘画步骤,或者从半成品推演出完整的画作。
这些技术组件的结合,让ProcessPainter不仅能够从文本生成绘画过程,还能将参考图转换成绘画序列,或是对未完成的画作进行补全。这无疑为艺术教育提供了新工具,同时也为AIGC社区开辟了新赛道。也许不久的将来,Civitai上会有各种模拟人类画师绘画过程的不同Lora出现。
更多详情,欢迎访问论文链接(阅读原文可达)和项目代码页面:
论文链接:https://arxiv.org/pdf/2406.06062
代码:https://github.com/nicolaus-huang/ProcessPainter