★★★ 本文源自AlStudio社区精品项目,【点击此处】查看更多精品内容 >>>

一、项目介绍

该项目是 Text2Video-Zero—零样本文本到视频生成的下半部,上半部分的项目地址如下:https://aistudio.baidu.com/aistudio/projectdetail/6212799。 与上半部分实现的文本-视频生成和文本-视频编辑不同,下半部分侧重于姿态、边缘、深度图引导和 Dreambooth定制 的文本视频生成。在该项目中,用户可以输入文本提示和各种引导视频,来实现文本-视频的定制化生产。

该项目是对 Text2Video-Zero (pytorch)官方项目的 paddle 实现, 需要在V100 32G环境下启动。 该项目的主要工作是对通过PaddleNLP 中的 sd-controlnet-openpose、sd-controlnet-canny 和 sd-controlnet-depth 来实现姿态引导的文本视频生成、边缘引导的文本视频生成、深度图引导的文本-视频生成,并基于 笠雨聆月老师的 诺艾尔Dreambooth模型来实现边缘引导和 Dreambooth 定制的文本-视频生成。需要注意的是,在 边缘引导和 Dreambooth 定制的文本-视频生成方面,官方采用的是 PAIR/text2video-zero-controlnet-canny-anime 、PAIR/text2video-zero-controlnet-canny-avatar、PAIR/text2video-zero-controlnet-canny-gta5 和 PAIR/text2video-zero-controlnet-canny-arcane 模型,但是 PaddleNLP中并没有上述模型,我们使用 笠雨聆月老师的 诺艾尔Dreambooth模型替代,因此,生成的视频与官方项目视频不同。此外, 由于 paddle 的随机因子和 torch 不同,生成的视频可能与官方项目有所差异。

下面是 Text2Video-Zero 下半部分的一些有趣例子,左上图为姿态引导的文本视频生成,提示词为 an astronaut dancing in outer space(一名宇航员在外太空跳舞),右上图为边缘引导的文本视频生成,提示词为 oil painting of man close-up (男人油画特写镜头),左下图为深度图引导的文本视频生成,提示词为 oil painting of a beautiful girl, a high-quality, detailed, and professional photo(一幅美丽女孩的油画,高质量、细致、专业的照片),右下图为边缘引导和 Dreambooth 定制的文本-视频生成,提示词为 Noelle with dark hair, beautiful eyes(深色头发、美丽眼睛的诺艾尔)。

二、详细说明

创意来源 :现有的文本-视频生成方法大多用于为用户提供灵感,当用户找到想要生成的视频时,很难为用户提供定制化视频生成服务。通过运动动力学、帧间注意力机制等技术手段对原始的文本-图像模型进行修改, Text2Video-Zero 很好地解决了上述问题,可以基于用户提供的运动姿态、边缘图像、深度图像 和 Dreambooth 模型进行文本视频生成。该方法可以在无需训练的情况下,对主流的文本-图像生成模型进行微调,这意味着用户只需要训练出 Dreambooth 文本-图像生成模型,就可以进行定制化的文本-视频生成。比如,制作赛博佛祖、AI动画等。

目前相关的项目: Text2Video-Zero 官方项目地址为:https://github.com/Picsart-AI-Research/Text2Video-Zero 。下半部分实现了官方项目中的 Text-To-Video with Pose Guidance、 Text-To-Video with Edge Guidance、Text-To-Video with Depth Control 和 Text-To-Video with Edge Guidance and Dreambooth specialization 部分。此外,同类的 文本-视频生成项目还包括 Tune-A-Video,项目地址如下: https://github.com/showlab/Tune-A-Video ;ControlVideo,项目地址如下:https://github.com/YBYBZhang/ControlVideo

