模型概述
模型特點
模型能力
使用案例
🚀 穩定擴散圖像修復模型
穩定擴散圖像修復模型是一種潛在的文本到圖像擴散模型,能夠根據任何文本輸入生成逼真的圖像,還具備通過使用掩碼對圖片進行修復的額外能力。
🚀 快速開始
穩定擴散圖像修復模型可以根據文本輸入生成逼真圖像,還能利用掩碼對圖片進行修復。你可以使用以下兩種方式使用該模型:
使用🧨Diffusers庫
from diffusers import StableDiffusionInpaintPipeline
pipe = StableDiffusionInpaintPipeline.from_pretrained(
"runwayml/stable-diffusion-inpainting",
revision="fp16",
torch_dtype=torch.float16,
)
prompt = "Face of a yellow cat, high resolution, sitting on a park bench"
# image和mask_image應該是PIL圖像。
# 掩碼結構中,白色部分表示要修復的區域,黑色部分表示保持原樣
image = pipe(prompt=prompt, image=image, mask_image=mask_image).images[0]
image.save("./yellow_cat_on_park_bench.png")
運行原理:
圖像 |
掩碼圖像 |
---|---|
![]() |
![]() |
提示詞 |
輸出結果 |
---|---|
Face of a yellow cat, high resolution, sitting on a park bench | ![]() |
使用原始GitHub倉庫
- 下載權重文件 sd-v1-5-inpainting.ckpt
- 遵循此處的說明操作。
✨ 主要特性
- 能夠根據文本輸入生成逼真的圖像。
- 具備圖像修復能力,可通過掩碼對圖片進行修復。
📚 詳細文檔
模型詳情
- 開發者:Robin Rombach, Patrick Esser
- 模型類型:基於擴散的文本到圖像生成模型
- 語言:英語
- 許可證:CreativeML OpenRAIL M許可證 是一種 Open RAIL M許可證,改編自 BigScience 和 RAIL Initiative 在負責任的人工智能許可領域的聯合工作。有關我們許可證所基於的 BLOOM Open RAIL許可證的文章 也可供參考。
- 模型描述:這是一個可用於根據文本提示生成和修改圖像的模型。它是一個 潛在擴散模型,使用了一個固定的預訓練文本編碼器 (CLIP ViT-L/14),如 Imagen論文 中所建議。
- 更多信息資源:GitHub倉庫,論文。
- 引用格式:
@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}
}
使用方式
直接使用
該模型僅用於研究目的。可能的研究領域和任務包括:
- 安全部署有可能生成有害內容的模型。
- 探索和理解生成模型的侷限性和偏差。
- 生成藝術作品並用於設計和其他藝術過程。
- 在教育或創意工具中的應用。
- 對生成模型的研究。
排除使用情況如下所述。
濫用、惡意使用和超出範圍使用
注意:本節內容取自 DALLE-MINI模型卡片,但同樣適用於穩定擴散v1。
該模型不應被用於故意創建或傳播會給人們造成敵對或疏離環境的圖像。這包括生成人們可預見會感到不安、痛苦或冒犯的圖像;或傳播歷史或當前刻板印象的內容。
超出範圍使用
該模型並非用於生成真實或準確反映人物或事件的內容,因此使用該模型生成此類內容超出了該模型的能力範圍。
濫用和惡意使用
使用該模型生成對個人殘酷的內容是對該模型的濫用。這包括但不限於:
- 生成貶低、非人化或以其他方式傷害人們或其環境、文化、宗教等的表現形式。
- 故意推廣或傳播歧視性內容或有害刻板印象。
- 在未經個人同意的情況下冒充他人。
- 未經可能看到該內容的人的同意而生成性內容。
- 虛假和誤導性信息。
- 令人震驚的暴力和血腥表現形式。
- 違反版權或許可材料使用條款進行分享。
- 違反版權或許可材料使用條款對其進行修改後分享。
侷限性和偏差
侷限性
- 模型無法實現完美的照片級真實感。
- 模型無法渲染清晰可讀的文本。
- 模型在涉及組合性的更困難任務上表現不佳,例如渲染與 “一個紅色立方體放在藍色球體上” 對應的圖像。
- 面部和人物總體上可能無法正確生成。
- 模型主要使用英語字幕進行訓練,在其他語言中的效果不佳。
- 模型的自動編碼部分存在信息損失。
- 模型在大規模數據集 LAION-5B 上進行訓練,該數據集包含成人內容,在沒有額外安全機制和考慮的情況下不適合產品使用。
- 未使用額外措施對數據集進行去重。因此,我們觀察到對於訓練數據中重複的圖像存在一定程度的記憶現象。可以在 https://rom1504.github.io/clip-retrieval/ 上搜索訓練數據,以幫助檢測記憶的圖像。
偏差
雖然圖像生成模型的能力令人印象深刻,但它們也可能強化或加劇社會偏差。穩定擴散v1在 LAION-2B(en) 的子集上進行訓練,該數據集主要由英語描述的圖像組成。來自使用其他語言的社區和文化的文本和圖像可能沒有得到充分考慮。這影響了模型的整體輸出,因為白人和西方文化通常被設定為默認值。此外,模型使用非英語提示詞生成內容的能力明顯低於使用英語提示詞的情況。
訓練
訓練數據
模型開發者使用以下數據集對模型進行訓練:
- LAION-2B (en) 及其子集(見下一節)
訓練過程
穩定擴散v1是一個潛在擴散模型,它將自動編碼器與在自動編碼器潛在空間中訓練的擴散模型相結合。在訓練過程中:
- 圖像通過編碼器進行編碼,將圖像轉換為潛在表示。自動編碼器使用相對下采樣因子8,將形狀為 H x W x 3 的圖像映射到形狀為 H/f x W/f x 4 的潛在表示。
- 文本提示通過ViT-L/14文本編碼器進行編碼。
- 文本編碼器的非池化輸出通過交叉注意力輸入到潛在擴散模型的UNet主幹中。
- 損失是添加到潛在表示中的噪聲與UNet預測之間的重建目標。
我們目前提供六個檢查點,sd-v1-1.ckpt
、sd-v1-2.ckpt
、sd-v1-3.ckpt
、sd-v1-4.ckpt
、sd-v1-5.ckpt
和 sd-v1-5-inpainting.ckpt
,它們的訓練方式如下:
-
sd-v1-1.ckpt
:在 laion2B-en 上以分辨率256x256
進行237k步訓練。在 laion-high-resolution(來自LAION-5B的分辨率>= 1024x1024
的170M個示例)上以分辨率512x512
進行194k步訓練。 -
sd-v1-2.ckpt
:從sd-v1-1.ckpt
繼續訓練。在 “laion-improved-aesthetics”(laion2B-en的一個子集,過濾為原始大小>= 512x512
、估計美學分數> 5.0
且估計水印概率< 0.5
的圖像。水印估計來自LAION-5B元數據,美學分數使用 改進的美學估計器 進行估計)上以分辨率512x512
進行515k步訓練。 -
sd-v1-3.ckpt
:從sd-v1-2.ckpt
繼續訓練。在 “laion-improved-aesthetics” 上以分辨率512x512
進行195k步訓練,並以10%的概率丟棄文本條件以改進 無分類器引導採樣。 -
sd-v1-4.ckpt
:從穩定擴散v1-2繼續訓練。在 “laion-aesthetics v2 5+” 上以分辨率512x512進行225,000步訓練,並以10%的概率丟棄文本條件以進行 無分類器引導採樣。 -
sd-v1-5.ckpt
:從sd-v1-2.ckpt繼續訓練。在 “laion-aesthetics v2 5+” 上以分辨率512x512進行595k步訓練,並以10%的概率丟棄文本條件以改進無分類器引導採樣。 -
sd-v1-5-inpaint.ckpt
:從sd-v1-2.ckpt繼續訓練。在 “laion-aesthetics v2 5+” 上以分辨率512x512進行595k步訓練,並以10%的概率丟棄文本條件以改進無分類器引導採樣。然後在 “laion-aesthetics v2 5+” 上以分辨率512x512進行440k步的圖像修復訓練,並以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個PLMS採樣步驟進行評估,顯示了檢查點的相對改進情況:
使用50個PLMS步驟和來自COCO2017驗證集的10000個隨機提示進行評估,評估分辨率為512x512。未針對FID分數進行優化。
圖像修復評估
為了評估圖像修復模型的性能,我們使用了與 LDM論文 中相同的評估協議。由於穩定擴散圖像修復模型接受文本輸入,我們簡單地使用了固定提示 photograph of a beautiful empty scene, highest quality settings
。
模型 | FID | LPIPS |
---|---|---|
穩定擴散圖像修復模型 | 1.00 | 0.141 (+- 0.082) |
潛在擴散圖像修復模型 | 1.50 | 0.137 (+- 0.080) |
CoModGAN | 1.82 | 0.15 |
LaMa | 2.21 | 0.134 (+- 0.080) |
環境影響
穩定擴散v1估計排放量
基於該信息,我們使用 Lacoste等人(2019) 中提出的 機器學習影響計算器 估計了以下二氧化碳排放量。利用硬件、運行時間、雲服務提供商和計算區域來估計碳影響。
- 硬件類型:A100 PCIe 40GB
- 使用時長:150000小時
- 雲服務提供商:AWS
- 計算區域:美國東部
- 碳排放(功耗 x 時間 x 基於電網位置產生的碳):11250千克二氧化碳當量
🔧 技術細節
模型初始化
Stable-Diffusion-Inpainting 模型使用 Stable-Diffusion-v-1-2 的權重進行初始化。首先進行595k步的常規訓練,然後在分辨率為512x512的 “laion-aesthetics v2 5+” 數據集上進行440k步的圖像修復訓練,並以10%的概率丟棄文本條件以改進 無分類器引導採樣。
圖像修復訓練
對於圖像修復,UNet有5個額外的輸入通道(4個用於編碼的掩碼圖像,1個用於掩碼本身),其權重在恢復非圖像修復檢查點後初始化為零。在訓練過程中,我們生成合成掩碼,並在25%的情況下對整個圖像進行掩碼。
📄 許可證
該模型使用 CreativeML OpenRAIL M許可證。在使用該模型之前,請仔細閱讀完整的許可證內容。
在獲取此模型之前,還需完成以下步驟: 此模型為開放訪問模型,所有人均可使用,同時附帶CreativeML OpenRAIL - M許可證,該許可證進一步明確了使用權利和規則。
CreativeML OpenRAIL許可證規定:
- 不得使用該模型故意生成或分享非法或有害的輸出或內容。
- CompVis對您生成的輸出不主張任何權利,您可以自由使用這些輸出,但需對其使用負責,且使用不得違反許可證中的規定。
- 您可以重新分發模型權重,並將模型用於商業用途和/或作為服務使用。如果您這樣做,請務必包含與許可證中相同的使用限制,並向所有用戶提供CreativeML OpenRAIL - M許可證的副本(請完整且仔細地閱讀許可證)。
請在此處閱讀完整的許可證:https://huggingface.co/spaces/CompVis/stable-diffusion-license
通過點擊下面的 “訪問倉庫”,您也同意您的 聯繫信息(電子郵件地址和用戶名)可以與模型作者共享。

