Ascend-SACT/MultiTalk
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

简介

本仓库基于Next-multitalk,在Ascend NPU上进一步优化,使用方法一致,即:

一、准备运行环境

表 1 版本配套表

配套版本环境准备指导
Python3.11.10-
torch2.1.0-

1.1 获取CANN&MindIE安装包&环境准备

  • 设备支持
  • Atlas 800I/800T A2(8*64G)
  • 环境准备指导

1.2 CANN安装

# 增加软件包可执行权限,{version}表示软件版本号,{arch}表示CPU架构,{soc}表示昇腾AI处理器的版本。
chmod +x ./Ascend-cann-toolkit_{version}_linux-{arch}.run
chmod +x ./Ascend-cann-kernels-{soc}_{version}_linux.run
chmod +x ./Ascend-cann-nnal_{version}_linux-{arch}.run  (若使用量化)
# 校验软件包安装文件的一致性和完整性
./Ascend-cann-toolkit_{version}_linux-{arch}.run --check
./Ascend-cann-kernels-{soc}_{version}_linux.run --check
./Ascend-cann-nnal{version}_linux-{arch}.run --check  (若使用量化)
# 安装
./Ascend-cann-toolkit_{version}_linux-{arch}.run --install
./Ascend-cann-kernels-{soc}_{version}_linux.run --install
./Ascend-cann-nnal{version}_linux-{arch}.run --torch_atb --install  (若使用量化)

# 设置环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh

1.3 环境依赖安装

pip3 install -r requirements.txt

1.4 MindIE安装

# 增加软件包可执行权限,{version}表示软件版本号,{arch}表示CPU架构。
chmod +x ./Ascend-mindie_${version}_linux-${arch}.run
./Ascend-mindie_${version}_linux-${arch}.run --check

# 方式一:默认路径安装
./Ascend-mindie_${version}_linux-${arch}.run --install
# 设置环境变量
cd /usr/local/Ascend/mindie && source set_env.sh

# 方式二:指定路径安装
./Ascend-mindie_${version}_linux-${arch}.run --install-path=${AieInstallPath}
# 设置环境变量
cd ${AieInstallPath}/mindie && source set_env.sh

1.5 Torch_npu安装

下载 pytorch_v{pytorchversion}_py{pythonversion}.tar.gz

tar -xzvf pytorch_v{pytorchversion}_py{pythonversion}.tar.gz
# 解压后,会有whl包
pip install torch_npu-{pytorchversion}.xxxx.{arch}.whl

1.6 gcc、g++安装

# 若环境镜像中没有gcc、g++,请用户自行安装
yum install gcc
yum install g++

# 导入头文件路径
export CPLUS_INCLUDE_PATH=/usr/include/c++/12/:/usr/include/c++/12/aarch64-openEuler-linux/:$CPLUS_INCLUDE_PATH

注:若使用openeuler镜像,需要配置gcc、g++环境,否则会导致fatal error: 'stdio.h' file not found

二、下载权重

模型名称下载链接说明
Wan2.1-I2V-14B-480P🤗 Huggingface基础模型
chinese-wav2vec2-base🤗 Huggingface音频编码器
MeiGen-MultiTalk🤗 Huggingface我们的音频条件权重

使用 huggingface-cli 下载:

huggingface-cli download Wan-AI/Wan2.1-I2V-14B-480P --local-dir ./weights/Wan2.1-I2V-14B-480P
huggingface-cli download TencentGameMate/chinese-wav2vec2-base --local-dir ./weights/chinese-wav2vec2-base
huggingface-cli download TencentGameMate/chinese-wav2vec2-base model.safetensors --revision refs/pr/1 --local-dir ./weights/chinese-wav2vec2-base
huggingface-cli download MeiGen-AI/MeiGen-MultiTalk --local-dir ./weights/MeiGen-MultiTalk
huggingface-cli download lightx2v/Wan2.1-Distill-Loras --local-dir ./weights/Wan2.1-Distill-Loras

复制权重到指定链接

mv weights/Wan2.1-I2V-14B-480P/diffusion_pytorch_model.safetensors.index.json weights/Wan2.1-I2V-14B-480P/diffusion_pytorch_model.safetensors.index.json_old
cp weights/MeiGen-MultiTalk/diffusion_pytorch_model.safetensors.index.json weights/Wan2.1-I2V-14B-480P/
cp weights/MeiGen-MultiTalk/multitalk.safetensors weights/Wan2.1-I2V-14B-480P/

三、multitalk使用

3.1 下载到本地

git clone https://atomgit.com/Ascend-SACT/MultiTalk.git

3.2 多卡性能测试

执行命令:

NPU_NUM=8
export ALGO=0
export PYTORCH_NPU_ALLOC_CONF='expandable_segments:True'
export TASK_QUEUE_ENABLE=2
export CPU_AFFINITY_CONF=1
export TOKENIZERS_PARALLELISM=false

torchrun --nproc_per_node=$NPU_NUM  generate_multitalk.py \
    --ckpt_dir "./weights/Wan2.1-I2V-14B-480P" \
    --wav2vec_dir "./weights/chinese-wav2vec2-base" \
    --dit_fsdp --t5_fsdp \
    --ulysses_size=$NPU_NUM \
    --vae_parallel \
    --use_teacache \
    --use_attentioncache \
    --lora_dir "./weights/Wan2.1-Distill-Loras/wan2.1_i2v_lora_rank64_lightx2v_4step.safetensors" \
    --input_json examples/multitalk_example_2.json \
    --lora_scale 1.0 \
    --sample_text_guide_scale 1.0 \
    --sample_audio_guide_scale 2.0 \
    --sample_steps 8 \
    --mode clip \
    --save_file single_long_lowvram_fusionx_exp \
    --sample_shift 2

参数说明: --ckpt_dir:模型权重路径。 --wav2vec_dir:wav2vec模型权重路径。 --lora_dir:lora_dir模型权重路径。 --mode streaming:长视频生成。 --mode clip:生成单个分块的短视频。 --use_teacache:使用TeaCache运行。 —-sample_text_guide_scale:不使用LoRA时,最佳值为5。应用LoRA后,推荐值为1。 —-sample_audio_guide_scale:不使用LoRA时,最佳值为4。应用LoRA后,推荐值为2。