一、简介
该项目展示了 Bilibili 为动漫世界带来的礼物——Index-AniSora,最强大的开源动漫视频生成模型。 它支持一键创建多种动漫风格的视频片段,包括系列剧集、中国原创动画、漫画改编、VTuber 内容、动漫 PV、鬼畜动画等! 由我们被 IJCAI'25 接受的工作 AniSora: 探索天空时代动画视频生成的前沿提供支持。
1.摘要
动画在最近的影视行业中引起了极大的兴趣。尽管像 Sora、Kling 和 CogVideoX 这样的先进视频生成模型在生成自然视频方面取得了成功,但在处理动画视频时却缺乏同样的效果。由于其独特的艺术风格、违反物理定律以及夸张的动作,评估动画视频生成也是一个巨大的挑战。在本文中,我们介绍了一个全面的系统 AniSora ,专为动画视频生成设计,包括一个数据处理流水线、一个可控生成模型和一个评估数据集。该系统由超过 10M 高质量数据支持的数据处理流水线支撑,生成模型包含时空掩码模块,以促进关键动画制作功能,如图像到视频生成、帧插值和局部图像引导动画。我们还收集了一个包含 948 个不同动画视频的评估基准,在 VBench 和人类双盲测试中的评估表明角色和动作的一致性达到了动画视频生成的最先进水平。
2.方法
Index-anisora 的概述如下所示:
特点:
- 我们开发了一个全面的视频处理系统,显著增强了视频生成的预处理。
- 我们提出了一种统一的框架,专为动画视频生成设计,包含时空掩码模块,能够执行图像到视频生成、帧插值和局部图像引导动画等任务。
- 我们发布了一个专门用于评估动画视频生成的基准数据集。
3.评估
Vbench 上的评估结果:
方法 | 动态平滑度 | 动态评分 | 美学质量 | 成像质量 | I2V 主体 | I2V 背景 | 整体一致性 | 主体一致性 |
---|---|---|---|---|---|---|---|---|
Opensora-Plan(V1.3) | 99.13 | 76.45 | 53.21 | 65.11 | 93.53 | 94.71 | 21.67 | 88.86 |
Opensora(V1.2) | 98.78 | 73.62 | 54.30 | 68.44 | 93.15 | 91.09 | 22.68 | 87.71 |
Vidu | 97.71 | 77.51 | 53.68 | 69.23 | 92.25 | 93.06 | 20.87 | 88.27 |
Covideo(5B-V1) | 97.67 | 71.47 | 54.87 | 68.16 | 90.68 | 91.79 | 21.87 | 90.29 |
MiniMax | 99.20 | 66.53 | 54.56 | 71.67 | 95.95 | 95.42 | 21.82 | 93.62 |
AniSora | 99.34 | 45.59 | 54.31 | 70.58 | 97.52 | 95.04 | 21.15 | 96.99 |
AniSora-K | 99.12 | 59.49 | 53.76 | 68.68 | 95.13 | 93.36 | 21.13 | 94.61 |
AniSora-I | 99.31 | 54.96 | 54.67 | 68.98 | 94.16 | 92.38 | 20.47 | 95.75 |
GT | 98.72 | 56.05 | 52.70 | 70.50 | 96.02 | 95.03 | 21.29 | 94.37 |
在 AniSora-Benchmark 上的评估结果:
方法 | 人工评估 | 视觉平滑度 | 视觉动态 | 视觉吸引力 | 文本-视频一致性 | 图像-视频一致性 | 角色一致性 |
---|---|---|---|---|---|---|---|
Vidu-1.5 | 60.98 | 55.37 | 78.95 | 50.68 | 60.71 | 66.85 | 82.57 |
Opensora-V1.2 | 41.10 | 22.28 | 74.90 | 22.62 | 52.19 | 55.67 | 74.76 |
Opensora-Plan-V1.3 | 46.14 | 35.08 | 77.47 | 36.14 | 56.19 | 59.42 | 81.19 |
CogVideoX-5B-V1 | 53.29 | 39.91 | 73.07 | 39.59 | 67.98 | 65.49 | 83.07 |
MiniMax-I2V01 | 69.63 | 69.38 | 68.05 | 70.34 | 76.14 | 78.74 | 89.47 |
AniSora (我们的) | 70.13 | 71.47 | 47.94 | 64.44 | 72.92 | 81.54 | 94.54 |
AniSora (插值平均) | - | 70.78 | 53.02 | 64.41 | 73.56 | 80.62 | 91.59 |
AniSora (关键帧插值) | - | 70.03 | 58.10 | 64.57 | 74.57 | 80.78 | 91.98 |
AniSora (关键帧插值) | - | 70.03 | 58.10 | 64.57 | 74.57 | 80.78 | 91.98 |
GT | - | 92.20 | 58.27 | 89.72 | 92.51 | 94.69 | 95.08 |
二、本地部署
环境 | 版本 |
---|---|
Python | >=3.10 |
PyTorch | =2.4.0 |
Ubtuntu | =22.4.0 |
注意:本次部署的Index-AniSora是他的AniSoraV1.0版本,这个版本需要4张4090显卡
注意:本次部署的Index-AniSora是他的AniSoraV1.0版本,这个版本需要4张4090显卡
注意:本次部署的Index-AniSora是他的AniSoraV1.0版本,这个版本需要4张4090显卡
1.创建虚拟环境
1.1 安装 Miniconda
步骤 1:更新系统
首先,更新您的系统软件包:
sudo apt update
sudo apt upgrade -y
步骤 2:下载 Miniconda 安装脚本
访问 Miniconda 的官方网站或使用以下命令直接下载最新版本的安装脚本(以 Python 3 为例):
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
步骤 3:验证安装脚本的完整性(可选)
下载 SHA256 校验和文件并验证安装包的完整性:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh.sha256
sha256sum Miniconda3-latest-Linux-x86_64.sh
比较输出的校验和与.sha256 文件中的值是否一致,确保文件未被篡改。
步骤 4:运行安装脚本
为安装脚本添加执行权限:
chmod +x Miniconda3-latest-Linux-x86_64.sh
运行安装脚本:
./Miniconda3-latest-Linux-x86_64.sh
步骤 5:按照提示完成安装
安装过程中,您需要:
阅读许可协议 :按 Enter 键逐页阅读,或者按 Q 退出阅读。
接受许可协议 :输入 yes 并按 Enter。
选择安装路径 :默认路径为/home/您的用户名/miniconda3,直接按 Enter 即可,或输入自定义路径。
是否初始化 Miniconda :输入 yes 将 Miniconda 添加到您的 PATH 环境变量中。
步骤 6:激活 Miniconda 环境
安装完成后,使环境变量生效:
source ~/.bashrc
步骤 7:验证安装是否成功
检查 conda 版本:
conda --version
步骤 8:更新 conda(推荐)
为了获得最新功能和修复,更新 conda:
conda update conda
1.2.创建虚拟环境
conda create -n ani python==3.10
2.克隆仓库
git clone https://github.com/bilibili/Index-anisora.git
3.下载依赖
#进入AniSoraV1.0的项目文件夹内
cd Index-anisora/anisoraV1_infer/
#启动虚拟环境
conda activate ani
#下载依赖(下载依赖时请看下方的requirements.txt的修改)
pip install -r requirements.txt
有requirements.txt中的pyav包的名字出错,会导致安装失败,需要改为av,如下图:
4.下载模型
模型大概需要40GB,请注意是否有足够的空间
4.1.创建模型文件夹
在/Index-anisora/anisoraV1_infer/文件下创建模型文件夹
#进入项目文件
cd /Index-anisora/anisoraV1_infer/
#创建文件
mkdir pretrained_models
mkdir ckpt
4.2.下载模型
魔搭社区下载
请从 HuggingFace 或 ModelScope 下载 text_encoder 和 VAE 并放入 。./pretrained_models/
模型网址:Index-anisora · 模型库
注意:需要将模型文件中的CogVideoX_VAE_T5这个文件夹里的所有内容全部下载到 pretrained_models
#安装modelscope
pip install modelscope
#下载模型
modelscope download --model bilibili-index/Index-anisora /CogVideoX_VAE_T5/t5-v1_1-xxl_new/added_tokens.json --local_dir /Index-anisora/anisoraV1_infer/pretrained_models
#下载videokl_ch16_long_20w.pt
modelscope download --model bilibili-index/Index-anisora /CogVideoX_VAE_T5/videokl_ch16_long_20w.pt --local_dir /Index-anisora/anisoraV1_infer/pretrained_models
下载t5-v1_1-xxl_new下的其余文件只需要更改上面下载模型文件的命令的added_tokens.json这个文件名字为你要下载的模型文件名字即可
注意: 在CogVideoX_VAE_T5中的文件下载完毕之后需要更改模型文件路径
#进入项目文件中
cd /Index-anisora/anisoraV1_infer
#更改模型文件路径
mv pretrained_models/CogVideoX_VAE_T5/t5-v1_1-xxl_new/ pretrained_models
mv pretrained_models/CogVideoX_VAE_T5/videokl_ch16_long_20w.pt pretrained_models
#删掉CogVideoX_VAE_T5(可选)
rm -r pretrained_models/CogVideoX_VAE_T5
请从 HuggingFace 或 ModelScope 下载 5B 模型权重并将其放入 。./ckpt/
注意:需要将模型文件中的5B这个文件夹里的所有内容全部下载到 ./ckpt/
#下载模型
modelscope download --model bilibili-index/Index-anisora 5B/1000/mp_rank_00_model_states.pt --local_dir /Index-anisora/anisoraV1_infer/ckpt
#下载latest
modelscope download --model bilibili-index/Index-anisora 5B/latest --local_dir /Index-anisora/anisoraV1_infer/ckpt
注意: 在5B中的文件下载完毕之后同样需要更改模型文件路径
#进入项目文件
cd /Index-anisora/anisoraV1_infer
#更改模型文件路径
mv ckpt/5B/1000 ckpt
mv ckpt/5B/latest ckpt
#删除5B(可选)
rm -r ckpt/5B
4.3.更改配置文件
配置文件路径:/Index-anisora/anisoraV1_infer/configs/cogvideox/cogvideox_5b_720_169_2.yaml
修改位置如图:
把图片中你刚才下载的t5-v1_1-xxl_new和videokl_ch16_long_20w.pt这两个的文件名都复制粘贴过来
5.启动
5.1.创建输入图片文件
在test_data文件中放入你需要用来生成视频的图片
#进入项目文件
cd /Index-anisora/anisoraV1_infer
#创建文件夹
mkdir test_data
5.2.更改参数
注意:参数文件与启动文件是同一个
路径:/Index-anisora/anisoraV1_infer/demo.py
参数说明:
seed: 种子
resource:上传图片路径
Motion: 运动幅度,越大越高(0.7-1.3)
gen_len: 视频时长(模型只有3s和6s这两种视频时长)
prompt: 提示词 (使用英文提示词)
output_path:输出视频的文件
5.3.生成视频
在更改为自己想要的参数后就可以开始生成视频
我们使用的是4张4090,因此启动命令如下:
offload=1 python demo.py --base configs/cogvideox/cogvideox_5b_720_169_2.yaml
若使用的是A100显卡,则需要设置 offload=0
生成视频成功:
视频输出路径:/Index-anisora/anisoraV1_infer/results/
生成的视频可以在results文件中看到