其实按照官方的流程安装也能成功,只不过我这里简单说一下windows和linux安装的区别,并且在离线情况下如何部署IndexTTS2。
官方链接:index-tts/docs/README_zh.md at main · index-tts/index-tts
一、在线部署
1、uv安装
如果你用windows,并且使用官方推荐的uv进行安装,只需要注意的是使用--extra webui
bash
uv sync --extra webui --default-index "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
linux环境使用全部功能--all-extras
bash
uv sync --all-extras --default-index "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
模型安装推荐直接使用modelscope,因为在运行时也会自动连接huggingface下载一些小模型所以建议先配置好HF镜像源
windows使用
bash
set HF_ENDPOINT="https://hf-mirror.com"
linux使用
bash
export HF_ENDPOINT="https://hf-mirror.com"
2、conda / pip 安装
如果不想使用uv,而是选择conda或者pip也可以,主要就是将pyproject.toml文件中需要安装的库和版本提取出来,生成一个requirements.txt,使用pip安装就行,可以参考:
bash
accelerate==1.8.1
cn2an==0.5.22
cython==3.0.7
descript-audiotools==0.7.2
ffmpeg-python==0.2.0
g2p-en==2.1.0
jieba==0.42.1
json5==0.10.0
keras==2.9.0
librosa==0.10.2.post1
matplotlib==3.8.2
modelscope==1.27.0
munch==4.0.0
numba==0.58.1
numpy==1.26.2
omegaconf>=2.3.0
opencv-python==4.9.0.80
pandas==2.3.2
safetensors==0.5.2
sentencepiece>=0.2.1
tensorboard==2.9.1
textstat>=0.7.10
tokenizers==0.21.0
torch==2.8.*
torchaudio==2.8.*
tqdm>=4.67.1
transformers==4.52.1
gradio>=5.44.1
einops==0.8.1
wetext>=0.0.9
WeTextProcessing
模型安装和上面一样
二、离线安装
如果你需要部署到一个没有网络的服务器上,你就需要提前下载好所有模型,并且将代码中的所有HF下载和加载模型的路径改为本地路径才可以。
环境就推荐直接使用conda+pip的形式配置。
1、模型下载
下面是项目中模型的下载方式,除了IndexTeam/IndexTTS-2都需要在HF上下载
bash
# ==== download IndexTTS-2 =====
modelscope download --model IndexTeam/IndexTTS-2 --local_dir /home/users/models/IndexTeam/IndexTTS-2
sed -ri 's# "nvidia/bigvgan_v2_22khz_80band_256x"# "/home/users/models/nvidia/bigvgan_v2_22khz_80band_256x"#g' /home/users/models/IndexTeam/IndexTTS-2/config.yaml
# modelscope download --model IndexTeam/IndexTTS-1.5 --local_dir /home/users/models/IndexTeam/IndexTTS-1.5
# modelscope download --model IndexTeam/Index-TTS --local_dir /home/users/models/IndexTeam/Index-TTS
# ==== download https://huggingface.co/facebook/w2v-bert-2.0 into models/facebook/w2v-bert-v2.0 =====
hf download facebook/w2v-bert-2.0 --local-dir /home/users/models/facebook/w2v-bert-2.0
hf download amphion/MaskGCT semantic_codec/model.safetensors --local-dir /home/users/models/amphion/MaskGCT
hf download funasr/campplus --local-dir /home/users/models/funasr/campplus
hf download nvidia/bigvgan_v2_22khz_80band_256x bigvgan_generator.pt config.json --local-dir /home/users/models/nvidia/bigvgan_v2_22khz_80band_256x
hf download Plachta/JDCnet bst.t7 --local-dir /home/users/models/Plachta/JDCnet
如果你的网络下载huggingface上的模型速度很慢,那也可以使用modelscope替代。以下就是modelscope上IndexTTS2所需要的所有模型。
bash
modelscope download --model IndexTeam/IndexTTS-2 --local_dir checkpoints
modelscope download --model facebook/w2v-bert-2.0 --local_dir models/facebook/w2v-bert-2.0
modelscope download --model amphion/MaskGCT semantic_codec/model.safetensors --local_dir models/amphion/MaskGCT
modelscope download --model iic/speech_campplus_sv_zh-cn_16k-common campplus_cn_common.bin --local_dir models/iic/speech_campplus_sv_zh-cn_16k-common
modelscope download --model nv-community/bigvgan_v2_22khz_80band_256x bigvgan_generator.pt --local_dir models/nv-community/bigvgan_v2_22khz_80band_256x
modelscope download --model nv-community/bigvgan_v2_22khz_80band_256x config.json --local_dir models/nv-community/bigvgan_v2_22khz_80band_256x
2、代码修改
由于项目中有许多连接HF下载模型的代码,所以我们需要将其改成我们自己的模型路径(除了IndexTeam/IndexTTS-2),其中所有需要的模型都可以通过上面这几个modelscope命令下载。
(1)from_pretrained()路径修改
首先自己在vscode中搜索模型路径,比如facebook/w2v-bert-2.0,

将里面的路径替换成模型的绝对路径,比如/home/user/indextts/models/facebook/w2v-bert-2.0
(2)hf_hub_download()替换成os.path.join()

搜索funasr/campplus会发现有hf_hub_download()函数,这时候我们就要将其替换成os.path.join()

(3)checkpoints\config.yaml文件修改
nvidia/bigvgan_v2_22khz_80band_256x模型是用config.yaml文件中的vocoder.name加载的,所以需要修改配置文件

将模型路径改为绝对路径就好了

环境配置好、模型下载好、文件改好之后就直接运行python webui.py就能直接跑起来了!