导语|随着生图技术发展的如火如荼,生图模型的百花齐放,从图片到视频的需求越发强烈,本文将介绍视频生成相关技术如AnimateDiff,以及从文生成视频、图生视频、视频生成视频等多个角度来介绍此方面方案,抛砖引玉,大家共同进步
本文作者:venuszhang,腾讯运营开发工程师
一、视频生成方案
从图到视频多了时间上的连续性,最容易想到的方法就是把时间建模合并到生图的模型中,在基于视频数据做调参,即像训练文生图模型一样,训练视频数据,这样的方法一般代价比较大(资源和时间上),比如下面:
1. Structure and Content-Guided Video Synthesis with Diffusion Models
在架构上引入时间层及在视频和图像数据上【大规模无字幕视频数据集和配对的文本-图像数据】联合训练,将潜扩散模型到视频生成。
视频编辑是在推理阶段,根据实例图像或者文本指导下修改视频,经过训练的模型可进一步定制,微调一组图像来生成特定主体的更准确的视频。
2. Text2Live
是将给定输入图像或者视频和目标文本提示,然后编辑现有物体的外观或者增强场景具有语义意义的视觉效果。
举个例子,给已有图片/视频中主角穿衣服、戴帽子这样的操作。即生成一个编辑层,它在原始输入上进行合成。
3. Video Diffusion Models
是标准图像扩散架构的自然扩展,从图像和视频中联合训练,可用于空间和时间视频扩展的条件采样技术,可用于无条件视频生成、条件视频生成和文本条件视频生成的视频扩散模型
4. MagicVideo
基于潜扩散模型的有效文本到视频生成框架,可生成给定文本描述一致的平滑视频片段。设计点:1是逐帧轻量级adaptor,来用于图像到视频分布调整,2是有向时间注意力模块,捕获跨帧的时间依赖性。
一些动画生成效果展示:tune-a-video ,text2video-zero
5. Drag Your GAN
允许用户”拖动“任何GAN生成的图像中的任何点,指定目标点,即可让图像按照指定轨迹动起来。达到精确控制像素位置来变形图像,从而操纵姿势、形状、标签或者布局,此文引入新的点追踪方法。
重播分享赞
关闭
观看更多
更多
正在加载
正在加载
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
更新网络中全部参数,需要更多的资源,也会损失模型原有领域知识,在T2I模型中Dreambooth基于基模重新训练整个模型,而像Lora或者Controlnet这种我们比较熟知的文生图微调方法,其实在视频这种需要更多资源【计算密集型】的情况下,可能更加适用。比如下面:
1. Align-Your-Latents
在图像上预训练LDM,通过为潜空间扩散模型引入时间维度和对编码的图像序列(即视频)进行微调,将图像生成器转换为视频生成器。
此方法只需要训练时间对齐层【较小的带标题的视频训练集】,然后将训练好的时间层【时间层学会以时间一致的方法对齐图像】迁移到不同微调的文生图模型,最后完成高分辨率、长期一致的视频生成。此方法测试了512x1024真实驾驶场景视频,然后合成了几分钟长度的视频。
2. AnimateDiff
通过添加时间感知结构和从大规模视频数据集中学习合理的运动先验来扩展原有的文生图模型;所以AnimateDiff训练了通用的运动建模模块,在推理阶段应用【保持原有模型的参数】。
这种方法的话,只要不断优化运动建模模块(原文使用vanilla temporal transformer,可捕获跨时间轴同一位置的特征之间的时间以及关系)和扩充运动轨迹,那就可以获得越来越多可得即可用的,将图片动画化的模型【也说明了目前模型的局限性,不过是可迭代性的很好的思路】。下面的部分介绍,均是基于AnimateDiff的。
二、实验环境前提
接下来实际操作环境使用的是Stable Diffusion WebUI(以下简称WebUI)和ComfyUI两种服务。
2. 对于ComfyUI一键复现效果,基于在线编码ComfyUI服务,只需要load(加载)对应json文件,然后选择对应的模型,调整参数(可选),然后点击Queue Prompt即提交了一次生成任务,等待结果生成即可复现效果~
三、文生视频3.1. 简单Prompt+AnimateDiff动态模块1. WebUI 上效果:
输入Prompt,enable AnimateDiff,点击生成,下面是此结果的LightDiffusionFlow文件 :
重播分享赞
关闭
观看更多
更多
正在加载
正在加载
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
2. ComFyUI效果:
操作指引:打开ComfyUI服务,只需要load(加载)此Workflow json 文件,然后选择对应的模型,调整参数(可选),然后点击Queue Prompt即提交了一次生成任务,即可以直接复现;
重播分享赞
关闭
观看更多
更多
正在加载
正在加载
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
3.2. 增加Motion LoRA
增加Motion Lora文件,可以产生camera movement(类似视频编辑软件里面常见的入场/出场动画那种),这里选了<lora:v2_lora_PanLeft:0.75>,会产生一种背景往右移的感觉(对应相机往左平移),调整lora比重,可以优化背景效果。
下面是此视频结果的LightDiffusionFlow文件 :
重播分享赞
关闭
观看更多
更多
正在加载
正在加载
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
重播分享赞
关闭
观看更多
更多
正在加载
正在加载
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
3.3. 增加Prompt travel
最上面这段Prompt被叫做Promptprefix,最后一行的Prompt叫做prompt suffix;他们被添加到Prompt的开头和结尾(你不用重复写,一个怎样的女孩,刚开始干嘛,后面怎么转换,最后怎么ending),然后中间1和8代表第1帧和第8帧,刚开始smile,后面arm over head
1. 对于WebUI来说已经直接集成了Prompt travel功能可以直接用,更多可通过链接了解:animatediff-cli-prompt-travel
可以直接复现效果的LightDiffusionFlow文件。
重播分享赞
关闭
观看更多
更多
正在加载
正在加载
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
2. 对应ComfyUI来说,在下面video2video也会有一个对应利用Prompt travel的案例可直接复现,更多了解可通过ComfyUI_FizzNodes
四、图生视频4.1. WebUI方案
图生视频的方案一:你指定视频中最初和最终的图片(可以生成某个角色不同动作下的图片,当做开始和结尾图片,也可以从其他地方下载的图片),然后用img2img的页面,直接可生成,同时你还可以利用前面Motion Lora来增加运动。
这里需要多调节才可以生成比较好的效果,从下面截图可以看出其过程,可以直接复现效果的LightDiffusionFlow文件
重播分享赞
关闭
观看更多
更多
正在加载
正在加载
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
方案二:基于Depth深度插件:stable-diffusion-webui-depthmap-
重播分享赞
关闭
观看更多
更多
正在加载
正在加载
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
方案三:SadTalker ,基于图像生成视频并带配音的
下面是生成效果演示(记得戴上耳机~):
重播分享赞
关闭
观看更多
更多
正在加载
正在加载
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
4.2. ComfyUI方案
可以一键复现的Workflow:img2video
重播分享赞
关闭
观看更多
更多
正在加载
正在加载
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
五、视频生成视频5.1. Controlnet方案1. WebUI使用
对比之前基于ControlNet-M2M生成的视频生成:【随机闪烁比较严重,需要在Prompt上做比较精细的限制来改善这种结果】
2. ComfyUI使用
1. 通过骨骼图生成视频,可以直接复现的Workflow:girl_dance_workflow
2. 通过视频直接生成视频,可以直接复现的Workflow:girl_dance_workflow
六、如何快速制作动画短片?
目前关于AI视频制作方法越发成熟,也有越来越多的人在做尝试,前段时间比较火的《遥远地球之歌 》是北大AI学者陈刘芳1个人在20小时内完成。
其流程包括剧本构想、分镜场景、图片生成、动态视频片段生成、配音与BGM合成、剪辑和后期,通过Runway Gen-2生成视频、Midjourney生成图片来完成整个过程。
对于动画师来说,AI工具可以更好的协助其工作,对于小白来说,有了可以尝试的机会,赶紧来尝试制作你自己的动画吧~~