技术细节:Text2Video-Zero 的项目架构图如下:该方法以随机采样潜在编码 x T 1 x_T^1 xT1 为起点,使用预训练的 Stable Diffusion 模型(SD),通过 DDIM 反向传播 Δ t \Delta t Δt 步来获得 x T ′ 1 x_{T^{\prime}}^1 xT1 。对于每一帧 k k k,作者使用变形函数将 x T ′ 1 x_{T^{\prime}}^1 xT1 变换为 x T ′ k x_{T^{\prime}}^k xTk ,从而获得特定的运动场结果。通过使用运动动力学对潜在编码进行增强,模型可以确定全局场景和相机运动,从而实现背景和全局场景的时间一致性。之后,作者使用 DDPM 前向传播对潜在编码 x T k x_T^k xTk k = 1 , … , m k=1, \ldots, m k=1,,m 进行传递。这里。概率 DDPM方法可以实现更大自由度的物体运动。再然后,作者将潜在编码传递到使用帧间注意力机制修改后的 SD 模型中。帧间注意力机制使用第一帧的 key 和 value 来生成整个视频序列的图像。通过帧间注意力机制,前景物体的身份和外观可以在视频序列中保留。不仅如此,作者还对生成的视频序列使用了背景平滑技术。具体来说,作者使用显著目标检测来获得每一帧 k k k 中暗示了前景像素的掩模 M k M^k Mk ,并对掩模 M k M^k Mk 中的背景部分,使用第一帧变换到第 k k k 帧的潜在编码 x t 1 x_t^1 xt1 和潜在编码 x t k x_t^k xtk 来进一步提高背景的时间一致性。

下面将对项目的具体实现步骤进行阐述。由于代码块不会自动释放显存,项目模型显存占用率又比较高,必要时需要重启内核,释放显存。

项目演示视频https://www.bilibili.com/video/BV1Am4y1i7R2/

AI Studio 有部分GPU 会出现上述问题。如果刚好被分配到这种 GPU,建议关闭项目后,等待一段时间,重新启动GPU,并选择V100 32G 显存

2.1 环境配置

由于该项目需要调用 PaddleNLP 的 stable_diffusion_inpaint模型,因此需要安装 ppdiffusers 等相关库。此外,由于模型文件过大,所有模型加在一起约 15 G 左右,每次启动项目都要下载十分耗时,因此,这里将 stable-diffusion-v1-5 、 controlnet 和 笠雨聆月老师的 诺艾尔Dreambooth模型 权重文件 保存在 AI studio 数据集中,第一次运行项目,需要将上述权重文件解压到 AI Studio 本地路径,之后,可以直接从本地加载 stable-diffusion-v1-5 、 controlnet 、 诺艾尔Dreambooth 文本-图像生成模型。

# 安装 pddiffuser及相关包,以便调用其中的paddlenlp 模型
!pip install --user ftfy regex
!pip install --user --upgrade ppdiffusers
!pip install --user scikit-image
# 安装decode,以便进行视频读取
!pip install --user decord 
# 安装 omegaconf,以便读取配置文件
!pip install --user omegaconf
# 解压文本-图像生成模型 stable-diffusion-v1-5,该过程耗时2-3分钟左右,由于文本-图像类模型文件过大,这里使用AI Studio本地目录加载模型
# 该过程只需解压一次即可
%cd /home/aistudio/
!unzip /home/aistudio/data/data219562/stable-diffusion-v1-5.zip
# 解压可控文本-图像生成模型 controlnet,该过程耗时2-3分钟左右,由于文本-图像类模型文件过大,这里使用AI Studio本地目录加载模型
# 该过程只需解压一次即可
%cd /home/aistudio/
!unzip /home/aistudio/data/data224144/controlnet.zip
# 解压 open-pose 人体姿态估计模型,该过程耗时 1 分钟左右,由于文本-图像类模型文件过大,这里使用AI Studio本地目录加载模型
# 该过程只需解压一次即可
%cd /home/aistudio/work/Text2Video-Zero_paddle/annotator/ckpts/
!unzip /home/aistudio/data/data224144/dpt_hybrid.zip
# 解压 诺艾尔Dreambooth 定制化模型,该过程耗时2-3分钟左右,由于文本-图像类模型文件过大,这里使用AI Studio本地目录加载模型
# 该过程只需解压一次即可
%cd /home/aistudio
!unzip /home/aistudio/data/data224144/dream_outputs.zip

由于新安装的依赖库不会同步更新到 notebook 中,此处需要先重启内核,再运行 2.2 之后的代码,否则会报错“找不到 ppdiffusers 环境”,其他找不到环境问题一般可以通过加入 --user 重新安装或者重启内核解决

2.2 使用 Text-To-Video with Pose Guidance 模型,进行姿态引导的文本-视频生成

