IF

GitHub
7.8k 527 较难 1 次阅读 今天NOASSERTION图像
AI 解读 由 AI 自动生成,仅供参考

IF 是由 DeepFloyd 实验室推出的开源文生图模型,旨在生成具有高度照片级真实感且能精准理解语言描述的图像。它有效解决了传统模型在复杂语义理解和图像细节还原上的不足,能够根据文字提示创作出逼真的高质量图片。

IF 采用独特的级联扩散架构,由一个冻结的文本编码器和三个像素扩散模块组成:首先生成 64x64 的基础图像,随后通过两个超分辨率模型逐步提升至 256x256 乃至 1024x1024 的高清分辨率。其核心亮点在于利用强大的 T5 变压器提取文本特征,并结合增强的 UNet 架构,在 COCO 数据集上取得了零样本 FID 6.66 的卓越成绩,性能超越当前多数主流模型。

这款工具非常适合 AI 研究人员、开发者以及追求极致画质的数字艺术家使用。对于技术人员,IF 提供了灵活的模块化设计,支持与 Hugging Face Diffusers 库集成,允许自定义生成流程并检查中间结果;对于创作者,它提供了包括风格迁移、图像修复和超级分辨率在内的多种模式。虽然运行完整流程对显存有一定要求(建议 16GB-24GB),但其出色的生成效果和开源特性,使其成为探索高质量图像合成未来的有力工具。

使用场景

某独立游戏开发者正在为一款赛博朋克风格的视觉小说快速生成高质量的角色立绘和背景素材,急需在有限算力下实现照片级真实的画面效果。

没有 IF 时

  • 画质与语义割裂:使用传统模型生成的图像虽然分辨率尚可,但往往无法精准理解复杂的场景描述(如“霓虹灯反射在积水路面”),导致画面细节逻辑混乱。
  • 放大失真严重:先生成低分图再借助普通算法放大,人物面部五官容易模糊或扭曲,缺乏真实皮肤的纹理质感。
  • 硬件门槛过高:想要直接生成 1024x1024 的高清大图,通常需要多张高端显卡并行,个人开发者的单卡环境难以负荷。
  • 迭代成本高昂:为了得到一张可用素材,需反复调整提示词并尝试不同模型组合,耗时数小时却难获满意结果。

使用 IF 后

  • 深度语言理解:IF 凭借强大的 T5 文本编码器,能精准捕捉“雨夜”、“金属光泽”等复杂修饰语,生成的图像完美还原了文字描述的物理光影逻辑。
  • 级联超分保真:利用其独特的三级级联扩散架构,从 64px 逐步生成至 1024px,人物发丝与皮肤毛孔清晰可见,彻底解决了放大后的伪影问题。
  • 显存效率优化:通过模块化设计和内存高效注意力机制,仅需单张 24GB 显存显卡即可跑通全套流程,让个人工作站也能产出电影级素材。
  • 工作流可控性强:开发者可灵活干预中间层级(如仅重绘低分阶段或单独升级分辨率),大幅缩短了从创意到成图的调试周期。

IF 将顶尖的文本理解力与高效的级联生成架构相结合,让个人开发者也能以极低算力成本轻松获得超越商业级的照片级图像合成能力。

运行环境要求

操作系统
  • 未说明
GPU
  • 必需 NVIDIA GPU
  • 运行完整流程(IF-I-XL + IF-II-L + Stable x4)需 24GB 显存
  • 仅运行前两级(IF-I-XL + IF-II-L)需 16GB 显存
  • 建议使用支持 xformers 的显卡以优化内存效率
内存

未说明

依赖
notes1. 必须安装 xformers 并设置环境变量 FORCE_MEM_EFFICIENT_ATTN=1 以启用内存高效注意力机制。 2. 若使用 torch>=2.0.0,代码中需移除 enable_xformers_memory_efficient_attention() 调用。 3. 使用 Diffusers 库并通过 CPU 卸载技术可将最低显存需求降至 14GB。 4. 首次使用前需在 Hugging Face 接受许可协议并登录获取访问令牌。 5. 模型采用级联结构:文本生成 64x64 图像 -> 超分至 256x256 -> 超分至 1024x1024。
python未说明
deepfloyd_if==1.0.2rc0
xformers==0.0.16
diffusers
accelerate
transformers
safetensors
huggingface_hub
torch>=2.0.0 (可选,用于原生高效注意力)
IF hero image

