Diffusers 文件
自動模型
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
自動模型 (AutoModel)
AutoModel
旨在讓使用者無需知道具體的模型類別即可輕鬆載入檢查點。AutoModel
會自動從檢查點 config.json
檔案中檢索正確的模型類別。
from diffusers import AutoModel, AutoPipelineForText2Image
unet = AutoModel.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", subfolder="unet")
pipe = AutoPipelineForText2Image.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", unet=unet)
AutoModel
從預訓練模型載入 (from_pretrained)
< 來源 >( pretrained_model_or_path: typing.Union[str, os.PathLike, NoneType] = None **kwargs )
引數
- pretrained_model_name_or_path (
str
或os.PathLike
, 可選) — 可以是以下之一:- 一個字串,即託管在 Hub 上的預訓練模型的模型 ID(例如
google/ddpm-celebahq-256
)。 - 一個目錄路徑(例如
./my_model_directory
),其中包含使用 save_pretrained() 儲存的模型權重。
- 一個字串,即託管在 Hub 上的預訓練模型的模型 ID(例如
- cache_dir (
Union[str, os.PathLike]
, 可選) — 如果不使用標準快取,則為下載的預訓練模型配置的快取目錄路徑。 - torch_dtype (
torch.dtype
, 可選) — 覆蓋預設的torch.dtype
並使用其他資料型別載入模型。 - force_download (
bool
, 可選, 預設為False
) — 是否強制(重新)下載模型權重和配置檔案,如果存在快取版本則覆蓋。 - proxies (
Dict[str, str]
, 可選) — 一個字典,包含按協議或端點使用的代理伺服器,例如{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}
。每次請求都會使用這些代理。 - output_loading_info (
bool
, 可選, 預設為False
) — 是否同時返回一個包含缺失鍵、意外部索引鍵和錯誤訊息的字典。 - local_files_only(
bool
, 可選, 預設為False
) — 是否只加載本地模型權重和配置檔案。如果設定為True
,模型將不會從 Hub 下載。 - token (
str
或 bool, 可選) — 用於遠端檔案的 HTTP Bearer 授權令牌。如果為True
,則使用diffusers-cli login
生成的令牌(儲存在~/.huggingface
中)。 - revision (
str
, 可選, 預設為"main"
) — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。 - from_flax (
bool
, 可選, 預設為False
) — 從 Flax 檢查點儲存檔案中載入模型權重。 - subfolder (
str
, 可選, 預設為""
) — 模型檔案在一個大型模型倉庫中或本地的子資料夾位置。 - mirror (
str
, 可選) — 如果您在中國下載模型,為解決訪問問題而使用的映象源。我們不保證該源的及時性或安全性,您應查閱映象站點以獲取更多資訊。 - device_map (
str
或Dict[str, Union[int, str, torch.device]]
, 可選) — 一個對映,指定每個子模組應放置在何處。無需為每個引數/緩衝區名稱定義;一旦給定的模組名稱被包含在內,其每個子模組都將被髮送到同一裝置。預設為None
,表示模型將載入到 CPU。設定
device_map="auto"
以便 🤗 Accelerate 自動計算最優的device_map
。有關每個選項的更多資訊,請參閱 設計裝置對映。 - max_memory (
Dict
, 可選) — 每個裝置識別符號的最大記憶體字典。如果未設定,將預設為每個 GPU 可用的最大記憶體和可用的 CPU RAM。 - offload_folder (
str
或os.PathLike
, 可選) — 如果device_map
包含值"disk"
,則為解除安裝權重的路徑。 - offload_state_dict (
bool
, 可選) — 如果為True
,則暫時將 CPU 狀態字典解除安裝到硬碟驅動器,以避免在 CPU 狀態字典的權重 + 檢查點的最大分片不適合時,CPU RAM 耗盡。當存在一些磁碟解除安裝時,預設為True
。 - low_cpu_mem_usage (
bool
, 可選, 如果 torch 版本 >= 1.9.0 則預設為True
,否則為False
) — 透過只加載預訓練權重而不初始化權重來加快模型載入速度。在載入模型時,這也試圖使 CPU 記憶體(包括峰值記憶體)的使用量不超過模型大小的 1 倍。僅支援 PyTorch >= 1.9.0。如果您使用的是舊版本的 PyTorch,將此引數設定為True
將引發錯誤。 - variant (
str
, 可選) — 從指定的variant
檔名(例如"fp16"
或"ema"
)載入權重。從from_flax
載入時,此項將被忽略。 - use_safetensors (
bool
, 可選, 預設為None
) — 如果設定為None
,則如果safetensors
權重可用且safetensors
庫已安裝,則下載這些權重。如果設定為True
,則強制從safetensors
權重載入模型。如果設定為False
,則不載入safetensors
權重。 - disable_mmap (‘bool’, 可選, 預設為 ‘False’) — 是否在載入 Safetensors 模型時停用 mmap。當模型位於網路掛載或硬碟驅動器上時,此選項可能表現更好,因為這些裝置可能無法很好地處理 mmap 的隨機訪問特性。
從預訓練模型配置例項化預訓練的 PyTorch 模型。
模型預設設定為評估模式 - model.eval()
- 且 dropout 模組已停用。要訓練模型,請使用 model.train()
將其重新設定為訓練模式。
示例
from diffusers import AutoModel
unet = AutoModel.from_pretrained("runwayml/stable-diffusion-v1-5", subfolder="unet")
如果您收到以下錯誤訊息,則需要針對您的下游任務微調權重
Some weights of UNet2DConditionModel were not initialized from the model checkpoint at runwayml/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.