# 切换到Text2Video-Zero_paddle目录下
%cd /home/aistudio/work/Text2Video-Zero_paddle/
#  导入相关包
from model import Model
import paddle
import warnings
warnings.filterwarnings("ignore")
import logging
import os
import argparse
# 屏蔽ppdiffusers运行过程中所产生的日志
logging.disable(logging.WARNING)
os.environ["TF_CPP_MIN_LOG_LEVEL"] = '0' 
# 进行模型初始化
model = Model(device = "cuda", dtype = paddle.float16)
# 设置随机种子
paddle.seed(1234)
# 设置文本提示词
prompt = "an astronaut dancing in outer space"
# 姿态引导视频路径
motion_video_path = '/home/aistudio/work/Text2Video-Zero_paddle/__assets__/text_to_video_pose_control/dance5_corr.mp4'
# 设置生成视频输出目录
output_dir = "/home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_pose_control"
# 设置视频的保存格式,包含:gif 和 mp4 两种
save_format = "gif"
out_path = '{}/{}.{}'.format(output_dir,prompt,save_format)
# 设置 stable-diffusion-v1-5 和 controlNet 在AI Studio中的本地路径
stable_diffision_path="/home/aistudio/stable-diffusion-v1-5/runwayml/stable-diffusion-v1-5"
controlnet_path="/home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-openpose"
# 使用 controlnet_pose 模型生成姿态引导的文本视频, 需要显存 13.4G,耗时2-3分钟
model.process_controlnet_pose( motion_video_path, prompt=prompt, save_path=out_path,save_format=save_format,\
chunk_size= 24, resolution=384,model_path_list=[stable_diffision_path,controlnet_path])
from IPython.display import Image
# 文本-视频编辑结果可视化
Image(filename=out_path)

2.3 使用 Text-To-Video with Edge Guidance 模型,进行边缘引导的文本视频生成

由于notebook 不会自动释放显存,如果显存不足,需要重启内核,再运行2.3 代码块

# 切换到Text2Video-Zero_paddle目录下
%cd /home/aistudio/work/Text2Video-Zero_paddle/
#  导入相关包
from model import Model
import paddle
import warnings
warnings.filterwarnings("ignore")
import logging
import os
import argparse
# 屏蔽ppdiffusers运行过程中所产生的日志
logging.disable(logging.WARNING)
os.environ["TF_CPP_MIN_LOG_LEVEL"] = '0' 
# 进行模型初始化
model = Model(device = "cuda", dtype = paddle.float16)
# 设置随机种子
paddle.seed(1234)
# 设置文本提示
prompt = 'oil painting of a deer, a high-quality, detailed, and professional photo'
# 设置边缘引导视频路径
video_path = '/home/aistudio/work/Text2Video-Zero_paddle/__assets__/text_to_video_edge_control/deer.mp4'
# 设置生成视频输出目录
output_dir = "/home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_edge_control"
# 设置视频的保存格式,包含:gif 和 mp4 两种
save_format = "gif"
out_path = '{}/{}.{}'.format(output_dir,prompt,save_format)
# 设置 stable-diffusion-v1-5 和 controlNet 在AI Studio中的本地路径
stable_diffision_path="/home/aistudio/stable-diffusion-v1-5/runwayml/stable-diffusion-v1-5"
controlnet_path="/home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-canny"
# 使用 controlnet_canny 模型生成边缘引导的文本视频, 需要显存 11 G,耗时2-3分钟
model.process_controlnet_canny(video_path, prompt=prompt, save_path=out_path,save_format=save_format,\
chunk_size=  16, resolution=384,model_path_list=[stable_diffision_path,controlnet_path])
from IPython.display import Image
# 文本-视频编辑结果可视化
Image(filename=out_path)

2.4 使用 Text-To-Video with Depth Control 模型,进行深度引导的文本视频生成

由于notebook 不会自动释放显存,如果显存不足,需要重启内核,再运行2.4 代码块

