政安晨【零基础玩转各类开源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项目了。 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44277.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android APT实战

Android开发中,注解平时我们用的比较多,也许我们会比较好奇,注解的背后是如何工作的,这篇文章帮大家一步步创建一个简单的注解处理器。 简介 APT(Annotation Processing Tool)即注解处理器,在编译的时候可以处理注解然后搞一些事情,也可以在编译时生成一些文件之类的。…

问题解决:“Cannot search on field [show_num] since it is not indexed.

找的解决方案&#xff0c;因为索引字段已经有数据 1. 新建索引&#xff0c;将mappings的show_num字段&#xff0c;index设置为true 2. 将旧索引的数据&#xff0c;复制到新索引 3. 删除旧索引 没采用新建索引&#xff0c;使用新增字段解决 1. 查询mapping&#xff0c;检测里…

Android Studio音频视频播放器课程设计

这个项目适合刚刚学习Android studio的初学者&#xff0c;实现音视频的基本播放功能&#xff0c;各项功能的页面都做的比较简单&#xff0c;特别适用于初学者&#xff0c;其特点在于本项目抛开了各种花里胡哨的制作&#xff0c;以最接近初学者的样式画面呈现&#xff0c;完全不…

20240711 每日AI必读资讯

&#x1f3a8;Runway Gen-3 Alpha 详细使用教程以及提示词指南大全 - 7月9日&#xff0c;著名生成式AI平台Runway在官网公布了&#xff0c;最新发布的文生视频模型Gen-3 Alpha的文本提示教程。 - 从技术层面来说&#xff0c;输入的文本提示会被转换成“向量”&#xff0c;这些…

深入理解Python密码学:使用PyCrypto库进行加密和解密

深入理解Python密码学&#xff1a;使用PyCrypto库进行加密和解密 引言 在现代计算领域&#xff0c;信息安全逐渐成为焦点话题。密码学&#xff0c;作为信息保护的关键技术之一&#xff0c;允许我们加密&#xff08;保密&#xff09;和解密&#xff08;解密&#xff09;数据。P…

通过Umijs从0到1搭建一个React项目

有一阵时间没写react了&#xff0c;今天通过umi搭建一个demo项目复习一下react&#xff1b;umi是一个可扩展的企业级前端应用框架&#xff0c;在react市场中还是比较火的一个框架。 Umi官方文档&#xff1a;Umi 介绍 (umijs.org) 一、构建项目。 1、安装包管理工具。 官方推…

力扣题解(设计跳表)

1206.设计跳表 已解答 不使用任何库函数&#xff0c;设计一个 跳表 。 跳表 是在 O(log(n)) 时间内完成增加、删除、搜索操作的数据结构。跳表相比于树堆与红黑树&#xff0c;其功能与性能相当&#xff0c;并且跳表的代码长度相较下更短&#xff0c;其设计思想与链表相似。 …

【观成科技】Websocket协议代理隧道加密流量分析与检测

Websocket协议代理隧道加密流量简介 攻防场景下&#xff0c;Websocket协议常被用于代理隧道的搭建&#xff0c;攻击者企图通过Websocket协议来绕过网络限制&#xff0c;搭建一个低延迟、双向实时数据传输的隧道。当前&#xff0c;主流的支持Websocket通信代理的工具有&#xf…

构建高精度室内定位导航系统,从3DGIS到AI路径规划的全面解析

室内定位导航系统是一种利用多种技术实现室内精准定位和导航的智能系统&#xff0c;即便没有卫星信号&#xff0c;也能实现精准导航。维小帮室内定位导航系统是基于自研的地图引擎与先进定位技术&#xff0c;结合智能路径规划算法&#xff0c;解决了人们在大型复杂室内场所最后…

【深度学习】图形模型基础(6):模型优化理论

1.引言 在之前的讨论中&#xff0c;我们构建了一个理论模型来表达最优决策规则&#xff0c;这是建立在我们对数据的概率模型有充分理解的基础上的。相对地&#xff0c;经验风险最小化&#xff08;Empirical Risk Minimization, ERM&#xff09;策略则在缺乏精确概率模型的情况…

