本节课学习如何将真人视频转动漫。先来看看最终效果(字幕我简单处理了一下,有一点没去掉,大家可以自选工具去字幕)
真人视频
动漫视频
真人转动漫有以下步骤:
-
抽帧
-
抽关键帧
-
将每个关键帧帧图片转成动漫
-
脚本
-
生成ebs文件
-
补齐关键帧之间的帧
-
合并帧成视频
一、抽帧
我们使用Ebsynth Utility
工具来转绘,首先将视频放到一个目录下,目录路径不能有中文,只能有字母数字。
选择Ebsynth Utility
, 在project setting
中配置工程目录,以及视频路径,在configuration
的etc
的mask mode
选择none
通常网上的教程Mask Mode不会选择none, 因为需要生成人物蒙版,后期只对人物进行转绘,不修改背景,这样可以最大限度保证背景的稳定。但我们这里抽帧时,不生成蒙版,因为生成蒙版,WEBUI会去下载一些算法,比较慢,我们采用另外一种更加轻便的方式,后面会讲。
配置好后,右边的project stage选择step 1,然后点击生成,等待完成。当生成按钮出现如下提示时,说明抽帧完成。
我们会发现在工程目录/resource
下多一个文件夹"video_frame",这个文件就是对原视频抽帧的结果,一共有454帧,因为原视频15s,每秒30帧,所以会抽出454张图片
二、抽关键帧
关键帧是什么?为什么要抽关键帧?
15s视频就抽出454帧,可见1分钟的视频的话就会有1816帧,如果一帧一帧去转绘的话,耗时会非常久,我12G的显卡,转绘一张图片需要1分钟左右,如果转绘1分钟视频就需要30个小时左右,可见是非常耗时的。所以需要抽出关键帧,只对这些关键帧转绘。
在configuration
中点击step2
, 一般最小关键帧gap
、最大关键帧gap
保持默认值即可 ,如果视频中人物动作变化很频繁,可以减少最小关键帧gap。
我这里保持默认值10,也就是每隔10帧抽一帧出来。右侧选择step2
,点击生成,结果会在工程目录下又多出一个文件夹“video_key”,当然如果发现抽出的帧中人物动作有虚影,也可以手工替换成相邻的帧。
三、转绘
步骤3就是转绘,但不在Ebsynth Utility
中完成,需要在图生图中完成。
1. 选择动漫大模型
如果有XL动漫大模型,可以选择XL的,转绘效果会更好一些
2. 选择一帧,反推提示词,并进行调整,去掉一些特定图片的动作、表情或风格。比如我的视频某一帧反推的结果是
realistic, 1girl, dress, double hair bun, solo, black hair, female child, looking at viewer, child, teeth, standing, indoors
需要删除其中的现实,看向观众,牙齿等词,因为我们要做的是动漫,不是现实,而且视频中人物也不是都面向观众和露出牙齿的,所以删减之后提示词是
1girl,cute,dress,double hair bun,solo,black hair,female child,child,indoors,
3. 选择图生图,上传一帧图片
4. 点击图中的三角尺,将生成图片的宽高设置为原图片的宽高
5. 关键步骤到啦,启动AD修脸,选择跳过图生图(这一步非常重要),选择person_yolovs-seg.pt这种人物全身检查模型,这样就会跳过图生图,只重绘AD检测出来的人形区域
6. 采样算法选择Euler a, 生成图片更平滑一些,重绘幅度不能太大,一般0.4以下,迭代步数,我设置的是50.为什么是50步,因为重绘幅度是0.4,如果迭代步数是20步的话,其实只会跑8步,所以迭代频数要设置为50步,这样其实才是相当于原来的20步
7. 设置controlNet
启用controlNet, 不要使用独立的控制图片,因为后面我们会批量跑图,直接使用上方上传的图像做为输入即可。选择OpenPose
,预处理器选择dw_openpose
,这款处理器识别人物姿势会更好,模型默认即可
8. 点击生成按钮,可以看到AD将人物的身体框起来了,只会重绘人物部分
四、脚本
1. 如果觉得单张图片转绘的还不错,就可以在脚本中选择ebsynth utility
2. 按照下图设置,因为我们没有深度图像,也没有预处理图像,我们使用的是controlNet控制的
3. 此处还有一处设置,在WEBUI ControlNet选项中,选上允许其他脚本对此扩展插件进行控制
4. 点击生成按钮,开始批量转绘,看到如下图所示进度条,说明正在将关键帧转绘中,等待好可
5. 我经过了四十多分钟的等待,转绘完成,项目目录又会多出两个文件夹,一个是controlNet输入的文件夹,其实就是关键帧,另外一个是图生图转绘的结果,也就是关键帧转成动漫的结果
五、生成ebs文件
关键帧转绘完成后,直接选择step 5
, step 3.5
步的作用是,如果发现转绘后的图片色调不对,可以再次上传图片更改,一般不用。setp 4
的作用是放大图片,这里我们直接生成和原图一样的图片,所以不需要放大。所以选择step 5
, 点击生成,就会生成4个ebs文件
六、补帧
我们需要下载一个EbSynth
绿色工具,打开后,将第一个ebs文件拖入其中,工具会自动读取信息,由于我们没有使用蒙版,点击on,变成off,最后点击RUN ALL. 同时,我们可以打开多个窗口,同时跑这四个ebs文件。放心,不会爆显存,最多就是时间长点。
补帧的结果就是会在工程目录生成如下文件夹,每个文件夹就是一关键帧,文件夹中的内容是补齐的帧
七、合并帧成视频
回到SD WEBUI, 配置默认值即可,选择step 7
, 点击生成,看到如下日志,代表生成成功。会生成两个mp4文件,一个是没有声音的,方便配音,另外一个带原视频声音,至此转绘完成。如果还需要调整,可以结合视频编辑软件调整。