模型概述
模型特點
模型能力
使用案例
🚀 IF-I-L-v1.0
DeepFloyd-IF 是一款基於像素的文本到圖像三級級聯擴散模型,能夠生成在照片級真實感和語言理解方面達到新的最先進水平的圖片。這是一個高效的模型,性能超越了當前最先進的模型,在 COCO 數據集上實現了零樣本 FID - 30K 分數為 6.66
的成績。
靈感來源於 具有深度語言理解能力的照片級文本到圖像擴散模型
🚀 快速開始
IF 與 🤗 Hugging Face 🧨 diffusers 庫集成,該庫經過優化,可在顯存低至 14 GB 的 GPU 上運行。
在使用 IF 之前,你需要接受其使用條件,具體操作如下:
- 確保擁有 Hugging Face 賬戶 並登錄。
- 在 [DeepFloyd/IF - I - L - v1.0](https://huggingface.co/DeepFloyd/IF - I - L - 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) 功能,只需 14 GB 的顯存即可運行整個 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-L-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 和大約 28 GB 的顯存為 IF 添加新的概念。
✨ 主要特性
- 先進的圖像生成能力:DeepFloyd - IF 是基於像素的文本到圖像三級級聯擴散模型,能生成具有新的最先進水平的照片級真實感和語言理解能力的圖片。
- 高效性能:超越當前最先進的模型,在 COCO 數據集上實現了零樣本 FID - 30K 分數為
6.66
的成績。 - 集成優化:與 🤗 Hugging Face 的 🧨 diffusers 庫集成,經過優化可在顯存低至 14 GB 的 GPU 上運行。
📦 安裝指南
pip install huggingface_hub --upgrade
pip install diffusers accelerate transformers safetensors sentencepiece
📚 詳細文檔
模型詳情
屬性 | 詳情 |
---|---|
開發者 | DeepFloyd, StabilityAI |
模型類型 | 基於像素的文本到圖像級聯擴散模型 |
級聯階段 | I |
參數數量 | 900M |
語言 | 主要為英語,在一定程度上支持其他羅曼語系語言 |
許可證 | [DeepFloyd IF 許可協議](https://huggingface.co/spaces/DeepFloyd/deepfloyd - if - license) |
模型描述 | DeepFloyd - IF 由凍結的文本模型和三個像素級聯擴散模塊組成,每個模塊用於生成分辨率逐漸提高的圖像:64x64、256x256 和 1024x1024。模型的所有階段都使用基於 T5 變壓器的凍結文本編碼器來提取文本嵌入,然後將其輸入到通過交叉注意力和注意力池化增強的 UNet 架構中。 |
更多信息資源 | [GitHub](https://github.com/deep - floyd/IF)、網站、所有鏈接 |
訓練
訓練數據
12 億個文本 - 圖像對(基於 LAION - A 和少量額外的內部數據集)。
在訓練的任何級聯和階段都不使用數據集的測試/驗證部分。COCO 的驗證部分有助於在訓練期間展示“在線”損失行為(以發現意外情況和其他問題),但該數據集從不用於訓練。
訓練過程
IF - I - L - v1.0 是基於像素的擴散級聯模型,使用 T5 - Encoder 嵌入(隱藏狀態)生成 64 像素的圖像。在訓練期間:
- 圖像預處理:通過偏移中心裁剪增強(從中心隨機偏移最多 0.1 的大小)將圖像裁剪為正方形,並使用
Pillow==9.2.0
的 BICUBIC 重採樣方法將其調整為 64 像素,reducing_gap=None
(有助於避免混疊),並處理為張量 BxCxHxW。 - 文本編碼:文本提示通過開源的凍結 T5 - v1_1 - xxl 文本編碼器進行編碼(該編碼器由 Google 團隊完全訓練),隨機將 10% 的文本丟棄為空字符串,以增加無分類器引導(CFG)的能力。
- 文本編碼器輸出處理:文本編碼器的非池化輸出被輸入到投影層(無激活的線性層),並通過受控的混合自注意力和交叉注意力在擴散模型的 UNet 主幹中使用。同時,文本編碼器的輸出通過注意力池化(64 個頭)進行池化,並作為額外特徵用於時間嵌入。
- 擴散過程:擴散過程限制在 1000 個離散步驟,採用餘弦 beta 噪聲調度。
- 損失函數:損失是添加到圖像的噪聲與 UNet 預測之間的重建目標。
- 訓練參數:IF - I - L - v1.0 檢查點的訓練過程在所有數據集上進行了 2500000 步 + 500000 步的 64x64 分辨率訓練,採用 OneCycleLR 策略、few - bit 反向 GELU 激活函數、AdamW8bit 優化器 + DeepSpeed - Zero1,T5 - Encoder 完全凍結。
硬件
20 x 8 x A100 GPUs
優化器
AdamW8bit + DeepSpeed ZeRO - 1
批次大小
3200
學習率
- 前 2500000 步:採用 one - cycle 餘弦策略,熱身 10000 步,起始學習率
start_lr = 4e - 6
,最大學習率max_lr = 1e - 4
,最終學習率final_lr = 1e - 8
。 - 額外的 500000 步:採用 one - cycle 餘弦策略,熱身 50000 步,起始學習率
start_lr = 1e - 8
,最大學習率max_lr = 4e - 6
,最終學習率final_lr = 4e - 8
。
評估結果
FID - 30K: 8.06
使用方式
直接使用
該模型用於研究目的。任何將該模型用於生產環境的嘗試不僅需要遵循許可協議,還需要部署者承擔全部責任。
可能的研究領域和任務包括:
- 生成藝術圖像並用於設計和其他藝術過程。
- 安全部署有可能生成有害內容的模型。
- 探索和理解生成模型的侷限性和偏差。
- 在教育或創意工具中的應用。
- 生成模型的研究。
排除的使用情況如下所述。
濫用、惡意使用和超出範圍的使用
⚠️ 重要提示
本部分內容最初來自 [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 反映並加劇了偏差,因此無論輸入內容或意圖如何,都建議用戶謹慎使用。
🔧 技術細節
IF - I - L - v1.0 是基於像素的擴散級聯模型,利用 T5 - Encoder 嵌入生成 64 像素的圖像。在訓練過程中,圖像和文本經過一系列處理後輸入到模型中。圖像通過偏移中心裁剪和重採樣調整為 64 像素,文本通過凍結的 T5 - v1_1 - xxl 文本編碼器編碼,並進行隨機丟棄處理以支持無分類器引導。文本編碼器的輸出經過投影和注意力池化後用於模型的不同部分。擴散過程限制在 1000 個離散步驟,採用餘弦 beta 噪聲調度,損失函數為噪聲重建目標。訓練過程採用 OneCycleLR 策略、few - bit 反向 GELU 激活函數、AdamW8bit 優化器 + DeepSpeed - Zero1,T5 - Encoder 完全凍結。
📄 許可證
本許可證協議(根據本許可證協議可能進行修訂,“許可證”)由你或你的僱主或其他實體(如果你代表你的僱主或其他實體簽訂本協議)(“被許可方”或“你”)與 Stability AI Ltd.(“Stability AI”或“我們”)簽訂,適用於你使用 Stability AI 根據本許可證提供的任何計算機程序、算法、源代碼、目標代碼或軟件(“軟件”)以及 Stability AI 提供的與軟件相關的任何規格、手冊、文檔和其他書面信息(“文檔”)。
通過點擊下方的“我接受”或使用軟件,即表示你同意本許可證的條款。如果你不同意本許可證,則你無權使用軟件或文檔(統稱為“軟件產品”),並且必須立即停止使用軟件產品。如果你代表你的僱主或其他實體同意受本許可證條款的約束,你向 Stability AI 聲明並保證你擁有充分的法律授權使你的僱主或該實體受本許可證的約束。如果你沒有必要的授權,則你不得代表你的僱主或其他實體接受本許可證或訪問軟件產品。
1. 許可授予
a. 在你遵守文檔以及第 2、3 和 5 節的前提下,Stability AI 根據其版權權益授予你非排他性、全球性、不可轉讓、不可再許可、可撤銷、免版稅且有限的許可,僅用於你的非商業研究目的,以複製、分發和創建軟件的衍生作品。上述許可僅針對你個人,未經 Stability AI 的事先書面同意,你不得轉讓或再許可本許可證或本許可證下的任何其他權利或義務;任何此類轉讓或再許可均無效,並將自動且立即終止本許可證。
b. 你可以僅為與上述授予的軟件許可相關的目的製作合理數量的文檔副本。
c. 本節(許可授予)中明確規定的權利授予是你在軟件產品中獲得的全部權利授予,未以棄權、禁止反言、暗示、衡平法或其他方式授予任何其他許可。Stability AI 及其許可方保留本許可證未明確授予的所有權利。
2. 限制
你不得,也不得允許、協助或促使任何第三方: a. 全部或部分地使用、修改、複製、再現、創建軟件產品(或其任何衍生作品、包含軟件產品的作品或軟件生成的任何數據),用於 (i) 任何商業或生產目的;(ii) 軍事目的或用於核技術服務;(iii) 監視目的,包括與監視相關的任何研究或開發;(iv) 生物特徵處理;(v) 以任何侵犯、盜用或以其他方式違反任何第三方權利的方式;或 (vi) 以任何違反任何適用法律以及違反任何隱私或安全法律、規則、法規、指令或政府要求(包括《通用數據保護條例》((EU) 2016/679 號條例)、《加利福尼亞消費者隱私法》以及所有管理生物特徵信息處理的法律)的方式,以及上述任何法律的所有修訂和後續法律。
b. 更改或刪除軟件產品上或其中出現的版權和其他專有通知。
c. 使用任何設備、軟件或其他手段規避或移除 Stability AI 用於軟件的任何安全或保護措施,或規避或移除任何使用限制,或啟用 Stability AI 禁用的功能。
d. 對軟件產品提供或施加任何更改、限制或與本許可證條款不一致的條款。
e. 1) 違反任何適用的美國和非美國出口管制和貿易制裁法律(“出口法律”);2) 直接或間接出口、再出口、提供或以其他方式轉讓軟件產品:(a) 給任何受出口法律禁止的個人、實體或國家;(b) 給美國或非美國政府限制方名單上的任何人;或 (c) 用於任何受出口法律禁止的目的,包括核、化學或生物武器,或導彈技術應用;3) 如果你或他們 (a) 位於全面制裁的司法管轄區;(b) 當前列於任何美國或非美國限制方名單上;或 (c) 用於任何受出口法律禁止的目的,則不得使用或下載軟件產品;並且 (4) 不得通過 IP 代理或其他方法偽裝你的位置。
3. 歸因
在分發軟件產品的任何副本(以及其衍生作品或包含軟件產品的作品)時,你必須提供 (i) 本許可證的副本,以及 (ii) 以下歸因通知:“DeepFloyd 依據 DeepFloyd 許可證獲得許可,版權所有 (c) Stability AI Ltd. 保留所有權利。”
4. 免責聲明
軟件產品“按原樣”和“帶有所有缺陷”提供,不提供任何形式的明示或暗示保證。Stability AI 明確否認所有明示或暗示的陳述和保證,無論是依據法規、慣例、使用方式還是其他方式,涉及與軟件產品相關的任何事項,包括但不限於適銷性、特定用途適用性、所有權、令人滿意的質量或不侵權的暗示保證。Stability AI 不保證軟件產品將無錯誤、無病毒或其他有害組件,或產生任何特定結果。
5. 責任限制
在法律允許的最大範圍內,Stability AI 在任何情況下均不對你承擔責任:(A) 根據任何責任理論,無論是基於合同、侵權、疏忽、嚴格責任、保證還是本許可證下的其他方式;或 (B) 對於任何間接、後果性、示範性、偶發性、懲罰性或特殊損害或利潤損失,即使 Stability AI 已被告知此類損害的可能性。軟件產品、其組成組件以及任何輸出(統稱為“軟件材料”)並非設計或打算用於任何軟件材料的故障或缺陷可能合理預見會導致任何人嚴重受傷的應用或情況,包括潛在的歧視或侵犯個人隱私權,或導致嚴重的人身、財產或環境損害(每一種情況均為“高風險使用”)。如果你選擇將任何軟件材料用於高風險使用,則你自行承擔風險。你同意設計並實施與高風險使用相關的適當決策和風險緩解程序及政策,以便即使任何軟件材料出現故障或缺陷,受該活動影響的人員或財產的安全仍能保持在高風險使用領域合理、適當和合法的水平。
6. 賠償
你將賠償、辯護並使 Stability AI 及其子公司和關聯公司以及我們各自的股東、董事、高級管理人員、員工、代理人、繼任者和受讓人(統稱為“Stability AI 方”)免受因以下原因引起的或與之相關的任何索賠、要求、指控、訴訟、程序或調查(統稱為“索賠”)所導致的任何損失、責任、損害、罰款、處罰和費用(包括合理的律師費):(a) 你訪問或使用軟件產品(以及此類訪問或使用所產生的任何結果或數據),包括任何高風險使用(定義見下文);(b) 你違反本許可證;或 (c) 你侵犯、盜用或以其他方式侵犯他人的任何權利(包括知識產權或其他專有權利和隱私權)。你將立即將任何此類索賠通知 Stability AI 方,並與 Stability AI 方合作辯護此類索賠。你還將授予 Stability AI 方在 Stability AI 自行選擇的情況下對任何索賠進行辯護或和解的獨家控制權。本賠償是對你與 Stability AI 或其他 Stability AI 方之間的書面協議中規定的任何其他賠償或補救措施的補充,而非替代。
7. 終止;存續
a. 如果你違反本許可證的條款,本許可證將自動終止。
b. 我們可以隨時通知你(包括電子通知)全部或部分終止本許可證。
c. 以下各節在本許可證終止後仍然有效:第 2 節(限制)、第 3 節(歸因)、第 4 節(免責聲明)、第 5 節(責任限制)、第 6 節(賠償)、第 7 節(終止;存續)、第 8 節(第三方材料)、第 9 節(商標)、第 10 節(適用法律;爭議解決)和第 11 節(雜項)。
8. 第三方材料
軟件產品可能包含第三方軟件或其他組件(包括免費和開源軟件)(以上所有內容統稱為“第三方材料”),這些材料受各自第三方許可方的許可條款約束。你與第三方的交易或通信以及你對任何第三方材料的使用或交互完全是你與第三方之間的事情。Stability AI 不控制或認可任何第三方材料,也不對其作出任何陳述或保證,你訪問和使用此類第三方材料需自行承擔風險。
9. 商標
作為本許可證的一部分,未授予被許可方任何商標許可,未經 Stability AI 的事先書面許可,你不得使用與 Stability AI 相關的任何名稱或標誌,但為作出本協議“歸因”部分要求的引用所必需的範圍除外。
10. 適用法律;爭議解決
本許可證將受加利福尼亞州法律管轄並依其解釋,不考慮法律衝突條款。因本許可證引起的或與之相關的任何訴訟或程序將在加利福尼亞州聖馬特奧縣的聯邦或州法院提起,各方不可撤銷地服從此類法院的管轄權和審判地。
11. 雜項
如果本許可證的任何條款或部分條款違法、無效或不可執行,則該條款或條款的部分應視為從本許可證中分割出來,且不影響任何其餘條款的有效性和可執行性。Stability AI 未行使或執行本許可證的任何權利或條款並不構成對該權利或條款的放棄。本許可證未賦予任何第三方受益人的權利。本許可證連同文檔包含了你與 Stability AI 就本許可證主題事項達成的全部理解,並取代了你與 Stability AI 就該主題事項達成的所有其他書面或口頭協議和理解。對本許可證任何條款的任何更改或補充除非以書面形式作出並由你和 Stability AI 的授權代表簽署,否則不具有約束力。









