政安晨【零基础玩转各类开源AI项目】基于Ubuntu系统部署MuseV (踩完了所有的坑):基于视觉条件并行去噪的无限长度和高保真虚拟人视频生成

发布于:2024-07-11 ⋅ 阅读:(17) ⋅ 点赞:(0)

目录

下载项目

创建虚拟环境

启动虚拟环境&执行项目依赖

基于DOCKER的尝试

A. 安装引擎

B. 下载桌面安装包

C. 安装桌面包

用Docker运行MuseV

1. 拉取镜像

​编辑

2. 运行Docker镜像


政安晨的个人主页:政安晨

欢迎 👍点赞✍评论⭐收藏

收录专栏: 零基础玩转各类开源AI项目

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

本文目标基于Ubuntu系统从源码部署MuseV项目。

项目地址:

git clone --recursive https://github.com/TMElyralab/MuseV.git

MuseV 是基于扩散模型的虚拟人视频生成框架,具有以下特点:

  1. 支持使用新颖的视觉条件并行去噪方案进行无限长度生成,不会再有误差累计的问题,尤其适用于固定相机位的场景。
  2. 提供了基于人物类型数据集训练的虚拟人视频生成预训练模型。
  3. 支持图像到视频、文本到图像到视频、视频到视频的生成。
  4. 兼容 Stable Diffusion 文图生成生态系统,包括 base_modelloracontrolnet 等。
  5. 支持多参考图像技术,包括 IPAdapterReferenceOnlyReferenceNetIPAdapterFaceID
  6. 项目方后面也会推出训练代码。

下载项目

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/icon-default.png?t=N7T8https://www.docker.com/

我们使用他们的Linux版本:

参考官网上的这篇文章:

https://docs.docker.com/desktop/install/ubuntu/icon-default.png?t=N7T8https://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 下载镜像文件可以通过以下步骤实现:

  1. 打开终端并输入以下命令,更新 Docker 镜像列表:

    sudo docker image update
    

    这会获取最新的 Docker 镜像列表,确保您能够下载最新版本的镜像文件。

  2. 使用以下命令来拉取 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项目了。