这个AI换衣项目也太惊艳了吧,看完我整个人都不好了!

在这个科技飞速发展的时代,人工智能(AI)已经突破了传统的应用边界,从大语言模型如ChatGPT的出现,到AI绘画创作工具如Midjourney和Stable Diffusion的广泛应用,这些进步不仅展示了AI的强大潜力,也不断重塑着我们对艺术和创意表达的认识。但是,如果我告诉你,AI的魔力不止于此,它现在甚至能够帮助我们选择和搭配衣服,甚至在虚拟世界中为我们“换装”,你敢相信吗?最近,老秦发现了一个AI虚拟试穿项目,它的创新性和表现力让我整个人都不好了!

先看效果:

下面老秦就介绍下AI虚拟试穿技术以及OOTDiffusion项目的本地部署。

AI虚拟试穿技术的发展史

虚拟试穿技术的最初概念可以追溯到2000年代初期。那时,这项技术主要依赖于简单的2D图像处理和虚拟现实技术,用户可以在电脑上试穿虚拟服装。

随着智能手机和平板电脑的普及,以及图像处理技术和计算能力的显著提升,2010年代见证了虚拟试穿技术的重要进步。增强现实(AR)技术的应用使得用户能够通过设备摄像头实时看到自己穿着虚拟服装的样子。这一时期,多家初创公司和大型科技公司开始研发更高级的虚拟试穿解决方案,提高了用户交互体验的自然度和真实感。

近年来,随着人工智能(AI)和机器学习技术的飞速发展,虚拟试穿技术迎来了革命性的变革。AI不仅能够提高虚拟试穿的精确度和逼真度,还能够根据用户的体型、偏好以及历史数据推荐个性化的服装。深度学习算法使得虚拟试穿能够在复杂的背景下准确识别用户的身体轮廓,并实时渲染服装图像以适应不同的姿势和动作。

AI虚拟试衣最新技术成果

TryOnDiffusion

TryOnDiffusion 是由Google Research 与华盛顿大学联合研发。可以通过将两张图片融合起来,让模特无须重新拍摄就可以展示出不同服装的上身效果。传统的合成方法通常只能接受造型区别不大的两张图片,否则合成出来的新图片会出现服装变形严重的情况。而 TryOnDiffusion 基于并行 UNet 的扩散式架构打造,能够在保留更多细节的情况下让服装和真人模特相结合,呈现出自然的服装效果。

项目地址:

https://github.com/tryonlabs/tryondiffusion

论文地址:

https://arxiv.org/pdf/2306.08276.pdf

Diffuse to Choose

Diffuse to Choose 是由亚马逊推出的,也是基于扩散模型改进,可以为网购客户提供身临其境的虚拟试穿服务。与扩散模型相比,Diffuse to Choose模型能更好地捕捉商品细节,保证与环境的高度融合。用户可以上传一张全身自拍照,测试不同服装的试穿效果,或者上传多张人物照片,测试同件服装的穿着效果。消费者还可以拍摄家中的场景,选择不同的家具来测试商品和家装氛围的契合度。

项目地址:

https://diffuse2choose.github.io/

论文地址:

https://arxiv.org/pdf/2401.13795.pdf

Outfit Anyone

Outfit Anyone 是由阿里推出的虚拟试穿技术。该技术采用双流条件扩散模型处理模特和服装数据,通过衣物图像实现逼真的虚拟试穿效果,结合Animate Anyone技术,轻松制作任意角色的换装视频。只需要一张人物照片和服装照片,就可以为不同的姿势和身体形状创建高质量的虚拟试穿。

项目地址:

https://github.com/HumanAIGC/OutfitAnyone

论文地址:

https://humanaigc.github.io/outfit-anyone/

体验地址:

https://huggingface.co/spaces/HumanAIGC/OutfitAnyone

该项目疑似空壳开源,口碑和画风不好,并且该组织下的好几个项目都是空壳,github的issues下基本都是国粹精华,感兴趣的可以自行去吃瓜。

该项目对应的商业产品地址:https://outfitanyone.app,按月订阅是每月29美刀,只对国外开放,该产品页下方声明了与阿里巴巴公司无关,具体详情老秦无从考证。

OOTDiffusion

OOTDiffusion 是由东京大学的几位博士开源,基于Stable Diffusion模型微调,用于实现现实且可控的基于图像的虚拟试穿(VTION)。该方法利用预训练的潜在扩散模型,并设计了一个outfitting UNet来学习服装细节特征。通过在去噪UNet的自注意力层中引入outfitting融合,可以精确地将服装特征与目标人体对齐,而无需冗余的变形过程。为了进一步增强可控性,作者还引入了outfitting dropout到训练过程中,以调整服装特征的强度。实验结果表明,在VITON-HD和Dress Code数据集上,OOTDiffusion能够高效地生成高质量的试穿效果,不仅具有更高的真实性和可控性,而且取得了令人印象深刻的突破。

项目地址:

https://github.com/levihsu/OOTDiffusion

论文地址:

