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

news2024/11/24 20:46:32

昨天我们已经介绍过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“ 就会收到下载链接!

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

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

相关文章

绘制一个单级放大电路原理图过程,保姆级教程

新手在学习pads的使用最好最快的方法就是实际上手去画原理图,画PCB图,在这个过程中,就能够更快速得掌握PADS软件的使用。 本篇就是对于实际画原理图过程的一个记录,手把手教学,如果有纰漏或者有更好的一些技巧&#xf…

购买正版SOLIDWORKS软件有哪些好处?

在工程设计和制造领域,SOLIDWORKS软件以其强大的功能和广泛的应用而备受推崇。购买正版SOLIDWORKS软件,不仅是对知识产权的尊重,更是对企业和个人长远发展的明智选择。下面,我们将探讨购买正版SOLIDWORKS软件所带来的诸多好处。 …

vue vite 环境非构建包编译 React 报错定位

1. 背景 众所周知,vite 在构建生态的位置,vue 与之更是密切,主流的 vue 库几乎都与 vite 捆绑。 但有些 UI 库 如 private/ui 并没进行行编译,而是直接将源码发布到了 npm 中,无法实现兼容化,需要消费方去…

LabVIEW学习记录3 - 自定义函数

LabVIEW学习记录3 - 自定义函数 一、LabVIEW学习记录二、自定义函数及函数调用 一、LabVIEW学习记录 【labVIEW】学习记录LabVIEW学习记录2 - MySQL数据库连接与操作LabVIEW学习记录 - 实时显示时间LabVIEW学习记录4-局部变量、全局变量、共享变量 二、自定义函数及函数调用 …

【vue2项目经验总结:部署到服务器之后出现所有数据渲染失败的问题】

原因是因为在没部署到服务器之前前端为了解决跨域问题使用了代理,但是在项目部署到服务器之后,前端通常不再需要使用代理,因为代理的作用是在开发过程中帮助前端应用程序与后端服务进行通信,解决跨域访问等问题。在开发阶段&#…

海洋环境保护论文阅读记录

海洋环境保护 论文1:Critical role of wave–seabed interactions in the extensive erosion of Yellow River estuarine sediments 波浪-海床相互作用在黄河河口广泛侵中的关键作用 estuatine 河口的,港湾的 erodibility侵蚀度 sediment erodibility …

Springboot HelloWorld

新建一个maven工程 引入依赖项 <modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.11.RELEASE</version><…

LLM实战:LLM微调加速神器-Unsloth + LLama3

1. 背景 五一结束后&#xff0c;本qiang~又投入了LLM的技术海洋中&#xff0c;本期将给大家带来LLM微调神器&#xff1a;Unsloth。 正如Unsloth官方的对外宣贯&#xff1a;Easily finetune & train LLMs; Get faster with unsloth。微调训练LLM&#xff0c;可以显著提升速…

