模型概述
模型特點
模型能力
使用案例
🚀 Stable Diffusion v1 - 5模型卡片
Stable Diffusion是一個潛在的文本到圖像擴散模型,能夠根據任何文本輸入生成逼真的圖像。如需瞭解Stable Diffusion的工作原理,請查看🤗的Stable Diffusion博客。
🚀 快速開始
你可以結合使用🧨Diffusers庫和RunwayML GitHub倉庫來使用這個模型。
Diffusers
from diffusers import StableDiffusionPipeline
import torch
model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]
image.save("astronaut_rides_horse.png")
有關JAX中更詳細的說明、用例和示例,請遵循此處的說明。
原始GitHub倉庫
- 下載權重
- v1 - 5 - pruned - emaonly.ckpt - 4.27GB,僅EMA權重。使用較少的VRAM,適合推理。
- v1 - 5 - pruned.ckpt - 7.7GB,EMA + 非EMA權重。使用更多的VRAM,適合微調。
- 遵循此處的說明。
✨ 主要特性
- 文本到圖像生成:能夠根據文本輸入生成逼真的圖像。
- 多場景適用:可用於藝術創作、設計、教育等多個領域的研究。
📚 詳細文檔
模型詳情
屬性 | 詳情 |
---|---|
開發者 | Robin Rombach, Patrick Esser |
模型類型 | 基於擴散的文本到圖像生成模型 |
語言 | 英語 |
許可證 | The CreativeML OpenRAIL M license 是一個 Open RAIL M license,改編自 BigScience 和 the RAIL Initiative 在負責任的AI許可領域的聯合工作。另見 關於BLOOM Open RAIL許可的文章,我們的許可基於此。 |
模型描述 | 這是一個可用於根據文本提示生成和修改圖像的模型。它是一個 Latent Diffusion Model,使用固定的預訓練文本編碼器 (CLIP ViT - L/14),如 Imagen論文 中所建議。 |
更多信息資源 | GitHub倉庫,論文 |
引用方式 | @InProceedings{Rombach_2022_CVPR, |
使用方式
直接使用
該模型僅用於研究目的。可能的研究領域和任務包括:
- 安全部署有可能生成有害內容的模型。
- 探索和理解生成模型的侷限性和偏差。
- 藝術作品的生成以及在設計和其他藝術過程中的應用。
- 在教育或創意工具中的應用。
- 生成模型的研究。
排除的使用情況如下所述。
濫用、惡意使用和超出範圍的使用
注意:本節內容取自 DALLE - MINI模型卡片,但同樣適用於Stable Diffusion v1。
該模型不應被用於故意創建或傳播對人造成敵對或疏離環境的圖像。這包括生成人們可預見會覺得不安、苦惱或冒犯的圖像;或傳播歷史或當前刻板印象的內容。
- 超出範圍的使用:該模型未經過訓練以真實或準確地表示人或事件,因此使用該模型生成此類內容超出了該模型的能力範圍。
- 濫用和惡意使用:使用該模型生成對個人殘忍的內容是對該模型的濫用。這包括但不限於:
- 生成貶低、非人性化或以其他方式有害的人物或其環境、文化、宗教等的表現形式。
- 故意推廣或傳播歧視性內容或有害的刻板印象。
- 在未經個人同意的情況下冒充個人。
- 未經可能看到的人的同意的性內容。
- 錯誤和虛假信息。
- 嚴重暴力和血腥的表現形式。
- 違反其使用條款分享受版權保護或許可的材料。
- 違反其使用條款分享受版權保護或許可材料的修改內容。
侷限性和偏差
侷限性
- 圖像逼真度:模型無法實現完美的照片級真實感。
- 文本渲染:模型無法渲染清晰可讀的文本。
- 複雜任務處理:在涉及組合性的更困難任務上表現不佳,例如渲染對應於 “A red cube on top of a blue sphere” 的圖像。
- 人物生成:人臉和人物的生成效果可能不佳。
- 語言支持:模型主要使用英語字幕進行訓練,在其他語言上的表現不佳。
- 自動編碼損耗:模型的自動編碼部分存在損耗。
- 訓練數據問題:模型在大規模數據集 LAION - 5B 上訓練,該數據集包含成人內容,在沒有額外安全機制和考慮的情況下不適合產品使用。且未對數據集進行去重處理,因此對於訓練數據中重複的圖像會有一定程度的記憶。可在 https://rom1504.github.io/clip - retrieval/ 搜索訓練數據以檢測記憶的圖像。
偏差
雖然圖像生成模型的能力令人印象深刻,但它們也可能強化或加劇社會偏差。Stable Diffusion v1在 LAION - 2B(en) 的子集上訓練,該數據集主要由英語描述的圖像組成。使用其他語言的社區和文化的文本和圖像可能沒有得到充分考慮。這影響了模型的整體輸出,因為白人和西方文化往往被設定為默認值。此外,模型在使用非英語提示生成內容時的能力明顯低於使用英語提示的情況。
安全模塊
該模型的預期使用方式是結合Diffusers中的 Safety Checker。該檢查器通過將模型輸出與已知的硬編碼NSFW概念進行比較來工作。這些概念被故意隱藏以降低對該過濾器進行逆向工程的可能性。具體來說,檢查器在圖像生成 之後,在 CLIPTextModel
的嵌入空間中比較有害概念的類概率。這些概念與生成的圖像一起傳入模型,並與每個NSFW概念的手工設計權重進行比較。
訓練
訓練數據
模型開發者使用以下數據集進行模型訓練:
- LAION - 2B (en) 及其子集(見下一節)
訓練過程
Stable Diffusion v1 - 5是一個潛在擴散模型,它將自動編碼器與在自動編碼器的潛在空間中訓練的擴散模型相結合。在訓練期間:
- 圖像編碼:圖像通過編碼器進行編碼,將圖像轉換為潛在表示。自動編碼器使用相對下采樣因子8,將形狀為H x W x 3的圖像映射到形狀為H/f x W/f x 4的潛在表示。
- 文本編碼:文本提示通過ViT - L/14文本編碼器進行編碼。
- 交叉注意力:文本編碼器的非池化輸出通過交叉注意力輸入到潛在擴散模型的UNet主幹中。
- 損失計算:損失是添加到潛在表示中的噪聲與UNet的預測之間的重建目標。
目前提供了六個Stable Diffusion檢查點,它們的訓練方式如下:
-
stable - diffusion - v1 - 1
:在 [laion2B - en](https://huggingface.co/datasets/laion/laion2B - en) 上以分辨率256x256
訓練237,000步。在 [laion - high - resolution](https://huggingface.co/datasets/laion/laion - high - resolution)(來自LAION - 5B的170M個分辨率>= 1024x1024
的示例)上以分辨率512x512
訓練194,000步。 -
stable - diffusion - v1 - 2
:從stable - diffusion - v1 - 1
繼續訓練。在 “laion - improved - aesthetics”(laion2B - en的一個子集,過濾到原始大小>= 512x512
、估計美學分數> 5.0
且估計水印概率< 0.5
的圖像。水印估計來自LAION - 5B元數據,美學分數使用 [改進的美學估計器](https://github.com/christophschuhmann/improved - aesthetic - predictor) 估計)上以分辨率512x512
訓練515,000步。 -
stable - diffusion - v1 - 3
:從stable - diffusion - v1 - 2
繼續訓練 - 在 “laion - improved - aesthetics” 上以分辨率512x512
訓練195,000步,並丟棄10%的文本條件以改進 classifier - free guidance sampling。 -
stable - diffusion - v1 - 4
從stable - diffusion - v1 - 2
繼續訓練 - 在 “laion - aesthetics v2 5+” 上以分辨率512x512
訓練225,000步,並丟棄10%的文本條件以改進 classifier - free guidance sampling。 -
stable - diffusion - v1 - 5
從stable - diffusion - v1 - 2
繼續訓練 - 在 “laion - aesthetics v2 5+” 上以分辨率512x512
訓練595,000步,並丟棄10%的文本條件以改進 classifier - free guidance sampling。 -
stable - diffusion - inpainting
從stable - diffusion - v1 - 5
繼續訓練 - 然後在 “laion - aesthetics v2 5+” 上以分辨率512x512進行440,000步的修復訓練,並丟棄10%的文本條件。對於修復,UNet有5個額外的輸入通道(4個用於編碼的掩碼圖像,1個用於掩碼本身),其權重在恢復非修復檢查點後初始化為零。在訓練期間,我們生成合成掩碼,並在25%的情況下掩碼所有內容。 -
硬件:32 x 8 x A100 GPUs
-
優化器:AdamW
-
梯度累積:2
-
批次大小:32 x 8 x 2 x 4 = 2048
-
學習率:在10,000步內預熱到0.0001,然後保持不變
評估結果
使用不同的無分類器引導尺度(1.5, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0)和50個PNDM/PLMS採樣步驟進行的評估顯示了檢查點的相對改進:
使用50個PLMS步驟和來自COCO2017驗證集的10000個隨機提示進行評估,在512x512分辨率下進行評估。未針對FID分數進行優化。
環境影響
Stable Diffusion v1估計排放量
根據這些信息,我們使用 Lacoste等人(2019) 中提出的 機器學習影響計算器 估計了以下CO2排放量。利用硬件、運行時間、雲提供商和計算區域來估計碳影響。
- 硬件類型:A100 PCIe 40GB
- 使用時間:150000小時
- 雲提供商:AWS
- 計算區域:US - east
- 碳排放(功耗 x 時間 x 基於電網位置產生的碳):11250 kg CO2 eq.
🔧 技術細節
訓練過程
Stable Diffusion v1 - 5是一個潛在擴散模型,它將自動編碼器與在自動編碼器的潛在空間中訓練的擴散模型相結合。在訓練期間,圖像通過編碼器轉換為潛在表示,文本提示通過ViT - L/14文本編碼器編碼,文本編碼器的非池化輸出通過交叉注意力輸入到潛在擴散模型的UNet主幹中,損失是添加到潛在表示中的噪聲與UNet的預測之間的重建目標。
評估方法
使用不同的無分類器引導尺度和50個PNDM/PLMS採樣步驟進行評估,使用來自COCO2017驗證集的隨機提示,在512x512分辨率下進行評估。
📄 許可證
本模型採用 The CreativeML OpenRAIL M license。使用該模型時,請仔細閱讀並遵守許可證的相關規定。
⚠️ 重要提示
該模型僅用於研究目的,不得用於故意創建或傳播有害內容。請仔細閱讀許可證和使用說明,確保合法合規使用。
💡 使用建議
在使用模型時,可嘗試不同的文本提示和參數設置,以獲得更好的圖像生成效果。同時,注意模型的侷限性,避免對生成結果有過高的期望。

