AI试衣IDM-VTON,Windows11本地安装配置记录!

昨天我们已经介绍过IDM-VTON这个开源项目了。

通过这个软件可以轻松实现一键换衣服。

昨天,简单演示了一下在线使用。

今天,来演示如何安装到本地电脑上!

本地配置会有一定的专业性,懂的人可以参考下。

不懂得直接拉到最后,动动手指!

我会发一个制作好的离线软件包。

闲话不多说了,直接开干!

确保你本地有显卡(我用的是3090),Windows系统,已经安装Python或者Conda,GIT等软件。

1.获取软件源代码

这是一个开源项目,所以可以使用git命令直接过去源代码。

git clone https://github.com/yisol/IDM-VTON.git

2.创建虚拟环境

如果你只是偶尔用一下Python环境,那么直接装个Python3.10就可以了。不需要这一步。

如果你常玩Python的AI项目,肯定知道用Conda创建一个虚拟环境,隔离不同项目。

常规做法是可以使用项目自带的environment文件,一次性创建虚拟环境并安装依赖。

命令如下:

conda env create -f environment.yaml

但是,environment这种方式,失败率比较高。

实际上,我直接用这条命令也失败了。

所以,换成了先创建虚拟环境。

conda create -n idm  python=3.10
conda activate idm

创建虚拟环境之后,记得激活。

3.安装依赖

虚拟环境创建并激活之后,就可以使用pip命令安装依赖了。

我习惯先独立安装torch

cd IDM-VTON
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118

然后批量安装其他依赖:

pip install -r req.txt

req.txt是我自己创建的一个文件,文件里面的内容是:

accelerate==0.25.0

torchmetrics==1.2.1

tqdm==4.66.1

transformers==4.36.2

diffusers==0.25.0

einops==0.7.0

bitsandbytes==0.39.0

scipy==1.11.1

opencv-python

gradio==4.24.0

fvcore

cloudpickle

omegaconf

pycocotools

basicsr

av

onnxruntime==1.16.2

执行完成,依赖也就全部安装完成了。从我本地测试的情况来看,所有依赖和指定版本都能正常安装,没有任何冲突或者标红的记录。

4.获取模型

通过上面的步骤,环境配置已经搞定,接下来就是获取模型了。

模型能我简单的把它们划分为两类,一类是基础模型,一类是这个项目的专属模型。

先说专属模型,主要注意如下的目录结构。

ckpt

|-- densepose

|-- model_final_162be9.pkl

|-- humanparsing

|-- parsing_atr.onnx

|-- parsing_lip.onnx

|-- openpose

|-- ckpts

|-- body_pose_model.pth

项目作者已经帮你创建好了这些文件和模型。但是模型文件只是做个样子,并没有实际内容,需要自己下载替换。

基础模型的话,你在第一次启动的时候会自动下载。大概有28G

获取这些模型,可以通过这个地址:

https://huggingface.co/yisol/IDM-VTON/tree/main

对于专属模型,找到对应文件夹里的模型,下载到本地对应的路径就行了。

另外的模型,我就使用如下代码,让它自动加载了。

set HF_HOME=.\cache
python gradio_demo/app.py

这里需要注意,第一行代码很重要,可以防止你的C盘爆掉!

第二行代码其实是启动webui,由于启动过程会先加载模型,所以可以用这个来下载模型。

由于模型比较大,即便是网络比较好,也需要一些时间。

5.运行WEBUI

模型加载完成之后会自动启动WEBUI,以后如果要手动启动,还是执行同样的命令即可。

set HF_HOME=.\cache
python gradio_demo/app.py

输入命令之后会输出一些内容。看到如下信息基本就是成功启动了。

Running on local URL:  http://127.0.0.1:7860

复制上面的地址,在浏览器中打开,然后就可以愉快地玩耍了。

打开后的界面,和昨天介绍的网页版一模一样。

所以用法也相同,为了文章的可读性。我还是简单介绍一下使用方法。

大概步骤是 ①模特照片,②上传服装,点击③试穿即可。

服装照片自然是选择最干净的平面照片,模特的话,只要衣服和其他内容比较容易区分即可。

6.离线运行

按理说,本地配置完成之后,模型已经缓存到了本地。软件应该就可以断网执行了。但是由于代码中是通过huggingface加载模型,所以即便本地有缓存,还是需要连线加载。

为了解决这个问题,我尝试使用了离线变量。

set HF_HUB_OFFLINE=1
set TRANSFORMERS_OFFLINE=1

但是不知道什么原因,一直出错。

后来想到的办法是直接拷贝下载好的模型缓存文件到另一个文件夹。