Python编程学习第一篇——Python零基础快速入门(六)

今天大家一起来学习一下Python 中的运算符&#xff0c;主要分为以下几类&#xff1a;算术运算符、比较运算符、逻辑运算符、位运算符、赋值运算符、身份运算符和成员运算符。 算术运算符&#xff1a; &#xff1a;加法运算符&#xff0c;用于两个数相加。-&#xff1a;减法运算…

Java语言程序设计——篇三(1)

选择结构 概述选择单分支if语句例题讲解 双分支if-else语句例题讲解 条件运算符多分支的if-else语句例题讲解 嵌套的if语句例题讲解 switch语句结构例题讲解代码演示运行结果 概述 Java中的控制结构&#xff0c;包括&#xff1a; 1、选择结构( if、if-else、switch ) 2、循环结…

仕考网:非应届生可以参加公务员考试吗?

往届生有资格参加国家公务员考试。根据《公务员录用规定》&#xff0c;只要满足一系列资格条件&#xff0c;就符合报考资格。 1、年龄在18到35岁之间。 2、具备良好的品德&#xff0c;身体健康且心理素质稳定&#xff0c;拥有拟任职位所需的工作能力。 3、至少为大学专科以上…

前端计算网络常识

OSI七层模型 OSI ( Open System Interconnection )是理想化的模型&#xff0c;将网络进行分层&#xff0c;其目的是将 复杂的流程简单化&#xff0c;从而实现分而治之。&#xff08;专人干专事&#xff09; 一.网络分层的含义? 下层是为了上层提供服务的。 应用层&#xff1a;…

【排序 - 归并排序】

归并排序&#xff08;Merge Sort&#xff09;是一种高效的排序算法&#xff0c;基于分治&#xff08;Divide and Conquer&#xff09;策略。它将待排序数组分成两个较小的子数组&#xff0c;分别对它们进行排序&#xff0c;然后将排好序的子数组合并成一个整体有序的数组。归并…

qt connect 链接其他类的函数

在 Qt 中&#xff0c;connect 函数用于建立信号与槽的连接&#xff0c;使得当某个信号被触发时&#xff0c;与之连接的槽函数将被调用。如果你想连接其他类的函数&#xff0c;你需要确保满足以下条件&#xff1a; 信号与槽的匹配&#xff1a;信号和槽的参数类型和数量必须匹配…

愚人杯的RE题

easy_pyc pyc反编译成py文件 # uncompyle6 version 3.9.1 # Python bytecode version base 2.7 (62211) # Decompiled from: Python 3.11.8 (tags/v3.11.8:db85d51, Feb 6 2024, 22:03:32) [MSC v.1937 64 bit (AMD64)] # Embedded file name: enpyc.py # Compiled at: 2023…

html5——列表、表格

目录 列表 无序列表 有序列表 自定义列表 表格 基本结构 示例 表格的跨列 表格的跨行 列表 无序列表 <ul>【声明无序列表】 <li>河间驴肉火烧</li>【声明列表项】 <li>唐山棋子烧饼</li> <li>邯郸豆沫</li> <l…

opencv实现目标检测功能----20240704

早在 2017 年 8 月,OpenCV 3.3 正式发布,带来了高度改进的“深度神经网络”(dnn)模块。 该模块支持多种深度学习框架,包括 Caffe、TensorFlow 和 Torch/PyTorch。这次我们使用Opencv深度学习的功能实现目标检测的功能,模型选用MobileNetSSD_deploy.caffemodel。 模型加载…

Aop实现后端数据重复提交

一、思路 用户每次发送请求都有一个标记&#xff0c;这个标记设置成5s有效存到redis中。每次请求检查该标记是否有效&#xff0c;还有效就说明请求太频繁了。无效就说明请求之间时间间隔够了&#xff0c;可以继续请求了。 gitee地址&#xff1a;添加链接描述 二、实现 自定义…