今天搞了一天,现在已经头晕眼花了要,但项目终于成功安装,有必要记录一下。
安装步骤如下:
1、在annconda中新建一个虚拟环境,名称自己定,我这里是craft
conda create -n craft python=3.10.6
2、到项目目录下执行安装所有需要的包
cd audiocraft_plus-main
pip install -r requirements.txt -i “https://pypi.tuna.tsinghua.edu.cn/simple/”
3、如果前面两步没有问题的话,直接执行
python app.py
(craft) fangg@fangg-MS-7B78:~/tts/audiocraft_plus-main$ python app.py
False
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
注:如果第2点没有执行,则可能报taglib包找不到的异常,我之前使用audiocraft原项目安装时就是这样。
4、此时,项目已经启动成功!嗯,可以打开上面的链接地址了 本地测试
如果你以为这样就大功告成,那你就大错特错了……真要这样,我这文章都不会写。好吧,但我也看到有人写了,就是什么问题都没有的那种,我想是因为他应该是能全局科学上网的原因,中间下载的模型都没有出现问题,这里就不深入探究了。
5、下载模型,我这里下载的是最大的那个musicgen-large(我显卡内存是12G的,所以使用最大这个没有问题,如果显存小的就需要下载其他小些的模型,在API这里其他模型),这个需要科学上网才能下载,如果不知道怎么科学上网,就使用‘iGG谷歌学术助手’
其实,如果你在第4步测试的话会看到后台有加载模型的提示
(craft) fangg@fangg-MS-7B78:~/tts/audiocraft_plus-main$ python app.py
False
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
Loading model GrandaddyShmax/musicgen-large
默认是从 audiocraft_plus-main/GrandaddyShmax/musicgen-large 加载模型,这个是在代码里面写的,在audiocraft_plus-main/audiocraft/models/musicgen.py文件中有指定
@staticmethod
def get_pretrained(name: str = 'GrandaddyShmax/musicgen-melody', device=None):
"""Return pretrained model, we provide four models:
- facebook/musicgen-small (300M), text to music,
# see: https://huggingface.co/facebook/musicgen-small
- facebook/musicgen-medium (1.5B), text to music,
# see: https://huggingface.co/facebook/musicgen-medium
- facebook/musicgen-melody (1.5B) text to music and text+melody to music,
# see: https://huggingface.co/facebook/musicgen-melody
- facebook/musicgen-large (3.3B), text to music,
# see: https://huggingface.co/facebook/musicgen-large
"""
if device is None:
if torch.cuda.device_count():
device = 'cuda'
所以,我们需要在项目目录下手动创建一个GrandaddyShmax文件侠(指定别的路径的话,需要在调用地方改,目前我没有找到),然后在GrandaddyShmax文件侠里面创建一个musicgen-large文件侠,下载的模型文件就放里面
我这里下载了很多个文件,但好像只需要下载config.json和state_dict.bin两个就可以了。
到这里,如果继续测试的话应该还会报个t5-base模型无法下载的异常信息:
File "/home/fangg/tts/audiocraft_plus-main/audiocraft/models/loaders.py", line 111, in load_lm_model
model = builders.get_lm_model(cfg)
File "/home/fangg/tts/audiocraft_plus-main/audiocraft/models/builders.py", line 97, in get_lm_model
condition_provider = get_conditioner_provider(kwargs["dim"], cfg).to(cfg.device)
File "/home/fangg/tts/audiocraft_plus-main/audiocraft/models/builders.py", line 137, in get_conditioner_provider
conditioners[str(cond)] = T5Conditioner(output_dim=output_dim, device=device, **model_args)
File "/home/fangg/tts/audiocraft_plus-main/audiocraft/modules/conditioners.py", line 416, in __init__
self.t5_tokenizer = T5Tokenizer.from_pretrained(name)
File "/home/fangg/.local/lib/python3.10/site-packages/transformers/tokenization_utils_base.py", line 2070, in from_pretrained
raise EnvironmentError(
OSError: Can't load tokenizer for 't5-base'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 't5-base' is the correct path to a directory containing all relevant files for a T5Tokenizer tokenizer.
这是因为t5-base模型没有下载成功所致,t5-base模型下载,这里需要在项目目录下创建t5-base文件侠,然后下载config.json和model.safetensors两个文件,我这里下载了多个
注:我以为t5-base模型是和其他模型一样放在GrandaddyShmax目录下,但测试时一直报t5-base模型没有下载,我还以为我下载错了,我又在百度查了好久但都没有解决,最后,我测试了调用方法才知道t5-base模型是从项目目录下读取的,无语……
至此,启动测试就能成功了