OOTDiffusion 报 body_pose_model.pth 缺失?3 步补上 OpenPose 姿态权重,试穿立刻跑通
【免费下载链接】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(AAAI 2025 的可控虚拟试穿项目)时,很多人第一次执行推理就会卡在同一个地方:终端里甩出一句FileNotFoundError: checkpoints/openpose/ckpts/body_pose_model.pth,或者下载时卡死、报URLError。别慌,这个坑踩的人不少,原因只有一个——OpenPose 的姿态权重文件没就位。下面按最短的路径帮你把它修好。
先搞懂:这个文件在试穿流程里管什么
你可以把 OOTDiffusion 的试穿流程想成裁缝做衣服:先看人(定位身体关键点),再画版型(生成遮罩),最后才动剪刀换衣服(扩散模型生成结果)。
body_pose_model.pth就是"看人"那一步的眼睛,它是 OpenPose 人体姿态模型的权重(存的是神经网络训练好的参数),负责找出模特图里的肩、肘、腕、髋等 18 个关键点。- 关键点直接决定换装遮罩画在哪,缺了它,后面的
get_mask_location无从下手,整条流水线在启动阶段就崩掉。 - 代码约定这个文件放在
checkpoints/openpose/ckpts/目录(路径写死在 preprocess/openpose/annotator/util.py)。文件不在时,preprocess/openpose/annotator/openpose/init.py 会尝试从远程源自动下载——网络不通、或依赖的下载库缺失,就会变成你看到的报错。
3 步修复缺失的 body_pose_model.pth
第 1 步,建好目录。在仓库根目录执行这条命令(作用是在 checkpoints 下建出 openpose/ckpts 子目录):
mkdir -p checkpoints/openpose/ckpts
第 2 步,放文件。从官方发布的一整套权重里(包含 ootd、humanparsing、openpose 三组,见 checkpoints/README.txt)把body_pose_model.pth拷进刚建好的checkpoints/openpose/ckpts/目录,文件名一字不差。
第 3 步,重跑推理。按 README 里的方式重新执行run/run_ootd.py(传入模特图和服装图即可),此时文件已在,程序不会再尝试联网下载。
验证是否真正修好,走不通还有后路
看两个可观察的验证点:
- 终端能顺利加载 OpenPose,不再报文件错误;
- 跑完后
run/images_output/下生成了mask.jpg(换装遮罩图)和若干out_hd_*.png结果图。
如果第 3 步还是报错,大概率是文件名拼写或路径层级不对(比如直接丢在checkpoints/openpose/下、少了一层ckpts),对照第 1 步的目录再核对一遍。若你更想走代码自带的自动下载路线,它依赖 basicsr 库和网络可达;这条路走不通时,就回到"手动放文件"这条最稳的路——本地文件优先级高于下载,放对了就不会再联网。
带走一句话
姿态权重是试穿的"取景框":把body_pose_model.pth放进checkpoints/openpose/ckpts/,OpenPose 就能看清人,后面的换装自然顺。
【免费下载链接】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),仅供参考