模型概述
模型特點
模型能力
使用案例
🚀 Stable Diffusion v1 - 2模型卡片
Stable Diffusion是一種潛在的文本到圖像擴散模型,能夠根據任何文本輸入生成逼真的圖像。它為圖像生成領域帶來了新的可能性,讓用戶可以通過文本描述輕鬆創造出各種想象中的畫面。
🚀 快速開始
我們建議使用 🤗 的Diffusers庫 來運行Stable Diffusion。
首先,安裝所需的庫:
pip install --upgrade diffusers transformers scipy
使用默認的PNDM調度器運行管道:
import torch
from torch import autocast
from diffusers import StableDiffusionPipeline
model_id = "CompVis/stable-diffusion-v1-2"
device = "cuda"
pipe = StableDiffusionPipeline.from_pretrained(model_id)
pipe = pipe.to(device)
prompt = "a photo of an astronaut riding a horse on mars"
with autocast("cuda"):
image = pipe(prompt)["sample"][0]
image.save("astronaut_rides_horse.png")
⚠️ 重要提示
如果你的GPU內存有限,可用的GPU RAM少於10GB,請確保以float16精度而不是上述默認的float32精度加載StableDiffusionPipeline。你可以通過告訴diffusers期望權重為float16精度來實現:
import torch
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to(device)
prompt = "a photo of an astronaut riding a horse on mars"
with autocast("cuda"):
image = pipe(prompt, guidance_scale=7.5)["sample"][0]
image.save("astronaut_rides_horse.png")
若要更換噪聲調度器,可將其傳遞給 from_pretrained
:
from diffusers import StableDiffusionPipeline, LMSDiscreteScheduler
model_id = "CompVis/stable-diffusion-v1-2"
# 這裡使用K - LMS調度器
scheduler = LMSDiscreteScheduler(beta_start=0.00085, beta_end=0.012, beta_schedule="scaled_linear", num_train_timesteps=1000)
pipe = StableDiffusionPipeline.from_pretrained(model_id, scheduler=scheduler, use_auth_token=True)
pipe = pipe.to("cuda")
prompt = "a photo of an astronaut riding a horse on mars"
with autocast("cuda"):
image = pipe(prompt, guidance_scale=7.5)["sample"][0]
image.save("astronaut_rides_horse.png")
✨ 主要特性
- 文本到圖像生成:能夠根據輸入的文本生成逼真的圖像。
- 可定製性:支持更換噪聲調度器,可根據需求調整生成效果。
- 多場景應用:可用於藝術創作、設計、教育等多個領域。
📚 詳細文檔
模型詳情
屬性 | 詳情 |
---|---|
開發者 | Robin Rombach, Patrick Esser |
模型類型 | 基於擴散的文本到圖像生成模型 |
語言 | 英語 |
許可證 | CreativeML OpenRAIL M許可證 是一種 Open RAIL M許可證,改編自 BigScience 和 RAIL Initiative 在負責任的AI許可領域的聯合工作。另見 關於BLOOM Open RAIL許可證的文章,我們的許可證基於此。 |
模型描述 | 這是一個可用於根據文本提示生成和修改圖像的模型。它是一個 潛在擴散模型,使用固定的預訓練文本編碼器 (CLIP ViT - L/14),如 Imagen論文 中所建議的那樣。 |
更多信息資源 | GitHub倉庫,論文 |
引用格式 | @InProceedings{Rombach_2022_CVPR, |
使用方式
直接使用
該模型僅用於研究目的。可能的研究領域和任務包括:
- 安全部署有可能生成有害內容的模型。
- 探究和理解生成模型的侷限性和偏差。
- 藝術作品的生成以及在設計和其他藝術過程中的應用。
- 在教育或創意工具中的應用。
- 生成模型的研究。
濫用、惡意使用和超出範圍的使用
此模型不應被用於故意創建或傳播會給人們造成敵對或疏離環境的圖像。這包括生成人們可預見會感到不安、痛苦或冒犯的圖像,或傳播歷史或當前刻板印象的內容。
- 超出範圍的使用:該模型並非用於對人物或事件進行事實性或真實的呈現,因此使用該模型生成此類內容超出了該模型的能力範圍。
- 濫用和惡意使用:使用該模型生成對個人殘酷的內容是對該模型的濫用。這包括但不限於:
- 生成貶低、非人化或以其他方式對人或其環境、文化、宗教等有害的表述。
- 故意推廣或傳播歧視性內容或有害的刻板印象。
- 在未經他人同意的情況下冒充他人。
- 未經可能看到該內容的人的同意而展示性內容。
- 錯誤信息和虛假信息。
- 令人震驚的暴力和血腥場面的表述。
- 違反使用條款分享受版權保護或許可的材料。
- 違反使用條款分享對受版權保護或許可的材料進行修改後的內容。
侷限性和偏差
侷限性
- 模型無法實現完美的照片級逼真度。
- 模型無法渲染清晰可讀的文本。
- 模型在涉及組合性的更困難任務上表現不佳,例如渲染與 “一個紅色立方體放在藍色球體上” 對應的圖像。
- 人臉和人物的生成可能不夠理想。
- 模型主要使用英語字幕進行訓練,在其他語言中的表現不佳。
- 模型的自動編碼部分存在信息損失。
- 模型在大規模數據集 LAION - 5B 上進行訓練,該數據集包含成人內容,在沒有額外安全機制和考慮的情況下不適合用於產品。
- 數據集未進行額外的去重處理。因此,我們觀察到模型對訓練數據中重複的圖像有一定程度的記憶。可以在 [https://rom1504.github.io/clip - retrieval/](https://rom1504.github.io/clip - retrieval/) 上搜索訓練數據,以幫助檢測記憶的圖像。
偏差
雖然圖像生成模型的能力令人印象深刻,但它們也可能強化或加劇社會偏差。Stable Diffusion v1在 LAION - 2B(en) 的子集上進行訓練,該子集主要由英語描述的圖像組成。使用其他語言的社區和文化的文本和圖像可能沒有得到充分考慮。這影響了模型的整體輸出,因為白人和西方文化通常被設定為默認。此外,模型使用非英語提示生成內容的能力明顯低於使用英語提示的能力。
訓練
訓練數據
模型開發者使用以下數據集進行模型訓練:
- LAION - 2B (en) 及其子集(見下一節)
訓練過程
Stable Diffusion v1 - 4是一種潛在擴散模型,它將自動編碼器與在自動編碼器的潛在空間中訓練的擴散模型相結合。在訓練過程中:
- 圖像通過編碼器進行編碼,將圖像轉換為潛在表示。自動編碼器使用相對下采樣因子8,將形狀為H x W x 3的圖像映射到形狀為H/f x W/f x 4的潛在表示。
- 文本提示通過ViT - L/14文本編碼器進行編碼。
- 文本編碼器的非池化輸出通過交叉注意力輸入到潛在擴散模型的UNet主幹中。
- 損失是添加到潛在表示的噪聲與UNet的預測之間的重建目標。
目前提供四個檢查點,訓練方式如下:
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%的文本條件以改進 無分類器引導採樣。
訓練細節
- 硬件:32 x 8 x A100 GPU
- 優化器: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個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 - 2模型是一種潛在文本到圖像擴散模型,它結合了自動編碼器和擴散模型。在訓練時,圖像被編碼為潛在表示,文本提示通過文本編碼器編碼,然後通過交叉注意力機制輸入到UNet中。通過最小化添加到潛在表示的噪聲與UNet預測之間的重建損失來訓練模型。不同的檢查點在不同的數據集和分辨率上進行訓練,以不斷優化模型的性能。
📄 許可證
本模型採用 CreativeML OpenRAIL M許可證。該許可證規定:
- 不得使用該模型故意生成或分享非法或有害的輸出或內容。
- 作者對用戶生成的輸出不主張任何權利,用戶可以自由使用這些輸出,但需對其使用負責,且不得違反許可證中的規定。
- 可以重新分發模型權重,並將模型用於商業用途和/或作為服務。如果這樣做,請務必包含與許可證中相同的使用限制,並向所有用戶提供 CreativeML OpenRAIL M許可證 的副本。
請仔細閱讀完整的許可證:https://huggingface.co/spaces/CompVis/stable-diffusion-license
本模型卡片由Robin Rombach和Patrick Esser編寫,基於 DALL - E Mini模型卡片。

