Skip to content

IP-Adapter 与图像提示

IP-Adapter 让扩散模型「看图说话」——不再只靠文字描述风格和内容,而是直接喂一张参考图,模型就能提取其语义特征并迁移到生成结果上。它与 ControlNet 互补:ControlNet 管空间结构,IP-Adapter 管风格与内容语义。本页从核心直觉出发,完整讲解 IP-Adapter 的 decoupled cross-attention 机制、与 ControlNet 的本质区别、训练细节,以及 2024-2025 年围绕身份保持生成(InstantID、PuLID)和 FLUX/DiT 架构适配的最新进展。前置阅读:扩散模型、ControlNet 与可控生成、Transformer 架构。

想象你请了一位画师——

  • 纯文本提示= 你口头描述”赛博朋克风格、霓虹灯、雨夜”,画师只能凭经验想象,画出来的色调和质感未必对得上你脑中的参考。
  • ControlNet= 你递给画师一张线稿图,说”按这个构图来画”。画师的笔触和风格仍可自由发挥,但人物位置、物体轮廓被锁死了——ControlNet 管的是「骨架」,不管「画风」。
  • IP-Adapter= 你递给画师一张参考照片(比如一张赛博朋克 concept art),说”画成这种感觉、这种风格”。画师不会被约束构图,但会努力让色彩、笔触、整体氛围贴近那张参考图。

一句话:IP-Adapter 像给 AI 看一张参考照片说「画成这种风格/感觉」,而不是逐像素规定构图。它控制的是语义和风格,而非空间布局。

扩散模型(Diffusion Model)是一类通过「逐步去噪」来生成图像的生成模型:从一张纯噪声开始,模型反复预测并减去噪声,最终收敛到一张清晰的图像(详见 扩散模型)。在这个去噪过程中,核心网络是 U-Net(一种编解码器结构的卷积网络,因形状像字母 U 而得名),它通过 cross-attention(交叉注意力)机制接收文本条件(详见 Transformer 架构)。

文本编码器(CLIP Text Encoder)把 prompt 编码成一串 token embedding,注入 U-Net 每一层。CLIP(Contrastive Language-Image Pre-training)是 OpenAI 提出的视觉-语言对齐模型,通过对比学习让图像和文本映射到同一个语义空间——简单说,它学会了”把图片和描述它的文字对应起来”。但文本表达风格和视觉语义的能力非常有限:

  • “梵高风格”这五个字无法精确传达笔触粗细、配色比例、颜料厚度——同一个 prompt 每次生成的”梵高风”都不同。
  • 想复现一张特定参考图的色调氛围?光靠文字描述几乎不可能。
  • 想让生成角色保持某张图中的长相?prompt 里写”a woman with brown hair”远不如直接给一张参考脸。

根本原因在于信息瓶颈:自然语言的带宽远低于图像。一张 512×512 的 RGB 图像包含约 786,432 个像素值,而一句 prompt 只有几十到几百个 token。要把参考图的视觉细节精确传递给生成过程,必须绕过文本这条窄路。

IP-Adapter 的核心思想:用图像编码器(而非文本编码器)提取参考图的语义特征,通过一条全新的、独立的 cross-attention 通路注入 U-Net。

Decoupled Cross-Attention(解耦交叉注意力)

Section titled “Decoupled Cross-Attention(解耦交叉注意力)”

这是 IP-Adapter(Ye et al. 2023)最关键的设计。回顾标准 cross-attention 的计算(详见 注意力机制):

  • 文本 cross-attention:Q(Query)来自图像特征(噪声潜变量的 U-Net 特征),K(Key)和 V(Value)来自文本 embedding。
    • 直觉理解:Q 是 U-Net 在问「我这里需要什么样的信息」,K/V 是文本在回答「我有这些内容信息」。Attention 机制让模型根据 Q 和 K 的相似度(relevance)决定从 V 中取多少信息。
    • Attention(Q, K, V) = softmax( Q · K^T / √d ) · V
    • 其中 d 是 Key 向量的维度,除以 √d 是为了稳定梯度(防止内积过大导致 softmax 饱和),这个技巧叫做 scaled dot-product attention。

