目录
下载项目
创建虚拟环境
启动虚拟环境&执行项目依赖
基于DOCKER的尝试
A. 安装引擎
B. 下载桌面安装包
C. 安装桌面包
用Docker运行MuseV
1. 拉取镜像
编辑
2. 运行Docker镜像
政安晨的个人主页:政安晨
欢迎 👍点赞✍评论⭐收藏
收录专栏: 零基础玩转各类开源AI项目
希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!
本文目标:基于Ubuntu系统从源码部署MuseV项目。
项目地址:
git clone --recursive https://github.com/TMElyralab/MuseV.git
MuseV
是基于扩散模型的虚拟人视频生成框架,具有以下特点:
- 支持使用新颖的视觉条件并行去噪方案进行无限长度生成,不会再有误差累计的问题,尤其适用于固定相机位的场景。
- 提供了基于人物类型数据集训练的虚拟人视频生成预训练模型。
- 支持图像到视频、文本到图像到视频、视频到视频的生成。
- 兼容
Stable Diffusion
文图生成生态系统,包括base_model
、lora
、controlnet
等。- 支持多参考图像技术,包括
IPAdapter
、ReferenceOnly
、ReferenceNet
、IPAdapterFaceID
。- 项目方后面也会推出训练代码。
下载项目
git clone --recursive https://github.com/TMElyralab/MuseV.git
下载时一定要注意递归选项(该项目中含有子模块):
创建虚拟环境
尝试使用项目中自带的配置引导文件创建conda虚拟环境:
conda env create --name musev --file ./environment.yml
如果小伙伴们在这个过程中出错,可以尝试解析一下这个配置文件,并一步步操作,遇到问题解决问题。
过程如下:
在MuseV的目录中,打开虚拟环境配置文件:
没有Vim的伙伴自行安装:
sudo apt install vim
打开配置文件如下:
这里面有个关键点,python的版本,配置中显示的是python=3.10.6,我们就用3.10的python版本把conda环境先创建出来,再在虚拟环境中使用pip安装依赖进行尝试:
conda create -n musev python=3.10
conda activate musev
启动虚拟环境&执行项目依赖
在MuseV的项目目录中执行:
pip install -r requirements.txt
如果伙伴们安装之后发现还是有问题的话,比如:莫名其妙出现各种安装错误,那么,使用docker吧。
基于DOCKER的尝试
逐本溯源,docker官网:
https://www.docker.com/https://www.docker.com/
我们使用他们的Linux版本:
参考官网上的这篇文章:
https://docs.docker.com/desktop/install/ubuntu/https://docs.docker.com/desktop/install/ubuntu/为什么学会安装Docker很有必要?
因为你装好docker后,可以直接将MuseV团队做好的docker镜像拉取下来,尝试。别人把docker镜像已经做好了,这是运行他们团队配置好的环境的最简单的办法。
好啦,继续整docker吧。
首先下载安装包:
确定一下当前环境有没有安装gnome:
echo $XDG_CURRENT_DESKTOP
我这里已经是gnome了。
没有的话装一个:
sudo apt install gnome-terminal
按照下面这个步骤安装:
当然,这里面还有几个小步骤:
A. 安装引擎
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
我示例了一下这个阶段的执行过程如下:
这里顺道多说一句:
在 Ubuntu 中使用 Docker 下载镜像文件可以通过以下步骤实现:
-
打开终端并输入以下命令,更新 Docker 镜像列表:
sudo docker image update
这会获取最新的 Docker 镜像列表,确保您能够下载最新版本的镜像文件。
-
使用以下命令来拉取 Docker 镜像:
sudo docker pull <image_name>:<tag>
其中,
<image_name>
是要下载的镜像名称,<tag>
是镜像的版本标签。例如,要下载 Ubuntu 20.04 镜像文件,可以执行以下命令:sudo docker pull ubuntu:20.04
此时,Docker会将镜像文件保存在默认的存储路径 /var/lib/docker/image目录下。
取消安装
1. 卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包:
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
2. 主机上的映像、容器、卷或自定义配置文件不会自动删除。 要删除所有映像、容器和卷,请执行以下操作:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
B. 下载桌面安装包
C. 安装桌面包
sudo apt-get update
sudo apt-get install ./docker-desktop-<arch>.deb
大家根据需要来吧,准备好docker环境后开始再次尝试MuseV。
用Docker运行MuseV
1. 拉取镜像
docker pull anchorxia/musev:latest
2. 运行Docker镜像
docker run --gpus all -it --entrypoint /bin/bash anchorxia/musev:latest
注:
1) docker一般情况下需要管理员权限运行:sudo su
2) 查看docker版本:docker version
3) 查看已经拉取的docker镜像: docker images
4) 删除某个docker镜像:docker rmi xxx
如果你使用的是英伟达的显卡,在第一次运行的时候可能会报错,docker19及以后的版本使用nvidia gpu 已经不需要单独安装nvidia-docker了,这已经被集成到了docker中。
在运行docker镜像中,我们如果通过 --gpus 参数来使用宿主机的GPU时,就需要先安装一个英伟达的容器运行时。步骤如下:
(参照N卡的官方文档指引:Migration Notice | nvidia-container-runtime)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update
准备好之后,安装运行时:
sudo apt-get install nvidia-container-runtime
安装完成后,验证一下:
which nvidia-container-runtime
停止docker:
systemctl stop docker
把运行时添加到docker中:
dockerd --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
如果无法添加成功,就按照如下操作:
编辑或创建Docker的配置文件(如果不存在)/etc/docker/daemon.json
,并添加以下内容:
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
重新启动docker:
sudo systemctl restart docker
(如果您感觉重启服务无法成功的话,把主机重启一下也可以)
进入docker后的退出命令:
退出容器命令
exit
或者
Ctrl+P+Q
一切就绪之后,可以使用docker运行musev了。
终于可以愉快的玩耍了。(作者政安晨把坑都踩完了,小伙伴们加油吧)
彩蛋:
在正常工作中,由于docker內部一般不不会固化更改,很多时候需要把宿主机的路径挂载到容器路径上,完成映射,以便于访问文件和使用。
所以,上面的docker容器运行命令可以修改为:
docker run --gpus all -it -v /home/tongyuzhou/aigc/MuseV:/workspace --entrypoint /bin/bash anchorxia/musev:latest
此时,您进入docker容器的workspace目录中就可以看到在宿主机上用git下载的MuseV项目了。