PIDM
PIDM 是一款基于去噪扩散模型的人物图像合成开源项目,曾入选 CVPR 2023。它的核心功能是根据一张源人物图片和一个目标姿态,生成该人物在新姿态下的高保真图像。简单来说,就是让照片中的人“摆”出你想要的动作,同时保持其外貌特征、服装纹理和背景细节自然不变。
传统的人物姿态迁移方法常面临图像模糊、肢体扭曲或衣物细节丢失等问题。PIDM 通过引入先进的扩散模型技术,显著提升了生成图像的清晰度与真实感,有效解决了复杂姿态下的结构一致性和纹理保留难题。其技术亮点在于利用去噪扩散概率模型(DDPM)的强大生成能力,在多次迭代去噪过程中精细重构人物形象,效果优于多种主流算法。
这款工具非常适合计算机视觉领域的研究人员和开发者使用,可用于虚拟试衣、数字人动画制作、影视后期特效等场景。虽然项目提供了 Colab 在线演示方便体验,但要完整运行或训练自定义数据集,用户仍需具备一定的深度学习基础和编程能力。对于希望探索前沿生成式 AI 技术在人体图像编辑中应用的专业人士而言,PIDM 是一个极具参考价值的开源方案。
使用场景
某时尚电商公司的技术团队正在开发“虚拟试衣间”功能,旨在让用户上传照片后,能预览自己穿着店内新款服装在不同姿态下的效果。
没有 PIDM 时
- 姿态僵硬不自然:传统生成模型在转换人物姿态时,常导致肢体扭曲或关节断裂,用户看起来像“假人”,严重降低购买欲望。
- 衣物细节丢失:在大幅度的动作生成中,衣服上的印花、褶皱等纹理特征容易模糊甚至消失,无法真实反映商品质感。
- 背景与人物割裂:重绘过程中人物边缘处理粗糙,常出现伪影或与背景融合生硬,需要人工后期逐张修图,效率极低。
- 多样性受限:难以基于单张源图片生成多种复杂动态的试穿效果图,营销素材库更新缓慢。
使用 PIDM 后
- 动作流畅逼真:利用去噪扩散模型强大的分布学习能力,PIDM 能精准控制骨骼关键点,生成的人物姿态自然舒展,完全符合人体运动规律。
- 纹理高保真还原:即使在复杂动作下,PIDM 也能完美保留源图像中服装的高清纹理和图案细节,确保“所见即所得”。
- 光影融合自动完成:生成的图像在人物与背景的光影交互上高度协调,边缘过渡平滑,直接产出可用成品,省去大量后期成本。
- 灵活定制场景:仅需提供目标姿态图,即可快速批量合成同一模特穿着不同服装的多样化营销素材,极大丰富展示内容。
PIDM 通过高精度的姿态迁移与细节保持能力,将虚拟试衣从“概念演示”升级为“商业级应用”,显著提升了用户的购物体验与转化率。
运行环境要求
- Linux
- 必需 NVIDIA GPU
- 官方训练使用 8 张 A100 或 V100
- 支持多卡分布式训练
- 安装命令指定 CUDA 11.7 (pytorch-cuda=11.7)
未说明

