news 2026/8/24 4:02:03

在本地跑通OOTDiffusion虚拟试衣:从下权重到出图的路径

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在本地跑通OOTDiffusion虚拟试衣:从下权重到出图的路径

在本地跑通OOTDiffusion虚拟试衣:从下权重到出图的路径

【免费下载链接】OOTDiffusion[AAAI 2025] Official implementation of "OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on"项目地址: https://gitcode.com/GitHub_Trending/oo/OOTDiffusion

当你需要给客户看一件衣服上身后的效果,找模特拍摄是最贵的方案。OOTDiffusion 虚拟试衣能把服装平铺图和人像照片组合成试穿效果图,官方仓库同时给出了推理代码和示例图片。这篇文章走一遍从环境到出图的本地流程。

一句话原理

核心思路是给一个潜在扩散模型(在低维隐空间里做去噪、再生成图像的模型,比直接在像素上生成更省算力)两条指引:一条是服装图经 CLIP(图文多模态模型)编码出的特征向量,告诉它穿什么;另一条是用姿态检测和人像解析(对人体做逐像素的部件分类)切出来的遮罩区域,告诉它往哪穿。只重绘遮罩内的区域,遮罩外保留原图。

⚙️ 动手前准备

  • 硬件:显存 10GB 以上的 GPU,推理全程 fp16;官方只在 Linux(Ubuntu 22.04)上验证过
  • 环境:Python 3.10 加 PyTorch 2.0.1,其余依赖按 requirements.txt 安装
  • 权重:下载 ootd、humanparsing、openpose、clip-vit-large-patch14 四个模型包放进 checkpoints/,其中 ootd 里含 ootd_hd(半身)与 ootd_dc(全身)两套权重

⚙️ 核心操作:从克隆仓库到出第一张图

1. 克隆仓库并搭环境

git clone https://gitcode.com/GitHub_Trending/oo/OOTDiffusion cd OOTDiffusion conda create -n ootd python=3.10 -y && conda activate ootd pip install torch==2.0.1 torchvision==0.15.2 && pip install -r requirements.txt

checkpoints 目录是最容易出错的地方:ootd 包里含 vae、tokenizer 和两套权重,每套权重下都有 unet_garm、unet_vton、vae 三个子目录,其余两个模型包是预处理用的人体解析和姿态估计。整包原样放置,不要拆散。示例图片已随仓库放在 run/examples/ 下,可直接试跑。

2. 跑半身款上衣试穿

cd OOTDiffusion/run python run_ootd.py --model_path examples/model/model_1.png --cloth_path examples/garment/00055_00.jpg --scale 2.0 --sample 4

入口脚本很薄,实际链路是三步:先用 OpenPose 关键点加人像解析生成逐像素遮罩,决定原图哪些区域要被重绘;再把服装图编码成 CLIP 特征向量;最后由 unet_garm 和 unet_vton 两个 UNet 依次在隐空间去噪,VAE 解码回 768x1024 的成图。

参数方面,--scale 是图像引导强度,越大越贴近服装图;--sample 是每次生成的张数;--step 是去噪步数,默认 20。输入图内部会强制缩放到 768x1024,无需自己预处理。结果写到 run/images_output/,中间遮罩也存为同目录的 mask.jpg,可以核对重绘区域是否正好覆盖服装位置。

3. 切到全身模型

半身模型只支持上衣,试穿下装或连衣裙要换成 dc 模型,且 category 必须和服装配对:0 上衣、1 下装、2 连衣裙。

python run_ootd.py --model_path examples/model/model_1.png --cloth_path examples/garment/00055_00.jpg --model_type dc --category 1

📌 避坑实录

第一次跑的时候我报"找不到 vae 子文件夹"。原因是我把权重平铺在 checkpoints 下,而代码读的是 ootd_hd/checkpoint-36000 这个路径,unet_garm、unet_vton、vae 必须都在它下面的同名子目录里。正确做法就是整包原样放,别自己拆。

还有一次直接撞上 model_type 'hd' requires category == 0 的报错,想用半身模型试穿下装。半身模型只负责上衣,下装和连衣裙得换成 --model_type dc 并带上 --category。

