模型概述
模型特點
模型能力
使用案例
🚀 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)。









