文件最后提交记录最后更新时间
!7191 add_audio_comfyui Merge pull request !7191 from zhoufan2956/add_audio_comfyui4 1 年前
!7191 add_audio_comfyui Merge pull request !7191 from zhoufan2956/add_audio_comfyui4 1 年前
!7191 add_audio_comfyui Merge pull request !7191 from zhoufan2956/add_audio_comfyui4 1 年前
!7326 【MindIE SD】多模态生成模型README增加安装gcc/g++环境依赖 Merge pull request !7326 from 龙钢/master 10 个月前
!7191 add_audio_comfyui Merge pull request !7191 from zhoufan2956/add_audio_comfyui4 1 年前
!7205 更新Juggernaut默认cache参数 Merge pull request !7205 from zhoufan2956/update_xi2 1 年前
README.md

模型推理指导

一、模型简介

Stable-Audio-Open-1.0是一种文本到语音的扩散模型,能够在给定任何文本输入的情况下生成相符的语音。参考实现请查看stable-audio-open-1.0 blog

本模型使用的优化手段如下:

  • 等价优化:FA、RoPE、Linear
  • 算法优化:DiTcache、Attentioncache

二、环境准备

表 1 版本配套表

配套 版本 环境准备指导
Python 3.10.2 -
torch 2.1.0 -

2.1 获取安装包

2.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
# 校验软件包安装文件的一致性和完整性
./Ascend-cann-toolkit_{version}_linux-{arch}.run --check
./Ascend-cann-kernels-{soc}_{version}_linux.run --check
# 安装
./Ascend-cann-toolkit_{version}_linux-{arch}.run --install
./Ascend-cann-kernels-{soc}_{version}_linux.run --install

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

2.3 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 --install-path=${AieInstallPath}
# 设置环境变量
cd ${AieInstallPath}/mindie && source set_env.sh

2.4 Torch_npu安装

安装pytorch框架 版本2.1.0 安装包下载

使用pip安装

# {version}表示软件版本号,{arch}表示CPU架构。
pip install torch-${version}-cp310-cp310-linux_${arch}.whl

下载 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

2.5 安装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

2.6 下载本仓库

   git clone https://modelers.cn/MindIE/stable_audio_open_1.0.git

2.7 安装所需依赖

pip3 install -r requirements.txt
apt-get update
apt-get install libsndfile1

三、模型权重

https://huggingface.co/stabilityai/stable-audio-open-1.0/tree/main

将model_index.json的内容修改为如下:

{
  "_class_name": "StableAudioPipeline",
  "_diffusers_version": "0.30.0.dev0",
  "projection_model": [
    "stable_audio",
    "StableAudioProjectionModel"
  ],
  "scheduler": [
    "stableaudio",
    "CosineDPMSolverMultistepScheduler"
  ],
  "text_encoder": [
    "transformers",
    "T5EncoderModel"
  ],
  "tokenizer": [
    "transformers",
    "T5TokenizerFast"
  ],
  "transformer": [
    "stableaudio",
    "StableAudioDiTModel"
  ],
  "vae": [
    "stableaudio",
    "AutoencoderOobleck"
  ]
}

四、模型推理

4.1 单卡性能测试

设置权重路径

model_base='./stable-audio-open-1.0'

执行命令:

# 不使用DiTCache策略
python3 inference_stableaudio.py \
        --model ${model_base} \
        --prompt_file ./prompts/prompts.txt \
        --num_inference_steps 100 \
        --audio_end_in_s 10 10 47 \
        --save_dir ./results \
        --seed 1 \
        --device 0

# 使用DiTCache策略
python3 inference_stableaudio.py \
        --model ${model_base} \
        --prompt_file ./prompts/prompts.txt \
        --num_inference_steps 100 \
        --audio_end_in_s 10 10 47 \
        --save_dir ./results \
        --seed 1 \
        --device 0 \
        --use_ditcache

# 使用AttentionCache策略
python3 inference_stableaudio.py \
        --model ${model_base} \
        --prompt_file ./prompts/prompts.txt \
        --num_inference_steps 100 \
        --audio_end_in_s 10 10 47 \
        --save_dir ./results \
        --seed 1 \
        --device 0 \
        --use_attentioncache

参数说明:

  • --model:模型权重路径。
  • --prompt_file:提示词文件。
  • --num_inference_steps: 语音生成迭代次数。
  • --audio_end_in_s:生成语音的时长,如不输入则默认生成10s。
  • --save_dir:生成语音的存放目录。
  • --seed:设置随机种子,不指定时默认使用随机种子。
  • --device:推理设备ID。
  • --use_ditcache: 【可选】使用DiTCache策略。
  • --use_attentioncache: 【可选】使用AttentionCache策略。

执行完成后在./results目录下生成推理语音,语音生成顺序与文本中prompt顺序保持一致,并在终端显示推理时间。

五、推理结果参考

Stable-Audio-Open-1.0性能数据

硬件形态 迭代次数 性能(w/o Cache) 性能(with DiTCache) 性能(with AttentionCache)
Atlas 800I A2(8*32G) 100 5.846s 4.847s 5.282s

声明

  • 本代码仓提到的数据集和模型仅作为示例,这些数据集和模型仅供您用于非商业目的,如您使用这些数据集和模型来完成示例,请您特别注意应遵守对应数据集和模型的License,如您因使用数据集或模型而产生侵权纠纷,华为不承担任何责任。
  • 如您在使用本代码仓的过程中,发现任何问题(包括但不限于功能问题、合规问题),请在本代码仓提交issue,我们将及时审视并解答。