成年男女做羞羞视频网站,视频制作软件手机版,著名营销成功案例,怎样找回网站备案密码AIGC专栏15——CogVideoX-Fun详解 支持图文生视频 拓展CogVideoX到256#xff5e;1024任意分辨率生成 学习前言项目特点生成效果相关地址汇总源码下载地址 CogVideoX-Fun详解技术储备Diffusion Transformer (DiT)Stable Diffusion 3EasyAnimate-I2V 算法细节算法组成InPa… AIGC专栏15——CogVideoX-Fun详解 支持图文生视频 拓展CogVideoX到2561024任意分辨率生成 学习前言项目特点生成效果相关地址汇总源码下载地址 CogVideoX-Fun详解技术储备Diffusion Transformer (DiT)Stable Diffusion 3EasyAnimate-I2V 算法细节算法组成InPaint模型基于Token长度的模型训练Resize 3D Embedding 项目使用项目启动文生视频图生视频视频生视频 学习前言
这段时间正在训练EasyAnimateV4.5发现总有一些问题解决不了开始怀疑是自己的训练框架有问题。
恰逢清华开源了CogVideoX这是个很优秀的文生视频模型可惜没有图生视频还固定了分辨率于是试着将CogVideo修改到我们的框架中发现其实效果还不错。
项目特点
支持 图 和 文 生视频支持 首尾图 生成视频最大支持720p 49帧视频生成无限长视频生成数据处理到训练完整pipeline代码开源。
生成效果
CogVideoX-Fun的生成效果如下分别支持图生视频和文生视频。与EasyAnimate类似通过图生视频的能力我们还可以进行视频续写生成无限长视频。 相关地址汇总
源码下载地址
https://github.com/aigc-apps/CogVideoX-Fun
感谢大家的关注。
CogVideoX-Fun详解
技术储备
Diffusion Transformer (DiT)
DiT基于扩散模型所以不免包含不断去噪的过程如果是图生图的话还有不断加噪的过程此时离不开DDPM那张老图如下 DiT相比于DDPM使用了更快的采样器也使用了更大的分辨率与Stable Diffusion一样使用了隐空间的扩散但可能更偏研究性质一些没有使用非常大的数据集进行预训练只使用了imagenet进行预训练。
与Stable Diffusion不同的是DiT的网络结构完全由Transformer组成没有Unet中大量的上下采样结构更为简单清晰。
Stable Diffusion 3
在2024年3月Stability AI发布了Stable Diffusion 3Stable Diffusion 3一个模型系列参数量从 800M 到 8B 不等。相比于过去的Stable DiffusionStable Diffusion 3的生图质量更高且更符合人类偏好。
Stable Diffusion 3做了多改进比如文本信息注入的方式DiT模型在最初引入文本时通常使用Cross Attention的方法结合文本信息如Pixart-α、hunyuan DiT等。Stable Diffusion 3通过Self-Attention引入文本信息。相比于Cross Attention使用Self-Attention引入文本信息不仅节省了Cross Attention的参数量还节省了Cross Attention的计算量。
Stable Diffusion 3还引入了RMS-Norm。在每一个attention运算之前对Q和K进行了RMS-Norm归一化用于增强模型训练的稳定性。
同时使用了更大的VQGANVQGAN压缩得到的特征维度从原来的4维提升到16维等。
EasyAnimate-I2V 在EasyAnimate中需要重建的部分和重建的参考图分别通过VAE进行编码上图黑色的部分代表需要重建的部分白色的部分代表首图然后和随机初始化的latent进行concat假设我们期待生成一个384x672x144的视频此时的初始latent就是4x36x48x84需要重建的部分和重建的参考图编码后也是4x36x48x84三个向量concat到一起后便是12x36x48x84传入DiT模型中进行噪声预测。
这样模型就可以知道视频的哪些部分需要重建通过inpaint的方式实现图生视频。
算法细节
算法组成
我们使用了CogVideoX作为基础模型并在此基础上重新训练。
在CogVideoX-FUN中我们基于CogVideoX在大约1.2m的数据上进行了训练支持图片与视频预测支持像素值从512x512x49、768x768x49、1024x1024x49与不同纵横比的视频生成。另外我们支持图像到视频的生成与视频到视频的重建。
引入InPaint模型实现图生视频功能可以通过首尾图指定视频生成。基于Token长度的模型训练。达成不同大小多分辨率在同一模型中的实现。
InPaint模型 我们以CogVideoX作为基础结构参考EasyAnimate进行图生视频的模型训练。
在进行视频生成的时候将参考视频使用VAE进行encode上图黑色的部分代表需要重建的部分白色的部分代表首图与噪声Latents一起堆叠后输入到Transformer中进行视频生成。
我们对被Mask的区域进行3D Resize直接Resize到需要重建的视频的画布大小。
然后将Latent、Encode后的参考视频、被Mask的区域concat后输入到DiT中进行噪声预测。获得最终的视频。
基于Token长度的模型训练
我们收集了大约高质量的1.2m数据进行CogVideoX-Fun的训练。
在进行训练时我们根据不同Token长度对视频进行缩放后进行训练。整个训练过程分为三个阶段每个阶段的13312对应512x512x49的视频29952对应768x768x49的视频53248对应1024x1024x49的视频。
以CogVideoX-Fun-2B为例子其中
13312阶段Batch size为128训练步数为7k29952阶段Batch size为256训练步数为6.5k。53248阶段Batch size为128训练步数为5k。
训练时我们采用高低分辨率结合训练因此模型支持从512到1280任意分辨率的视频生成以13312 token长度为例
在512x512分辨率下视频帧数为49在768x768分辨率下视频帧数为21在1024x1024分辨率下视频帧数为9 这些分辨率与对应长度混合训练模型可以完成不同大小分辨率的视频生成。
Resize 3D Embedding
在适配CogVideoX-2B到CogVideoX-Fun框架的途中发现源码是以截断的方式去得到3D Embedding的这样的方式只能适配单一分辨率当分辨率发生变化时Embedding也应当发生变化。 参考Pixart-Sigma我们采用positional embeddings Interpolation对3D embedding进行Resizepositional embeddings Interpolation相比于直接生成cos sin的embedding更易收敛。
项目使用
项目启动
推荐在docker中使用CogVideoX-Fun
# pull image
docker pull mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easycv/torch_cuda:cogvideox_fun# enter image
docker run -it -p 7860:7860 --network host --gpus all --security-opt seccomp:unconfined --shm-size 200g mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easycv/torch_cuda:cogvideox_fun# clone code
git clone https://github.com/aigc-apps/CogVideoX-Fun.git# enter CogVideoX-Funs dir
cd CogVideoX-Fun# download weights
mkdir models/Diffusion_Transformer
mkdir models/Personalized_Modelwget https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/cogvideox_fun/Diffusion_Transformer/CogVideoX-Fun-2b-InP.tar.gz -O models/Diffusion_Transformer/CogVideoX-Fun-2b-InP.tar.gzcd models/Diffusion_Transformer/
tar -xvf CogVideoX-Fun-2b-InP.tar.gz
cd ../../python app.py到这里已经可以打开gradio网站了。
文生视频
首先进入gradio网站。选择对应的预训练模型如models/Diffusion_Transformer/EasyAnimateV3-XL-2-InP-512x512。然后在下方填写提示词。 然后调整视频高宽和生成帧数最后进行生成
图生视频 图生视频与文生视频有两个不同点
1、需要指定参考图2、指定与参考图类似的高宽
CogVideoX-Fun的ui已经提供了自适应的按钮Resize to the Start Image打开后可以自动根据输入的首图调整高宽。
视频生视频
视频生视频与文生视频有两个不同点
1、需要指定参考视频2、指定与参考视频类似的高宽
CogVideoX-Fun的ui已经提供了自适应的按钮Resize to the Start Image打开后可以自动根据输入的视频调整高宽。