(项目)-KDE巡检报告(模板

金山云于12月26日对建行共计【30】个KDE集群,合计【198】台服务器进行了巡检服务。共发现系统风险【135】条,服务风险【1912】条,服务配置风险【368】条。 一、系统风险 1、风险分析(图片+描述) (1)磁盘使用率高 问题描述多个集群的多台服务器磁盘使用率较高,远超过…

UniAD大模型开路,智能车驶入AGI时代

作者 |老缅 编辑 |德新 在刚刚结束不久的北京车展上&#xff0c;除一众明星车型亮相&#xff0c;供应链企业也开始大秀肌肉&#xff0c;其中尤其以端到端大模型为代表&#xff0c;焕新一代的智驾技术栈掀起了新一轮热潮。 作为首个提出感知决策一体化自动驾驶通用模型的公司&…

计算机网络(第八版 谢希仁 编著) 期末复习大纲

一.每章总结 第一章&#xff1a;分组交换&#xff0c;计网定义、范围划分&#xff0c;性能指标&#xff0c;五层体系结构&#xff0c;TCP/IP体系结构 第二章&#xff1a;物理层&#xff0c;码元&#xff0c;基带调制(数字信号->数字信号&#xff0c;也叫编码)&#xff0c;带…

mysql group by 细节介绍

mysql中group by的用法是配合聚合函数&#xff0c;利用分组信息进行统计&#xff0c;语句如“select name,sum(id) from test group by name,number”。 先来看下表1&#xff0c;表名为test&#xff1a; 执行如下SQL语句&#xff1a; SELECT name FROM test GROUP BY name 你…

专业音频修复软件:iZotope RX 11 for Mac 激活版

iZotope RX 专为满足后期制作专业人士的苛刻需求而设计的一款专业音频修复软件。iZotope RX 10添加了新的特性和功能&#xff0c;以解决当今后期项目中存在的一些最常见的修复问题&#xff0c;使其成为音频后期制作的最终选择。虽然包含许多其他新功能&#xff0c;但这里是新的…

Postman基础功能-断言与日志

若能脱颖而出&#xff0c;何必苦苦融入。大家好&#xff0c;在 API 测试的领域中&#xff0c;Postman 是一款极为强大且广泛使用的工具。其中&#xff0c;断言和日志调试功能扮演着至关重要的角色。 一、介绍 断言允许我们在测试过程中验证 API 的响应是否符合预期。通过设定各…

数字人解决方案——AniTalker声音驱动肖像生成生动多样的头部说话视频算法解析

1.概述 AniTalker是一款先进的AI驱动的动画生成工具&#xff0c;它超越了简单的嘴唇同步技术&#xff0c;能够精准捕捉并再现人物的面部表情、头部动作以及其他非言语的微妙动态。这不仅意味着AniTalker能够生成嘴型精准同步的视频&#xff0c;更重要的是&#xff0c;它还能够…

使用LangChain和Neo4j快速创建RAG应用

大家好&#xff0c;Neo4j 通过集成原生的向量搜索功能&#xff0c;增强了其对检索增强生成&#xff08;RAG&#xff09;应用的支持&#xff0c;这标志着一个重要的里程碑。这项新功能通过向量索引搜索处理非结构化文本&#xff0c;增强了 Neo4j 在存储和分析结构化数据方面的现…

1-3ARM_GD32点亮LED灯

简介&#xff1a; 最多可支持 112 个通用 I/O 引脚(GPIO)&#xff0c;分别为 PA0 ~ PA15&#xff0c;PB0 ~ PB15&#xff0c;PC0 ~ PC15&#xff0c;PD0 ~ PD15&#xff0c;PE0 ~ PE15&#xff0c;PF0 ~ PF15 和 PG0 ~ PG15&#xff0c;各片上设备用其来实现逻辑输入/输出功能。…

基于SpringBoot+微信小程序的订餐(点餐)配送系统设计与实现+毕业论文(12000字)

系统介绍 本微信小程序在线订餐系统管理员功能可以修改个人中心&#xff0c;用户管理&#xff0c;菜品分类管理&#xff0c;菜品信息管理&#xff0c;订单信息管理&#xff0c;取消订单管理&#xff0c;订单配送管理&#xff0c;菜品评价管理以及系统管理。微信小程序用户可以…

【玄机平台】应急响应

前言&#xff1a; 感谢玄机平台靶机的提供&#xff0c;让我学到了不少东西 平台题解 &#xff1a; 第一章 应急响应-webshell查杀 1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx} ssh连接 下载/var/www/html源码&#xff08;finsehll连直接下&#xff09;压缩丢…

日志的基本用法

目标 1. 掌握如何设置日志级别 2. 掌握如何设置日志格式 3. 掌握如何将日志信息输出到文件中 1. logging模块 Python中有一个标准库模块logging可以直接记录日志 1.1 基本用法 import logging logging.debug("这是一条调试信息") logging.info("这是一条…