一个小发现,拷贝缓存文件中的软链接,可以直接拷贝对应的文件。

然后修改app.py中的代码:

base_path = 'cache\IDM-VTON'

修改完成之后,就可以彻底离线加载本地模型了。

7.离线的一键运行包

安装配置都讲完了,如果你比较擅长配置,同时本地网络流畅,硬盘读写快。

那么只要复制一下命令,就可以快速完成配置了。

但是对大部分人,大部分情况可能没有这么顺畅。

比如,就我这台电脑,光制作7z的压缩包,就花了2个小时。打包完20GB,上传到网盘也要不少时间!

前面的配置和试错时间肯定就更多了。

所以,制作一个打包好的软件包就非常有必要。给以后的我省时间,也给大家省时间。

下面就简单说一下软件包的使用方法。

首先获取软件包,获取之后会得到一个.7z的压缩包。

然后用解压软件解压,解压过程需要输入密码,密码看网盘里的说明。

解压完成之后,双击”启动.exe” 。

启动过程如下:

首先会有一个提示信息,然后等到跳出URL信息,跳出之后会自动打开本地的默认浏览器。

浏览器上就可以看到如下界面了:

用法还是和之前讲的一模一样,上传模特照片和衣服照片,点击试穿。等待一会儿,就可以在右上方看到最终的效果图了。

等待时间,会因为电脑配置不同,而有巨大的差异。

比如我在装3060显卡的电脑,跑一张图好像要几个小时….我感觉是加载模型的时候用到了共享内存,或者其他资源不够,所以特别慢。

但是在装3090显卡的电脑上就挺快,第一次用了54秒,第二次只用14秒。

14秒一次的话,完全在可接受的范围内啊。

今天的文章大概就是这样了,如果安装配置有困难的可以相互交流下。

如果是直接用软件包,应该没啥问题,只要保证你的电脑配置够强就行了。

软件包获取方式:

给公众号“托尼不是塔克”发送”idm“ 就会收到下载链接!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL数据库开发设计规范】之字段设计规范

欢迎点开这篇文章,自我介绍一下哈,本人姑苏老陈 ,是一名JAVA开发老兵。 本文收录于 《MySQL数据库开发设计规范》专栏中,该专栏主要分享一些关于MySQL数据库开发设计相关的技术规范文章,定期更新,欢迎关注&…

强化训练:day7(字符串中找出连续最长的数字串、岛屿数量、拼三角)

文章目录 前言1. 字符串中找出连续最长的数字串1.1 题目描述1.2 解题思路1.3 代码实现 2. 岛屿数量2.1 题目描述2.2 题目描述2.3 代码实现 3. 拼三角3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 1. 字符串中找出连续最长的数字串   2. 岛屿数量   3. 拼三角 1. 字符串…

嵌入式和单片机的区别在哪?

嵌入式和单片机是两个不同的概念,它们在很多方面都存在着差异。嵌入式系统是一种专用的计算机系统,通常用于控制和监测其他设备。它通常由微处理器、存储器、输入/输出接口和其他外围设备组成。嵌入式系统可以运行各种操作系统,如 Linux、Win…

java spring boot动态数据库获得配置信息连接多数据源(数据库)

数据库 数据库文件和代码文件 https://download.csdn.net/download/qq_34631220/89304173 链接:https://pan.baidu.com/s/1xoh6xiSRx4nW_gKvR1QPjg 提取码:i7b7 –来自百度网盘超级会员V5的分享 文章位置 添加链接描述 说明:事务只能单库…

小程序常用组件

小程序常用组件 1.组件的定义2.常用组件3.引入外部字体图标库4.组件样式5.示例代码 1.组件的定义 组件就是指微信定义的具有特殊功能的标签&#xff0c;在wxml中只能使用微信定义的标签。 2.常用组件 <view>&#xff1a;用于页面布局的块级组件&#xff0c;类似于html中的…

【3dmax笔记】021:对齐工具(快速对齐、法线对齐、对齐摄影机)

文章目录 一、对齐二、快速对齐三、法线对齐四、对齐摄影机五、注意事项3dmax提供了对齐、快速对齐、法线对齐和对齐摄像机等对齐工具: 对齐工具选项: 下面进行一一讲解。 一、对齐 快捷键为Alt+A,将当前选择对象与目标对象进行对齐。 最大对最大:

基于SpringBoot+Vue的法律咨询系统

课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不可跨域的鸿沟&#xff0c;信息的传播速度极慢&#xff0c;信息处理的速…

7B2 PRO主题5.4.2 免授权开心版源码 | WordPress主题