IP-Adapter 的做法是新增一条并行的图像 cross-attention,与原有文本 cross-attention 完全独立:

  1. 用预训练的 CLIP Image Encoder(而非 Text Encoder)对参考图提取特征。CLIP Image Encoder 基于 ViT(Vision Transformer)架构:将输入图像切分为固定大小的 patch(通常 14×14 像素),每个 patch 经过线性投影成为一个 token,再经过 Transformer 编码器层,最终得到图像 embedding E_image(一个 N × D 的矩阵,N 是图像 token 数,对于 ViT-H/14 通常为 257 个 token——1 个 CLS token 加 256 个 patch token——D 是特征维度,如 1024)。
  2. 在 U-Net 每一层的 cross-attention 中,保留原始的文本通路(Q_text、K_text、V_text),额外新增一条图像通路:
    • 图像通路的 Q_img 来自同一个 U-Net 特征(与文本通路共享 Q 的投影——这是”decoupled”的含义之一:Query 来自同一来源,但 K/V 各自独立投影)。
    • K_img 和 V_img 由图像 embedding E_image 经新的线性投影矩阵 W_K、W_V 得到:K_img = E_image · W_K,V_img = E_image · W_V。
    • Attention_img(Q_img, K_img, V_img) = softmax( Q_img · K_img^T / √d ) · V_img
  3. 两条通路的输出加权相加后送入下一层:
    • Output = Attention_text(Q, K_text, V_text) + λ · Attention_img(Q_img, K_img, V_img)

其中 λ(lambda)是一个可学习的标量缩放系数,控制图像提示的强度。在推理时可以通过 set_ip_adapter_scale() 直接调整,等于「实时拧旋钮」决定参考图的影响有多强。

为什么叫「解耦」? 因为图像通路和文本通路各自有独立的 K/V 投影矩阵,互不干扰——文本负责描述内容(“一只猫”),图像负责传递风格/视觉语义(梵高画风),两条信号并行融合而非相互挤占。这与早期做法(把图像 embedding 拼接到文本 embedding 后面再送入原有 cross-attention)形成对比:拼接方式会导致文本和图像信号在同一注意力空间中竞争,效果不稳定。

IP-Adapter 的训练极其高效,这也正是它能以极低成本快速适配多种基础模型的关键:

  • 冻结预训练的 U-Net 和 CLIP Image Encoder——这两个大家伙一动不动。U-Net 参数量约 8.6 亿(SD1.5),CLIP ViT-H 约 7.8 亿,全部冻结意味着无需为它们计算梯度、也无需保存优化器状态。

  • 只训练新增的图像 cross-attention 投影矩阵(每层的 W_K、W_V 两个 Linear 层)和缩放系数 λ。这些 Linear 层把 CLIP 的 D 维 embedding 投影到 U-Net 的 cross-attention 维度。

  • 训练数据:只需「图像-文本」对(即配对数据),不需要结构标注(ControlNet 需要额外的边缘/深度/姿态标注)。数据来源与训练基础扩散模型的数据格式一致,获取成本低。

  • 训练目标:与基础扩散模型相同——给定加噪的潜变量(latent,即图像在压缩空间中的表示),让模型预测噪声。新增的图像通路作为额外条件,帮助模型在去噪过程中「看懂」参考图的语义并据此调整预测。损失函数为标准的 MSE(Mean Squared Error,均方误差):

    L = E_{t, x_0, ε} [ ‖ε - ε_θ(x_t, t, c_text, c_image)‖² ]

    其中 ε 是添加的真实噪声,ε_θ 是模型的预测,x_t 是第 t 步的加噪潜变量,c_text 和 c_image 分别是文本和图像条件。模型学会的不仅是「去噪」,更是「在图像条件引导下去噪」。

  • 新增参数量:仅约 50MB(对比 ControlNet 的约 1.4GB,约 28 倍差距)。这意味着训练速度快、显存占用低(单张 A100 即可完成训练),也意味着切换不同基础模型时只需重训这个小模块。

  • 训练时长:在约 100 万张图像-文本对上训练,单卡 A100 约需数天即可收敛——这与从头训练一个扩散模型(动辄数百张 GPU、数周时间)形成鲜明对比。