# 切换到Text2Video-Zero_paddle目录下
%cd /home/aistudio/work/Text2Video-Zero_paddle/
#  导入相关包
from model import Model
import paddle
import warnings
warnings.filterwarnings("ignore")
import logging
import os
import argparse
# 屏蔽ppdiffusers运行过程中所产生的日志
logging.disable(logging.WARNING)
os.environ["TF_CPP_MIN_LOG_LEVEL"] = '0' 
# 进行模型初始化
model = Model(device = "cuda", dtype = paddle.float16)
# 设置随机种子
paddle.seed(1234)
# 设置文本提示
prompt = 'a santa claus, a high-quality, detailed, and professional photo'
# 设置深度引导视频路径
video_path = '/home/aistudio/work/Text2Video-Zero_paddle/__assets__/text_to_video_depth_control/santa.mp4'
# 设置生成视频输出目录
output_dir = "/home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_depth_control"
# 设置视频的保存格式,包含:gif 和 mp4 两种
save_format = "gif"
out_path = '{}/{}.{}'.format(output_dir,prompt,save_format)
# 设置 stable-diffusion-v1-5 和 controlNet 在AI Studio中的本地路径
stable_diffision_path="/home/aistudio/stable-diffusion-v1-5/runwayml/stable-diffusion-v1-5"
controlnet_path="/home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-depth"
# 使用 controlnet_depth 模型生成深度引导的文本视频, 需要显存 11 G,耗时2-3分钟
model.process_controlnet_depth(video_path, prompt=prompt, save_path=out_path,save_format = save_format,\
chunk_size=  16, resolution=384,model_path_list=[stable_diffision_path,controlnet_path])
from IPython.display import Image
# 文本-视频编辑结果可视化
Image(filename=out_path)

2.5 使用 Text-To-Video with Edge Guidance and Dreambooth specialization 模型,进行边缘引导和 Dreambooth定制 的文本视频生成

由于notebook 不会自动释放显存,如果显存不足,需要重启内核,再运行2.5 代码块

# 切换到Text2Video-Zero_paddle目录下
%cd /home/aistudio/work/Text2Video-Zero_paddle/
#  导入相关包
from model import Model
import paddle
import warnings
warnings.filterwarnings("ignore")
import logging
import os
import argparse
# 屏蔽ppdiffusers运行过程中所产生的日志
logging.disable(logging.WARNING)
os.environ["TF_CPP_MIN_LOG_LEVEL"] = '0' 
# 进行模型初始化
model = Model(device = "cuda", dtype = paddle.float16)
# 设置随机种子
paddle.seed(1234)
# 设置文本提示
prompt = "Noelle with cat ears, blue hair"
# 设置边缘引导视频路径
video_path = '/home/aistudio/work/Text2Video-Zero_paddle/__assets__/text_to_video_dreambooth/woman1.mp4'
# 设置生成视频输出目录
output_dir = "/home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_dreambooth"
# 设置视频的保存格式,包含:gif 和 mp4 两种
save_format = "gif"
out_path = '{}/{}.{}'.format(output_dir,prompt,save_format)
# 设置 dreambooth定制化模型 和 controlNet 在AI Studio中的本地路径
dreambooth_model_path= '/home/aistudio/dream_outputs'
controlnet_path="/home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-canny"
# 使用 controlnet_canny_db 模型生成边缘引导和 Dreambooth定制 的文本视频, 需要显存 11 G,耗时2-3分钟
model.process_controlnet_canny_db(dreambooth_model_path, video_path, prompt=prompt, save_path=out_path,\
 save_format=save_format,chunk_size=  16, resolution=384, model_path_list=[controlnet_path])
from IPython.display import Image
# 文本-视频编辑结果可视化
Image(filename=out_path)

三、更多的结果展示

3.1 Text-To-Video with Pose Guidance

3.2 Text-To-Video with Edge Guidance

3.3 Text-To-Video with Depth Control

3.4 Text-To-Video with Edge Guidance and Dreambooth specialization

四、部署细节

在运行推理代码之前,请确保已经完成 2.1 环境配置中所有代码块的运行。如果运行了二、详细说明中的 2.2-2.5 代码块,且显存不足,请先重启内核,否则会导致显存崩溃。

4.1 Text-To-Video with Pose Guidance