快速开始
基于去噪扩散模型的人物图像合成 
ArXiv | 项目主页 | 演示 | YouTube 视频
最新消息
2023年2月 通过 Google Colab 提供的演示:
:rocket: Colab 演示
生成结果
您可以直接从 Google Drive 下载我们的测试结果:(1) PIDM.zip (2) PIDM_vs_Others.zip
文件 PIDM_vs_Others.zip 将我们的方法与几种最先进的方法进行了比较,例如 ADGAN [14]、PISE [24]、GFLA [20]、DPTN [25]、CASD [29] 和 NTED [19]。每一行分别包含目标姿态、源图像、真实标签、ADGAN、PISE、GFLA、DPTN、CASD、NTED 以及我们提出的 PIDM 方法的结果。
数据集
从 In-shop Clothes Retrieval Benchmark 下载 DeepFashion 数据集的
img_highres.zip。解压
img_highres.zip。您需要向数据集维护者索取密码。然后将解压后的文件夹重命名为 img,并将其放置在./dataset/deepfashion目录下。我们按照 GFLA 的方式划分了训练集和测试集。训练集中移除了几幅存在严重遮挡的图像。请下载以下文件以获取训练/测试对以及使用 Openpose 提取的关键点
pose.zip:
从 Google Drive 下载训练/测试对,包括 train_pairs.txt、test_pairs.txt、train.lst 和 test.lst。将这些文件放入
./dataset/deepfashion目录中。从 Google Drive 下载使用 Openpose 提取的关键点
pose.rar。解压后,将得到的文件夹放入./dataset/deepfashion目录中。运行以下代码将图像保存为 lmdb 格式的数据集。
python data/prepare_data.py \ --root ./dataset/deepfashion \ --out ./dataset/deepfashion
自定义数据集
任何自定义数据集的文件夹结构应如下所示:
- dataset/
- <数据集名称>/
- img/
- pose/
- train_pairs.txt
- test_pairs.txt
您的所有图像基本上都会放在 img 文件夹中。您可以使用不同的子文件夹来存储图像,也可以将所有图像直接放在 img 文件夹内。相应的姿态信息则存储在 pose 文件夹中(如果使用 Openpose,则为 txt 文件格式。在我们的项目中,我们采用的是 18 点关键点估计)。train_pairs.txt 和 test_pairs.txt 将包含所有可能的配对路径,用逗号分隔,格式为 <src_path1>,<tgt_path1>。
之后,运行以下命令处理数据:
python data/prepare_data.py \
--root ./dataset/<数据集名称> \
--out ./dataset/<数据集名称>
--sizes ((256,256),)
这将创建一个 lmdb 格式的数据集 ./dataset/<数据集名称>/256-256/
Conda 安装
# 1. 创建一个 conda 虚拟环境。
conda create -n PIDM python=3.7
conda activate PIDM
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
# 2. 克隆仓库并安装依赖项
git clone https://github.com/ankanbhunia/PIDM
pip install -r requirements.txt
方法
训练
该代码支持多 GPU 训练。在 DeepFashion 数据集上,使用 8 张 A100 GPU 和 8 的批量大小进行完整训练大约需要 5 天。模型总共训练 300 个 epoch;然而,在 200 个 epoch 后即可生成高质量且可用的样本。我们也尝试过使用 V100 GPU 进行训练,结果显示我们的代码所需的时间大致相同。
python -m torch.distributed.launch --nproc_per_node=8 --master_port 48949 train.py \
--dataset_path "./dataset/deepfashion" --batch_size 8 --exp_name "pidm_deepfashion"
推理
从 这里 下载预训练模型,并将其放置在 checkpoints 文件夹中。
对于姿态控制,可以使用 obj.predict_pose,如下面的代码片段所示。
from predict import Predictor
obj = Predictor()
obj.predict_pose(image=<源图像路径>, sample_algorithm='ddim', num_poses=4, nsteps=50)
对于外观控制,可以使用 obj.predict_appearance。
from predict import Predictor
obj = Predictor()
src = <源图像路径>
ref_img = <参考图像路径>
ref_mask = <参考掩码路径>
ref_pose = <参考姿态路径>
obj.predict_appearance(image=src, ref_img = ref_img, ref_mask = ref_mask, ref_pose = ref_pose, sample_algorithm = 'ddim', nsteps = 50)
输出将以 output.png 的文件名保存。
引用
如果您在研究中使用了本文的结果和代码,请引用我们的论文:
@article{bhunia2022pidm,
title={Person Image Synthesis via Denoising Diffusion Model},
author={Bhunia, Ankan Kumar and Khan, Salman and Cholakkal, Hisham and Anwer, Rao Muhammad and Laaksonen, Jorma and Shah, Mubarak and Khan, Fahad Shahbaz},
journal={CVPR},
year={2023}
}
Ankan Kumar Bhunia, Salman Khan, Hisham Cholakkal, Rao Anwer, Jorma Laaksonen, Mubarak Shah & Fahad Khan
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
Deep-Live-Cam
Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。