维度IP-AdapterControlNet
控制的维度风格、内容语义、角色形象空间结构(轮廓、姿态、深度、布局)
信号注入位置Cross-attention(与文本并行)U-Net 各层(编码器+中间层+解码器)
条件输入一张参考图(RGB 图像)结构图(Canny/Depth/OpenPose/分割图等)
特征提取器CLIP Image Encoder复制的 U-Net 编码器
新增参数量约 50MB约 1.4GB
训练时是否复制主干否(只加小模块)是(复制整个编码器)
训练数据需求图像-文本对(易获取)需额外的结构标注(边缘/深度/姿态提取)
类比给画师看参考照片说”这种感觉”给画师骨架图说”按这个姿势画”

简言之:ControlNet 是「结构控制」(管 where),IP-Adapter 是「语义/风格控制」(管 what & how)。两者经常叠加使用——ControlNet 锁构图,IP-Adapter 定风格。

除了 IP-Adapter,社区还有一种轻量的图像提示方案:Reference-Only(也叫 Reference-Only ControlNet)。它的思路更极简——不训练任何新模块,直接利用 U-Net 自身作为参考特征提取器:

  1. 将参考图(加噪后)送入同一个 U-Net 的编码器,提取中间层特征。
  2. 把这些参考特征直接拼接到当前生成过程的 self-attention(自注意力)的 K/V 上。
  3. 这样 U-Net 在去噪时能”看到”参考图的自注意力特征,实现风格/内容迁移。

Self-attention(自注意力)是 Transformer 中让序列中每个位置「看」其他所有位置并聚合信息的机制——在这里,生成图的每个空间位置都能「看到」参考图的所有位置,从而吸收参考图的风格和纹理信息。

Reference-Only 的优点是零训练、即插即用(ComfyUI 中有现成节点),缺点是效果不如 IP-Adapter 稳定、可控性较弱,且参考图的语义信息没有经过专门编码。

社区在原版 IP-Adapter 基础上发展出多个增强版本:

  • IP-Adapter Plus:原版 IP-Adapter 使用 CLIP 的全局 pooled embedding(CLS token 的最终表示,只有一个向量),而 Plus 版本拆分 CLIP ViT 的 patch embedding(所有 patch token 的表示,257 个向量),直接将完整的 patch token 序列送入投影层。这让图像通路有更丰富的空间信息——不仅知道”这是什么风格”,还知道”画面左上角偏暖、右下角偏冷”。风格迁移更精准、细节更丰富,代价是新增参数量稍大(约 100MB)。
  • IP-Adapter Full Face:专门针对人脸优化。原版 IP-Adapter 使用 CLIP 提取人脸特征,但 CLIP 并非为人脸识别设计,对五官细节的区分能力有限。Full Face 版本替换为专用的人脸识别编码器(如 InsightFace 的 ArcFace 模型,该模型在数百万张人脸上训练,能提取高维身份特征向量),实现高保真的角色一致性——一张参考脸,生成多角度、多场景的同一角色。

2024-2025 新进展:身份保持生成(ID-Preserving Generation)

Section titled “2024-2025 新进展:身份保持生成(ID-Preserving Generation)”

IP-Adapter 的 decoupled cross-attention 思想在 2024 年催生了一批身份保持生成(ID-Preserving Generation)的突破性工作,这些方法专门解决「给定一张人脸照片,生成任意场景/风格/姿态的同一人」这一核心需求:

InstantID(Wang et al., 2024)被誉为「零样本身份保持生成」的里程碑。它的核心创新在于三点融合:

  1. Identity Embedding:用 InsightFace 提取人脸的身份特征向量(512 维),而非 CLIP 图像特征。ArcFace 等人脸识别模型的特征空间天然以「身份相似度」为优化目标,因此同一人的不同照片映射到相近向量,不同人映射到远离的向量。
  2. IdentityNet:一个轻量级的 ControlNet-like 模块,但关键区别是——它用人脸关键点(facial landmarks,如眼睛、鼻子、嘴角的位置)作为结构条件,而非 Canny/Depth。这意味着它不仅注入身份语义,还粗略约束面部位置。
  3. Decoupled Cross-Attention:沿用 IP-Adapter 的解耦设计,将身份 embedding 通过独立的图像通路注入 U-Net。