https://arxiv.org/pdf/2403.01779.pdf

体验地址:

https://huggingface.co/spaces/levihsu/OOTDiffusion

该项目模型和权重已经开源,在huggingface上可以下载,但是目前还没有开放训练代码,并且该项目使用的是“知识共享 署名-非商业性使用-相同方式共享 4.0 国际许可协议”,故不能用作商业目的。

OOTDiffusion本地部署

作者只在Linux(Ubuntu 22.04)系统上测试过代码和模型,如果使用的是Linux系统,按照项目github仓库给出的部署方式即可,这里老秦是在个人的windows电脑上部署的,显卡是 RTX 2062S,出图大概在一分钟左右,效果也还可以。

在部署之前我们需要先确保我们电脑已经安装了基础的环境,比如 conda 包管理工具, 既然是机器学习项目,python环境是少不了的,这里老秦不在赘述,请自行google,老秦也推荐一款AI搜索引擎-Perplexity AI(www.perplexity.ai)。

安装

1.克隆仓库

git clone https://github.com/levihsu/OOTDiffusion

2.创建conda环境并安装所需的包

conda create -n ootds python==3.10
conda activate ootds
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
pip install -r requirements.txt

对于Windows用户,除了上述步骤,确保nvcc编译器安装正确也是必要的。这通常通过安装cuda-nvcc包来完成:

conda install cuda-nvcc -c nvidia

3.配置 MSVC
由于在windows系统上部署需要C++编译环境支持,所以需要配置配置 MSVC。

首先是 nvcc 安装(确保 VIRTUAL_ENV/bin/nvcc 存在):

conda install cuda-nvcc -c nvidia

在搜索引擎搜索 “用于visual studio的工具”:

下载 Visual Studio 生成工具并安装:

根据自己的操作系统版本,只需要安装下图的三个即可:

注意:不要从 Installer 点击启动 terminal。

进入:

 C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build 目录

右击进入 terminal,注意要用 CMD 不要 powershell。

启动 native x64 target x64 的编译环境变量(兼容环境下 nvcc 编译会报错):

vcvars64.bat

4.下载模型

上huggingface下载模型:

(https://huggingface.co/levihsu/OOTDiffusion)

模型检查点目录有如下四个目录:

5.修改run目录下的gradio_ootd.py文件

因为该文件中设定了默认使用2个GPU,老秦的电脑只有一个GPU,所以需要改下如下代码:

openpose_model_hd = OpenPose(0)
parsing_model_hd = Parsing(0)
ootd_model_hd = OOTDiffusionHD(0)

openpose_model_dc =openpose_model_hd
parsing_model_dc = parsing_model_hd 
ootd_model_dc = ootd_model_hd 

6.启动gradio ui

cd run
python gradio_ootd.py

如下,说明启动成功:

访问localhost:7865,可以看到gradio页面了:

接下来就可以给模特换个衣服了:

大概用了不到1分钟出图。

7.问题解决

如发生AttributeError异常:

AttributeError: module 'torch._C' has no attribute '_cuda_setDevice'

可能是版本问题,执行下如下命令:

conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia

如果发生ImportError异常:

ImportError: cannot import name 'COMMON_SAFE_ASCII_CHARACTERS' from 'charset_normalizer.constant'

需安装chardet

pip install chardet

总结

以上老秦介绍了AI虚拟试衣技术和OOTDiffusion的本地部署,老秦之前就部署过,也踩了一些坑,所以这次部署比较顺利,如果大家遇到问题,可以加下老秦的AI闲聊群,有空可以帮大家看下问题。

### Out-of-Distribution Diffusion in Machine Learning Out-of-distribution (OOD) learning addresses scenarios where test or deployment data differ significantly from training distributions. In the context of diffusion models, OODiffusion extends these capabilities by ensuring robustness when encountering unseen patterns during inference. Diffusion models have shown remarkable success in generating high-quality images surpassing traditional methods like GANs[^2]. These generative models iteratively denoise random noise vectors into coherent samples through a learned reverse process. For handling out-of-distribution cases effectively: - **Robust Training Strategies**: Incorporating diverse datasets can enhance model generalization across different domains. - **Anomaly Detection Mechanisms**: Implement anomaly detection layers within architectures to identify and mitigate potential failures due to distribution shifts. #### Example Code Snippet for Basic Diffusion Process ```python import torch from torchvision import transforms from PIL import Image def sample_diffusion_model(model, shape=(1, 3, 64, 64), timesteps=1000): """Sample an image using the given diffusion model.""" with torch.no_grad(): img = torch.randn(shape).cuda() for i in reversed(range(timesteps)): t = torch.full((shape[0], ), i, device='cuda') img = model.p_sample(img, t) transform = transforms.ToPILImage() pil_img = transform(img.squeeze().cpu()) return pil_img # Assuming `model` is pre-trained diffusion model instance pil_image = sample_diffusion_model(model) pil_image.show() ``` This example demonstrates how one might implement sampling from a pretrained diffusion model while considering adjustments necessary for accommodating out-of-distribution inputs.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值