动画制作流程中,许多环节带有劳动密集型产业的色彩:重复枯燥、没有技术含量,上色便是其中最具代表性的一环。对于一部预算中等,一集长达24分钟的动画,需要绘制将近4000-6000张原动画,这些画面的上色工作往往通过发包下请,由大量的上色人员(50-100人)手动完成。上色人员在拿到色见本、人物设定等必要参考后,结合画面中的色彩指示对线稿进行上色作业。这一过程漫长且重复、拿油漆桶能够倒得怀疑人生。索性AI技术的发展能够有希望让这一过程实现自动化。
(资料图片仅供参考)
2023年AIGC井喷式的增长让所有人都对AI技术刮目相看,以StableDiffusion、Midjourney为代表的Diffusion大模型成为了各大游戏公司、电商平台用于“降本增效”所青睐的潜力对象。AIGC在静态插画生成领域中的应用如火如荼,这一技术是否能够迁移到动画的辅助制作中,成为了一部分动画人和AI研究者所思考的问题,于是、在动画上色方面,我们能很自然地想到一个问题:
AI是否已经足够聪明到能够自动对动画进行上色了呢?
先说结论:尽管StableDiffusion(SD)已经在插画绘制、插画上色上做到惟妙惟肖,但对于动画来说,AI距离那个终极目标还难以望人工队的项背。
日前、B站上已经有UP主开始了各种AI辅助自动上色的尝试
通过训练LoRA的形式、我们可以在StableDiffusion的底模上学习一个人物模型,让AI学习到想要上色的人物特征(比如服装、头发颜色),然后通过ControlNet把没有上色的线稿传递给模型,然后让AI模型在线稿上绘制出带有人物特征的图像,如此实现对线稿的自动上色。
为了实现这一流程,我们首先需要对一部分的原画(不少于20张)进行手动上色,然后将这一部分的数据作为用于训练LoRA的数据集。虽然在这过程中,手动上色是必不可少的,但是在画面比较复杂的情况下(比如京紫),AI上色所带来的速度优势人工无法睥睨,当然,这一切的前提是:AI能够按照我们期望的样子正确上色。如果因为AI不够可靠导致需要返工人为手动上色、那么就得不偿失了。
那么,目前AI上色能做到什么什么程度呢?我在书记舞的原画线稿(模拟)上进行了初步的尝试,测试了多种底模和ckpt,进行了一定的tag优化调试,以下是目前能够达到的效果:
虽然人物部位的线条关系在大部分的生成图像中正确,但是当查看细节时,SD的效果就变得惨不忍睹:不仅色彩不稳定,时常出现偏色和漏色,最重要的是,原画的线稿被严重改变了。原先粗细均匀的二值原画线稿被SD转换成了高频信号缺失的线条,这种上色是绝对不可能被接受的。
在UP主@天鸣大人的这这段演示中,他使用了SD制作了一段较为流畅的AI动画。背景美术由SD制作,角色上色采用SD+LoRA的形式,但与书记舞不同的是,UP主展示出来的效果较为理想,上色正确,线条准确。推测一方面是由于UP主角色细节较为简单,颜色单一、线条明显,另一方面,UP主可能用了其他的技术对画面进行了稳定。如果有机会的话,日后可以尝试和这位UP主沟通,看看能不能讨论实现上的技术的细节~
AI技术用于辅助动画制作的原则是实现与传统动画制作流程的完美结合(而不是改变动画制作流程),让动画人更快速、方便、自由地创作作品。举个例子,在自动上色的场景中,一个理想的AI自动上色技术应该做到以下三点:
给定色见本、色彩设计、人物设定和色彩指定,自动实现对原画线稿准确快速地上色。
生成的图像要像人工上色一样可以方便人工进行更改,意味着最好是能够按照区块进行上色,同一个区块里面的RGB值是完全一样的。
绝不改变原有的原画线稿。
而不是:
输入脚本和分镜,让AI自动生成分镜、人物设定,然后自动完成原画、动着、最好是直接把整个动画给做好。
当然,AI动画不会止步于此,随着StableDiffusion的改进版SDXL的发布,AIGC大模型的真正价值才显露出冰山一角。况且,AI并不只有AIGC,传统的AI技术(相较于大模型而言)同样在不断发展寻找AI辅助动画制作的出路。
由于笔者能力有限,使用SD的经验难免有不足之处,如果有建议欢迎联系笔者交流讨论(一起写论文..)以下是用于训练SD和LoRA的参数,仅供参考:
prompt:
<lora:fujibara_ori_tags_resized:1>, fujibara, 1girl, best quality, white background, pink hair, black dress, high quality, fine_details, ultra_quality
Negative prompt:
bad face, bad anatomy, bad proportions, bad perspective, multiple views, concept art, reference sheet, mutated hands and fingers, interlocked fingers, twisted fingers, excessively bent fingers, more than five fingers, lowres, bad hands, text, error, missing fingers, extra digits, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name, low quality lowres, multiple breasts, low quality low res mutated hands and fingers, more than two arms, more than two hands, more than two legs, more than two feet, low quality low res long body, low quality lowres mutation poorly drawn, bad anatomy, liquid body, liquid tongue, disfigured, malformed, mutated, anatamical nonsense, text font UI, malformed hands, long neck, nsfw
---LoRA---
底模型: - AnyLoRA
batchsize: 1
repeat: 20
epoch: 20
总步数: 32 x 20 x 10 / 1 = 6400
Mixed precision: fp16
learning rate: 1e-4
text encoder learning rate: 1e-5
unet learning rate: 1e-4
lr scheduler: cosine
optimizer: AdamW8bit
network rank dimension: 128
network alpha: 64
max resolution: 512,512
Keep n tokens: 0
Clip skip: 1
Shuffle caption: no
---img2img---
crop and resize
sampling method: DPM++ 2M Karras
sampling steps: 20
width: 768
height: 512
CFG Scale: 8
Denoising strength:
---controlnet---
controlnet unit 0
control type: canny
preprocessor: invert(from white bg & black line)
Model: control_sd15_canny[fef5e48e]
control weight:
starting control step: 0
ending control step: 1
preprocessor resolution: 512
balanced
crop and resize: 768x512
pixel perfect: no
以上。