InstantID 只需一张参考人脸(zero-shot,无需针对特定人物微调),就能在保持高度身份一致的前提下,配合文本 prompt 生成该人物在不同风格、场景、姿态下的图像。这远超 IP-Adapter Full Face 的身份保持度。

PuLID(Pure and Lightning ID Customization,2024)针对 InstantID 等方法的「身份与风格互相干扰」问题——即强身份注入往往会牺牲 prompt 风格的可控性。PuLID 的创新在于:

  • Alignment Loss(对齐损失):在训练过程中,PuLID 对比「有 ID 注入」和「无 ID 注入」两种前向传播的中间特征,通过一个额外的损失项来最小化 ID 注入对原始生成过程的干扰。直觉上说:它强迫身份注入只做「修改身份」,不要「偷偷修改风格/布局」。
  • 效果是身份保持度高、同时 prompt 风格可控性强——生成的人既像参考人物,又忠实于 prompt 描述的场景和风格。

这是 IP-Adapter 官方团队(tencent-ailab)的后续升级:

  • 用 FaceID v2 模型(基于 InsightFace)替代 CLIP 提取人脸身份特征,并增加了局部面部特征提取通路(不只管身份,还关注五官细节)。
  • 支持 SDXL 架构,分辨率更高、细节更丰富。

2024-2025 新进展:向 DiT 架构迁移(FLUX 支持)

Section titled “2024-2025 新进展:向 DiT 架构迁移(FLUX 支持)”

2024 年扩散模型的架构发生了重大变化:以 FLUX.1(Black Forest Labs, 2024)为代表的 **DiT(Diffusion Transformer)**架构开始取代传统 U-Net。DiT 用纯 Transformer 替代 U-Net 的卷积编解码器——所有空间信息通过 attention 传递,不再依赖卷积。FLUX.1 尤其以出色的文本渲染能力和提示遵循度震惊社区。

这一变化对 IP-Adapter 的影响:

  • 适配挑战:DiT 架构没有 U-Net 那种明确的 cross-attention 层(U-Net 用专门的 cross-attention 层注入文本条件),DiT 通常用联合注意力(joint attention)把文本 token 和图像 token 拼在一起处理。因此 IP-Adapter 的「在 cross-attention 中加一条并行通路」做法不能直接迁移。
  • 社区方案:ComfyUI 社区迅速开发了 FLUX 版的 IP-Adapter 适配方案(如 InstantX/IP-Adapter-FLUX、各种 PulID for FLUX 节点),核心思路是将参考图特征编码后通过 joint attention 的额外 token 拼接注入。这种方案在 2024-2025 年间快速迭代。
  • OminiControl(2024):提出了面向 DiT 的统一条件控制框架,将 IP-Adapter 式的图像提示、ControlNet 式的结构控制统一到「shifted attention」机制中,用一个模块适配多种条件类型。

趋势判断:随着 FLUX 等模型成为主流,IP-Adapter 的核心设计正在从「U-Net cross-attention 中的并行通路」演进为「DiT joint attention 中的 token 拼接」。但核心哲学不变——用图像编码器提取参考语义、用独立通路注入、只训练轻量模块。

2024-2025 年间,社区还发展出了更精细的控制能力:

  • 多参考图融合(Multi-IP-Adapter):同时输入多张参考图(如一张管风格、一张管角色),各自通过独立的 IP-Adapter 通路注入,通过权重控制各自的影响比例。Diffusers 支持以列表形式传入多张参考图。
  • 区域 IP-Adapter(Regional IP-Adapter):通过 mask 指定参考图影响画面中的哪个区域。例如左侧用风格 A 的参考图、右侧用风格 B 的参考图,实现多角色/多风格的精确构图。ComfyUI 中的 IPAdapter Regional Conditioning 节点支持这一功能。
  • 权重调度(Weight Scheduling):在不同去噪步骤使用不同 λ 值——通常早期步骤(决定整体构图)用低权重、后期步骤(决定细节纹理)用高权重,或反过来——实现更精细的风格注入时序控制。

IP-Adapter 架构:双路 Cross-Attention

Section titled “IP-Adapter 架构:双路 Cross-Attention”

InstantID 架构(2024 身份保持生成)