快速开始

许可证 许可证 下载量 Discord Twitter Linktree

IF 由 DeepFloyd LabStabilityAI 开发

我们推出了 DeepFloyd IF,这是一种全新的、最先进的开源文本到图像模型,具有高度的逼真度和强大的语言理解能力。DeepFloyd IF 是一个模块化架构,由一个冻结的文本编码器和三个级联的像素扩散模块组成:一个基于文本提示生成 64x64 像素图像的基础模型,以及两个超分辨率模型,分别用于生成更高分辨率的图像:256x256 像素和 1024x1024 像素。该模型的所有阶段都使用基于 T5 变压器的冻结文本编码器来提取文本嵌入,然后将这些嵌入输入到增强了交叉注意力和注意力池化的 UNet 架构中。最终结果是一个非常高效的模型,其性能超越了当前最先进的模型,在 COCO 数据集上实现了 6.66 的零样本 FID 分数。我们的工作强调了在级联扩散模型的第一阶段使用更大规模 UNet 架构的潜力,并展示了文本到图像合成的光明前景。

灵感来源于 具有深度语言理解能力的逼真文本到图像扩散模型

使用所有 IF 模型的最低要求:

  • IF-I-XL(43亿参数的文本到64x64基础模块)和 IF-II-L(12亿参数的256x256超分辨率模块)需要 16GB 显存
  • IF-I-XL(43亿参数的文本到64x64基础模块)、IF-II-L(12亿参数的256x256超分辨率模块)以及 Stable x4(1024x1024超分辨率模块)需要 24GB 显存
  • 需要安装 xformers 并设置环境变量 FORCE_MEM_EFFICIENT_ATTN=1

快速入门

在 Colab 中打开 Hugging Face Spaces

pip install deepfloyd_if==1.0.2rc0
pip install xformers==0.0.16
pip install git+https://github.com/openai/CLIP.git --no-deps

本地笔记本

Jupyter Notebook Kaggle

梦境、风格迁移、超分辨率或修复模式都可以在 Jupyter Notebook 中使用,链接见 这里

与 🤗 Diffusers 的集成

IF 也已集成到 🤗 Hugging Face 的 Diffusers 库 中。

Diffusers 会单独运行每个阶段,允许用户自定义图像生成过程,并轻松检查中间结果。

示例

在使用 IF 之前,您需要接受其使用条款。操作步骤如下:

  1. 确保您拥有一个 Hugging Face 账号,并已登录
  2. 接受 DeepFloyd/IF-I-XL-v1.0 模型卡片上的许可协议
  3. 确保您已在本地登录。安装 huggingface_hub
pip install huggingface_hub --upgrade

在 Python shell 中运行登录函数:

from huggingface_hub import login

login()

并输入您的 Hugging Face Hub 访问令牌

接下来我们安装 diffusers 及其依赖项:

pip install diffusers accelerate transformers safetensors

现在我们就可以在本地运行该模型了。

默认情况下,diffusers 会使用 模型 CPU 卸载 技术,以仅需 14 GB 显存即可运行整个 IF 流程。

如果您正在使用 torch>=2.0.0,请务必删除所有 enable_xformers_memory_efficient_attention() 函数调用。

from diffusers import DiffusionPipeline
from diffusers.utils import pt_to_pil
import torch

# 第一阶段
stage_1 = DiffusionPipeline.from_pretrained("DeepFloyd/IF-I-XL-v1.0", variant="fp16", torch_dtype=torch.float16)
stage_1.enable_xformers_memory_efficient_attention()  # 如果 torch.__version__ >= 2.0.0,则移除此行
stage_1.enable_model_cpu_offload()

# 第二阶段
stage_2 = DiffusionPipeline.from_pretrained(
    "DeepFloyd/IF-II-L-v1.0", text_encoder=None, variant="fp16", torch_dtype=torch.float16
)
stage_2.enable_xformers_memory_efficient_attention()  # 如果 torch.__version__ >= 2.0.0,则移除此行
stage_2.enable_model_cpu_offload()

