Hugging Face Diffusers 生成控制技术全景指南

发布时间:2026/9/11 20:37:10
Hugging Face Diffusers 生成控制技术全景指南 Hugging Face Diffusers 生成控制技术全景指南【免费下载链接】diffusers Diffusers: State-of-the-art diffusion models for image, video, and audio generation in PyTorch.项目地址: https://gitcode.com/GitHub_Trending/di/diffusers说明由于源文档为韩文且当前仓库的英文版、日文版均未直接提供以下内容基于韩文原档内容如实转述为中文。目标读者与本指南的价值controlling_generation.md是 Diffusers 官方文档中关于“如何控制扩散模型生成结果”的总览性指南。它面向的是已经熟悉 Diffusers 基本文生图流程StableDiffusionPipeline的用户希望进一步精确控制生成内容语义保持、风格控制、条件生成、图像编辑的开发者需要了解哪些技术只需要推理、哪些需要训练/微调以便快速选择适合自己场景方法的工程师。阅读本指南后你将能够系统了解 15 种主流的生成控制技术及其适用场景快速判断每种技术是推理即用还是需要训练知道如何组合使用多种技术例如 Textual Inversion SEGA在深入阅读某个具体技术时知道去查阅 Diffusers 仓库中对应的 API 文档、源码和训练脚本。一、背景为什么需要“受控生成”源文档核心观点在大多数流行的扩散模型中输入无论是图像还是文本提示词的微小变化可能导致输出发生巨大变化。理想情况下我们希望能够控制语义如何被保留、如何被改变。语义保持的大多数例子都可以归结为“准确地将输入的某种变化映射到输出的某种变化”在提示词的某个主体上添加一个形容词 → 整个图像保持不变只修改被改变的主体对某个主体的图像进行变化 → 主体的姿态被保留。除了语义保持我们往往还希望影响生成的质量属性输出质量好遵循特定风格更逼真。二、技术总览与选择指南2.1 15 种受控生成技术一览Instruct Pix2PixPix2Pix ZeroAttend and ExciteSemantic Guidance (SEGA)Self-attention Guidance (SAG)Depth2ImageMultiDiffusion PanoramaDreamBoothTextual InversionControlNetPrompt WeightingCustom DiffusionModel EditingDiffEditT2I-Adapter2.2 推理 vs 训练速查表源文档核心观点为了方便选择Diffusers 官方按“仅推理”还是“需要训练/微调”对上述方法进行了分类。方法仅推理需要训练/微调备注Instruct Pix2Pix✅❌可额外针对特定编辑指令进行微调以获得更好的性能Pix2Pix Zero✅❌Attend and Excite✅❌Semantic Guidance (SEGA)✅❌Self-attention Guidance (SAG)✅❌Depth2Image✅❌MultiDiffusion Panorama✅❌DreamBooth❌✅Textual Inversion❌✅ControlNet✅❌ControlNet 可以在自定义条件上训练/微调Prompt Weighting✅❌Custom Diffusion❌✅Model Editing✅❌DiffEdit✅❌T2I-Adapter✅❌源文档核心观点重要前提除非另有说明这些技术都能与现有模型一起工作并且不需要自己的权重。也就是说你不需要为这些技术单独下载额外的模型权重它们可以直接应用于现有的预训练模型。源文档核心观点重要提示应根据使用场景选择合适的技术。在很多情况下这些技术可以相互组合。例如将Textual Inversion与SEGA组合使用 Textual Inversion 生成的输出提供更多的语义引导。三、技术详解按源文档顺序五、Instruct Pix2Pix指令式图像编辑论文InstructPix2Pix: Learning to Follow Image Editing Instructions源文档核心观点Instruct Pix2Pix 是从 Stable Diffusion 微调而来的模型用于支持输入图像的编辑。它以“一张图像 一个描述编辑操作的提示词”作为输入输出编辑后的图像。源文档核心观点Instruct Pix2Pix 被显式训练为能很好地配合InstructGPT 风格的提示词即类似“把这只猫变成红色”这样的指令式提示词。源码佐证该 pipeline 位于 src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_instruct_pix2pix.py核心参数包括image_guidance_scale图像引导强度与guidance_scale提示词引导强度。其关键公式见源码第 447 行附近noise_pred noise_pred_uncond guidance_scale * (noise_pred_text - noise_pred_uncond) image_guidance_scale * (noise_pred_image - noise_pred_uncond)即同时向“提示词方向”和“图像方向”做引导。使用文档pix2pix.md、instructpix2pix.md韩文版参考 docs/source/ko/training/instructpix2pix.md六、Pix2Pix Zero零样本图像编辑论文Zero-shot Image-to-Image Translation源文档核心观点Pix2Pix Zero 允许你在保持整体图像语义的同时将图像中的一个概念/主体转换为另一个概念/主体。源文档核心观点原理去噪过程从一个概念嵌入conceptual embedding引导到另一个概念嵌入中间潜变量intermediate latents在去噪过程中被优化以趋近于参考注意力图reference attention maps参考注意力图来自输入图像的去噪过程用于鼓励语义保持。源文档核心观点适用场景Pix2Pix Zero 既可以编辑合成图像也可以编辑真实图像。编辑合成图像先用描述生成带标题的图像 → 为“要编辑的概念”和“新目标概念”生成图像标题可用 Flan-T5 等模型→ 通过文本编码器为源概念和目标概念生成“平均”提示嵌入 → 用 pix2pix-zero 算法编辑合成图像。编辑真实图像先用 BLIP 等模型为图像生成标题 → 对提示词和图像应用DDIM 反转生成“逆inverselatents”→ 为源/目标概念生成“平均”提示嵌入 → 结合逆 latents 用 pix2pix-zero 算法编辑图像。源文档核心观点亮点Pix2Pix Zero 是首个实现零样本图像编辑的模型可在普通消费级 GPU 上1 分钟以内完成图像编辑。源码佐证该 pipeline 位于 src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_pix2pix_zero.pyStableDiffusionPix2PixZeroPipeline。注意由于它需要优化 latents而不是 UNet、VAE 或文本编码器整个 pipeline 相比标准的 StableDiffusionPipeline 需要更多内存。源码中_optional_components包括caption_generatorBLIP、caption_processor、inverse_schedulerDDIM 反转调度器等印证了上述工作流。使用文档pix2pix_zero.md韩文版原文链接七、Attend and Excite确保主体出现论文Attend-and-Excite: Attention-Based Semantic Guidance for Text-to-Image Diffusion Models源文档核心观点Attend and Excite 允许你确保提示词中的主体被忠实地呈现在最终图像中。源文档核心观点原理输入一组令牌索引token indices对应提示词中需要出现在图像中的主体在去噪过程中每个令牌索引都被保证在图像的至少一个 patch 上达到最小注意力阈值中间潜变量在去噪过程中被迭代优化以加强最被忽视的主体令牌的注意力直到所有主体令牌都超过注意力阈值。源码佐证该 pipeline 位于 src/diffusers/pipelines/deprecated/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.pyStableDiffusionAttendAndExcitePipeline。核心参数源码第 751 行__call__token_indices需要强化的主体令牌索引列表如[2, 5]max_iter_to_alter默认 25应用 attend-and-excite 的去噪步数例如总 30 步中前 25 步应用thresholds默认{0: 0.05, 10: 0.5, 20: 0.8}定义迭代步数与期望注意力阈值的映射用于迭代潜变量细化。源文档核心观点内存提示与 Pix2Pix Zero 类似Attend and Excite 也包含一个迷你优化循环保持预训练权重不动因此可能比普通的StableDiffusionPipeline占用更多内存。使用文档attend_and_excite.md韩文版原文链接八、Semantic Guidance (SEGA)语义引导论文SEGA: Instructing Diffusion using Semantic Dimensions源文档核心观点SEGA 允许你从图像中应用或移除一个或多个概念并且可以控制概念的强度。例如使用“微笑smile”概念可以逐步增加或减少肖像的微笑程度。源文档核心观点原理类似于**分类器无关引导CFG通过空提示输入提供引导SEGA 通过概念提示conceptual prompts**提供引导多个概念提示可以同时应用每个概念提示根据引导是正向应用还是负向应用可以添加或移除其概念。源文档核心观点与前述方法区别与 Pix2Pix Zero 或 Attend and Excite 不同SEGA不做显式的梯度优化而是直接与扩散过程交互。源码佐证该 pipeline 位于 src/diffusers/pipelines/deprecated/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.pySemanticStableDiffusionPipeline。核心参数源码第 223 行__call__guidance_scale默认 7.5整体引导强度edit_guidance_scale默认 5每个概念引导的强度可以是float或list[float]多个概念各自设置edit_warmup_steps默认 10预热步数在预热期结束后才应用概念引导还支持 momentum 相关参数用于平滑概念引导。使用文档semantic_stable_diffusion.md韩文版原文链接九、Self-attention Guidance (SAG)自注意力引导论文Self-Attention Negative Prompt源文档核心观点SAG 用于改善图像的整体质量。源文档核心观点原理SAG 提供从“不基于高频细节的预测”到“完全条件化图像”的引导。高频细节从UNet 的自注意力图中提取。源码佐证该 pipeline 位于 src/diffusers/pipelines/deprecated/stable_diffusion_sag/pipeline_stable_diffusion_sag.pyStableDiffusionSAGPipeline。核心参数源码第 574 行__call__sag_scale默认 0.75SAG 引导强度sag_scale 0表示不启用自注意力引导对应论文公式 (16) 中的 snoise_sampling_seed噪声采样种子。使用文档self_attention_guidance.md韩文版原文链接十、Depth2Image深度引导图像变化项目stabilityai/stable-diffusion-2-depth源文档核心观点Depth2Image 是从 Stable Diffusion 微调而来的模型用于在文本引导的图像变化中更好地保持语义。源文档核心观点原理它以原始图像的**单目深度估计monocular depth estimate**作为条件。源码佐证该 pipeline 位于 src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.pyStableDiffusionDepth2ImgPipeline。源码中depth_estimatorDPTForDepthEstimation见第 128 行负责估计深度prepare_depth_map方法第 560 行在depth_map为 None 时自动调用深度估计器计算predicted_depth。源文档核心观点重要区别InstructPix2Pix 与 Pix2Pix Zero 等方法的关键区别在于前者InstructPix2Pix、Depth2Image 等微调预训练权重而后者Pix2Pix Zero 等不微调。也就是说可以将 Pix2Pix Zero 应用于所有可用的 Stable Diffusion 模型。使用文档depth2img.md韩文版参考 docs/source/ko/using-diffusers/depth2img.md十一、MultiDiffusion Panorama全景图生成论文MultiDiffusion: Fusing Diffusion Paths for Controlled Image Generation源文档核心观点MultiDiffusion 在预训练的扩散模型之上定义了一个新的生成过程。该过程将多种扩散生成方法绑定在一起可以方便地生成高质量且多样化的图像。源文档核心观点原理结果遵循用户提供的控制例如期望的宽高比如全景图空间引导信号从紧凑的分割掩码到边界框。源文档核心观点用途MultiDiffusion Panorama 允许你以任意宽高比如全景图生成高质量图像。源码佐证该 pipeline 位于 src/diffusers/pipelines/deprecated/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.pyStableDiffusionPanoramaPipeline。核心参数源码第 803 行__call__view_batch_size默认 1每次处理的视图批次大小全景图被切分为多个视图分别去噪。使用文档panorama.md韩文版原文链接十二、DreamBooth微调以学习新主体项目DreamBooth源文档核心观点DreamBooth微调模型教它认识新的主体subject。例如用一个人的几张照片就可以生成这个人在不同风格下的图像。源码佐证训练脚本位于 examples/dreambooth/train_dreambooth.py使用accelerate launch启动核心参数包括--instance_data_dir训练图像目录、--class_data_dir、--prior_loss_weight等。使用文档dreambooth.md韩文版参考 docs/source/ko/training/dreambooth.md十三、Textual Inversion微调以学习新概念论文An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion源文档核心观点Textual Inversion微调模型教它认识新的概念concept。例如用某种艺术风格的几张图片就可以生成该风格的图像。源码佐证训练脚本位于 examples/textual_inversion/textual_inversion.py。使用文档text_inversion.md韩文版参考 docs/source/ko/training/text_inversion.md十四、ControlNet辅助条件网络论文Adding Conditional Control to Text-to-Image Diffusion Models源文档核心观点ControlNet 是一个辅助网络auxiliary network用于添加额外的条件。源文档核心观点目前有8 个标准的预训练 ControlNet分别针对不同的条件训练例如边缘检测edge detection涂鸦/草图scribbles深度图depth maps语义分割semantic segmentations。源码佐证ControlNet 相关 pipeline 位于 src/diffusers/pipelines/controlnet/包括StableDiffusionControlNetPipeline、StableDiffusionControlNetImg2ImgPipeline、StableDiffusionControlNetInpaintPipeline以及 SDXL 版本StableDiffusionControlNetXSPipeline等。核心参数controlnet_conditioning_scale控制条件对生成的影响强度。使用文档controlnet.md、controlnet 训练韩文版参考 docs/source/ko/training/controlnet.md十五、Prompt Weighting提示词加权源文档核心观点提示词加权是一种简单技术它对文本输入的特定部分赋予更多的注意力权重。使用文档weighted_prompts.md韩文版参考 docs/source/ko/using-diffusers/weighted_prompts.md十六、Custom Diffusion交叉注意力微调论文Multi-Concept Customization of Text-to-Image Diffusion源文档核心观点Custom Diffusion只微调预训练 text-to-image 扩散模型的交叉注意力图cross-attention maps。源文档核心观点它还允许额外执行 Textual Inversion并且在设计上支持多概念训练。源文档核心观点与 DreamBooth 和 Textual Inversion 类似Custom Diffusion 也用于教预训练 text-to-image 扩散模型认识新概念从而生成涉及这些概念的输出。使用文档custom_diffusion.md韩文版参考 docs/source/ko/training/custom_diffusion.md十七、Model Editing模型编辑论文Editing Implicit Assumptions in Text-to-Image Diffusion Models源文档核心观点文本-图像模型编辑 pipeline 有助于缓解预训练 text-to-image 扩散模型对输入提示词中主体所做的错误隐含假设。源文档核心观点示例例如如果提示 Stable Diffusion 生成 “A pack of roses”一束玫瑰生成的玫瑰很可能是红色的。这个 pipeline 可以帮助改变这种假设。源码佐证该 pipeline 位于 src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_model_editing.pyStableDiffusionModelEditingPipeline。使用文档model_editing.md韩文版原文链接十八、DiffEdit语义编辑论文DiffEdit: Diffusion-based semantic image editing with mask guidance源文档核心观点DiffEdit 允许结合输入提示词对输入图像进行语义编辑同时尽可能保留原始输入图像。源码佐证该 pipeline 位于 src/diffusers/pipelines/deprecated/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.pyStableDiffusionDiffEditPipeline。核心流程包括generate_mask方法源码第 845 行利用提示词对比生成编辑掩码mask确定哪些区域需要修改__call__方法源码第 1302 行结合掩码执行去噪。使用文档diffedit.md韩文版参考 docs/source/ko/using-diffusers/diffedit.md十九、T2I-Adapter辅助条件网络论文T2I-Adapter: Learning Adapters to Dig out More Controllable Ability for Text-to-Image Diffusion Models源文档核心观点T2I-Adapter 是一个辅助网络auxiliary network用于添加额外的条件。源文档核心观点有8 个标准的预训练 adapter分别针对不同的条件训练例如边缘检测edge detection草图sketch深度图depth maps语义分割semantic segmentations。源码佐证该 pipeline 位于 src/diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.pyStableDiffusionAdapterPipeline。使用文档adapter.md韩文版原文链接四、如何选择合适的技术源文档核心观点应根据具体使用场景选择合适的生成控制技术。4.1 按需求快速选择你的需求推荐技术用指令式提示词编辑图像“把猫变成红色”Instruct Pix2Pix保持整体语义的零样本主体替换Pix2Pix Zero确保提示词中的主体都出现在图像中Attend and Excite添加或移除概念如“微笑”、控制概念强度SEGA提升图像整体质量SAG文本引导的图像变化中保持结构语义Depth2Image生成任意宽高比的全景图MultiDiffusion Panorama教模型认识新主体个人、物体DreamBooth教模型认识新概念风格、物体类别Textual Inversion基于边缘/深度/分割等条件精确控制构图ControlNet / T2I-Adapter对提示词局部加权Prompt Weighting多概念定制、轻量微调Custom Diffusion修正模型的错误隐含假设如“玫瑰是红色”Model Editing语义编辑且尽量保留原图DiffEdit4.2 内存与计算资源考虑源文档核心观点以下方法由于包含优化循环会比标准的StableDiffusionPipeline占用更多内存Pix2Pix Zero优化 latentsAttend and Excite迷你优化循环。源文档核心观点SEGA 不做显式梯度优化直接与扩散过程交互因此内存开销相对更低。4.3 组合使用源文档核心观点很多情况下可以组合多种技术。官方明确提到的组合示例Textual Inversion SEGA为 Textual Inversion 生成的输出提供更多语义引导。五、深入阅读指南源文档核心观点本指南提供的是高层解释和技术概览。对于技术的更深入解释最好参考从各 pipeline 文档中链接的原始论文。主题英文文档韩文文档Instruct Pix2Pixpix2pix.mdinstructpix2pix.mdDreamBoothdreambooth.mddreambooth.mdTextual Inversiontext_inversion.mdtext_inversion.mdControlNetcontrolnet.mdcontrolnet.mdPrompt Weightingweighted_prompts.mdweighted_prompts.mdCustom Diffusioncustom_diffusion.mdcustom_diffusion.mdDepth2Imagedepth2img.mddepth2img.mdDiffEditdiffedit.mddiffedit.md结语受控生成是扩散模型社区长期追求的目标也是当前活跃的研究主题。diffusers通过上述 15 种技术从语义保持、质量提升、条件生成、模型定制等不同维度为用户提供了丰富的生成控制手段。无论是仅推理即可使用的即插即用技术Pix2Pix Zero、SEGA、SAG、ControlNet、DiffEdit 等还是需要训练/微调的定制化技术DreamBooth、Textual Inversion、Custom Diffusion都可以根据你的具体使用场景进行选择并且很多情况下可以组合使用以获得更精细的控制效果。如果你在使用过程中对某些技术有疑问或有改进建议建议到 Hugging Face 论坛或 GitHub Issues 中发起讨论。本文基于diffusers仓库中的 docs/source/ko/using-diffusers/controlling_generation.md 编写并参考了仓库内对应的 API 文档、源码与训练脚本。【免费下载链接】diffusers Diffusers: State-of-the-art diffusion models for image, video, and audio generation in PyTorch.项目地址: https://gitcode.com/GitHub_Trending/di/diffusers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询