当前位置:首页|资讯|Stable Diffusion|LoRA

无原型AI动画创作方式思考,基于Blender导出Openpose骨架动作的创作方式

作者:全自动走路机发布时间:2023-05-03


     本人不是科班出身,纯粹是兴趣爱好,如有错误欢迎指正。
 
 一、常见的AI动画创作

从常见的最简单的AI动画来说,它是对原作品进行逐帧导出成图片,并使用Stable Diffusion的img2img功能,对每张图进行重新绘制,而重绘效果取决于使用的C基底的大模型以及微调的Lora模型,最多加上特定的Embedding,Hypernetwork和Dreambooth模型。

换句话说,我们可以理解成AI动画是对原视频打上了一层滤镜,这个滤镜取决于你用什么模型,调整多强的参数。

然而这种做法的缺点也很明显,是一种原视频的风格化。(例如梵高星空油画风格的任意视频)
首先,对原视频人物的保留实属不易,很容易出现我们常说的“闪烁”问题。要解决这个问题,最简单的手段就是降低重绘幅度,也就是把“滤镜”调低。然而这相应的会导致整体视频风格更偏向于原视频,达不到我们需要的风格化效果,甚至跟原视频没有太大区别。

使用一些特别的手段,例如大江户战士大佬的 BV1R54y1M7u5 中介绍的多帧渲染法(插件GitHub地址:https://github.com/OedoSoldier/enhanced-img2img);DaVinci Resolve Studio中的DeFlicker去闪烁;降低帧数并进行AI补帧。可以极大地提高重绘稳定性的同时,增加视频的风格化程度。

此外,我很推荐 @以太之尘 大佬的 BV1qT41187oT ,总结的非常详细的动画教程。


二、text2img的AI动画

Stable Diffusion或者说AI绘画之所以能够做到上述的动画过程,很大程度是因为ControlNet (https://github.com/Mikubill/sd-webui-controlnet)这个扩展的诞生。它能够做到在稳定画面部分元素(如动作骨架,画面构图)的情况下让AI进行绘画,即先把原图片中的一部分抽象出来供AI参考,就像是画画时有些人会买个参考人偶用来摆姿势一样。我们见到的比如孙悟空做出林黛玉的姿势就是这么做到的。

    题外话,ControlNet新的模型tile还能做到更离谱的,例如高清修复,对草图的完成等操作。

ControlNet中最常用的就是Openpose模型,它能够对原画面中人物的姿势进行识别,并生成相应骨架给AI参考。在AI动画时,我们会使用Openpose,Seg,Hed和Canny等模型让动画更稳定,对原视频识别更加准确,更加符合原视频贴上滤镜的感觉。

如果我们只用Openpose进行识别呢?归根结底,我们需要的只是人物的特定动作,其余都只是为了让动画更稳定的手段。但这也会限制我们对原视频的改变程度。如果我们能做到只识别出动作,配合上炼制好的人物Lora模型,能够实现稳定人物。那么,我们就能做到在没有原模型的基础上(或只有一个极其粗糙的模型)去更换为特定角色。而这只需要几十张图训练一个特定角色的Lora模型就可以实现,甚至不需要建模了。

三、我的制作流程(探索中,仅供参考

首先找到想要的动作,这一步可以通过MMD已有的Vmd动作,恋活中的动作来导入,又或者是真人视频。在这里我推荐一个MMD中常用的捕捉动作的软件ThreeDPoseTracker,它可以实现电脑连接相机进行实时动作捕捉,又或者是导入特定视频,然后识别动作,最后导出为Vmd格式。

随后,将Civitai上他人已经做好的Daz Studio 人模dazstudiog8openposerig导入到Blender中,再使用Vmd Retargeting(BV1Qb4y147Q3) 中 @显然Pro 大佬开发的Blender插件,将上一步的Vmd动作导入到模型中(也可以导入到其他Daz模型中),这时如果运气好,Openpose骨架基本就能正常动作了。如果你运气不好,就需要进行肢体缩放和参数之类的调整,这一部分我无能为力,期待之后其他更懂这方面的人写个教程。此外在这一步最好对不合理的一些动作进行修正。

最后,设置好镜头,可以使用显然Pro大佬所开发的Auto Dance Camera 2插件( BV14T411N7oF) 进行自动分镜,也可以手调。完成后进行逐帧渲染,导出Openpose骨架逐帧图。有不满意的崩坏动作得在blender那修。当然只要不是关键动作帧,懒狗做法是直接删掉后期软件补帧(


以上Blender的流程就完成了,接下来进入Stable Diffusion流程。

在Stable Diffusion中,可以掏出你练好的人物丹,Lora,Loha,Dreambooth都可以。在text2img模式中首选根据你的丹,选好模型和VAE,填好对应的正负Prompt。比如我在 BV1vL411a7JP 这个练习作中用的C站搜的Loha模型,作者就建议填上ai hoshino, animescreen cap,并给出了对应推荐的模型和VAE。

使用ControlNet,勾选启用和像素完美模式,不需要预处理,模型选择Openpose,权重建议调高(1.5以上),选择My ControlNet is more important。接下来就是抽卡环节,边修改Prompt边抽到你想要的图,抽到就记下种子。同时可以使用例如Face Editor之类的脚本进行修正。

    可以出图后对相对还算可以的图使用Tagger扩展获取Prompt描述,从而更精确出图

把满意的图放进PNG Info扩展中,把获取到的信息点Send to text2img。**在ControlNet这一步我怀疑text2img的批处理功能有BUG,批处理不会按照给定的骨架图来生成,而一张张处理就很正常**。实
在不行的话可以用MacroRecorder 这个鼠标键盘宏录制软件进行手动操作。

    这一步很可惜,要是 @大江户战士 大佬的扩展能够给多帧渲染法加入对text2img的支持就好了,能够极大地提高稳定性的同时节约人力


以上Stable Diffusion的流程完成,进入剪辑环节。

我使用的是DaVinci Resolve Studio,感觉处理起来比PR顺手。我看的是YTB上DreamBooth扩展开发作者的教程(Video to Anime),总之将图片以序列形式呈现,随后导入成视频。在效果处可以使用DeFlicker来处理频闪问题,在右侧视频处理处可以对视频进行补帧(如果你帧数太低/动作幅度太大就别选光流补帧了,果冻感太强)。

这样视频部分就做好了,接下来看你配上一些音乐之类的。

如果你有闲心,可以继续使用VITS语音模型,训练一个角色的语音模型并让其唱歌,比如我通过上面的流程,制作好 BV1vL411a7JP 视频后,再切片了星野爱对应的语音,使用Ultimate Vocal Remover分离人声和伴奏后训练模型,训练好再让其唱歌,效果也是很不错的。你们可以使用其他的MMD角色唱歌试试,或者玩些更花里胡哨的。

四、结语

这次也是第一次制作视频,才知道制作视频实属不易,尤其是探索和解决BUG的路上(顺带一提ControlNet版本是1.1.129的赶紧升级,不然img2img功能大概率报错)。不过这次主要还是以熟悉已有的各个AI工具为主。还要特别感谢ChatGPT,为不懂Python和懒狗的我在批处理文件过程中写了无数稀奇古怪但有用的小代码(比如命名和设置分辨率啥的)







Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1