模型简介
模型特点
模型能力
使用案例
🚀 IF-I-XL-v1.0
DeepFloyd-IF 是一款基于像素的文本到图像的三级级联扩散模型,能够生成在真实感和语言理解方面达到新的先进水平的图像。该模型效率极高,超越了当前的先进模型,在 COCO 数据集上实现了零样本 FID - 30K 分数为 6.66
的成绩。
🚀 快速开始
DeepFloyd-IF 已集成到 🤗 Hugging Face 的 🧨 diffusers 库 中,该库经过优化,只需 14GB 的 VRAM 即可在 GPU 上运行。
在使用 IF 之前,你需要接受其使用条件,具体步骤如下:
- 确保你拥有 Hugging Face 账户 并已登录。
- 在 [DeepFloyd/IF - I - XL - v1.0](https://huggingface.co/DeepFloyd/IF - I - XL - v1.0) 的模型卡片上接受许可协议。
- 确保在本地登录。安装
huggingface_hub
:
pip install huggingface_hub --upgrade
在 Python shell 中运行登录函数:
from huggingface_hub import login
login()
并输入你的 [Hugging Face Hub 访问令牌](https://huggingface.co/docs/hub/security - tokens#what - are - user - access - tokens)。
接下来,安装 diffusers
及其依赖项:
pip install diffusers accelerate transformers safetensors sentencepiece
现在,你可以在本地运行该模型了。
默认情况下,diffusers
使用 [模型 CPU 卸载](https://huggingface.co/docs/diffusers/optimization/fp16#model - offloading - for - fast - inference - and - memory - savings) 功能,只需 14GB 的 VRAM 即可运行整个 IF 管道。
如果你使用的是 torch>=2.0.0
,请确保 移除所有 enable_xformers_memory_efficient_attention()
函数。
💻 使用示例
基础用法
# 加载所有阶段并卸载到 CPU
from diffusers import DiffusionPipeline
from diffusers.utils import pt_to_pil
import torch
# 阶段 1
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()
# 阶段 2
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()
# 阶段 3
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 = 'a photo of a kangaroo wearing an orange hoodie and blue sunglasses standing in front of the eiffel tower holding a sign that says "very deep learning"'
# 文本嵌入
prompt_embeds, negative_embeds = stage_1.encode_prompt(prompt)
# 运行阶段 1
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")
# 运行阶段 2
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")
# 运行阶段 3
image = stage_3(prompt=prompt, image=image, generator=generator, noise_level=100).images
image[0].save("./if_stage_III.png")
使用 diffusers
有多种方法可以加快推理时间并进一步降低内存消耗。具体操作请参考 Diffusers 文档:
- 🚀 [优化推理时间](https://huggingface.co/docs/diffusers/api/pipelines/if#optimizing - for - speed)
- ⚙️ [优化推理期间的低内存使用](https://huggingface.co/docs/diffusers/api/pipelines/if#optimizing - for - memory)
有关如何使用 IF 的更多详细信息,请查看 IF 博客文章 和 文档 📖。
Diffusers 的 dreambooth 脚本也支持微调 🎨 IF。通过参数高效微调,你可以使用单个 GPU 和大约 28GB 的 VRAM 为 IF 添加新的概念。
✨ 主要特性
- 先进的图像生成能力:能够生成具有高度真实感和语言理解能力的图像,在 COCO 数据集上实现了零样本 FID - 30K 分数为
6.66
的成绩。 - 集成 Hugging Face 库:与 🤗 Hugging Face 的 🧨 diffusers 库 集成,优化了 GPU 运行效率。
- 多阶段级联架构:采用三级级联扩散模型,逐步生成高分辨率图像。
📦 安装指南
- 确保你拥有 Hugging Face 账户 并已登录。
- 在 [DeepFloyd/IF - I - XL - v1.0](https://huggingface.co/DeepFloyd/IF - I - XL - v1.0) 的模型卡片上接受许可协议。
- 安装
huggingface_hub
:
pip install huggingface_hub --upgrade
- 安装
diffusers
及其依赖项:
pip install diffusers accelerate transformers safetensors sentencepiece
📚 详细文档
模型详情
属性 | 详情 |
---|---|
开发者 | DeepFloyd, StabilityAI |
模型类型 | 基于像素的文本到图像级联扩散模型 |
级联阶段 | I |
参数数量 | 43 亿 |
语言 | 主要为英语,在一定程度上支持其他罗曼语系语言 |
许可证 | DeepFloyd IF 许可协议 |
模型描述 | DeepFloyd - IF 由冻结文本模型和三个像素级联扩散模块组成,每个模块用于生成分辨率逐渐提高的图像:64x64、256x256 和 1024x1024。模型的所有阶段都使用基于 T5 变压器的冻结文本编码器来提取文本嵌入,然后将其输入到通过交叉注意力和注意力池化增强的 UNet 架构中 |
更多信息资源 | [GitHub](https://github.com/deep - floyd/IF),deepfloyd.ai,所有链接 |
引用方式(即将推出) | - |
训练信息
训练数据
12 亿文本 - 图像对(基于 LAION - A 和少量额外的内部数据集)。在训练的任何级联和阶段都不使用数据集的测试/验证部分。COCO 数据集的验证部分有助于在训练期间展示 “在线” 损失行为(以发现意外情况和其他问题),但该数据集从不用于训练。
训练过程
IF - I - XL - v1.0 是一个基于像素的扩散级联模型,使用 T5 - 编码器嵌入(隐藏状态)来生成 64 像素的图像。在训练过程中:
- 图像通过移位中心裁剪增强(从中心随机偏移最多 0.1 的大小)裁剪为正方形,并使用
Pillow==9.2.0
的 BICUBIC 重采样方法将其调整为 64 像素,同时将 reducing_gap 设置为 None(有助于避免锯齿),并处理为张量 BxCxHxW。 - 文本提示通过开源的冻结 T5 - v1_1 - xxl 文本编码器进行编码(该编码器完全由 Google 团队训练),随机 10% 的文本被置为空字符串,以增加无分类器引导(CFG)的能力。
- 文本编码器的非池化输出被输入到投影层(无激活的线性层),并通过受控的混合自注意力和交叉注意力在扩散模型的 UNet 主干中使用。
- 此外,文本编码器的输出通过注意力池化(64 个头)进行池化,并作为额外特征用于时间嵌入。
- 扩散过程限制为 1000 个离散步骤,采用余弦噪声调度对图像进行加噪。
- 损失是添加到图像中的噪声与 UNet 预测之间的重建目标。
- 检查点 IF - I - XL - v1.0 的训练过程在所有数据集上以 64x64 的分辨率进行了 2420000 步,采用 OneCycleLR 策略、few - bit 反向 GELU 激活、AdamW8bit 优化器 + DeepSpeed - Zero1,T5 - 编码器完全冻结。
硬件
64 x 8 x A100 GPUs
优化器
AdamW8bit + DeepSpeed ZeRO - 1
批次大小
3072
学习率
one - cycle 余弦策略,热身 10000 步,起始学习率为 2e - 6,最大学习率为 5e - 5,最终学习率为 5e - 9
评估结果
FID - 30K: 6.66
使用场景
直接使用
该模型用于研究目的。任何将模型部署到生产环境的尝试不仅需要遵守许可协议,还需要部署者承担全部责任。
可能的研究领域和任务包括:
- 生成艺术图像,并应用于设计和其他艺术创作过程。
- 安全部署有可能生成有害内容的模型。
- 探索和理解生成模型的局限性和偏差。
- 应用于教育或创意工具。
- 对生成模型进行研究。
排除的使用情况如下所述。
滥用、恶意使用和超出范围的使用
⚠️ 重要提示
此部分内容最初来自 [DALLE - MINI 模型卡片](https://huggingface.co/dalle - mini/dalle - mini),适用于 Stable Diffusion,同样也适用于 IF。
该模型不应被用于故意创建或传播会对他人造成敌对或疏离环境的图像。这包括生成人们可预见会感到不安、痛苦或冒犯的图像,或传播历史或当前刻板印象的内容。
超出范围的使用
该模型并非用于生成对人物或事件的真实或准确表示,因此使用该模型生成此类内容超出了其能力范围。
滥用和恶意使用
使用该模型生成对个人残酷的内容属于滥用行为。这包括但不限于:
- 生成贬低、非人化或以其他方式伤害他人或其环境、文化、宗教等的表示。
- 故意推广或传播歧视性内容或有害刻板印象。
- 在未经他人同意的情况下冒充他人。
- 未经可能看到该内容的人的同意生成色情内容。
- 虚假和误导性信息。
- 展示严重暴力和血腥场面。
- 违反使用条款分享受版权保护或有许可限制的材料。
- 违反使用条款分享对受版权保护或有许可限制的材料进行修改后的内容。
局限性和偏差
局限性
- 模型无法实现完美的真实感。
- 模型主要使用英语字幕进行训练,在其他语言中的表现不佳。
- 模型在大规模数据集 [LAION - 5B](https://laion.ai/blog/laion - 5b/) 的子集上进行训练,该数据集包含成人、暴力和色情内容。为部分缓解此问题,我们采取了一些措施(见训练部分)。
偏差
虽然图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏差。IF 主要在 [LAION - 2B(en)](https://laion.ai/blog/laion - 5b/) 的子集上进行训练,该数据集的图像仅限于英语描述。使用其他语言的社区和文化的文本和图像可能没有得到充分考虑。这影响了模型的整体输出,因为白人和西方文化往往被视为默认设置。此外,模型使用非英语提示生成内容的能力明显低于使用英语提示的情况。IF 反映并加剧了偏差,无论输入或意图如何,都建议用户谨慎使用。
📄 许可证
本模型使用 DeepFloyd IF 许可协议,以下是协议的主要内容:
许可授予
在你遵守文档以及第 2、3 和 5 节的前提下,Stability AI 授予你一项非排他性、全球性、不可转让、不可再许可、可撤销、免版税且有限的许可,允许你仅为非商业研究目的复制、分发和创作软件的衍生作品。上述许可仅适用于你个人,未经 Stability AI 的事先书面同意,你不得转让或再许可本许可或本许可下的任何其他权利或义务;任何此类转让或再许可均无效,并将自动且立即终止本许可。
限制
你不得,也不得允许、协助或促使任何第三方:
- 全部或部分地使用、修改、复制、再现、创作软件产品(或其任何衍生作品、包含软件产品的作品或软件产生的任何数据)用于:
- 任何商业或生产目的;
- 军事目的或用于核技术服务;
- 监控目的,包括与监控相关的任何研究或开发;
- 生物特征处理;
- 以任何侵犯、盗用或以其他方式侵犯任何第三方权利的方式;
- 以任何违反任何适用法律以及侵犯任何隐私或安全法律、规则、法规、指令或政府要求的方式(包括《通用数据保护条例》((EU) 2016/679 号条例)、《加利福尼亚消费者隐私法》以及所有管理生物特征信息处理的法律),以及上述任何法律的所有修订和后续法律。
- 更改或删除软件产品上或其中出现的版权和其他专有通知。
- 使用任何设备、软件或其他手段规避或移除 Stability AI 与软件相关使用的任何安全或保护措施,或规避或移除任何使用限制,或启用 Stability AI 禁用的功能。
- 对软件产品提供或施加任何更改、限制或与本许可条款不一致的条款。
- 违反任何适用的美国和非美国出口管制和贸易制裁法律(“出口法律”);直接或间接出口、再出口、提供或以其他方式转让软件产品:
- 给任何被出口法律禁止的个人、实体或国家;
- 给美国或非美国政府限制方名单上的任何人;
- 用于任何被出口法律禁止的目的,包括核武器、化学武器或生物武器或导弹技术应用;
- 如果你或他们位于全面制裁的司法管辖区、当前列于任何美国或非美国限制方名单上,或用于任何被出口法律禁止的目的,则不得使用或下载软件产品;并且不得通过 IP 代理或其他方法伪装你的位置。
归属
在你分发软件产品的任何副本(以及其衍生作品或包含软件产品的作品)时,你必须提供:
- 本许可的副本;
- 以下归属声明:“DeepFloyd 依据 DeepFloyd 许可协议获得许可,版权所有 (c) Stability AI Ltd. 保留所有权利。”
免责声明
软件产品按 “原样” 和 “带有所有缺陷” 提供,不提供任何形式的明示或暗示保证。Stability AI 明确否认所有关于软件产品的明示或暗示陈述和保证,无论是依据法规、惯例、使用方式还是其他方式,包括但不限于适销性、特定用途适用性、所有权、令人满意的质量或不侵权的暗示保证。Stability AI 不保证软件产品将无错误或无病毒或其他有害组件,或产生任何特定结果。
责任限制
在法律允许的最大范围内,无论基于何种责任理论,无论是基于合同、侵权、疏忽、严格责任、保证还是本许可下的其他原因,Stability AI 均不对你承担任何间接、后果性、惩戒性、偶发性、惩罚性或特殊损害赔偿或利润损失的责任,即使 Stability AI 已被告知此类损害的可能性。软件产品、其组成组件和任何输出(统称为 “软件材料”)并非设计或意图用于任何软件材料的故障或缺陷可能合理预见会导致任何人严重受伤(包括潜在的歧视或侵犯个人隐私权)或严重的人身、财产或环境损害的应用或情况(每一种情况均称为 “高风险使用”)。如果你选择将任何软件材料用于高风险使用,你需自行承担风险。你同意设计并实施与高风险使用相关的适当决策和风险缓解程序及政策,以便即使任何软件材料出现故障或缺陷,受该活动影响的人员或财产的安全仍能保持在高风险使用领域合理、适当和合法的水平。
赔偿
你将赔偿、辩护并使 Stability AI 及其子公司和关联公司,以及我们各自的股东、董事、高级管理人员、员工、代理人、继承人和受让人(统称为 “Stability AI 方”)免受因以下原因引起的或与之相关的任何索赔、要求、指控、诉讼、程序或调查(统称为 “索赔”)所产生的任何损失、责任、损害、罚款、处罚和费用(包括合理的律师费):
- 你对软件产品的访问或使用(以及由此类访问或使用产生的任何结果或数据),包括任何高风险使用(定义见下文);
- 你违反本许可;或
- 你侵犯、盗用或侵犯他人的任何权利(包括知识产权或其他专有权利和隐私权)。你将立即通知 Stability AI 方任何此类索赔,并与 Stability AI 方合作辩护此类索赔。你还将授予 Stability AI 方自行选择对任何索赔进行辩护或和解的独家控制权。本赔偿条款是你与 Stability AI 或其他 Stability AI 方之间书面协议中规定的任何其他赔偿或补救措施的补充,而非替代。
终止;存续
- 如果你违反本许可的任何条款,本许可将自动终止。
- 我们可随时通知你(包括电子通知)全部或部分终止本许可。
- 本许可终止后,以下各节仍然有效:第 2 节(限制)、第 3 节(归属)、第 4 节(免责声明)、第 5 节(责任限制)、第 6 节(赔偿)、第 7 节(终止;存续)、第 8 节(第三方材料)、第 9 节(商标)、第 10 节(适用法律;争议解决)和第 11 节(杂项)。
第三方材料
软件产品可能包含第三方软件或其他组件(包括免费和开源软件)(以上所有内容统称为 “第三方材料”),这些材料受各自第三方许可方的许可条款约束。你与第三方的交易或通信以及你对任何第三方材料的使用或交互仅在你与第三方之间进行。Stability AI 不控制或认可任何第三方材料,也不对其作出任何陈述或保证,你对第三方材料的访问和使用需自行承担风险。
商标
作为本许可的一部分,未授予你任何商标许可,除非本协议 “归属” 部分要求进行引用,否则未经 Stability AI 的事先书面许可,你不得使用与 Stability AI 相关的任何名称或标识。
适用法律;争议解决
本许可将受加利福尼亚州法律管辖并依其解释,不考虑法律冲突条款。因本许可引起的或与之相关的任何诉讼或程序将在加利福尼亚州圣马特奥县的联邦或州法院提起,各方不可撤销地服从此类法院的管辖权和审判地。
杂项
如果本许可的任何条款或部分条款违法、无效或不可执行,则该条款或部分条款应视为从本许可中分离,且不影响任何其余条款的有效性和可执行性。Stability AI 未行使或执行本许可的任何权利或条款,不构成对该权利或条款的放弃。本许可未赋予任何第三方受益人权利。本许可连同文档包含了你与 Stability AI 就本许可主题事项达成的全部理解,并取代了你与 Stability AI 就该主题事项达成的所有其他书面或口头协议和理解。除非以书面形式并由你和 Stability AI 的授权代表签署,否则对本许可任何条款的任何更改或补充均不具有约束力。
🔧 技术细节
模型架构
DeepFloyd - IF 采用基于像素的文本到图像的三级级联扩散模型架构,由冻结文本模型和三个像素级联扩散模块组成。每个模块负责生成不同分辨率的图像,逐步提高图像质量。
训练技术
- 数据处理:图像通过移位中心裁剪和重采样处理为 64 像素的正方形,文本提示通过开源的冻结 T5 - v1_1 - xxl 文本编码器进行编码。
- 注意力机制:采用受控的混合自注意力和交叉注意力,以及注意力池化技术,增强模型对文本和图像的理解能力。
- 扩散过程:扩散过程限制为 1000 个离散步骤,采用余弦噪声调度对图像进行加噪。
- 损失函数:损失是添加到图像中的噪声与 UNet 预测之间的重建目标。
- 优化策略:采用 OneCycleLR 策略、few - bit 反向 GELU 激活、AdamW8bit 优化器 + DeepSpeed - Zero1,T5 - 编码器完全冻结。
📖 引用(即将推出)
本模型卡片由 DeepFloyd 团队编写,基于 [StableDiffusion 模型卡片](https://huggingface.co/CompVis/stable - diffusion - v1 - 4)。