Section titled “InstantID 架构(2024 身份保持生成)”

Diffusers:用 IP-Adapter 做图像提示生成

Section titled “Diffusers:用 IP-Adapter 做图像提示生成”
import torch
from diffusers import StableDiffusionPipeline
from diffusers.utils import load_image
# 加载基础模型
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16).to("cuda")
# 加载 IP-Adapter 权重并指定图像编码器(只需约 50MB 额外权重)
pipe.load_ip_adapter(
"h94/IP-Adapter", subfolder="models",
image_encoder_folder="models/image_encoder")
pipe.set_ip_adapter_scale(0.6) # 图像提示强度(0~1,越大越贴近参考图)
# 读取风格参考图,注入 IP-Adapter
ref_image = load_image("reference_style.jpg") # 一张风格/角色参考图
image = pipe(
prompt="a cat sitting on a sofa", # 文本描述内容
ip_adapter_image=ref_image, # 图像提示控制风格/语义
num_inference_steps=30,
).images[0]
image.save("ip_adapter_output.png")
# → 生成一只猫,其色调/画风贴近 reference_style.jpg
import torch
from diffusers import StableDiffusionXLPipeline
from diffusers.utils import load_image
pipe = StableDiffusionXLPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
torch_dtype=torch.float16,
).to("cuda")
# 加载 IP-Adapter Plus(SDXL 版本)
pipe.load_ip_adapter(
"h94/IP-Adapter",
subfolder="sdxl_models",
weight_name="ip-adapter-plus_sdxl_vit-h.safetensors",
image_encoder_folder="models/image_encoder",
)
# 同时传入两张参考图:一张管风格、一张管角色
style_ref = load_image("style_ref.jpg") # 风格参考
char_ref = load_image("char_ref.jpg") # 角色参考
# scale 以列表形式为每张参考图指定权重
pipe.set_ip_adapter_scale([0.5, 0.7]) # 风格 0.5,角色 0.7
image = pipe(
prompt="a woman reading a book in a garden",
ip_adapter_image=[style_ref, char_ref],
num_inference_steps=30,
).images[0]
image.save("multi_ip_adapter.png")

Diffusers:用 InstantID 做身份保持生成(2024 新)