# 第三阶段
safety_modules = {"feature_extractor": stage_1.feature_extractor, "safety_checker": stage_1.safety_checker, "watermarker": stage_1.watermarker}
stage_3 = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-x4-upscaler", **safety_modules, torch_dtype=torch.float16)
stage_3.enable_xformers_memory_efficient_attention()  # 如果 torch.__version__ >= 2.0.0,则移除此行
stage_3.enable_model_cpu_offload()

prompt = '一只穿着橙色连帽衫、戴着蓝色太阳镜的袋鼠站在埃菲尔铁塔前,手里拿着写着“非常深度学习”的牌子'

# 文本嵌入
prompt_embeds, negative_embeds = stage_1.encode_prompt(prompt)

generator = torch.manual_seed(0)

# 第一阶段
image = stage_1(prompt_embeds=prompt_embeds, negative_prompt_embeds=negative_embeds, generator=generator, output_type="pt").images
pt_to_pil(image)[0].save("./if_stage_I.png")

# 第二阶段
image = stage_2(
    image=image, prompt_embeds=prompt_embeds, negative_prompt_embeds=negative_embeds, generator=generator, output_type="pt"
).images
pt_to_pil(image)[0].save("./if_stage_II.png")

# 第三阶段
image = stage_3(prompt=prompt, image=image, generator=generator, noise_level=100).images
image[0].save("./if_stage_III.png")

diffusers 提供了多种方法来进一步加快推理速度并降低内存消耗。有关详细信息,请参阅 diffusers 文档:

如需了解更多关于如何使用 IF 的详细信息,请查看 IF 博客文章官方文档 📖。

Diffusers 的 DreamBooth 脚本也支持对 IF 进行微调🎨。通过参数高效的微调,您只需一张 GPU 和约 28 GB 显存,即可为 IF 添加新概念。

在本地运行代码

将模型加载到显存中

from deepfloyd_if.modules import IFStageI, IFStageII, StableStageIII
from deepfloyd_if.modules.t5 import T5Embedder

device = 'cuda:0'
if_I = IFStageI('IF-I-XL-v1.0', device=device)
if_II = IFStageII('IF-II-L-v1.0', device=device)
if_III = StableStageIII('stable-diffusion-x4-upscaler', device=device)
t5 = T5Embedder(device="cpu")

I. 梦境

梦境模式是 IF 模型的文本到图像生成模式。

from deepfloyd_if.pipelines import dream

prompt = '超近距离彩色照片:森林中一只长着鹿角的彩虹猫头鹰'
count = 4

result = dream(
    t5=t5, if_I=if_I, if_II=if_II, if_III=if_III,
    prompt=[prompt]*count,
    seed=42,
    if_I_kwargs={
        "guidance_scale": 7.0,
        "sample_timestep_respacing": "smart100",
    },
    if_II_kwargs={
        "guidance_scale": 4.0,
        "sample_timestep_respacing": "smart50",
    },
    if_III_kwargs={
        "guidance_scale": 9.0,
        "noise_level": 20,
        "sample_timestep_respacing": "75",
    },
)

if_III.show(result['III'], size=14)

II. 零样本图像到图像转换

在风格迁移模式下,您的提示输出将以 support_pil_img 的风格呈现。

from deepfloyd_if.pipelines import style_transfer

result = style_transfer(
    t5=t5, if_I=if_I, if_II=if_II,
    support_pil_img=raw_pil_image,
    style_prompt=[
        '以专业折纸风格',
        '以泰特现代艺术馆油画风格',
        '以塑料积木风格',
        '以1990年代经典动漫风格',
    ],
    seed=42,
    if_I_kwargs={
        "guidance_scale": 10.0,
        "sample_timestep_respacing": "10,10,10,10,10,10,10,10,0,0",
        'support_noise_less_qsample_steps': 5,
    },
    if_II_kwargs={
        "guidance_scale": 4.0,
        "sample_timestep_respacing": 'smart50',
        "support_noise_less_qsample_steps": 5,
    },
)
if_I.show(result['II'], 1, 20)

Alternative Text

III. 超分辨率

对于超分辨率任务,用户可以对并非由 IF 生成的图像运行 IF-IIIF-III 或者 ‘Stable x4’(两个级联):

from deepfloyd_if.pipelines import super_resolution

