本仓库基于Next-multitalk,在Ascend NPU上进一步优化,使用方法一致,即:
表 1 版本配套表
| 配套 | 版本 | 环境准备指导 |
|---|---|---|
| Python | 3.11.10 | - |
| torch | 2.1.0 | - |
# 增加软件包可执行权限,{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.shpip3 install -r requirements.txt# 增加软件包可执行权限,{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下载 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# 若环境镜像中没有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/git clone https://atomgit.com/Ascend-SACT/MultiTalk.git执行命令:
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。