官方地址:https://github.com/TMElyralab/MuseV
在这里,可以看到生成的样例。这里总结下部署和安装,几乎和官网一样。
环境准备
- 电脑配有 nvidia 显卡
- 梯子
- docker 环境
- huggingface cli 工具 https://blog.vini123.com/1099
开始
-
先创建一个项目目录, museVtask。将 github 代码拉下来。
git clone --recursive https://github.com/TMElyralab/MuseV.git
这里一定要加上recursive参数,这样会将 diffusers 等子模块一起下载下来。 -
下载模型文件。这里不使用 git 下载,毕竟模型文件 32.3 G。使用 huggingface cli,还得要梯子。
huggingface-cli download --resume-download TMElyralab/MuseV --local-dir ./MuseV/checkpoints
-
在下载的同时,可以将 docker-compose 配置文件搞起来。先创建 Dockerfile 文件,代码如下:
FROM anchorxia/musev:latest
# 设置工作目录
WORKDIR /workspace/MuseV
# 将宿主机的 MuseV 目录复制到容器的对应目录
COPY ./MuseV /workspace/MuseV
# 设置 PYTHONPATH 环境变量
ENV PYTHONPATH=/workspace/MuseV:${PYTHONPATH}
ENV PYTHONPATH=/workspace/MuseV/MMCM:${PYTHONPATH}
ENV PYTHONPATH=/workspace/MuseV/diffusers/src:${PYTHONPATH}
ENV PYTHONPATH=/workspace/MuseV/controlnet_aux/src:${PYTHONPATH}
# 这里可以设置默认的命令,但如果你想要 bash 交互式 shell,则不需要
# CMD ["python", "your_script.py"]
再创建 docker-compose.yaml 文件,代码如下:
services:
musev:
build:
context: .
dockerfile: Dockerfile
image: musev
container_name: musev-latest
runtime: nvidia
restart: always
volumes:
- ./MuseV:/workspace/MuseV
stdin_open: true
tty: true
如果报错 docker: Error response from daemon: unknown or invalid runtime name: nvidia,请参考 https://blog.vini123.com/1206
- 生成 docker 镜像。这个镜像也很大。
docker-compose build
上边就 git clone 下载下来的文件最小,其他文件都很大,可以同时进行。这个要快的网络,还要有梯子。上边这些都准备好了之后,就可以运行了。先看看此时文件的目录构成情况。
.
├── Dockerfile
├── MuseV
│ ├── CHANGES
│ ├── Dockerfile
│ ├── LICENSE
│ ├── MMCM
│ ├── README-zh.md
│ ├── README.md
│ ├── checkpoints
│ ├── configs
│ ├── controlnet_aux
│ ├── data
│ ├── diffusers
│ ├── environment.yml
│ ├── musev
│ ├── output
│ ├── requirements.txt
│ ├── scripts
│ └── setup.py
├── Readme.md
└── compose.yaml
- 运行镜像,生成容器。
docker-compose up -d
。 - 查看容器。
docker ps
, 找到 musev 的容器 id。 - 进入容器。 docker exec -it xxx bash。 其中,xxx 是 musev 容器 id 的前三位。
- 进入容器后,执行下边命令,开始生成视频。
python scripts/inference/text2video.py --sd_model_name majicmixRealv6Fp16 --unet_model_name musev_referencenet --referencenet_model_name musev_referencenet --ip_adapter_model_name musev_referencenet -test_data_path ./configs/tasks/example.yaml --output_dir ./output --n_batch 1 --target_datas yongen --vision_clip_extractor_class_name ImageClipVisionFeatureExtractor --vision_clip_model_path ./checkpoints/IP-Adapter/models/image_encoder --time_size 12 --fps 12
这个直接从官方 github 上复制过来的。如果有需要,可以自行修改配置。
- 等待视频生成。等了两个小时。视频也生成了,就是样例上的第一个。