🚀 FLUX.1-dev-IP-Adapter
本仓库包含一个用于 InstantX 团队 研究人员发布的 FLUX.1-dev 模型的 IP-Adapter。在这个模型中,图像的作用类似于文本,可能不会对其他文本做出响应或产生干扰。我们衷心希望您能喜欢这个模型,尽情享受使用它的乐趣,并 在 Twitter 上 与我们分享您的创意作品。
🚀 快速开始
本项目提供了一个适用于 FLUX.1-dev 模型的 IP-Adapter,让图像能像文本一样发挥作用。您可以使用它进行图像生成,并在不同平台上体验。
✨ 主要特性
- 创新架构:这是一个常规的 IP-Adapter,在 38 个单块和 19 个双块中添加了新的层。
- 优质图像编码:使用 google/siglip-so400m-patch14-384 对图像进行编码,性能卓越。
- 简单投影模型:采用一个包含 2 个线性层的简单 MLPProjModel 进行投影。
- 图像令牌设置:图像令牌数量设置为 128。
📦 安装指南
文档未提及安装步骤,故跳过此章节。
💻 使用示例
基础用法
import os
from PIL import Image
import torch
import torch.nn as nn
from pipeline_flux_ipa import FluxPipeline
from transformer_flux import FluxTransformer2DModel
from attention_processor import IPAFluxAttnProcessor2_0
from transformers import AutoProcessor, SiglipVisionModel
from infer_flux_ipa_siglip import resize_img, MLPProjModel, IPAdapter
image_encoder_path = "google/siglip-so400m-patch14-384"
ipadapter_path = "./ip-adapter.bin"
transformer = FluxTransformer2DModel.from_pretrained(
"black-forest-labs/FLUX.1-dev", subfolder="transformer", torch_dtype=torch.bfloat16
)
pipe = FluxPipeline.from_pretrained(
"black-forest-labs/FLUX.1-dev", transformer=transformer, torch_dtype=torch.bfloat16
)
ip_model = IPAdapter(pipe, image_encoder_path, ipadapter_path, device="cuda", num_tokens=128)
image_dir = "./assets/images/2.jpg"
image_name = image_dir.split("/")[-1]
image = Image.open(image_dir).convert("RGB")
image = resize_img(image)
prompt = "a young girl"
images = ip_model.generate(
pil_image=image,
prompt=prompt,
scale=0.7,
width=960, height=1280,
seed=42
)
images[0].save(f"results/{image_name}")
高级用法
文档未提及高级用法示例,故不展示。
📚 详细文档
展示案例
普通展示

LoRA 展示
我们采用 Shakker-Labs/FLUX.1-dev-LoRA-collections 作为角色 LoRA,并使用其默认提示。

ComfyUI
请参考 ComfyUI-IPAdapter-Flux。

在线推理
您也可以在 Shakker AI 上体验这个模型。
局限性
此模型支持图像参考,但不适用于细粒度的风格迁移或角色一致性处理,这意味着在内容泄漏和风格迁移之间存在权衡。与 InstantStyle(基于 UNet)不同,我们在 FLUX.1-dev(基于 DiT)中未发现类似特性。可能需要多次尝试才能获得满意的结果。此外,当前发布的模型可能存在多样性有限的问题,无法涵盖某些风格或概念。

🔧 技术细节
该模型是一个常规的 IP-Adapter,新层被添加到 38 个单块和 19 个双块中。使用 google/siglip-so400m-patch14-384 对图像进行编码,因其性能卓越。采用一个包含 2 个线性层的简单 MLPProjModel 进行投影,图像令牌数量设置为 128。目前发布的模型在 1000 万开源数据集上进行训练,批量大小为 128,训练步数为 80000。
📄 许可证
该模型根据 flux-1-dev-non-commercial-license 发布,保留所有版权。
致谢
本项目由 HuggingFace、fal.ai 和 Shakker Labs 赞助。
引用
如果您在研究中发现本项目有用,请通过以下方式引用我们:
@misc{flux-ipa,
author = {InstantX Team},
title = {InstantX FLUX.1-dev IP-Adapter Page},
year = {2024},
}
信息表格
属性 |
详情 |
模型类型 |
适用于 FLUX.1-dev 的 IP-Adapter |
训练数据 |
1000 万开源数据集 |
基础模型 |
black-forest-labs/FLUX.1-dev |
库名称 |
diffusers |
管道标签 |
文本到图像 |
标签 |
文本到图像、IP-Adapter、Flux.1-dev、图像生成、Stable Diffusion |