根据用户若输入的文本提示和运动姿态生成相应视频。运动姿态视频位于 /home/aistudio/work/Text2Video-Zero_paddle/assets/text_to_video_pose_control 目录下, text_prompt.yaml 记录了视频生成的文本提示。使用模型推理时可选的一些参数如下:

  • motion_video_path:(str)- -用于引导视频生成的运动姿态。
  • text_prompt:(str)- -用于引导视频生成的文本提示。
  • stable_diffision_path:(str)-stable-diffusion-v1-5 模型在 AI studio 的本地路径,默认为 /home/aistudio/stable-diffusion-v1-5/runwayml/stable-diffusion-v1-5
  • controlnet_path:(str)-controlnet-openpose 模型在 AI studio 的本地路径,默认为 /home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-openpose
  • output_dir:(str)-生成视频所在目录,默认输出结果保存在 /home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_pose_control 目录下。
  • save_format:(str)-生成视频的保存格式,用户可保存为gifmp4 ,gif 格式可以在 AI studio 本地查看,mp4 格式需要下载后查看。
  • seed:(int)-用户固定生成结果的随机种子,默认为 1234 , 随机种子不同,生成的视频也不同。
  • resolution:(int)-生成视频的分辨率,默认为 384.
  • chunk_size:(int)-模型一次处理的帧数量,数值越大,推理速度越快,显存占用越高,设置太大,会导致显存崩溃,需要在 [2,视频长度] 之间,默认为 24。
#  18 GB 显存,耗时 2-3 分钟左右
%cd /home/aistudio/work/Text2Video-Zero_paddle/
!python text_to_video_pose_control.py\
    --motion_video_path __assets__/text_to_video_pose_control/dance3_corr.mp4\
    --text_prompt " A bear dancing on the concrete" \
    --stable_diffision_path /home/aistudio/stable-diffusion-v1-5/runwayml/stable-diffusion-v1-5\
    --controlnet_path /home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-openpose\
    --output_dir /home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_pose_control \
    --save_format "gif" \
    --seed 1234 \
    --resolution  384 \
    --chunk_size 24

4.2 Text-To-Video with Edge Guidance

根据用户若输入的文本提示和图像边缘生成相应视频。图像边缘视频位于 /home/aistudio/work/Text2Video-Zero_paddle/assets/text_to_video_edge_control 目录下, text_prompt.yaml 记录了视频生成的文本提示。使用模型推理时可选的一些参数如下:

  • video_path:(str)- -用于引导视频生成的图像边缘。
  • text_prompt:(str)- -用于引导视频生成的文本提示。
  • stable_diffision_path:(str)-stable-diffusion-v1-5 模型在 AI studio 的本地路径,默认为 /home/aistudio/stable-diffusion-v1-5/runwayml/stable-diffusion-v1-5
  • controlnet_path:(str)-controlnet-canny 模型在 AI studio 的本地路径,默认为 /home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-canny
  • output_dir:(str)-生成视频所在目录,默认输出结果保存在 /home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_edge_control 目录下。
  • save_format:(str)-生成视频的保存格式,用户可保存为gifmp4 ,gif 格式可以在 AI studio 本地查看,mp4 格式需要下载后查看。
  • seed:(int)-用户固定生成结果的随机种子,默认为 1234 , 随机种子不同,生成的视频也不同。
  • resolution:(int)-生成视频的分辨率,默认为 384.
  • chunk_size:(int)-模型一次处理的帧数量,数值越大,推理速度越快,显存占用越高,设置太大,会导致显存崩溃,需要在 [2,视频长度] 之间,默认为 16。
#  11 GB 显存,耗时 2-3 分钟左右
%cd /home/aistudio/work/Text2Video-Zero_paddle/
!python text_to_video_edge_control.py\
    --video_path __assets__/text_to_video_edge_control/jelly_edge.mp4\
    --text_prompt " A jellyfish" \
    --stable_diffision_path /home/aistudio/stable-diffusion-v1-5/runwayml/stable-diffusion-v1-5\
    --controlnet_path /home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-canny\
    --output_dir /home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_edge_control \
    --save_format "gif" \
    --seed 1234 \
    --resolution  384 \
    --chunk_size 16 

4.3 Text-To-Video with Depth Control

根据用户若输入的文本提示和深度图生成相应视频。图像深度视频位于 /home/aistudio/work/Text2Video-Zero_paddle/assets/text_to_video_depth_control目录下, text_prompt.yaml 记录了视频生成的文本提示。使用模型推理时可选的一些参数如下:

  • video_path:(str)- -用于引导视频生成的图像深度。
  • text_prompt:(str)- -用于引导视频生成的文本提示。
  • stable_diffision_path:(str)-stable-diffusion-v1-5 模型在 AI studio 的本地路径,默认为 /home/aistudio/stable-diffusion-v1-5/runwayml/stable-diffusion-v1-5
  • controlnet_path:(str)-controlnet-depth 模型在 AI studio 的本地路径,默认为 /home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-depth
  • output_dir:(str)-生成视频所在目录,默认输出结果保存在 /home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_depth_control 目录下。
  • save_format:(str)-生成视频的保存格式,用户可保存为gifmp4 ,gif 格式可以在 AI studio 本地查看,mp4 格式需要下载后查看。
  • seed:(int)-用户固定生成结果的随机种子,默认为 1234 , 随机种子不同,生成的视频也不同。
  • resolution:(int)-生成视频的分辨率,默认为 384.
  • chunk_size:(int)-模型一次处理的帧数量,数值越大,推理速度越快,显存占用越高,设置太大,会导致显存崩溃,需要在 [2,视频长度] 之间,默认为 16。