简介&#xff1a; B2 PRO 5.4.2 最新免授权版不再需要改hosts&#xff0c;和正版一样上传安装就可以激活。 直接在WordPress上传安装即可 点击下载

3.整数运算

系列文章目录 信息的表示和处理 : Information Storage&#xff08;信息存储&#xff09;Integer Representation&#xff08;整数表示&#xff09;Integer Arithmetic&#xff08;整数运算&#xff09;Floating Point&#xff08;浮点数&#xff09; 文章目录 系列文章目录前…

基于SpringBoot + MySQL的宠物医院管理系统设计与实现+毕业论文+指导搭建视频

系统介绍 项目的使用者可以避免排队挂号&#xff0c;比较方便&#xff0c;也方便于宠物医院的管理。现在的宠物本系统根据华阳社区宠物医院管理工作流程将系统使用者划分为三类&#xff0c;分别为、宠物医生、宠物主人以及系统管理人员&#xff0c;以下是对该三类类用户的具体…

几个简单操作,让3dmax渲染速度起飞‼️

3dmax渲染慢原因&#xff1a; 场景复杂度&#xff1a;场景中模型、材质、纹理和贴图的复杂性增加渲染时间。优化场景&#xff0c;使用简化模型和材质可提高速度。 高质量设置&#xff1a;高级渲染效果如光线追踪、全局照明等增加计算量。适当降低设置&#xff0c;如减少分辨率…

类文件具有错误的版本 61.0, 应为 52.0

报错如下&#xff1a; Spring Boot 3以上版本至少得依赖JDK17版本&#xff0c;如果项目中要求使用JDK8版本&#xff0c;那么只能使用Spring Boot 2版本了。 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-par…

ssm+vue的公务用车管理智慧云服务监管平台查询统计(有报告)。Javaee项目,ssm vue前后端分离项目

演示视频&#xff1a; ssmvue的公务用车管理智慧云服务监管平台查询统计&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&…

pytest(二)

1.pytest-html⽣成报告 Pytest-HTML 是⼀个插件&#xff0c;它可以⽣成漂亮且易于阅读的 HTML 测试报告。下⾯是使⽤ pytest-html ⽣成报告的步骤&#xff1a; 1. 安装 pytest-html 插件&#xff1a; pip install pytest-html 2. 运⾏测试并⽣成报告 pytest --htmlr…

python内置类bytearray()详解

bytearray 是 Python 的一个内置类&#xff0c;它提供了一个可变序列的字节数组。 bytearray 数组的元素必须是0-255之间的整数&#xff0c;这些整数对应于ASCII字符集中的数字。下面着张图是部分ASCII字符&#xff1a; bytearray 是可变的&#xff0c;可修改其内容&#xff0c…

Linux下网络命令

目录 需求1-查看本机是否存在22端口解法1解法2解法3 需求2-查看其他主机是否存在22端口解法1解法2解法3 需求3-查看TCP连接解法1/2 需求4-统计80端口tcp连接次数解法 需求5-查看总体网络速度解法 需求6-查看进程流量解法 需求7-dns解法 需求8-traceroute到baidu解法 需求9-查看…

上传到 PyPI

将软件包上传到 PyPI&#xff08;Python Package Index&#xff09;&#xff0c;您需要遵循以下步骤&#xff1a; 准备软件包&#xff1a;确保您的软件包满足以下要求&#xff1a; 包含一个 setup.py 文件&#xff0c;用于描述软件包的元数据和依赖项。包含软件包的源代码和必要…

浅析扩散模型与图像生成【应用篇】(二十四)——Text2Live

24. Text2LIVE : Text-Driven Layered Image and Video Editing 本文提出一种文本驱动的图像和视频编辑方法。与其他方法直接对图像进行编辑的方式不同&#xff0c;本文提出的方法并不是基于扩散模型的&#xff0c;更像是一个自编码器&#xff0c;通过对原图编码解码输出一个新…

[ACTF新生赛2020]SoulLike

没见过的错误&#xff1a; ida /ctg目录下的hexrays.cfg文件中的MAX_FUNCSIZE64 改为 MAX_FUNCSIZE1024 然后就是一堆数据 反正就是12个字符 from pwn import * flag"actf{" k0 for n in range(12):for i in range(33,127):pprocess("./SoulLike")_flag…

FFmpeg常用API与示例(三)—— 音视频解码与编码

编解码层 1.解码 (1) 注册所有容器格式和 CODEC:av_register_all() (2) 打开文件:av_open_input_file() (3) 从文件中提取流信息:av_find_stream_info() (4) 穷举所有的流&#xff0c;查找其中种类为 CODEC_TYPE_VIDEO (5) 查找对应的解码器:avcodec_find_decoder() (6) …