这里还有个容易忽略的坑:模特图里人的姿态太偏时结果会翻车。遮罩依赖 OpenPose 关键点加人像解析,人转过去、被遮挡或者手臂不可见,手臂区域切得不准,出图边缘会多出一层"鬼影"。输入图会被强制缩放到 768x1024,原图长宽比偏离 3:4 太多时人体会变形,选图时尽量贴近这个比例。

效果与边界

单人姿态清晰、服装图为干净平铺的场景下表现好:半身模型的上衣(衬衫、外套)最稳,全身模型覆盖下装与连衣裙。量级参考:24GB 显存的消费级显卡上,768x1024、20 步、4 张图单次运行约一分钟,显存占用在 10GB 量级。

不太适用的场景:多人同框、复杂遮挡、带密集文字或 logo 的服装(细小文字容易生成乱码),以及棚拍时装大片式的换装。结果是生成式的,不固定种子时每次细节略有差异,加 --seed 即可复现。

延伸方向

  • 想用浏览器操作,run/gradio_ootd.py 里带了现成的 web 界面
  • 想调遮罩切分规则,比如手臂区域怎么扩,看 run/utils_ootd.py 里的 get_mask_location 函数
  • 想深入去噪主循环与双 UNet 结构,代码在 ootd/pipelines_ootd/ 目录下

【免费下载链接】OOTDiffusion[AAAI 2025] Official implementation of "OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on"项目地址: https://gitcode.com/GitHub_Trending/oo/OOTDiffusion

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 4:01:32

SPADE框架:自适应合成环境与自对弈技术解析与实践

最近在探索智能体(Agent)和强化学习前沿时,发现一个核心难题:如何高效、低成本地训练出能在复杂、动态环境中做出优秀决策的智能体?传统方法要么依赖昂贵、缓慢的真实环境交互,要么受限于模拟环境的简单和固…

作者头像 李华
网站建设 2026/8/24 3:59:33

帕金森病神经活动数据集:时频神经信号和标签

摘要:帕金森病神经活动数据集是一个面向帕金森病神经信号分析与机器学习研究的脑电图(EEG)数据集,主要通过合成方式模拟不同帕金森病状态下的神经活动。数据集概述帕金森病神经活动数据集是一个面向帕金森病神经信号分析与机器学习…

作者头像 李华
网站建设 2026/8/24 3:59:27

LLM辅助软件设计新范式:质量驱动的自主推理与问题思维链实践

1. 从“指令执行”到“质量驱动”:为什么软件设计需要新的LLM协作范式?如果你和我一样,在过去一年里深度使用过各种大语言模型来辅助写代码或者画架构图,大概率经历过这样的场景:你给模型一个需求,比如“设…

作者头像 李华
网站建设 2026/8/24 3:56:35

Android Camera2 Pipeline模型深度解析与实战指南

1. 项目概述:从Camera1到Camera2的范式迁移如果你在Android相机开发上还停留在Camera类那个“上古时代”,每次调用takePicture都像是在开盲盒,那今天这篇总结就是为你准备的。我花了相当长的时间,才把Android Camera2这套复杂的管…

作者头像 李华
网站建设 2026/8/24 3:55:36

Windows 10虚拟机CUDA配置指南:WSL 2与Hyper-V方案详解

1. 从“不可能”到“喜大普奔”:Windows 10虚拟机CUDA的演进之路几年前,如果你在技术社区问“能不能在Windows 10的虚拟机里跑NVIDIA CUDA?”,得到的回答大概率是摇头和苦笑。这几乎是一个公认的“不可能三角”:你需要…

作者头像 李华
网站建设 2026/8/24 3:55:05

Windows系统CUDA环境配置全攻略:从驱动到深度学习框架集成

1. 项目概述:为什么要在Windows上折腾CUDA? 如果你刚拿到一块NVIDIA的显卡,无论是为了跑深度学习模型、做科学计算,还是搞点GPU加速的图形处理,第一道坎往往就是配置CUDA环境。尤其是在Windows系统下,这个…

作者头像 李华