[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-ankanbhunia--PIDM":3,"similar-ankanbhunia--PIDM":101},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":18,"owner_location":19,"owner_email":20,"owner_twitter":21,"owner_website":22,"owner_url":23,"languages":24,"stars":33,"forks":34,"last_commit_at":35,"license":36,"difficulty_score":37,"env_os":38,"env_gpu":39,"env_ram":40,"env_deps":41,"category_tags":49,"github_topics":51,"view_count":60,"oss_zip_url":61,"oss_zip_packed_at":61,"status":62,"created_at":63,"updated_at":64,"faqs":65,"releases":100},9421,"ankanbhunia\u002FPIDM","PIDM","Person Image Synthesis via Denoising Diffusion Model (CVPR 2023)","PIDM 是一款基于去噪扩散模型的人物图像合成开源项目，曾入选 CVPR 2023。它的核心功能是根据一张源人物图片和一个目标姿态，生成该人物在新姿态下的高保真图像。简单来说，就是让照片中的人“摆”出你想要的动作，同时保持其外貌特征、服装纹理和背景细节自然不变。\n\n传统的人物姿态迁移方法常面临图像模糊、肢体扭曲或衣物细节丢失等问题。PIDM 通过引入先进的扩散模型技术，显著提升了生成图像的清晰度与真实感，有效解决了复杂姿态下的结构一致性和纹理保留难题。其技术亮点在于利用去噪扩散概率模型（DDPM）的强大生成能力，在多次迭代去噪过程中精细重构人物形象，效果优于多种主流算法。\n\n这款工具非常适合计算机视觉领域的研究人员和开发者使用，可用于虚拟试衣、数字人动画制作、影视后期特效等场景。虽然项目提供了 Colab 在线演示方便体验，但要完整运行或训练自定义数据集，用户仍需具备一定的深度学习基础和编程能力。对于希望探索前沿生成式 AI 技术在人体图像编辑中应用的专业人士而言，PIDM 是一个极具参考价值的开源方案。","# Person Image Synthesis via Denoising Diffusion Model [![Open in Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fankanbhunia\u002FPIDM\u002Fblob\u002Fmain\u002FPIDM_demo.ipynb)\n\n \u003Cp align='center'>\n  \u003Cb>\n    \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2211.12500\">ArXiv\u003C\u002Fa>\n    | \n    \u003Ca href=\"https:\u002F\u002Fankanbhunia.github.io\u002FPIDM\">Project\u003C\u002Fa>\n    | \n    \u003Ca href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fankanbhunia\u002FPIDM\u002Fblob\u002Fmain\u002FPIDM_demo.ipynb\">Demo\u003C\u002Fa>\n    |\n    \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=cHdZTZurX8M\">Youtube\u003C\u002Fa>\n  \u003C\u002Fb>\n\u003C\u002Fp> \n\u003Cp align=\"center\">\n\u003Cimg src=Figures\u002Fimages.gif>\n \n## News\n\n- **2023.02** A demo available through Google Colab:\n\n    :rocket:\n    [Demo on Colab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fankanbhunia\u002FPIDM\u002Fblob\u002Fmain\u002FPIDM_demo.ipynb)\n    \n\n\n \n## Generated Results\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fankanbhunia_PIDM_readme_f9d67fe59abf.jpg\"> \n\nYou can directly download our test results from Google Drive: (1) [PIDM.zip](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1zcyTF37UrOmUqtRwwq1kgkyxnNX3oaQN\u002Fview?usp=share_link) (2) [PIDM_vs_Others.zip](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1iu75RVQBjR-TbB4ZQUns1oalzYZdNqGS\u002Fview?usp=share_link)\n\nThe [PIDM_vs_Others.zip](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1iu75RVQBjR-TbB4ZQUns1oalzYZdNqGS\u002Fview?usp=share_link) file compares our method with several state-of-the-art methods e.g. ADGAN [14], PISE [24], GFLA [20], DPTN [25], CASD [29],\nNTED [19]. Each row contains target_pose, source_image, ground_truth, ADGAN, PISE, GFLA, DPTN, CASD, NTED, and PIDM (ours) respectively. \n\n\n\n\n## Dataset\n\n- Download `img_highres.zip` of the DeepFashion Dataset from [In-shop Clothes Retrieval Benchmark](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F0B7EVK8r0v71pYkd5TzBiclMzR00). \n\n- Unzip `img_highres.zip`. You will need to ask for password from the [dataset maintainers](http:\u002F\u002Fmmlab.ie.cuhk.edu.hk\u002Fprojects\u002FDeepFashion\u002FInShopRetrieval.html). Then rename the obtained folder as **img** and put it under the `.\u002Fdataset\u002Fdeepfashion` directory. \n\n- We split the train\u002Ftest set following [GFLA](https:\u002F\u002Fgithub.com\u002FRenYurui\u002FGlobal-Flow-Local-Attention). Several images with significant occlusions are removed from the training set. Download the train\u002Ftest pairs and the keypoints `pose.zip` extracted with [Openpose](https:\u002F\u002Fgithub.com\u002FCMU-Perceptual-Computing-Lab\u002Fopenpose) by downloading the following files:\n\n\u003C!--   ```bash\n  cd scripts\n  .\u002Fdownload_dataset.sh\n  ```\n\n  Or you can download these files manually： -->\n\n  - Download the train\u002Ftest pairs from [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1PhnaFNg9zxMZM-ccJAzLIt2iqWFRzXSw?usp=sharing) including **train_pairs.txt**, **test_pairs.txt**, **train.lst**, **test.lst**. Put these files under the  `.\u002Fdataset\u002Fdeepfashion` directory. \n  - Download the keypoints `pose.rar` extracted with Openpose from [Google Driven](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1waNzq-deGBKATXMU9JzMDWdGsF4YkcW_\u002Fview?usp=sharing). Unzip and put the obtained floder under the  `.\u002Fdataset\u002Fdeepfashion` directory.\n\n- Run the following code to save images to lmdb dataset.\n\n  ```bash\n  python data\u002Fprepare_data.py \\\n  --root .\u002Fdataset\u002Fdeepfashion \\\n  --out .\u002Fdataset\u002Fdeepfashion\n  ```\n## Custom Dataset\n\nThe folder structure of any custom dataset should be as follows:\n\n- dataset\u002F\n- - \u003Cdataset_name>\u002F\n- - - img\u002F \n- - - pose\u002F\n- - - train_pairs.txt\n- - - test_pairs.txt\n\nYou basically will have all your images inside ```img``` folder. You can use different subfolders to store your images or put all your images inside the ```img``` folder as well. The corresponding poses are stored inside ```pose``` folder (as txt file if you use openpose. In our project, we use 18-point keypoint estimation). ```train_pairs.txt``` and ```test_pairs.txt``` will have paths of all possible pairs seperated by comma ```\u003Csrc_path1>,\u003Ctgt_path1>```.\n\nAfter that, run the following command to process the data:\n\n```\npython data\u002Fprepare_data.py \\\n--root .\u002Fdataset\u002F\u003Cdataset_name> \\\n--out .\u002Fdataset\u002F\u003Cdataset_name>\n--sizes ((256,256),)\n```\n\nThis will create an lmdb dataset ```.\u002Fdataset\u002F\u003Cdataset_name>\u002F256-256\u002F```\n\n\n\n\n## Conda Installation\n\n``` bash\n# 1. Create a conda virtual environment.\nconda create -n PIDM python=3.7\nconda activate PIDM\nconda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia\n\n# 2. Clone the Repo and Install dependencies\ngit clone https:\u002F\u002Fgithub.com\u002Fankanbhunia\u002FPIDM\npip install -r requirements.txt\n\n```\n## Method\n\n\u003Cimg src=Figures\u002Fmain.png>\n\n## Training \n\nThis code supports multi-GPU training. Full training takes 5 days with 8 A100 GPUs and a batch size 8 on the DeepFashion dataset. The model is trained for 300 epochs; however, it generates high-quality usable samples after 200 epochs. We also attempted training with V100 GPUs, and our code takes a similar amount of time for training.\n\n  ```bash\npython -m torch.distributed.launch --nproc_per_node=8 --master_port 48949 train.py \\\n--dataset_path \".\u002Fdataset\u002Fdeepfashion\" --batch_size 8 --exp_name \"pidm_deepfashion\"\n\n  ```\n\n\n## Inference \n\nDownload the pretrained model from [here](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1WkV5Pn-_fBdiZlvVHHx_S97YESBkx4lD\u002Fview?usp=share_link) and place it in the ```checkpoints``` folder.\nFor pose control use ```obj.predict_pose``` as in the following code snippets. \n\n  ```python\nfrom predict import Predictor\nobj = Predictor()\n\nobj.predict_pose(image=\u003CPATH_OF_SOURCE_IMAGE>, sample_algorithm='ddim', num_poses=4, nsteps=50)\n\n  ```\n\nFor apperance control use ```obj.predict_appearance```\n\n  ```python\nfrom predict import Predictor\nobj = Predictor()\n\nsrc = \u003CPATH_OF_SOURCE_IMAGE>\nref_img = \u003CPATH_OF_REF_IMAGE>\nref_mask = \u003CPATH_OF_REF_MASK>\nref_pose = \u003CPATH_OF_REF_POSE>\n\nobj.predict_appearance(image=src, ref_img = ref_img, ref_mask = ref_mask, ref_pose = ref_pose, sample_algorithm = 'ddim',  nsteps = 50)\n\n  ```\n\nThe output will be saved as ```output.png``` filename.\n\n\n## Citation\n\nIf you use the results and code for your research, please cite our paper:\n\n```\n@article{bhunia2022pidm,\n  title={Person Image Synthesis via Denoising Diffusion Model},\n  author={Bhunia, Ankan Kumar and Khan, Salman and Cholakkal, Hisham and Anwer, Rao Muhammad and Laaksonen, Jorma and Shah, Mubarak and Khan, Fahad Shahbaz},\n  journal={CVPR},\n  year={2023}\n}\n```\n\n[Ankan Kumar Bhunia](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=2leAc3AAAAAJ&hl=en),\n[Salman Khan](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=M59O9lkAAAAJ&hl=en),\n[Hisham Cholakkal](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=bZ3YBRcAAAAJ&hl=en), \n[Rao Anwer](https:\u002F\u002Fscholar.google.fi\u002Fcitations?user=_KlvMVoAAAAJ&hl=en),\n[Jorma Laaksonen](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=qQP6WXIAAAAJ&hl=en),\n[Mubarak Shah](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=p8gsO3gAAAAJ&hl=en) &\n[Fahad Khan](https:\u002F\u002Fscholar.google.ch\u002Fcitations?user=zvaeYnUAAAAJ&hl=en&oi=ao)\n \n","# 基于去噪扩散模型的人物图像合成 [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fankanbhunia\u002FPIDM\u002Fblob\u002Fmain\u002FPIDM_demo.ipynb)\n\n \u003Cp align='center'>\n  \u003Cb>\n    \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2211.12500\">ArXiv\u003C\u002Fa>\n    | \n    \u003Ca href=\"https:\u002F\u002Fankanbhunia.github.io\u002FPIDM\">项目主页\u003C\u002Fa>\n    | \n    \u003Ca href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fankanbhunia\u002FPIDM\u002Fblob\u002Fmain\u002FPIDM_demo.ipynb\">演示\u003C\u002Fa>\n    |\n    \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=cHdZTZurX8M\">YouTube 视频\u003C\u002Fa>\n  \u003C\u002Fb>\n\u003C\u002Fp> \n\u003Cp align=\"center\">\n\u003Cimg src=Figures\u002Fimages.gif>\n \n## 最新消息\n\n- **2023年2月** 通过 Google Colab 提供的演示：\n\n    :rocket:\n    [Colab 演示](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fankanbhunia\u002FPIDM\u002Fblob\u002Fmain\u002FPIDM_demo.ipynb)\n    \n\n\n \n## 生成结果\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fankanbhunia_PIDM_readme_f9d67fe59abf.jpg\"> \n\n您可以直接从 Google Drive 下载我们的测试结果：(1) [PIDM.zip](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1zcyTF37UrOmUqtRwwq1kgkyxnNX3oaQN\u002Fview?usp=share_link) (2) [PIDM_vs_Others.zip](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1iu75RVQBjR-TbB4ZQUns1oalzYZdNqGS\u002Fview?usp=share_link)\n\n文件 [PIDM_vs_Others.zip](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1iu75RVQBjR-TbB4ZQUns1oalzYZdNqGS\u002Fview?usp=share_link) 将我们的方法与几种最先进的方法进行了比较，例如 ADGAN [14]、PISE [24]、GFLA [20]、DPTN [25]、CASD [29] 和 NTED [19]。每一行分别包含目标姿态、源图像、真实标签、ADGAN、PISE、GFLA、DPTN、CASD、NTED 以及我们提出的 PIDM 方法的结果。\n\n\n\n\n## 数据集\n\n- 从 [In-shop Clothes Retrieval Benchmark](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F0B7EVK8r0v71pYkd5TzBiclMzR00) 下载 DeepFashion 数据集的 `img_highres.zip`。\n\n- 解压 `img_highres.zip`。您需要向[数据集维护者](http:\u002F\u002Fmmlab.ie.cuhk.edu.hk\u002Fprojects\u002FDeepFashion\u002FInShopRetrieval.html)索取密码。然后将解压后的文件夹重命名为 **img**，并将其放置在 `.\u002Fdataset\u002Fdeepfashion` 目录下。\n\n- 我们按照 [GFLA](https:\u002F\u002Fgithub.com\u002FRenYurui\u002FGlobal-Flow-Local-Attention) 的方式划分了训练集和测试集。训练集中移除了几幅存在严重遮挡的图像。请下载以下文件以获取训练\u002F测试对以及使用 [Openpose](https:\u002F\u002Fgithub.com\u002FCMU-Perceptual-Computing-Lab\u002Fopenpose) 提取的关键点 `pose.zip`：\n\n\u003C!--   ```bash\n  cd scripts\n  .\u002Fdownload_dataset.sh\n  ```\n\n  或者您也可以手动下载这些文件： -->\n\n  - 从 [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1PhnaFNg9zxMZM-ccJAzLIt2iqWFRzXSw?usp=sharing) 下载训练\u002F测试对，包括 **train_pairs.txt**、**test_pairs.txt**、**train.lst** 和 **test.lst**。将这些文件放入 `.\u002Fdataset\u002Fdeepfashion` 目录中。\n  - 从 [Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1waNzq-deGBKATXMU9JzMDWdGsF4YkcW_\u002Fview?usp=sharing) 下载使用 Openpose 提取的关键点 `pose.rar`。解压后，将得到的文件夹放入 `.\u002Fdataset\u002Fdeepfashion` 目录中。\n\n- 运行以下代码将图像保存为 lmdb 格式的数据集。\n\n  ```bash\n  python data\u002Fprepare_data.py \\\n  --root .\u002Fdataset\u002Fdeepfashion \\\n  --out .\u002Fdataset\u002Fdeepfashion\n  ```\n## 自定义数据集\n\n任何自定义数据集的文件夹结构应如下所示：\n\n- dataset\u002F\n- - \u003C数据集名称>\u002F\n- - - img\u002F \n- - - pose\u002F\n- - - train_pairs.txt\n- - - test_pairs.txt\n\n您的所有图像基本上都会放在 `img` 文件夹中。您可以使用不同的子文件夹来存储图像，也可以将所有图像直接放在 `img` 文件夹内。相应的姿态信息则存储在 `pose` 文件夹中（如果使用 Openpose，则为 txt 文件格式。在我们的项目中，我们采用的是 18 点关键点估计）。`train_pairs.txt` 和 `test_pairs.txt` 将包含所有可能的配对路径，用逗号分隔，格式为 `\u003Csrc_path1>,\u003Ctgt_path1>`。\n\n之后，运行以下命令处理数据：\n\n```\npython data\u002Fprepare_data.py \\\n--root .\u002Fdataset\u002F\u003C数据集名称> \\\n--out .\u002Fdataset\u002F\u003C数据集名称>\n--sizes ((256,256),)\n```\n\n这将创建一个 lmdb 格式的数据集 `.\u002Fdataset\u002F\u003C数据集名称>\u002F256-256\u002F`\n\n\n\n\n## Conda 安装\n\n``` bash\n# 1. 创建一个 conda 虚拟环境。\nconda create -n PIDM python=3.7\nconda activate PIDM\nconda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia\n\n# 2. 克隆仓库并安装依赖项\ngit clone https:\u002F\u002Fgithub.com\u002Fankanbhunia\u002FPIDM\npip install -r requirements.txt\n\n```\n## 方法\n\n\u003Cimg src=Figures\u002Fmain.png>\n\n## 训练 \n\n该代码支持多 GPU 训练。在 DeepFashion 数据集上，使用 8 张 A100 GPU 和 8 的批量大小进行完整训练大约需要 5 天。模型总共训练 300 个 epoch；然而，在 200 个 epoch 后即可生成高质量且可用的样本。我们也尝试过使用 V100 GPU 进行训练，结果显示我们的代码所需的时间大致相同。\n\n  ```bash\npython -m torch.distributed.launch --nproc_per_node=8 --master_port 48949 train.py \\\n--dataset_path \".\u002Fdataset\u002Fdeepfashion\" --batch_size 8 --exp_name \"pidm_deepfashion\"\n\n  ```\n\n\n## 推理 \n\n从 [这里](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1WkV5Pn-_fBdiZlvVHHx_S97YESBkx4lD\u002Fview?usp=share_link) 下载预训练模型，并将其放置在 `checkpoints` 文件夹中。\n对于姿态控制，可以使用 `obj.predict_pose`，如下面的代码片段所示。\n\n  ```python\nfrom predict import Predictor\nobj = Predictor()\n\nobj.predict_pose(image=\u003C源图像路径>, sample_algorithm='ddim', num_poses=4, nsteps=50)\n\n  ```\n\n对于外观控制，可以使用 `obj.predict_appearance`。\n\n  ```python\nfrom predict import Predictor\nobj = Predictor()\n\nsrc = \u003C源图像路径>\nref_img = \u003C参考图像路径>\nref_mask = \u003C参考掩码路径>\nref_pose = \u003C参考姿态路径>\n\nobj.predict_appearance(image=src, ref_img = ref_img, ref_mask = ref_mask, ref_pose = ref_pose, sample_algorithm = 'ddim',  nsteps = 50)\n\n  ```\n\n输出将以 `output.png` 的文件名保存。\n\n\n## 引用\n\n如果您在研究中使用了本文的结果和代码，请引用我们的论文：\n\n```\n@article{bhunia2022pidm,\n  title={Person Image Synthesis via Denoising Diffusion Model},\n  author={Bhunia, Ankan Kumar and Khan, Salman and Cholakkal, Hisham and Anwer, Rao Muhammad and Laaksonen, Jorma and Shah, Mubarak and Khan, Fahad Shahbaz},\n  journal={CVPR},\n  year={2023}\n}\n```\n\n[Ankan Kumar Bhunia](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=2leAc3AAAAAJ&hl=en),\n[Salman Khan](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=M59O9lkAAAAJ&hl=en),\n[Hisham Cholakkal](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=bZ3YBRcAAAAJ&hl=en), \n[Rao Anwer](https:\u002F\u002Fscholar.google.fi\u002Fcitations?user=_KlvMVoAAAAJ&hl=en),\n[Jorma Laaksonen](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=qQP6WXIAAAAJ&hl=en),\n[Mubarak Shah](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=p8gsO3gAAAAJ&hl=en) &\n[Fahad Khan](https:\u002F\u002Fscholar.google.ch\u002Fcitations?user=zvaeYnUAAAAJ&hl=en&oi=ao)","# PIDM 快速上手指南\n\nPIDM (Person Image Synthesis via Denoising Diffusion Model) 是一个基于去噪扩散模型的人物图像合成工具，支持姿态控制（Pose Control）和外观控制（Appearance Control）。\n\n## 环境准备\n\n*   **操作系统**: Linux (推荐 Ubuntu)\n*   **Python 版本**: 3.7\n*   **GPU 要求**: 支持 CUDA 的 NVIDIA 显卡（训练推荐多卡 A100\u002FV100，推理单卡即可）\n*   **前置依赖**: Conda 包管理器\n\n## 安装步骤\n\n### 1. 创建虚拟环境并安装 PyTorch\n建议使用国内镜像源加速下载。\n\n```bash\n# 创建名为 PIDM 的 conda 环境\nconda create -n PIDM python=3.7\nconda activate PIDM\n\n# 安装 PyTorch (使用清华镜像源加速)\npip install torch torchvision torchaudio --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu117\n# 或者使用官方命令 (如果网络通畅)\n# conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia\n```\n\n### 2. 克隆项目并安装依赖\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fankanbhunia\u002FPIDM\ncd PIDM\npip install -r requirements.txt\n```\n\n## 基本使用\n\n### 1. 准备预训练模型\n从 [Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1WkV5Pn-_fBdiZlvVHHx_S97YESBkx4lD\u002Fview?usp=share_link) 下载预训练模型文件，并将其放入项目根目录下的 `checkpoints` 文件夹中。\n\n### 2. 运行推理 (Inference)\n\nPIDM 提供两种主要的生成模式：**姿态控制**和**外观控制**。请确保已准备好相应的输入图片（源图像、参考图像、姿态文件等）。\n\n#### 模式一：姿态控制 (Pose Control)\n根据源图像生成指定数量不同姿态的新图像。\n\n```python\nfrom predict import Predictor\n\nobj = Predictor()\n\n# image: 源图像路径\n# num_poses: 生成不同姿态的数量\n# nsteps: 采样步数\nobj.predict_pose(image=\u003CPATH_OF_SOURCE_IMAGE>, sample_algorithm='ddim', num_poses=4, nsteps=50)\n```\n\n#### 模式二：外观控制 (Appearance Control)\n将源图像的人物外观迁移到参考图像的姿态上。\n\n```python\nfrom predict import Predictor\n\nobj = Predictor()\n\nsrc = \u003CPATH_OF_SOURCE_IMAGE>       # 源图像路径（提供外观）\nref_img = \u003CPATH_OF_REF_IMAGE>      # 参考图像路径\nref_mask = \u003CPATH_OF_REF_MASK>      # 参考图像掩码路径\nref_pose = \u003CPATH_OF_REF_POSE>      # 参考姿态文件路径\n\nobj.predict_appearance(image=src, ref_img = ref_img, ref_mask = ref_mask, ref_pose = ref_pose, sample_algorithm = 'ddim',  nsteps = 50)\n```\n\n**输出结果**：生成的图像将默认保存为 `output.png`。\n\n---\n*注：如需使用自定义数据集或进行训练，请参考项目原文档配置 DeepFashion 数据集结构及运行 `train.py`。*","某时尚电商公司的技术团队正在开发“虚拟试衣间”功能，旨在让用户上传照片后，能预览自己穿着店内新款服装在不同姿态下的效果。\n\n### 没有 PIDM 时\n- **姿态僵硬不自然**：传统生成模型在转换人物姿态时，常导致肢体扭曲或关节断裂，用户看起来像“假人”，严重降低购买欲望。\n- **衣物细节丢失**：在大幅度的动作生成中，衣服上的印花、褶皱等纹理特征容易模糊甚至消失，无法真实反映商品质感。\n- **背景与人物割裂**：重绘过程中人物边缘处理粗糙，常出现伪影或与背景融合生硬，需要人工后期逐张修图，效率极低。\n- **多样性受限**：难以基于单张源图片生成多种复杂动态的试穿效果图，营销素材库更新缓慢。\n\n### 使用 PIDM 后\n- **动作流畅逼真**：利用去噪扩散模型强大的分布学习能力，PIDM 能精准控制骨骼关键点，生成的人物姿态自然舒展，完全符合人体运动规律。\n- **纹理高保真还原**：即使在复杂动作下，PIDM 也能完美保留源图像中服装的高清纹理和图案细节，确保“所见即所得”。\n- **光影融合自动完成**：生成的图像在人物与背景的光影交互上高度协调，边缘过渡平滑，直接产出可用成品，省去大量后期成本。\n- **灵活定制场景**：仅需提供目标姿态图，即可快速批量合成同一模特穿着不同服装的多样化营销素材，极大丰富展示内容。\n\nPIDM 通过高精度的姿态迁移与细节保持能力，将虚拟试衣从“概念演示”升级为“商业级应用”，显著提升了用户的购物体验与转化率。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fankanbhunia_PIDM_f9d67fe5.jpg","ankanbhunia","Ankan Bhunia","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fankanbhunia_54689115.png","PhD student, (School of Informatics) -The University of Edinburgh","University of Edinburgh","Planet Earth","ankankumarbhunia@gmail.com","ankanbh","ankanbhunia.github.io","https:\u002F\u002Fgithub.com\u002Fankanbhunia",[25,29],{"name":26,"color":27,"percentage":28},"Jupyter Notebook","#DA5B0B",79.5,{"name":30,"color":31,"percentage":32},"Python","#3572A5",20.5,501,61,"2026-04-16T07:34:33","MIT",3,"Linux","必需 NVIDIA GPU。官方训练使用 8 张 A100 或 V100；支持多卡分布式训练。安装命令指定 CUDA 11.7 (pytorch-cuda=11.7)。","未说明",{"notes":42,"python":43,"dependencies":44},"1. 官方明确支持 Linux 环境（通过 Conda 安装），Windows\u002FmacOS 未提及且可能因分布式训练脚本而不直接支持。\n2. 训练需求极高：全量训练需 8 张 A100\u002FV100 GPU，耗时约 5 天，批次大小为 8。\n3. 数据集准备复杂：需手动下载 DeepFashion 高分辨率图像、姿态关键点文件及训练\u002F测试配对列表，并运行脚本转换为 LMDB 格式。\n4. 推理时需预先下载预训练模型并放置于 checkpoints 文件夹。","3.7",[45,46,47,48],"torch","torchvision","torchaudio","pytorch-cuda=11.7",[50],"图像",[52,53,54,55,56,57,58,59],"diffusion-models","generative-models","generativeai","image-generation","person-image-generation","pose-guided-person-image-generation","stable-diffusion","cvpr2023",2,null,"ready","2026-03-27T02:49:30.150509","2026-04-19T09:38:41.860435",[66,71,76,81,86,91,96],{"id":67,"question_zh":68,"answer_zh":69,"source_url":70},42277,"论文中提到的训练对数量（101,966）与 train_pairs.txt 文件中的行数（约 37K）不一致，原因是什么？","这种差异是因为 train_pairs.txt 文件的每一行包含多个由逗号分隔的文件名，代表多对训练数据。虽然文件只有约 37,016 行，但解析后总的训练对数量约为 101,966 对。","https:\u002F\u002Fgithub.com\u002Fankanbhunia\u002FPIDM\u002Fissues\u002F37",{"id":72,"question_zh":73,"answer_zh":74,"source_url":75},42278,"如何复现论文中的评估指标（FID, SSIM, LPIPS），特别是图像预处理和保存格式有什么要求？","为了获得准确的评估结果，请遵循以下步骤：\n1. 使用 .png 格式保存图像（无损压缩）。\n2. 使用 PIL 库的 BICUBIC 插值方法将图像调整大小（包含抗锯齿处理）。\n3. 注意分辨率匹配：如果测试是在 256x176 分辨率下进行的，确保真实图像和生成图像都经过相同的缩放处理（从原始分辨率或 256x256 缩放到 256x176）。维护者确认在 256x176 和 256x256 下测试结果变化不大，但必须统一处理方式。","https:\u002F\u002Fgithub.com\u002Fankanbhunia\u002FPIDM\u002Fissues\u002F4",{"id":77,"question_zh":78,"answer_zh":79,"source_url":80},42279,"如何使用自定义数据集进行训练？文件结构和预处理命令是什么？","自定义数据集的文件结构应如下：\n- dataset\u002F\u003Cdataset_name>\u002Fimg\u002F: 存放图像文件 (\u003Cperson_id>_\u003Cimage_id>.png)\n- dataset\u002F\u003Cdataset_name>\u002Fpose\u002F: 存放姿态文件 (\u003Cperson_id>_\u003Cimage_id>.txt)，使用 OpenPose 提取的 18 个关键点坐标\n- dataset\u002F\u003Cdataset_name>\u002Ftrain_pairs.txt 和 test_pairs.txt: 包含源路径和目标路径对，格式为 \u003Csrc_path>,\u003Ctgt_path>\n\n准备好数据后，运行以下命令创建 LMDB 数据集：\npython data\u002Fprepare_data.py --root .\u002Fdataset\u002F\u003Cdataset_name> --out .\u002Fdataset\u002F\u003Cdataset_name> --sizes ((256,256),)\n这将生成 .\u002Fdataset\u002F\u003Cdataset_name>\u002F256-256\u002F 目录下的数据。","https:\u002F\u002Fgithub.com\u002Fankanbhunia\u002FPIDM\u002Fissues\u002F23",{"id":82,"question_zh":83,"answer_zh":84,"source_url":85},42280,"如何提取和处理用于模型输入的关键点（Keypoints）？","关键点提取和处理步骤如下：\n1. 使用 OpenPose 工具提取人体的 18 个关键点坐标。\n2. 将关键点保存为 txt 文件，格式为 (18, 2) 的坐标点。\n3. 参考代码库中 data\u002Ffashion_data.py 文件的 get_label_tensor 函数，该函数负责将文本格式的关键点转换为大小为 [bs, 20, H, W] 的张量作为模型输入。","https:\u002F\u002Fgithub.com\u002Fankanbhunia\u002FPIDM\u002Fissues\u002F18",{"id":87,"question_zh":88,"answer_zh":89,"source_url":90},42281,"在 DeepFashion 数据集上训练模型需要多长时间？","训练时间取决于硬件配置和批次大小（batch size）：\n- 使用 8 张 A100 GPU 且 batch size 为 8 时，训练约需 5 天（通常训练至 300 epochs）。\n- 使用 16 张 GPU 且 batch size 为 16 时，预计需要约 3.5 天。\n如果每个 epoch 耗时约 950 秒且总 epoch 数设置为 1000，总时间可能会延长至 10-11 天，建议根据默认设置调整 epoch 数或批次大小。","https:\u002F\u002Fgithub.com\u002Fankanbhunia\u002FPIDM\u002Fissues\u002F11",{"id":92,"question_zh":93,"answer_zh":94,"source_url":95},42282,"运行 demo 时遇到 \"No module named 'predict'\" 错误，如何解决？","该错误通常是因为演示文件（demo file）未完整下载。完整的 zip 文件大小约为 2.4GB，如果下载中断会导致缺少 predict.py 文件。\n解决方法：\n1. 检查当前路径下是否存在 predict.py 文件。\n2. 如果缺失，请重新下载完整文件。可以使用以下 Python 代码通过 gdown 下载：\nimport gdown\nurl = \"https:\u002F\u002Fdrive.google.com\u002Fu\u002F0\u002Fuc?id=17zHRXEgEitzj3HfieuQztIvYXn8zajMT&export=download&confirm=t\"\ngdown.download(url)\n!unzip -o pidm-demo.zip && echo \"done\"","https:\u002F\u002Fgithub.com\u002Fankanbhunia\u002FPIDM\u002Fissues\u002F13",{"id":97,"question_zh":98,"answer_zh":99,"source_url":70},42283,"使用低分辨率数据集（256x256）而非高分辨率数据集（img_highres.zip）会对结果产生什么影响？","使用错误的分辨率数据集会导致结果不准确。有用户反馈，最初使用 DeepFashion 的 256*256 img.zip 数据集导致结果错误，更换为 img_highres.zip（原始高分辨率数据，通常需自行处理缩放）后成功复现了正确结果。请确保使用与论文描述一致的高分辨率数据源进行预处理。",[],[102,113,121,129,138,147],{"id":103,"name":104,"github_repo":105,"description_zh":106,"stars":107,"difficulty_score":37,"last_commit_at":108,"category_tags":109,"status":62},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,"2026-04-06T06:32:30",[110,111,50,112],"Agent","开发框架","数据工具",{"id":114,"name":115,"github_repo":116,"description_zh":117,"stars":118,"difficulty_score":37,"last_commit_at":119,"category_tags":120,"status":62},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[111,50,110],{"id":122,"name":123,"github_repo":124,"description_zh":125,"stars":126,"difficulty_score":60,"last_commit_at":127,"category_tags":128,"status":62},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[111,50,110],{"id":130,"name":131,"github_repo":132,"description_zh":133,"stars":134,"difficulty_score":60,"last_commit_at":135,"category_tags":136,"status":62},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[137,110,50,111],"插件",{"id":139,"name":140,"github_repo":141,"description_zh":142,"stars":143,"difficulty_score":37,"last_commit_at":144,"category_tags":145,"status":62},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[146,50,110,111],"语言模型",{"id":148,"name":149,"github_repo":150,"description_zh":151,"stars":152,"difficulty_score":37,"last_commit_at":153,"category_tags":154,"status":62},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[111,50,110,155],"视频"]