middle_res = super_resolution(
    t5,
    if_III=if_II,
    prompt=['一位戴着蓝色头巾、身穿蓝色毛衣的女性,细节丰富,4K 单反拍摄,最佳画质'],
    support_pil_img=raw_pil_image,
    img_scale=4.,
    img_size=64,
    if_III_kwargs={
        'sample_timestep_respacing': 'smart100',
        'aug_level': 0.5,
        'guidance_scale': 6.0,
    },
)
high_res = super_resolution(
    t5,
    if_III=if_III,
    prompt=[''],
    support_pil_img=middle_res['III'][0],
    img_scale=4.,
    img_size=256,
    if_III_kwargs={
        "guidance_scale": 9.0,
        "noise_level": 20,
        "sample_timestep_respacing": "75",
    },
)
show_superres(raw_pil_image, high_res['III'][0])

IV. 零样本修复

from deepfloyd_if.pipelines import inpainting

result = inpainting(
    t5=t5, if_I=if_I,
    if_II=if_II,
    if_III=if_III,
    support_pil_img=raw_pil_image,
    inpainting_mask=inpainting_mask,
    prompt=[
        '油画风格:一位戴帽子的男人',
    ],
    seed=42,
    if_I_kwargs={
        "guidance_scale": 7.0,
        "sample_timestep_respacing": "10,10,10,10,10,0,0,0,0,0",
        'support_noise_less_qsample_steps': 0,
    },
    if_II_kwargs={
        "guidance_scale": 4.0,
        'aug_level': 0.0,
        "sample_timestep_respacing": '100',
    },
    if_III_kwargs={
        "guidance_scale": 9.0,
        "noise_level": 20,
        "sample_timestep_respacing": "75",
    },
)
if_I.show(result['I'], 2, 3)
if_I.show(result['II'], 2, 6)
if_I.show(result['III'], 2, 14)

🤗 模型库 🤗

每个模型的权重下载链接和模型卡片将很快在模型库中提供。

原始版本

名称 级联 参数量 FID 批量大小 步数
IF-I-M I 400M 8.86 3072 2.5M
IF-I-L I 900M 8.06 3200 3.0M
IF-I-XL* I 4.3B 6.66 3072 2.42M
IF-II-M II 450M - 1536 2.5M
IF-II-L* II 1.2B - 1536 2.5M
IF-III-L* (即将发布) III 700M - 3072 1.25M

*最佳模块

定量评估

FID = 6.66

许可证

本仓库中的代码采用定制许可证发布(详见附录 第二条)。

权重将很快通过 Hugging Face 上的 DeepFloyd 组织 提供,并拥有各自的 LICENSE。

免责声明: IF 模型的首次发布暂时采用仅限研究用途的限制性许可证,以便收集反馈;此后,我们计划发布一款完全开源的模型,与其他 Stability AI 模型保持一致。

局限性和偏见

本代码库中的模型存在已知的局限性和偏见。更多信息请参阅 模型卡片

🎓 DeepFloyd IF 的创作者:

📄 研究论文(即将发布)

致谢

特别感谢 StabilityAI 及其 CEO Emad Mostaque,在模型训练过程中提供了宝贵的 GPU 算力与基础设施支持(我们也要感谢 Richard Vencu);感谢 LAION 以及 Christoph Schuhmann 对本项目的支持和高质量数据集的提供;同时感谢 Huggingface 团队在推理阶段优化模型的速度与内存占用、制作演示并给予诸多实用建议!

🚀 外部贡献者 🚀

  • 最诚挚的感谢 @Apolinário,他在各个阶段为 IF 开源提供了创意、咨询、帮助与支持;撰写了大量文档和使用指南,并在艰难时刻营造了友好的氛围 🦉;
  • 感谢 @patrickvonplaten,他将 UNET 模型的加载速度提升了 80%;还成功将 Stable-Diffusion-x4 集成为原生流程 💪;
  • 感谢 @williamberman@patrickvonplaten,他们实现了 Diffusers 的集成 🙌;
  • 感谢 @hysts@Apolinário,他们共同打造了 最佳的 Gradio IF 演示 🚀;
  • 感谢 @Dango233,他利用 xformers 的高效注意力机制对 IF 进行了适配 💪;

版本历史

v1.0.12023/04/28
v1.0.02023/04/27

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|5天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|5天前
开发框架图像Agent

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|昨天
插件Agent图像

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|4天前
语言模型图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|5天前
开发框架图像Agent