Section titled “Diffusers:用 InstantID 做身份保持生成(2024 新)”
import torch
from diffusers.pipelines.controlnet import StableDiffusionXLControlNetPipeline
from instantid import InstantIDPipeline # 需安装 InstantID 扩展
# InstantID 针对 SDXL 优化,只需一张参考人脸即可生成
# 核心组件:InsightFace 编码器 + IdentityNet + 解耦 cross-attention
# 详见 InstantID 官方仓库:InstantID/InstantID
  • ip_adapter_scale(图像提示强度)是核心旋钮:设为 0 则等于纯文本生成(参考图无效),设为 1.0 则强烈贴合参考图风格。常用范围 0.4~0.8;过高可能导致生成结果过度复刻参考图、丢失 prompt 的内容控制。
  • 文本 prompt 与图像提示分工配合:prompt 负责”画什么”(内容、场景),IP-Adapter 负责”什么感觉”(风格、色调)。两者冲突时(如 prompt 写”水彩画”但参考图是照片),结果往往是两者的妥协。
  • 与 ControlNet 叠加效果最佳:先用 ControlNet(Canny/Depth/OpenPose)锁定构图和姿态,再用 IP-Adapter 注入风格——一个管结构、一个管画风,各司其职。Diffusers 支持 pipe.load_ip_adapter(...) 和 ControlNet 同时加载。
  • 参考图质量直接影响效果:参考图应风格鲜明、主体突出。模糊、杂乱的参考图会让生成结果不稳定。对于人脸参考,建议使用正脸、光照均匀、无遮挡的高清照片。
  • 人脸/角色一致性:优先选 InstantID 或 PuLID(2024+):需要让生成角色保持同一张脸时,2024 年后首选 InstantID 或 PuLID,身份保持度远超基础版 IP-Adapter Full Face。若工作流受限,IP-Adapter Full Face 仍是可行方案。
  • ComfyUI 中的 Apply IPAdapter 节点支持权重调度:可在不同去噪步使用不同强度(如前期强、后期弱),精细控制风格注入时机。
  • SDXL/FLUX 选对权重文件:IP-Adapter 为不同基础模型(SD1.5、SDXL、FLUX)提供了不同版本的权重文件,加载时务必选对 subfolder 和 weight_name,混用会导致维度不匹配的错误。
  • FLUX 用户注意:FLUX 的 DiT 架构需要专门适配的 IP-Adapter(如 InstantX/IP-Adapter-FLUX),不能直接使用 U-Net 版本的权重。2025 年 FLUX 生态的 IP-Adapter 仍在快速迭代中。
  • 一键风格迁移:上传一张参考画作,输入”一只猫”的文本,立即生成梵高/赛博朋克/水彩等指定风格的图像——比传统 风格迁移 方法更灵活,内容和风格可独立控制。
  • 角色一致性生成:用 IP-Adapter Full Face 或 InstantID 固定角色形象,在不同场景、不同姿势下生成同一角色的插画,广泛用于漫画、绘本、游戏美术量产。2024 年后 InstantID 将这一能力提升到了新高度——仅需一张照片,零微调生成。
  • 产品风格统一:电商场景中,用品牌参考图统一生成多张商品图的视觉风格,保证店铺整体调性一致。
  • 虚拟试衣与形象定制:结合 IP-Adapter Full Face / InstantID 与 ControlNet OpenPose,实现”给定一张人脸参考+指定姿态”的人物生成,用于虚拟试穿、头像定制等场景。
  • ComfyUI 工作流中的风格节点:ComfyUI 社区将 IP-Adapter 封装为 Apply IPAdapter 节点,配合 ControlNet 节点组成「构图+风格」双重可控的生成管线(详见 ComfyUI 工作流)。
  • Stable Diffusion WebUI 的图像提示插件:AUTOMATIC1111 社区插件集成 IP-Adapter,用户无需写代码即可在 WebUI 中拖入参考图做图像提示。
  • AI 换脸与数字人(2024+ 热点):基于 InstantID / PuLID 的身份保持生成能力,社区开发了大量「AI 换脸」「数字人视频」「虚拟主播」应用——给定一张人脸照片即可在任意场景、任意视频中替换为该面孔。这一方向也引发了深度伪造(Deepfake)相关的伦理与安全讨论。
