🚀 CleanDIFT模型卡片
Diffusion模型能夠學習強大的世界表徵,已被證明對語義對應檢測、深度估計、語義分割和分類等任務具有重要價值。然而,Diffusion模型需要有噪聲的輸入圖像,這會破壞信息,並引入噪聲水平作為超參數,需要針對每個任務進行調整。
我們推出了CleanDIFT,這是一種通過使Diffusion模型能夠直接處理乾淨的輸入圖像來提取無噪聲、與時間步長無關的特徵的新方法。該方法效率高,僅需在單個GPU上訓練30分鐘。我們隨論文 "CleanDIFT: Diffusion Features without Noise" 一起發佈了這些模型。
我們為Stable Diffusion 1.5和Stable Diffusion 2.1提供了檢查點。
🚀 快速開始
Diffusion模型在諸多圖像相關任務中表現出色,但對輸入圖像的噪聲要求帶來了信息破壞和超參數調整的問題。CleanDIFT則打破這一限制,能直接處理乾淨輸入圖像,高效提取特徵。
✨ 主要特性
- 無噪聲特徵提取:能夠直接處理乾淨的輸入圖像,提取無噪聲、與時間步長無關的特徵。
- 高效訓練:僅需在單個GPU上訓練30分鐘。
- 模型兼容:提供Stable Diffusion 1.5和Stable Diffusion 2.1的檢查點,且與
diffusers
庫完全兼容。
📦 安裝指南
暫未提供相關安裝步驟信息。
💻 使用示例
基礎用法
對於如何使用CleanDIFT提取特徵以及如何將其用於下游任務的詳細示例,請參考此處提供的筆記本。
高級用法
我們的檢查點與diffusers
庫完全兼容。如果您已經有一個使用diffusers
中SD 1.5或SD 2.1的管道,您可以簡單地替換U-Net狀態字典:
from diffusers import UNet2DConditionModel
from huggingface_hub import hf_hub_download
unet = UNet2DConditionModel.from_pretrained("stabilityai/stable-diffusion-2-1", subfolder="unet")
ckpt_pth = hf_hub_download(repo_id="CompVis/cleandift", filename="cleandift_sd21_unet.safetensors")
state_dict = load_file(ckpt_pth)
unet.load_state_dict(state_dict, strict=True)
📚 詳細文檔
CleanDIFT打破了Diffusion模型對有噪聲輸入圖像的依賴,通過直接處理乾淨輸入圖像,避免了信息破壞和噪聲水平超參數的調整。該方法訓練高效,能在短時間內完成,並且提供了與主流模型和庫的兼容性,方便用戶在已有管道中使用。
📄 許可證
本項目採用MIT許可證。
📚 引用
如果您在研究中使用了本項目,請使用以下BibTeX引用:
@misc{stracke2024cleandiftdiffusionfeaturesnoise,
title={CleanDIFT: Diffusion Features without Noise},
author={Nick Stracke and Stefan Andreas Baumann and Kolja Bauer and Frank Fundel and Björn Ommer},
year={2024},
eprint={2412.03439},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2412.03439},
}