#  11 GB 显存,耗时 2-3 分钟左右
%cd /home/aistudio/work/Text2Video-Zero_paddle/
!python text_to_video_depth_control.py\
    --video_path __assets__/text_to_video_depth_control/fox.mp4\
    --text_prompt "wild red fox is walking on the grass, a high-quality, detailed, and professional photo" \
    --stable_diffision_path /home/aistudio/stable-diffusion-v1-5/runwayml/stable-diffusion-v1-5\
    --controlnet_path /home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-depth\
    --output_dir /home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_depth_control \
    --save_format "gif" \
    --seed 1234 \
    --resolution  384 \
    --chunk_size 16 

4.4 Text-To-Video with Edge Guidance and Dreambooth specialization

根据用户若输入的文本提示、图像边缘和 Dreambooth定制化模型 生成相应视频。图像边缘视频位于 /home/aistudio/work/Text2Video-Zero_paddle/assets/text_to_video_dreambooth 目录下, text_prompt.yaml 记录了视频生成的文本提示。使用模型推理时可选的一些参数如下:

  • video_path:(str)- -用于引导视频生成的图像边缘。
  • text_prompt:(str)- -用于引导视频生成的文本提示。
  • dreambooth_model_path:(str)-dreambooth 定制化模型在 AI studio 的本地路径,默认为 /home/aistudio/dream_outputs
  • controlnet_path:(str)-controlnet-canny 模型在 AI studio 的本地路径,默认为 /home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-canny
  • output_dir:(str)-生成视频所在目录,默认输出结果保存在 /home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_dreambooth 目录下。
  • save_format:(str)-生成视频的保存格式,用户可保存为gifmp4 ,gif 格式可以在 AI studio 本地查看,mp4 格式需要下载后查看。
  • seed:(int)-用户固定生成结果的随机种子,默认为 1234 , 随机种子不同,生成的视频也不同。
  • resolution:(int)-生成视频的分辨率,默认为 384.
  • chunk_size:(int)-模型一次处理的帧数量,数值越大,推理速度越快,显存占用越高,设置太大,会导致显存崩溃,需要在 [2,视频长度] 之间,默认为 16。
#  11 GB 显存,耗时 2-3 分钟左右
%cd /home/aistudio/work/Text2Video-Zero_paddle/
!python text_to_video_dreambooth.py\
    --video_path __assets__/text_to_video_dreambooth/woman1.mp4\
    --text_prompt "Noelle with dark hair, beautiful eyes" \
    --dreambooth_model_path /home/aistudio/dream_outputs\
    --controlnet_path /home/aistudio/controlnet/ppdiffusers/lllyasviel/sd-controlnet-canny\
    --output_dir /home/aistudio/work/Text2Video-Zero_paddle/output/text_to_video_dreambooth\
    --save_format "gif" \
    --seed 1234 \
    --resolution  384 \
    --chunk_size 16 

五、总结

该项目对 Text2Video-Zero 通过PaddleNLP中 sd-controlnet-openpose、sd-controlnet-canny 和 sd-controlnet-depth 实现了姿态引导的文本视频生成、边缘引导的文本视频生成、深度图引导的文本-视频生成,并基于 笠雨聆月老师的 诺艾尔Dreambooth模型 实现了边缘引导和 Dreambooth 定制的文本-视频生成。后续有时间会搭建对应的gradio界面。

参考项目:

【1】 Text2Video-Zero

【2】 Tune-A-Video

【3】 PPDiffusers: Diffusers toolbox implemented based on PaddlePaddle

【4】 AI Video】体验文本生成视频的趣味创作

【5】【PaddlePaddle Hackathon 4】AIGC 诺艾尔生成器

此文章为搬运
原项目链接

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