类库语言说明
DiffusersPythonHuggingFace 扩散模型库,内置 load_ip_adapter 接口,支持 SD1.5/SDXL,2025 年逐步支持 FLUX
ComfyUIPython/JS节点式工具,Apply IPAdapter / IPAdapter Plus / Full Face / Regional 节点齐全
AUTOMATIC1111 WebUIPythonStable Diffusion WebUI,通过 IP-Adapter 插件支持图像提示
IP-Adapter 官方仓库Pythontencent-ailab/IP-Adapter,提供训练脚本与各版本预训练权重
InstantIDPythonInstantID/InstantID,2024 年身份保持生成的里程碑工作,零样本单图生成
PuLIDPythonToTheBeginning/PuLID,基于对齐损失的身份保持方案,兼顾 ID 一致性与 prompt 可控性
IP-Adapter-FLUXPythonInstantX/IP-Adapter-FLUX,面向 FLUX DiT 架构的 IP-Adapter 适配
Reference-Only ControlNetPythonComfyUI 节点,零训练利用 U-Net 自注意力做参考图迁移
InvokeAIPython/TS开源生图工具,支持 IP-Adapter 图像提示与多层条件叠加
术语英文解释
图像提示Image Prompt用一张参考图的语义特征(而非文本)来引导生成
解耦交叉注意力Decoupled Cross-AttentionIP-Adapter 的核心机制:新增一条与文本通路独立的图像 cross-attention,共享 Q 投影但 K/V 各自独立
交叉注意力Cross-Attention注意力机制的一种:Q 来自一个序列(如图像特征),K/V 来自另一个序列(如文本/图像 embedding),实现跨模态信息融合
图像编码器Image Encoder提取参考图语义特征的预训练网络,IP-Adapter 使用 CLIP Image Encoder(基于 ViT)
CLIPCLIPContrastive Language-Image Pre-training,OpenAI 的视觉-语言对齐模型,通过对比学习让图像和文本映射到同一语义空间
ViTVision Transformer将图像切分为 patch 序列并用 Transformer 编码的视觉模型,是 CLIP Image Encoder 的基础架构
图像 EmbeddingImage Embedding图像编码器输出的特征向量序列,作为图像通路的 K/V 来源
提示强度IP-Adapter Scaleλ 系数,控制图像提示对生成结果的影响程度,推理时可实时调整
Reference-OnlyReference-Only ControlNet不训练新模块,直接用 U-Net 自注意力提取参考特征的方案
IP-Adapter PlusIP-Adapter Plus增强版,用完整的 patch token 序列(而非 pooled 全局向量)做更精准的风格迁移
Full FaceIP-Adapter Full Face针对人脸优化的版本,用 InsightFace 专用编码器实现高保真角色一致性
身份保持生成ID-Preserving Generation给定一张人脸参考,在保持身份一致的前提下生成不同场景/风格/姿态的图像
InstantIDInstantID2024 年里程碑工作:融合 InsightFace 身份编码 + IdentityNet + 解耦 cross-attention,实现零样本单图身份保持
PuLIDPuLIDPure and Lightning ID Customization,通过对齐损失最小化 ID 注入对原始生成的干扰
DiTDiffusion Transformer用纯 Transformer 替代 U-Net 卷积架构的扩散模型,FLUX.1 是代表
Joint AttentionJoint AttentionDiT 架构中将文本 token 和图像 token 拼接后统一做注意力计算的机制
OminiControlOminiControl面向 DiT 的统一条件控制框架,用 shifted attention 适配图像提示、结构控制等多种条件
InsightFaceInsightFace开源人脸识别工具包,ArcFace 模型可提取高维身份特征向量
  • Ye et al. “IP-Adapter: Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models” (2023):IP-Adapter 原始论文,提出 decoupled cross-attention,用约 50MB 的轻量适配器实现图像提示,是图像条件生成的里程碑工作。
  • Wang et al. “InstantID: Zero-shot Identity-Preserving Generation in Seconds” (2024):InstantID 论文,融合 InsightFace 身份编码与 IdentityNet,实现仅需一张参考人脸的零样本身份保持生成,是 2024 年最有影响力的图像生成工作之一。
  • PuLID: “Pure and Lightning ID Customization via Contrastive Alignment” (2024):PuLID 论文,通过对齐损失解决身份注入与风格可控性之间的冲突,兼顾 ID 一致性与 prompt 遵循度。
  • Zhang et al. “Adding Conditional Control to Text-to-Image Diffusion Models” (ICCV 2023):ControlNet 原始论文,IP-Adapter 的互补方案——本文对比了两者在控制维度和注入方式上的根本差异(详见 ControlNet)。
  • Radford et al. “Learning Transferable Visual Models From Natural Language Supervision” (ICML 2021):CLIP 论文,IP-Adapter 使用的 CLIP Image Encoder 即来源于此,图像与文本的对齐表示是图像提示的基础。
  • Peebles & Xie. “Scalable Diffusion Models with Transformers” (DiT, ICCV 2023):DiT 论文,提出了用 Transformer 替代 U-Net 的扩散模型架构,FLUX.1 等模型的理论基础,理解 IP-Adapter 向 DiT 迁移的必读文献。
  • Mou et al. “T2I-Adapter: Learning Adapters to Dig out More Controllable Ability for Text-to-Image Diffusion Models” (2023):T2I-Adapter 论文,另一条轻量适配器路线,与 IP-Adapter 的设计哲学相通(详见 T2I-Adapter)。
  • OminiControl: “Unified and Simple Control for Diffusion Transformer” (2024):面向 DiT 的统一条件控制框架,将 IP-Adapter 式图像提示与结构控制统一到 shifted attention 机制。
  • IP-Adapter 官方 GitHub 仓库(tencent-ailab/IP-Adapter):提供各版本(Base/Plus/Full Face/FaceID v2)预训练权重、推理脚本和 ComfyUI/Diffusers 适配说明。
  • ComfyUI IP-Adapter Plus 节点文档:社区维护的增强版 IP-Adapter 节点集,支持权重调度、多参考图混合、区域控制等高级功能。