模型概述
模型特點
模型能力
使用案例
🚀 Stable Diffusion v1-5 模型
Stable Diffusion 是一種潛在文本到圖像的擴散模型,能夠根據任何文本輸入生成逼真的圖像,為圖像生成領域帶來了新的可能性。
🚀 快速開始
本倉庫正按照 CreativeML OpenRAIL-M 許可證 重新上傳至 HuggingFace。該許可證的 第二節 授予了以下權利:
... 一項永久的、全球範圍的、非排他的、免費的、免版稅的、不可撤銷的版權許可,用於複製、準備、公開展示、公開表演、再許可和分發補充材料、模型以及模型的衍生作品。
請注意,這些文件並非來自 HuggingFace,而是來自 modelscope。因此,原始倉庫中的某些文件可能不存在。文件完整性已通過校驗和驗證。
✨ 主要特性
- 強大的圖像生成能力:能夠根據文本輸入生成逼真的圖像。
- 靈活的應用場景:可用於藝術創作、設計、教育等多個領域。
- 開源且可商用:在遵循許可證的前提下,可自由使用和分發。
📦 安裝指南
使用該模型需要安裝 diffusers
庫,可通過以下命令進行安裝:
pip install diffusers
💻 使用示例
基礎用法
from diffusers import StableDiffusionPipeline
import torch
pipe = StableDiffusionPipeline.from_pretrained(
"benjamin-paine/stable-diffusion-v1-5",
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")
高級用法
# 可根據需求調整參數,如生成圖像的尺寸、質量等
from diffusers import StableDiffusionPipeline
import torch
pipe = StableDiffusionPipeline.from_pretrained(
"benjamin-paine/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
prompt = "a beautiful landscape with a lake and mountains"
# 調整生成圖像的尺寸
image = pipe(prompt, height=768, width=768).images[0]
image.save("beautiful_landscape.png")
📚 詳細文檔
模型詳情
屬性 | 詳情 |
---|---|
開發者 | Robin Rombach, Patrick Esser |
模型類型 | 基於擴散的文本到圖像生成模型 |
支持語言 | 英語 |
許可證 | CreativeML OpenRAIL M 許可證 是一種 Open RAIL M 許可證,改編自 BigScience 和 RAIL Initiative 在負責任的人工智能許可領域的聯合工作。有關我們許可證所基於的 BLOOM Open RAIL 許可證 的文章,請參閱相關內容。 |
模型描述 | 這是一個可用於根據文本提示生成和修改圖像的模型。它是一個 潛在擴散模型,使用固定的預訓練文本編碼器 (CLIP ViT-L/14),如 Imagen 論文 中所建議的那樣。 |
更多信息資源 | GitHub 倉庫,論文 |
引用格式 | bibtex<br>@InProceedings{Rombach_2022_CVPR,<br> author = {Rombach, Robin and Blattmann, Andreas and Lorenz, Dominik and Esser, Patrick and Ommer, Bj\"orn},<br> title = {High-Resolution Image Synthesis With Latent Diffusion Models},<br> booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},<br> month = {June},<br> year = {2022},<br> pages = {10684-10695}<br>}<br> |
使用方式
直接使用
該模型僅用於研究目的。可能的研究領域和任務包括:
- 安全部署有可能生成有害內容的模型。
- 探索和理解生成模型的侷限性和偏差。
- 生成藝術作品並用於設計和其他藝術過程。
- 在教育或創意工具中的應用。
- 對生成模型的研究。
排除的使用方式如下所述。
濫用、惡意使用和超出範圍的使用
注意:本節內容取自 DALLE-MINI 模型卡片,但同樣適用於 Stable Diffusion v1。
該模型不應被用於故意創建或傳播會為人們創造敵對或排斥性環境的圖像。這包括生成人們可預見會感到不安、痛苦或冒犯的圖像;或傳播歷史或當前刻板印象的內容。
超出範圍的使用
該模型並非用於對人物或事件進行事實或真實的呈現,因此使用該模型生成此類內容超出了該模型的能力範圍。
濫用和惡意使用
使用該模型生成對個人殘酷的內容是對該模型的濫用。這包括但不限於:
- 生成貶低、非人化或以其他方式傷害人們或其環境、文化、宗教等的表現形式。
- 故意推廣或傳播歧視性內容或有害的刻板印象。
- 在未經個人同意的情況下冒充他人。
- 未經可能看到該內容的人的同意而生成性內容。
- 錯誤信息和虛假信息。
- 令人髮指的暴力和血腥場面的表現形式。
- 違反使用條款分享受版權保護或有許可的材料。
- 違反使用條款分享對受版權保護或有許可的材料進行修改後的內容。
侷限性和偏差
侷限性
- 模型無法實現完美的照片級逼真度。
- 模型無法渲染清晰可讀的文本。
- 模型在涉及組合性的更困難任務上表現不佳,例如渲染與 “一個紅色立方體放在藍色球體上” 對應的圖像。
- 面部和人物一般可能無法正確生成。
- 模型主要使用英語字幕進行訓練,在其他語言中的表現不佳。
- 模型的自動編碼部分存在信息損失。
- 模型在大規模數據集 LAION-5B 上進行訓練,該數據集包含成人內容,在沒有額外安全機制和考慮的情況下不適合用於產品。
- 未採取額外措施對數據集進行去重。因此,我們觀察到對於訓練數據中重複的圖像存在一定程度的記憶現象。可以在 https://rom1504.github.io/clip-retrieval/ 上搜索訓練數據,以幫助檢測記憶的圖像。
偏差
雖然圖像生成模型的能力令人印象深刻,但它們也可能強化或加劇社會偏差。Stable Diffusion v1 在 LAION-2B(en) 的子集上進行訓練,該數據集主要由英語描述的圖像組成。使用其他語言的社區和文化的文本和圖像可能沒有得到充分考慮。這影響了模型的整體輸出,因為白人和西方文化通常被設定為默認值。此外,模型使用非英語提示生成內容的能力明顯低於使用英語提示的能力。
安全模塊
該模型的預期用途是與 Diffusers 中的 安全檢查器 一起使用。該檢查器通過將模型輸出與已知的硬編碼 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 上以256x256
分辨率訓練 237,000 步。在 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 元數據,美學分數使用 改進的美學估計器 進行估計)上以512x512
分辨率訓練 515,000 步。 -
stable-diffusion-v1-3
:從stable-diffusion-v1-2
繼續訓練 - 在 “laion-improved-aesthetics” 上以512x512
分辨率訓練 195,000 步,並丟棄 10% 的文本條件以改進 無分類器引導採樣。 -
stable-diffusion-v1-4
:從stable-diffusion-v1-2
繼續訓練 - 在 “laion-aesthetics v2 5+” 上以512x512
分辨率訓練 225,000 步,並丟棄 10% 的文本條件以改進 無分類器引導採樣。 -
stable-diffusion-v1-5
:從stable-diffusion-v1-2
繼續訓練 - 在 “laion-aesthetics v2 5+” 上以512x512
分辨率訓練 595,000 步,並丟棄 10% 的文本條件以改進 無分類器引導採樣。 -
stable-diffusion-v1-5-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
- 計算區域:美國東部
- 碳排放(功耗 x 時間 x 基於電網位置產生的碳量):11250 kg CO2 當量
🔧 技術細節
Stable Diffusion v1-5 是一種潛在文本到圖像的擴散模型,它結合了自動編碼器和在自動編碼器潛在空間中訓練的擴散模型。在訓練過程中,圖像通過編碼器轉換為潛在表示,文本提示通過 ViT-L/14 文本編碼器進行編碼,非池化輸出通過交叉注意力輸入到 UNet 主幹中。損失是添加到潛在表示中的噪聲與 UNet 所做預測之間的重建目標。
📄 許可證
本模型遵循 CreativeML OpenRAIL-M 許可證。
引用
@InProceedings{Rombach_2022_CVPR,
author = {Rombach, Robin and Blattmann, Andreas and Lorenz, Dominik and Esser, Patrick and Ommer, Bj\"orn},
title = {High-Resolution Image Synthesis With Latent Diffusion Models},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2022},
pages = {10684-10695}
}
本模型卡片由 Robin Rombach 和 Patrick Esser 編寫,基於 DALL-E Mini 模型卡片。

