【扩散模型(二)】IP-Adapter 从条件分支的视角,快速理解相关的可控生成研究

37 篇文章 0 订阅
36 篇文章 3 订阅

系列文章目录



前言

上一篇文章提到可以从两个分支来看 Stable Diffusion 1,其中:

  • 重建分支(reconstruction)负责从噪声中逐步重建出清晰的图像。
  • 条件分支(condition)则引入额外的信息或条件,指导图像的生成过程,使得生成结果符合特定的要求。

在这里插入图片描述
从该视角,可以快速地理解基于 SD 的类似可控生成模型,重点都是在修改 condition 分支的部分,通过修改 corss-attention 中的 QKV 来更好地引入控制条件。

一、IP-Adapter

在这里插入图片描述
IP-Adapter 2 则可以看为很好地引入了图像 condition 来引导去噪过程,其核心部分是有效地将图像与文字条件信息通过 Decouple Cross-Attention 来注入 U-Net。

二、InstantID

在这里插入图片描述
InstantID3 在 IP-Adapter 的基础上(condition1 从一般的 image encoder 换成了针对 face 的 encoder),多训练了一个 U-Net 的一半(即 ControlNet),并在其中加入了人脸的 landmark 来很好地约束 FaceID 信息,提升了生成时的人脸可控性。

三、MimicBrush

在这里插入图片描述
MimicBrush 4 类似 InstantID,增加了一个 Reference Un-Net 作为条件分支来引入控制条件,而 MimicBrush 与 IP-Adapter、InstantID 的不同点在于:

  • MimicBrush 的重建分支中,是从图像输入(Source Image)来进行重建,即先加噪、再去噪的。
  • 而 IP-Adapter、InstantID 的重建分支中,是直接输入 noise 随机噪声,通过 U-Net 对其进行去噪声的。

总结

有了以上多篇论文架构图的例子,应该能很快识别各种基于 IP-Adapter 的可控生成工作啦!🎉


  1. High-Resolution Image Synthesis with Latent Diffusion Models ↩︎

  2. IP-Adapter: Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models ↩︎

  3. InstantID: Zero-shot Identity-Preserving Generation in Seconds ↩︎

  4. Zero-shot Image Editing with Reference Imitation ↩︎

### IP-Adapter Clip SD15 实现原理 IP-Adapter Clip SD15 是一种用于增强 Stable Diffusion 中图像生成能力的技术工具。该组件主要依赖于 CLIP (Contrastive Language–Image Pretraining) 模型来解析输入提示词并指导扩散模型生成更贴合描述的高质量图像[^1]。 CLIP 模型能够理解自然语言描述并与视觉特征建立联系,从而使得基于文本到图像的任务更加高效准确。当应用于 Stable Diffusion 时,Clip SD15 版本特别针对这一框架进行了优化调整,在保持原有优势的同时提高了适配性和性能表现。 具体来说,IP-Adapter Clip SD15 的工作流程如下: 1. **预处理阶段**:接收用户提供的文字提示作为输入,并将其传递给预先训练好的 CLIP 编码器。 2. **编码过程**:利用 CLIP 对这些文本信息进行向量化表示,形成一组能被机器理解和操作的数据结构。 3. **融合机制**:将上述得到的文字嵌入与初始噪声图相结合,以此引导后续迭代过程中每一步的变化方向。 4. **解码重建**:经过多次循环更新后最终输出一张满足预期条件的新图片。 ```python from diffusers import StableDiffusionPipeline, EulerAncestralDiscreteScheduler import torch model_id = "stabilityai/stable-diffusion-2-base" scheduler = EulerAncestralDiscreteScheduler.from_pretrained(model_id, subfolder="scheduler") pipe = StableDiffusionPipeline.from_pretrained(model_id, scheduler=scheduler).to("cuda") prompt = "A fantasy landscape with a castle on top of the mountain under starry sky." image = pipe(prompt=prompt).images[0] image.show() ``` 此代码片段展示了如何加载一个预训练的 Stable Diffusion 模型并通过提供一段描述性的语句来自动生成相应的插画作品。虽然这里展示的是基础版本的操作方式,但对于想要深入了解 IP-Adapter Clip SD15 使用细节的人来说,这仍然是一个好的起点[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值