[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-MichalGeyer--plug-and-play":3,"similar-MichalGeyer--plug-and-play":74},{"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":17,"owner_location":17,"owner_email":17,"owner_twitter":17,"owner_website":17,"owner_url":18,"languages":19,"stars":24,"forks":25,"last_commit_at":26,"license":17,"difficulty_score":27,"env_os":28,"env_gpu":29,"env_ram":28,"env_deps":30,"category_tags":36,"github_topics":17,"view_count":38,"oss_zip_url":17,"oss_zip_packed_at":17,"status":39,"created_at":40,"updated_at":41,"faqs":42,"releases":73},2398,"MichalGeyer\u002Fplug-and-play","plug-and-play","Official Pytorch Implementation for “Plug-and-Play Diffusion Features for Text-Driven Image-to-Image Translation” (CVPR 2023)","plug-and-play 是一个基于 PyTorch 实现的开源项目，源自 CVPR 2023 的研究论文，旨在利用扩散模型特征进行文本驱动的图像到图像转换。它主要解决了传统图像编辑中难以在保持原图结构（如姿态、布局）的同时，精准响应文本指令改变特定内容或风格的难题。\n\n该工具的核心技术亮点在于“即插即用”机制：它无需对庞大的扩散模型进行重新训练或微调，而是直接提取源图像在去噪过程中的中间层特征，并将其注入到新的生成过程中。这种方法巧妙地解耦了图像的结构信息与语义内容，使得用户仅需修改文本提示词，就能实现高质量的图像编辑，同时完美保留原始图像的几何结构。\n\nplug-and-play 特别适合 AI 研究人员、开发者以及需要高精度图像编辑的设计师使用。对于研究者，它提供了复现前沿论文和探索扩散模型内部特征的宝贵代码库；对于开发者和设计师，它提供了一套灵活的方案，可用于构建自定义的图像编辑应用或工作流。虽然目前主要通过命令行和配置文件操作，对普通用户的上手门槛稍高，但其提供的 Diffusers 版本集成和在线演示空间正逐步降低使用难度，是探索可控图像生成领域的有力工具。","# Plug-and-Play Diffusion Features for Text-Driven Image-to-Image Translation (CVPR 2023)\n\n## [\u003Ca href=\"https:\u002F\u002Fpnp-diffusion.github.io\u002F\" target=\"_blank\">Project Page\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMichalGeyer\u002Fpnp-diffusers\" target=\"_blank\">Diffusers Implementation\u003C\u002Fa>]\n\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-PnP-b31b1b.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2211.12572) [![Hugging Face Spaces](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20Hugging%20Face-Spaces-blue)](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fhysts\u002FPnP-diffusion-features) \u003Ca href=\"https:\u002F\u002Freplicate.com\u002Farielreplicate\u002Fplug_and_play_image_translation\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMichalGeyer_plug-and-play_readme_7dacf1cc5d87.png\">\u003C\u002Fa> [![TI2I](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbenchmarks-TI2I-blue)](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002F8giw0uhfekft47h\u002FAAAF1frwakVsQocKczZZSX6La?dl=0)\n\n![teaser](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMichalGeyer_plug-and-play_readme_f211b68a85f9.png)\n\n# Updates:\n\n**19\u002F06\u002F23** 🧨 Diffusers implementation of Plug-and-Play is available [here](https:\u002F\u002Fgithub.com\u002FMichalGeyer\u002Fpnp-diffusers).\n\n## TODO:\n- [ ] Diffusers support and pipeline integration\n- [ ] Gradio demo\n- [x] Release TI2I Benchmarks\n\n\n## Usage\n\n**To plug-and-play diffusion features, please follow these steps:**\n\n1. [Setup](#setup)\n2. [Feature extraction](#feature-extraction)\n3. [Running PnP](#running-pnp)\n4. [TI2I Benchmarks](#ti2i-benchmarks)\n\n\n## Setup\n\nOur codebase is built on [CompVis\u002Fstable-diffusion](https:\u002F\u002Fgithub.com\u002FCompVis\u002Fstable-diffusion)\nand has shared dependencies and model architecture.\n\n### Creating a Conda Environment\n\n```\nconda env create -f environment.yaml\nconda activate pnp-diffusion\n```\n\n### Downloading StableDiffusion Weights\n\nDownload the StableDiffusion weights from the [CompVis organization at Hugging Face](https:\u002F\u002Fhuggingface.co\u002FCompVis\u002Fstable-diffusion-v-1-4-original)\n(download the `sd-v1-4.ckpt` file), and link them:\n```\nmkdir -p models\u002Fldm\u002Fstable-diffusion-v1\u002F\nln -s \u003Cpath\u002Fto\u002Fmodel.ckpt> models\u002Fldm\u002Fstable-diffusion-v1\u002Fmodel.ckpt \n```\n\n\n### Setting Experiment Root Path\n\nThe data of all the experiments is stored in a root directory.\nThe path of this directory is specified in `configs\u002Fpnp\u002Fsetup.yaml`, under the `config.exp_path_root` key.\n\n\n## Feature Extraction\n\nFor generating and extracting the features of an image, first set the parameters for the translation in a yaml config file.\nAn example of extraction configs can be found in `configs\u002Fpnp\u002Ffeature-extraction-generated.yaml` for generated images\nand in `configs\u002Fpnp\u002Ffeature-extraction-real.yaml` for real images. Once the arguments are set, run:\n\n```\npython run_features_extraction.py --config \u003Cextraction_config_path>\n```\n\nFor real images, the timesteps at which features are saved are determined by the `save_feature_timesteps` argument.\nNote that for running PnP with `T` sampling steps for real images, you need to run the extraction with `save_feature_timesteps` = `T`\n(since we're sampling with 999 steps for reconstructing the real image, we need to specify the timesteps at which features are saved).\n\n\nAfter running the extraction script, an experiment folder is created in `\u003Cexp_path_root>\u002F\u003Csource_experiment_name>`,\nwhere `source_experiment_name` is specified by the config file. The experiment directory contains the following structure:\n```\n- \u003Csource_experiment_name>\n    - feature_maps         # contains the extracted features\n    - predicted_samples    # predicted clean images for each sampling timestep\n    - samples              # contains the generated\u002Finverted image\n    - translations         # PnP translation results\n    - z_enc.pt             # the initial noisy latent code\n    - args.json            # the config arguments of the experiment\n```\n\nFor visualizing the extracted features, see the [Feature Visualization](#feature-visualization) section.\n\n\n## Running PnP\n\nFor running PnP, first set the parameters for the translation in a yaml config file.\nAn example of PnP config can be found in `configs\u002Fpnp\u002Fpnp-generated.yaml` for generated images\nand in `configs\u002Fpnp\u002Fpnp-real.yaml` for real images. Once the arguments are set, run:\n\n```\npython run_pnp.py --config \u003Cpnp_config_path>\n```\n\nIn the config parameters, you can control the following aspects in the translation:\n\n- **Structure preservation** can be controlled by the `feature_injection_threshold` parameter\n  (a higher value allows better structure preservation but can also leak details from the source image, ~80% of the total sampling steps generally gives a good tradeoff).\n- **Deviation from the guidance image** can be controlled through the `scale`, `negative_prompt_alpha` and `negative_prompt_schedule` parameters (see the sample config files for details).\nThe effect of negative prompting is minor in case of realistic guidance images, but it can significantly help in case of minimalistic and abstract guidance images (e.g. segmentations).\n\nNote that you can run a batch of translations by providing multiple target prompts in the `prompts`  parameter.\n\n## Feature Visualization\n\n### ResBlock Features Visualization\nFor running PCA visualizations on the extracted ResBlock features (Figure 3 in the paper),\nfirst set the parameters for the visualization in a yaml config file.\nAn example of visualization config can be found in `configs\u002Fpnp\u002Ffeature-pca-vis.yaml`.\nOnce the arguments are set, run:\n\n```\npython run_features_pca.py --config \"\u003Cpca_vis_config_path>\"\n```\n\nThe feature visualizations are saved under `\u003Cconfig.exp_path_root>\u002FPCA_features_vis\u002F\u003Cexperiment_name>` directory,\nwhere `\u003Cexperiment_name>` is specified in the visualization config file.\n\n\n### Self-Attention Visualization\n\n\nTo visualize the self-attention maps of a generated\u002Finverted image (Figure 6 in the paper), run: \n```\npython run_self_attn_pca.py --block \"\u003Cvisualization_module_name>\" --experiment \"\u003Cexperiment_name>\"\n```\n\nThe self-attention visualizations are saved under `\u003Cconfig.exp_path_root>\u002FPCA_self_attention_vis\u002F\u003Cexperiment_name>` directory.\n\n\n## TI2I Benchmarks\n\nYou can find the **Wild-TI2I**, **ImageNetR-TI2I** and **ImageNetR-Fake-TI2I** benchmarks in [this dropbox folder](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002F8giw0uhfekft47h\u002FAAAF1frwakVsQocKczZZSX6La?dl=0). The translation prompts and all the necessary configs (e.g. seed, generation prompt, guidance image path) are provided in a yaml file in each benchmark folder.\n\n\n## Citation\n```\n@InProceedings{Tumanyan_2023_CVPR,\n    author    = {Tumanyan, Narek and Geyer, Michal and Bagon, Shai and Dekel, Tali},\n    title     = {Plug-and-Play Diffusion Features for Text-Driven Image-to-Image Translation},\n    booktitle = {Proceedings of the IEEE\u002FCVF Conference on Computer Vision and Pattern Recognition (CVPR)},\n    month     = {June},\n    year      = {2023},\n    pages     = {1921-1930}\n}\n```\n","# 用于文本驱动图像到图像翻译的即插即用扩散特征（CVPR 2023）\n\n## [\u003Ca href=\"https:\u002F\u002Fpnp-diffusion.github.io\u002F\" target=\"_blank\">项目页面\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMichalGeyer\u002Fpnp-diffusers\" target=\"_blank\">Diffusers 实现\u003C\u002Fa>]\n\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-PnP-b31b1b.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2211.12572) [![Hugging Face Spaces](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20Hugging%20Face-Spaces-blue)](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fhysts\u002FPnP-diffusion-features) \u003Ca href=\"https:\u002F\u002Freplicate.com\u002Farielreplicate\u002Fplug_and_play_image_translation\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMichalGeyer_plug-and-play_readme_7dacf1cc5d87.png\">\u003C\u002Fa> [![TI2I](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbenchmarks-TI2I-blue)](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002F8giw0uhfekft47h\u002FAAAF1frwakVsQocKczZZSX6La?dl=0)\n\n![teaser](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMichalGeyer_plug-and-play_readme_f211b68a85f9.png)\n\n# 更新：\n\n**19\u002F06\u002F23** 🧨 即插即用的 Diffusers 实现现已发布 [此处](https:\u002F\u002Fgithub.com\u002FMichalGeyer\u002Fpnp-diffusers)。\n\n## 待办事项：\n- [ ] Diffusers 支持与流水线集成\n- [ ] Gradio 演示\n- [x] 发布 TI2I 基准测试\n\n\n## 使用方法\n\n**要使用即插即用扩散特征，请按照以下步骤操作：**\n\n1. [设置](#setup)\n2. [特征提取](#feature-extraction)\n3. [运行 PnP](#running-pnp)\n4. [TI2I 基准测试](#ti2i-benchmarks)\n\n\n## 设置\n\n我们的代码库基于 [CompVis\u002Fstable-diffusion](https:\u002F\u002Fgithub.com\u002FCompVis\u002Fstable-diffusion)，共享依赖项和模型架构。\n\n### 创建 Conda 环境\n\n```\nconda env create -f environment.yaml\nconda activate pnp-diffusion\n```\n\n### 下载 StableDiffusion 权重\n\n从 Hugging Face 上的 CompVis 组织下载 StableDiffusion 权重（下载 `sd-v1-4.ckpt` 文件），并将其链接：\n```\nmkdir -p models\u002Fldm\u002Fstable-diffusion-v1\u002F\nln -s \u003Cpath\u002Fto\u002Fmodel.ckpt> models\u002Fldm\u002Fstable-diffusion-v1\u002Fmodel.ckpt \n```\n\n\n### 设置实验根路径\n\n所有实验的数据都存储在一个根目录中。该目录的路径在 `configs\u002Fpnp\u002Fsetup.yaml` 文件中的 `config.exp_path_root` 键下指定。\n\n\n## 特征提取\n\n要生成和提取图像的特征，首先需要在 YAML 配置文件中设置翻译参数。提取配置的示例可以在 `configs\u002Fpnp\u002Ffeature-extraction-generated.yaml` 中找到，用于生成图像；在 `configs\u002Fpnp\u002Ffeature-extraction-real.yaml` 中则用于真实图像。参数设置完成后，运行：\n\n```\npython run_features_extraction.py --config \u003Cextraction_config_path>\n```\n\n对于真实图像，保存特征的时间步由 `save_feature_timesteps` 参数决定。请注意，如果对真实图像进行 PnP 处理时有 `T` 个采样步骤，则需要以 `save_feature_timesteps` = `T` 的设置来运行提取（因为我们使用 999 个步骤来重建真实图像，因此需要指定保存特征的时间步）。\n\n\n运行提取脚本后，会在 `\u003Cexp_path_root>\u002F\u003Csource_experiment_name>` 目录下创建一个实验文件夹，其中 `source_experiment_name` 由配置文件指定。实验目录包含以下结构：\n```\n- \u003Csource_experiment_name>\n    - feature_maps         # 包含提取的特征\n    - predicted_samples    # 每个采样时间步的预测干净图像\n    - samples              # 包含生成或反演的图像\n    - translations         # PnP 翻译结果\n    - z_enc.pt             # 初始的噪声潜在代码\n    - args.json            # 实验的配置参数\n```\n\n要可视化提取的特征，请参阅 [特征可视化](#feature-visualization) 部分。\n\n\n## 运行 PnP\n\n要运行 PnP，首先需要在 YAML 配置文件中设置翻译参数。PnP 配置的示例可以在 `configs\u002Fpnp\u002Fpnp-generated.yaml` 中找到，用于生成图像；在 `configs\u002Fpnp\u002Fpnp-real.yaml` 中则用于真实图像。参数设置完成后，运行：\n\n```\npython run_pnp.py --config \u003Cpnp_config_path>\n```\n\n在配置参数中，您可以控制翻译的以下几个方面：\n\n- **结构保持** 可以通过 `feature_injection_threshold` 参数来控制（较高的值可以更好地保持结构，但也可能泄露源图像的细节；通常总采样步骤的 80% 左右是一个不错的折衷）。\n- **与引导图像的偏差** 可以通过 `scale`、`negative_prompt_alpha` 和 `negative_prompt_schedule` 参数来控制（详情请参阅示例配置文件）。对于逼真的引导图像，负面提示的影响较小，但对于极简和抽象的引导图像（例如分割图），它能起到显著的帮助作用。\n\n请注意，您可以通过在 `prompts` 参数中提供多个目标提示来批量运行翻译。\n\n## 特征可视化\n\n### ResBlock 特征可视化\n要对提取的 ResBlock 特征进行 PCA 可视化（论文中的图 3），首先需要在 YAML 配置文件中设置可视化参数。可视化配置的示例可以在 `configs\u002Fpnp\u002Ffeature-pca-vis.yaml` 中找到。参数设置完成后，运行：\n\n```\npython run_features_pca.py --config \"\u003Cpca_vis_config_path>\"\n```\n\n特征可视化结果会保存在 `\u003Cconfig.exp_path_root>\u002FPCA_features_vis\u002F\u003Cexperiment_name>` 目录下，其中 `\u003Cexperiment_name>` 在可视化配置文件中指定。\n\n\n### 自注意力可视化\n\n\n要可视化生成或反演图像的自注意力图（论文中的图 6），运行：\n```\npython run_self_attn_pca.py --block \"\u003Cvisualization_module_name>\" --experiment \"\u003Cexperiment_name>\"\n```\n\n自注意力可视化结果会保存在 `\u003Cconfig.exp_path_root>\u002FPCA_self_attention_vis\u002F\u003Cexperiment_name>` 目录下。\n\n\n## TI2I 基准测试\n\n您可以在 [这个 Dropbox 文件夹](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002F8giw0uhfekft47h\u002FAAAF1frwakVsQocKczZZSX6La?dl=0) 中找到 **Wild-TI2I**、**ImageNetR-TI2I** 和 **ImageNetR-Fake-TI2I** 基准测试。每个基准测试文件夹中都提供了一个 YAML 文件，其中包含了翻译提示以及所有必要的配置（例如种子、生成提示、引导图像路径）。\n\n\n## 引用\n```\n@InProceedings{Tumanyan_2023_CVPR,\n    author    = {Tumanyan, Narek and Geyer, Michal and Bagon, Shai and Dekel, Tali},\n    title     = {Plug-and-Play Diffusion Features for Text-Driven Image-to-Image Translation},\n    booktitle = {Proceedings of the IEEE\u002FCVF Conference on Computer Vision and Pattern Recognition (CVPR)},\n    month     = {June},\n    year      = {2023},\n    pages     = {1921-1930}\n}\n```","# Plug-and-Play 快速上手指南\n\nPlug-and-Play (PnP) 是一种基于扩散模型特征的技术，用于实现文本驱动的图像到图像转换（Text-Driven Image-to-Image Translation）。它能够在保持源图像结构的同时，根据新的文本提示生成目标图像。\n\n## 环境准备\n\n本项目基于 `CompVis\u002Fstable-diffusion` 构建，推荐使用 Linux 或 macOS 系统。\n\n**前置依赖：**\n- Python 3.8+\n- Conda (推荐用于环境管理)\n- NVIDIA GPU (支持 CUDA) 及相应驱动\n- Git\n\n**国内加速建议：**\n- 建议使用清华或阿里镜像源加速 Conda 和 Pip 包的安装。\n- 模型权重下载若遇网络问题，可使用国内镜像站或代理。\n\n## 安装步骤\n\n### 1. 创建并激活 Conda 环境\n使用项目提供的配置文件创建环境：\n```bash\nconda env create -f environment.yaml\nconda activate pnp-diffusion\n```\n*(注：若下载慢，可在 `.condarc` 中配置清华镜像源)*\n\n### 2. 下载 Stable Diffusion 权重\n从 Hugging Face 下载 `sd-v1-4.ckpt` 文件（需登录 CompVis 组织账号），并将其链接到项目目录：\n\n```bash\nmkdir -p models\u002Fldm\u002Fstable-diffusion-v1\u002F\nln -s \u003Cpath\u002Fto\u002Fmodel.ckpt> models\u002Fldm\u002Fstable-diffusion-v1\u002Fmodel.ckpt \n```\n*请将 `\u003Cpath\u002Fto\u002Fmodel.ckpt>` 替换为你实际下载的文件路径。*\n\n### 3. 配置实验根目录\n编辑 `configs\u002Fpnp\u002Fsetup.yaml` 文件，修改 `config.exp_path_root` 键值，指定所有实验数据的存储根目录路径。\n\n## 基本使用\n\n使用流程分为两步：**特征提取** 和 **运行 PnP 转换**。\n\n### 第一步：特征提取\n首先需要根据源图像提取扩散特征。根据你的图像是“生成的”还是“真实的”，选择对应的配置文件。\n\n**示例（针对真实图像）：**\n1. 检查或编辑 `configs\u002Fpnp\u002Ffeature-extraction-real.yaml`，确保参数（如 `save_feature_timesteps`）设置正确。\n   - *注意：若后续采样步数为 T，此处 `save_feature_timesteps` 也需设为 T。*\n2. 运行提取脚本：\n```bash\npython run_features_extraction.py --config configs\u002Fpnp\u002Ffeature-extraction-real.yaml\n```\n运行后，实验文件夹将在配置的根目录下生成，包含提取的特征图 (`feature_maps`) 和潜在代码 (`z_enc.pt`) 等。\n\n### 第二步：运行 PnP 转换\n配置好目标文本提示后，执行图像转换。\n\n**示例：**\n1. 编辑 `configs\u002Fpnp\u002Fpnp-real.yaml`：\n   - 在 `prompts` 列表中填入你的目标文本提示（支持批量）。\n   - 调整 `feature_injection_threshold` 控制结构保留程度（推荐设为总采样步数的 80% 左右以平衡结构与细节）。\n2. 运行转换脚本：\n```bash\npython run_pnp.py --config configs\u002Fpnp\u002Fpnp-real.yaml\n```\n转换结果将保存在实验目录下的 `translations` 文件夹中。\n\n---\n*更多高级功能（如特征可视化 PCA、自注意力图可视化）请参考项目原文档中的对应章节。*","一位电商设计师需要快速将同一款白色运动鞋的实拍图，批量转换为“雪地版”、“沙滩版”和“雨林版”营销素材，同时必须严格保留鞋子的原始轮廓、纹理细节和光影结构。\n\n### 没有 plug-and-play 时\n- **结构严重失真**：直接使用常规文生图或图生图模型修改背景时，鞋子的形状、鞋带走向甚至品牌 Logo 经常发生扭曲或消失。\n- **重训成本高昂**：若要完美保持主体特征，通常需为每双鞋训练 LoRA 或使用 ControlNet 进行繁琐的参数微调，耗时且算力消耗大。\n- **编辑灵活性差**：一旦生成结果不满意，很难在不重新提取特征的情况下单独调整背景风格，往往需要推倒重来。\n- **真实感难以兼顾**：强行约束主体容易导致新背景与原有物体的融合生硬，出现光照不一致或边缘锯齿等伪影。\n\n### 使用 plug-and-play 后\n- **主体完美锁定**：plug-and-play 通过注入源图像的扩散特征，在改变文本提示词（如“在雪地里”）时，能奇迹般地保持鞋子几何结构和纹理完全不变。\n- **零样本即时转换**：无需任何额外训练或微调，只需配置简单的 YAML 文件即可直接对实拍图进行高质量的风格迁移，立竿见影。\n- **解耦式灵活编辑**：设计师可自由更换背景描述词反复尝试不同场景，而无需担心影响主体，实现了内容与风格的真正解耦。\n- **自然光影融合**：生成的新背景能自动适配原图的光照逻辑，使合成图像看起来像是一次性拍摄完成的，极大提升了商业可用性。\n\nplug-and-play 的核心价值在于它打破了图像编辑中“改背景必毁主体”的困境，让基于文本的图像翻译变得既精准又高效。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMichalGeyer_plug-and-play_f211b68a.png","MichalGeyer","Michal Geyer","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FMichalGeyer_5a920c24.jpg",null,"https:\u002F\u002Fgithub.com\u002FMichalGeyer",[20],{"name":21,"color":22,"percentage":23},"Python","#3572A5",100,994,64,"2026-03-29T06:19:13",4,"未说明","必需 NVIDIA GPU（基于 Stable Diffusion 架构），具体显存大小和 CUDA 版本未在文中明确，但运行扩散模型通常建议 8GB+ 显存",{"notes":31,"python":28,"dependencies":32},"项目基于 CompVis\u002Fstable-diffusion 代码库构建。需使用 Conda 创建环境（environment.yaml）。必须手动下载 Stable Diffusion v1-4 权重文件 (sd-v1-4.ckpt) 并链接到指定目录。实验数据路径需在配置文件中设置。支持生成图像和真实图像的特征提取与翻译。",[33,34,35],"CompVis\u002Fstable-diffusion","torch","conda",[37],"图像",3,"ready","2026-03-27T02:49:30.150509","2026-04-06T10:23:43.114660",[43,48,53,58,63,68],{"id":44,"question_zh":45,"answer_zh":46,"source_url":47},11031,"遇到无法连接 Hugging Face 或加载模型报错（OSError: We couldn't connect to 'https:\u002F\u002Fhuggingface.co'）怎么办？","这通常是因为网络问题导致无法访问 Hugging Face。如果您在中国大陆，可以在运行 Python 命令前设置环境变量使用镜像源。例如：\nHF_ENDPOINT=https:\u002F\u002Fhf-mirror.com python run_features_extraction.py --config configs\u002Fpnp\u002Ffeature-extraction-real.yaml\n此外，也可以检查网络连接，或者手动下载模型文件并修改代码中的加载路径为本地路径。","https:\u002F\u002Fgithub.com\u002FMichalGeyer\u002Fplug-and-play\u002Fissues\u002F20",{"id":49,"question_zh":50,"answer_zh":51,"source_url":52},11032,"运行时出现显存不足错误（RuntimeError: CUDA out of memory）如何解决？","默认的 PnP 配置会在单个批次中包含多个翻译提示，这会消耗大量显存。您可以通过修改配置文件（如 pnp-real.yaml 和 pnp-generated.yaml），将 `prompts` 参数设置为仅包含一个目标提示（single target prompt），从而显著降低显存需求。另外，项目后续会发布基于 Diffusers 的实现，其在内存和运行效率上会更优。","https:\u002F\u002Fgithub.com\u002FMichalGeyer\u002Fplug-and-play\u002Fissues\u002F4",{"id":54,"question_zh":55,"answer_zh":56,"source_url":57},11033,"如何在 Windows 系统下正确链接 sd-v1-4.ckpt 模型文件？","Windows 的 cmd 不支持 Linux 的 `ln -s` 命令。请使用 `mklink` 命令创建软链接。首先确保 `model.ckpt` 文件已放置在相对目录 `models\\ldm\\stable-diffusion-v1\\` 下，然后在根目录运行以下命令：\nmklink \u002FD model.ckpt models\\ldm\\stable-diffusion-v1\\model.ckpt\n注意命令中的路径分隔符和参数顺序，执行成功后根目录会出现一个软链接文件。","https:\u002F\u002Fgithub.com\u002FMichalGeyer\u002Fplug-and-play\u002Fissues\u002F22",{"id":59,"question_zh":60,"answer_zh":61,"source_url":62},11034,"如何复现论文中图 9 的定量结果（CLIP 相似度和 DINO-ViT 自相似度距离）？","作者目前未公开具体的评估代码，但提供了计算方法参考：\n1. 文本 - 图像 CLIP 相似度：可以使用官方的 CLIP 代码进行计算（参考 Google Colab 示例）。\n2. DINO 自相似度：可以使用该仓库中用于特征提取和自相似度计算的代码，或者参考 Splice 仓库中的 losses.py 文件实现。","https:\u002F\u002Fgithub.com\u002FMichalGeyer\u002Fplug-and-play\u002Fissues\u002F26",{"id":64,"question_zh":65,"answer_zh":66,"source_url":67},11035,"如何可视化自注意力图（Self-Attention Map）的 PCA 结果以匹配论文效果？","PCA 是直接应用于自注意力矩阵本身的，而不是对 8 个注意力头平均后的结果。具体步骤是：将形状为 `(H*W) x (H*W)` 的自注意力矩阵视为一组 `d=H*W` 维的向量，计算其前 3 个主成分向量，然后将这些向量投影到主成分上，得到 `n x 3` 的矩阵，最后重塑为 `H x W x 3` 并作为 RGB 图像可视化。您可以参考仓库中的 `run_self_attn_pca.py` 脚本查看具体实现代码。","https:\u002F\u002Fgithub.com\u002FMichalGeyer\u002Fplug-and-play\u002Fissues\u002F21",{"id":69,"question_zh":70,"answer_zh":71,"source_url":72},11036,"该代码是否支持自定义训练的模型（如 Dreambooth）或第三方 Stable Diffusion 模型？","是的，只要自定义模型或第三方模型与 Stable Diffusion v1-4 具有相同的架构和实现方式，当前的 PnP 实现就可以正常工作。已有用户测试证实，该方法在自定义训练的 Dreambooth 1.5 模型上运行良好。","https:\u002F\u002Fgithub.com\u002FMichalGeyer\u002Fplug-and-play\u002Fissues\u002F8",[],[75,85,94,108,116,124],{"id":76,"name":77,"github_repo":78,"description_zh":79,"stars":80,"difficulty_score":38,"last_commit_at":81,"category_tags":82,"status":39},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",[83,37,84],"开发框架","Agent",{"id":86,"name":87,"github_repo":88,"description_zh":89,"stars":90,"difficulty_score":91,"last_commit_at":92,"category_tags":93,"status":39},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,2,"2026-04-03T11:11:01",[83,37,84],{"id":95,"name":96,"github_repo":97,"description_zh":98,"stars":99,"difficulty_score":91,"last_commit_at":100,"category_tags":101,"status":39},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[37,102,103,104,84,105,106,83,107],"数据工具","视频","插件","其他","语言模型","音频",{"id":109,"name":110,"github_repo":111,"description_zh":112,"stars":113,"difficulty_score":38,"last_commit_at":114,"category_tags":115,"status":39},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[84,37,83,106,105],{"id":117,"name":118,"github_repo":119,"description_zh":120,"stars":121,"difficulty_score":38,"last_commit_at":122,"category_tags":123,"status":39},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74939,"2026-04-05T23:16:38",[106,37,83,105],{"id":125,"name":126,"github_repo":127,"description_zh":128,"stars":129,"difficulty_score":91,"last_commit_at":130,"category_tags":131,"status":39},2471,"tesseract","tesseract-ocr\u002Ftesseract","Tesseract 是一款历史悠久且备受推崇的开源光学字符识别（OCR）引擎，最初由惠普实验室开发，后由 Google 维护，目前由全球社区共同贡献。它的核心功能是将图片中的文字转化为可编辑、可搜索的文本数据，有效解决了从扫描件、照片或 PDF 文档中提取文字信息的难题，是数字化归档和信息自动化的重要基础工具。\n\n在技术层面，Tesseract 展现了强大的适应能力。从版本 4 开始，它引入了基于长短期记忆网络（LSTM）的神经网络 OCR 引擎，显著提升了行识别的准确率；同时，为了兼顾旧有需求，它依然支持传统的字符模式识别引擎。Tesseract 原生支持 UTF-8 编码，开箱即用即可识别超过 100 种语言，并兼容 PNG、JPEG、TIFF 等多种常见图像格式。输出方面，它灵活支持纯文本、hOCR、PDF、TSV 等多种格式，方便后续数据处理。\n\nTesseract 主要面向开发者、研究人员以及需要构建文档处理流程的企业用户。由于它本身是一个命令行工具和库（libtesseract），不包含图形用户界面（GUI），因此最适合具备一定编程能力的技术人员集成到自动化脚本或应用程序中",73286,"2026-04-03T01:56:45",[83,37]]