话不多说,直接开干。
基本办法
首要经过 Temporal-Kit 这个插件提取视频中的关键帧图片,然后运用 Stable Diffusion WebUI 重绘关键帧图片,然后再运用 Temporal-Kit 处理转化后的关键帧图片,它会主动补充关键帧之间的图片,最后拼合这些图片,形成视频。
这种办法建议尽量找些布景简单的、主体在画面中占比较大且动作改变较慢的,这样重绘时生成的图片元素会比较安稳、主体动作联接到位,作用会好一些。
装置TemporalKit
办法一
在Stable Diffusion WebUI中经过网址装置,顺次打开“扩展插件”-“从网址装置”页签,输入Github库房地址: github.com/CiaraStrawb… ,然后点击“装置”,装置成功后会看到一个重启的提示,然后在“已装置”页签中重启就能够了。如下图所示:
重启SD后会在一级菜单中看到 Temporal-Kit 页签。
假如没有看到,请检查控制台是否有错误日志。我这儿出现了找不到模块的错误:
ModuleNotFoundError: No module named ‘moviepy’
ModuleNotFoundError: No module named ‘scenedetect’
这是由于Temporal-Kit依赖的某些Python包不存在,运用pip装置它们就行了。
source /root/stable-diffusion-webui/venv/bin/activate
pip install moviepy
pip install scenedetect
留意我这儿运用了 source xxx/activate,这是由于我的Stable Diffusion WebUI运转在一个Python虚拟环境中,假如你的也是,需求先激活这个虚拟环境,留意修改成你自己的文件途径,然后把包装置到这个虚拟环境中才能够找到它们。
装置完这些依赖包后,重启SD,正常情况下应该就能出来了。假如还不行,请留言说明问题。
办法二
不能直接拜访Github,比如拜访不了外网,能够把这个插件下载后,再放到SD WebUI的扩展插件目录中。
这个插件的下载地址:github.com/CiaraStrawb…
假如你拜访Github不方便,也能够关注我的公/众/号:萤火遛AI(yinghuo6ai),发消息:视频风格转化,即可获取下载地址。
把插件解压后,放到你的SD WebUI的extensions目录中,就像下面图片中这样:
提取关键帧
为什么要提取关键帧?提取关键帧便是把视频中动作改变比较大的画面转成图片,下一步便是对这些图片进行重绘。假如不提取关键帧,而是把视频的每一帧都重绘,一是工作量大,二是重绘的每张图片或许都有点不一样,画面或许闪耀比较严重。
在SD WebUI的主页签中找到 Temporal-Kit,点击打开。然后接着点击“Pre-Processing”,在视频区域这儿上传待处理的视频,这是我从抖音上截取的一段(文章最后会供给这个视频的下载地址)。不要马上点击“运转”,还有一些设置,请继续看下文。
在视频下方能够看到这些设置,这些都是针对提取图片的设置:
Sides:生成的1张图片的边包括几张视频帧。假如是2就代表4个视频帧,也便是 22;假如是3就代表9个视频帧,也便是 33;最小设置为1,也便是1张图包括1个视频帧。这个要结合后边的 Height Resolution一同设置。
Height Resolution:生成图片的高度的像素值,建议是:视频的高度 * Sides ,比如我这个视频是 1080720,单个视频帧的高度便是720,可是前边Sides设置的2,所以便是7202=1440。可是这个公式不是肯定的,你也能够写个720,或许写个2048。这个值需求考虑显卡的功能,假如显卡不太行,不要设置的太高。
frames per keyframe:多少视频帧抽取一个关键帧。
fps:视频每秒包括几帧,在电脑上检查视频概况一般能够获取到。
Target Folder:关键帧图片的输出方位,实际会输出到这个目录下创建的一个input文件夹,后续各种处理的中心文件都在这个文件夹下,相当于一个项目目录,所以建议为每个视频的不同处理创建不同的文件夹。留意假如是云端,这儿需求是服务器上的目录。
Batch Settings:由于咱们这儿需求处理整个视频,所以需求把这个Batch Run勾选上。
参数设置完毕之后,点击页面右侧的“运转”。
关键帧图片都被提取后,图像这个区域会显示提取的首张图片,咱们也能够在文件目录中看到提取的图片。这儿以AutoDL的JupyterLab为例。
然后咱们就能够点击“图生图”进入下一步了。
转化风格
在上一步点击“图生图”之后,页面就跳转到“图生图”了,而且主动带过来了首张图片。
咱们需求挑选一个模型,填写一些提示词。我这儿挑选了一个动漫模型:toonyou。你能够依据自己的需求决定用什么模型。
这儿的贴出来我的提示词,方便复制。
提示词:a man, epic scene, a poster, flat color,
反向提示词: easy_negative,beard
然后是一些参数设置,我们依据实际情况来吧,作用欠好就调整下。
留意两点:
- 图片的宽高:这是从提取关键帧的页面带过来的,假如数字太大,建议先调小一点,然后再用超分高清化扩大。
- 重绘强度:不要太大,防止重绘的图片相互之间改变太大,欠好联接,出来的视频会比较闪耀。
这儿一般还需求ControlNet来控一下图,防止重绘的改变太大,也是为了安稳画面。我这儿挑选的是Tile模型,我们也能够试下SoftEdge、Canny、Lineart等绘线的模型。
然后便是抽卡了,不断的生成图片,直到你满足。
留意记录下满足图片的生成种子,马上就要用到批量生成中。
将图生图切换到“批量处理”,填写两个目录:
- 输入目录:提取关键帧过程中输出图片的目录。
- 输出目录:重绘图片的保存目录,固定值output,填上就行了。
把满足图片的生成种子填写到这儿,网上很多教程说到这个,可是不要希望重绘后的每张图片中的元素都能保持一致,由于视频帧的每张图片都是不一样的,一个种子很难安稳输出图片中的各种元素,我们能够自己体会下。
最后便是点击“生成”按钮,等待批处理完成。
在图片输出区域的下方看到这句话,基本就处理完成了。WebUI的进展有时候更新不及时,我们留意看控制台或许shell的输出。
组成视频
现在进入激动人心的视频组成环节了,这一步需求回到 Temporal-Kit 页面。
批量改换
点击“Batch-Warp”,进入批量改换页面。
在Input Folder中填写完整的项目目录,留意不是 output 目录,也不是 input 目录,是它们的上级目录。
然后点击“read_last_settings”,它会加载源视频和相关参数。留意这儿的“output resolution”是需求手动设置的,默认1024,建议改成源视频的分辨率,以保持一致。其它参数运用主动加载的就行了。
最后点击“run”,开启视频组成。
这个视频组成的原理是依据关键帧生成中心的序列帧,然后又拼合起来生成视频,能够在result这个目录中看到中心生成的这些图片。
5秒的视频,AutoDL上的A5000显卡大概需求10分钟左右,组成成功后会在 Batch-Warp 页面的右侧展示视频,能够直接播映,也能够下载。
生成的视频中人物活动的时候有些影子,感觉是补帧的作用不太好。
这儿组成的视频默认是没有声响的,咱们能够在剪映APP中把原视频的声响组成进来,看我这个作用:
www.aliyundrive.com/s/SPzP5crKJ…
单张改换
Temporal-Kit还供给了一个“Temporal-Warp”的工具,实测它能够完成单张重绘图片转视频,一个很短的小视频。我测验的时候,这个办法需求从头提取关键帧,而且Sides挑选1,也便是1张图片一个关键帧,有兴趣的能够试试。
结合EBSynth组成视频
这个生成视频的质量比本文的办法要好一些,不过过程比较冗杂,下一篇专门介绍。
资源下载
本文介绍的相关模型、插件和素材,我们能够依照文中说到的办法自行下载装置,也能够经过运用我收集好的,办法是关注公/众/号:萤火遛AI(yinghuo6ai),回复:视频风格转化,即可获取下载地址。
以上便是本文的主要内容,感谢阅读。