当前位置: 首页 > news >正文

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

目录

下载项目

创建虚拟环境

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

基于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项目了。 


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 简谈设计模式之代理模式
  • 五、 计算机网络(考点篇)
  • 走进linux
  • C语言 | Leetcode C语言题解之第230题二叉搜索树中第K小的元素
  • 我的AI音乐梦:ChatGPT帮我做专辑
  • 【PyTorch单点知识】自动求导机制的原理与实践
  • Apache配置与应用(优化apache)
  • 【Excel】 批量跳转图片
  • C#,开发过程中技术点GPT问答记录
  • 深入理解FFmpeg--libavformat接口使用(一)
  • paddlepaddle2.6,paddleorc2.8,cuda12,cudnn,nccl,python10环境
  • c语言alpha-beta剪枝六子棋
  • 【C++深度探索】全面解析多态性机制(二)
  • 炒鸡清晰的防御综合实验(内含区域划分,安全策略,用户认证,NAT认证,智能选路,域名访问)
  • 【JavaScript脚本宇宙】提升用户体验:探索 JavaScript 命令行界面开发工具
  • 【Leetcode】101. 对称二叉树
  • [译]Python中的类属性与实例属性的区别
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • bearychat的java client
  • Gradle 5.0 正式版发布
  • JavaScript的使用你知道几种?(上)
  • opencv python Meanshift 和 Camshift
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 高性能JavaScript阅读简记(三)
  • 工作手记之html2canvas使用概述
  • 和 || 运算
  • 回顾2016
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 如何优雅地使用 Sublime Text
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 中文输入法与React文本输入框的问题与解决方案
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 说说我为什么看好Spring Cloud Alibaba
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​人工智能书单(数学基础篇)
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • $.ajax()
  • (2.2w字)前端单元测试之Jest详解篇
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (31)对象的克隆
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (回溯) LeetCode 78. 子集
  • (六)DockerCompose安装与配置
  • (十六)串口UART
  • (未解决)macOS matplotlib 中文是方框
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (循环依赖问题)学习spring的第九天
  • (转)Sublime Text3配置Lua运行环境
  • (转载)Google Chrome调试JS
  • .apk 成为历史!
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .net core + vue 搭建前后端分离的框架
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .net 获取url的方法