Buckets:
| # 受控生成 | |
| 控制扩散模型生成的输出一直是社区长期追求的目标,如今已成为一个活跃的研究课题。在许多流行的扩散模型中,输入(包括图像和文本提示)的细微变化都可能导致输出发生巨大改变。在理想情况下,我们希望能够控制语义如何被保留和改变。 | |
| 大多数保持语义一致性的示例,本质上都可以归结为能够准确地将输入的变化映射到输出的变化。例如,在提示词中为主语添加一个形容词,会保留整张图像,仅修改所变更的主语。或者,对特定主体进行图像变体生成时,会保留该主体的姿态。 | |
| 此外,除了语义保真之外,我们还希望影响生成图像的其他特性。也就是说,总体而言,我们希望输出图像具有高质量、符合特定风格或更加逼真。 | |
| 我们将记录 `diffusers` 支持的用于控制扩散模型生成过程的一些技术。其中许多属于前沿研究,细节可能较为复杂。如果某些内容需要澄清,或者您有建议,请随时发起 [GitHub Discussion](https://github.com/huggingface/diffusers/discussions) 或 [GitHub issue](https://github.com/huggingface/diffusers/issues)。 | |
| 我们提供了关于如何控制生成过程的高层说明,并附上了一段技术细节的示例。如需更深入的技术解释,从流水线中链接的原始论文始终是最好的参考资料。 | |
| 根据具体用例,应选择合适的技术。在许多情况下,这些技术可以组合使用。例如,可以将 Textual Inversion 与 SEGA 结合,为使用 Textual Inversion 生成的输出提供更强的语义引导。 | |
| 除非另有说明,这些技术适用于现有模型,且不需要它们自身的权重。 | |
| 1. [InstructPix2Pix](#instructpix2pix) | |
| 2. [Attend and Excite](#attend-and-excite) | |
| 3. [语义引导](#semantic-guidance-sega) | |
| 4. [自注意力引导](#self-attention-guidance-sag) | |
| 5. [Depth2Image](#depth2image) | |
| 6. [MultiDiffusion 全景](#multidiffusion-panorama) | |
| 7. [DreamBooth](#dreambooth) | |
| 8. [文本反转](#textual-inversion) | |
| 9. [ControlNet](#controlnet) | |
| 10. [提示词加权](#prompt-weighting) | |
| 11. [自定义扩散](#custom-diffusion) | |
| 12. [DiffEdit](#diffedit) | |
| 13. [T2I-Adapter](#t2i-adapter) | |
| 14. [FABRIC](#fabric) | |
| 为了方便起见,我们提供了一张表格,用于说明哪些方法仅用于推理,哪些方法需要微调/训练。 | |
| | **方法** | **仅推理** | **需要训练 / 微调** | **评论** | | |
| | :-------------------------------------------------: | :----------------: | :-------------------------------------: | :---------------------------------------------------------------------------------------------: | | |
| | [InstructPix2Pix](#instructpix2pix) | ✅ | ❌ | 此外,还可以进行微调,以在特定的编辑指令上获得更好的性能。 | | |
| | [Attend and Excite](#attend-and-excite) | ✅ | ❌ | | | |
| | [语义引导](#semantic-guidance-sega) | ✅ | ❌ | | | |
| | [自注意力引导](#self-attention-guidance-sag) | ✅ | ❌ | | | |
| | [Depth2Image](#depth2image) | ✅ | ❌ | | | |
| | [MultiDiffusion 全景](#multidiffusion-panorama) | ✅ | ❌ | | | |
| | [DreamBooth](#dreambooth) | ❌ | ✅ | | | |
| | [文本反转](#textual-inversion) | ❌ | ✅ | | | |
| | [ControlNet](#controlnet) | ✅ | ❌ | ControlNet 可以针对自定义条件进行训练/微调。 | | |
| | [提示词加权](#prompt-weighting) | ✅ | ❌ | | | |
| | [自定义扩散](#custom-diffusion) | ❌ | ✅ | | | |
| | [DiffEdit](#diffedit) | ✅ | ❌ | | | |
| | [T2I-Adapter](#t2i-adapter) | ✅ | ❌ | | | |
| | [Fabric](#fabric) | ✅ | ❌ | | | |
| ## InstructPix2Pix | |
| [论文](https://huggingface.co/papers/2211.09800) | |
| [InstructPix2Pix](../api/pipelines/pix2pix) 基于 Stable Diffusion 进行微调,以支持对输入图像进行编辑。它接收一张图像和一段描述编辑操作的提示词作为输入,并输出编辑后的图像。InstructPix2Pix 经过专门训练,能够很好地配合类似 [InstructGPT](https://openai.com/blog/instruction-following/) 风格的提示词使用。 | |
| ## Attend and Excite | |
| [论文](https://huggingface.co/papers/2301.13826) | |
| Attend and Excite 能够确保提示词中的主体在最终图像中得到忠实呈现。 | |
| 输入是一组 token 索引,对应于提示词中需要出现在图像里的主体。在去噪过程中,每个 token 索引都保证对图像中至少一个 patch 具有最低注意力阈值。在去噪过程中,中间潜变量会被迭代优化,以增强最被忽视的主体 token 的注意力,直到所有主体 token 的注意力都达到阈值。 | |
| 与 Pix2Pix Zero 类似,Attend and Excite 的流程中也包含一个小型优化循环(保持预训练权重不变),因此可能需要比常规的 [StableDiffusionPipeline](../api/pipelines/stable_diffusion/text2img) 更多的内存。 | |
| ## 语义引导(SEGA) | |
| [论文](https://huggingface.co/papers/2301.12247) | |
| SEGA 允许从图像中添加或移除一个或多个概念,并且可以控制概念的强度。例如,可以使用“微笑”概念来逐步增加或减少肖像中的微笑程度。 | |
| 与分类器自由引导通过空提示输入提供引导类似,SEGA 通过概念提示提供引导。可以同时应用多个此类概念提示。根据引导是正向还是负向应用,每个概念提示可以添加或移除其对应的概念。 | |
| 与 Pix2Pix Zero 或 Attend and Excite 不同,SEGA 直接作用于扩散过程,而非执行任何显式的基于梯度的优化。 | |
| ## 自注意力引导(SAG) | |
| [论文](https://huggingface.co/papers/2210.00939) | |
| Self-attention Guidance 提升了图像的整体质量。 | |
| SAG 提供了从未经高频细节条件化的预测到完全条件化图像的引导。高频细节是从 UNet 自注意力图中提取出来的。 | |
| ## Depth2Image | |
| [项目](https://huggingface.co/stabilityai/stable-diffusion-2-depth) | |
| [Depth2Image](../api/pipelines/stable_diffusion/depth2img) 基于 Stable Diffusion 进行微调,以更好地保留文本引导图像变化中的语义信息。 | |
| 它以原始图像的独眼深度估计作为条件。 | |
| ## MultiDiffusion 全景 | |
| [论文](https://huggingface.co/papers/2302.08113) | |
| MultiDiffusion Panorama 在预训练扩散模型上定义了一种新的生成过程。该过程将多种扩散生成方法结合在一起,可直接用于生成高质量且多样化的图像。生成结果遵循用户提供的控制条件,例如期望的宽高比(如全景图)以及空间引导信号,范围从紧密的分割掩码到边界框。MultiDiffusion Panorama 允许您在任意宽高比(例如全景图)下生成高质量图像。 | |
| ## 微调您自己的模型 | |
| 除了预训练模型,Diffusers 还提供了训练脚本,用于在用户提供的数据上对模型进行微调。 | |
| ## DreamBooth | |
| [项目](https://dreambooth.github.io/) | |
| [DreamBooth](../training/dreambooth) 通过微调模型来使其学习新的主题。例如,可以使用几张某人的照片来生成该人物在不同风格下的图像。 | |
| ## 文本反转 | |
| [论文](https://huggingface.co/papers/2208.01618) | |
| [Textual Inversion](../training/text_inversion) 通过微调模型来使其学习一个新概念。例如,可以使用几张特定艺术风格的图片来生成该风格下的图像。 | |
| ## ControlNet | |
| [论文](https://huggingface.co/papers/2302.05543) | |
| [ControlNet](../api/pipelines/controlnet) 是一个辅助网络,用于添加额外的条件。共有 8 个标准的预训练 ControlNet,分别基于不同的条件进行训练,例如边缘检测、涂鸦、深度图和语义分割。 | |
| ## 提示词加权 | |
| [提示词加权](../using-diffusers/weighted_prompts)是一种简单技术,用于对文本输入的某些部分赋予更高的注意力权重。 | |
| ## Custom Diffusion | |
| [论文](https://huggingface.co/papers/2212.04488) | |
| [Custom Diffusion](../training/custom_diffusion) 仅对预训练文本到图像扩散模型的交叉注意力图进行微调。它还支持额外执行 Textual Inversion。其设计本身就支持多概念训练。与 DreamBooth 和 Textual Inversion 类似,Custom Diffusion 也用于让预训练的文本到图像扩散模型学习新概念,从而生成包含目标概念的输出。 | |
| ## DiffEdit | |
| [论文](https://huggingface.co/papers/2210.11427) | |
| DiffEdit 允许根据输入提示对输入图像进行语义编辑,同时尽可能保留原始输入图像。 | |
| ## T2I-Adapter | |
| [论文](https://huggingface.co/papers/2302.08453) | |
| [T2I-Adapter](../api/pipelines/stable_diffusion/adapter) 是一个辅助网络,用于添加额外的条件。共有 8 个标准的预训练适配器,分别在不同的条件上进行训练,例如边缘检测、草图、深度图和语义分割。 | |
| ## Fabric | |
| [论文](https://huggingface.co/papers/2307.10159) | |
| [Fabric](https://github.com/huggingface/diffusers/tree/442017ccc877279bcf24fbe92f92d3d0def191b6/examples/community#stable-diffusion-fabric-pipeline) 是一种无需训练的方法,适用于多种流行的扩散模型。它利用最常用架构中存在的自注意力层,使扩散过程能够以一组反馈图像作为条件。 | |
Xet Storage Details
- Size:
- 11.4 kB
- Xet hash:
- 3e313a80a054c903f80500ffdffa9810d6dae1444e082243dab2a93813a5a74d
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.