Diffusers 文件

自動模型

Hugging Face's logo
加入 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

class diffusers.AutoModel

< >

( *args **kwargs )

從預訓練模型載入 (from_pretrained)

< >

( pretrained_model_or_path: typing.Union[str, os.PathLike, NoneType] = None **kwargs )

引數

  • pretrained_model_name_or_path (stros.PathLike, 可選) — 可以是以下之一:

    • 一個字串,即託管在 Hub 上的預訓練模型的模型 ID(例如 google/ddpm-celebahq-256)。
    • 一個目錄路徑(例如 ./my_model_directory),其中包含使用 save_pretrained() 儲存的模型權重。
  • 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 (strbool, 可選) — 用於遠端檔案的 HTTP Bearer 授權令牌。如果為 True,則使用 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • from_flax (bool, 可選, 預設為 False) — 從 Flax 檢查點儲存檔案中載入模型權重。
  • subfolder (str, 可選, 預設為 "") — 模型檔案在一個大型模型倉庫中或本地的子資料夾位置。
  • mirror (str, 可選) — 如果您在中國下載模型,為解決訪問問題而使用的映象源。我們不保證該源的及時性或安全性,您應查閱映象站點以獲取更多資訊。
  • device_map (strDict[str, Union[int, str, torch.device]], 可選) — 一個對映,指定每個子模組應放置在何處。無需為每個引數/緩衝區名稱定義;一旦給定的模組名稱被包含在內,其每個子模組都將被髮送到同一裝置。預設為 None,表示模型將載入到 CPU。

    設定 device_map="auto" 以便 🤗 Accelerate 自動計算最優的 device_map。有關每個選項的更多資訊,請參閱 設計裝置對映

  • max_memory (Dict, 可選) — 每個裝置識別符號的最大記憶體字典。如果未設定,將預設為每個 GPU 可用的最大記憶體和可用的 CPU RAM。
  • offload_folder (stros.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() 將其重新設定為訓練模式。

要使用私有模型或受限模型,請使用 huggingface-cli login 登入。您還可以啟用特殊的“離線模式”,以便在防火牆環境中使用此方法。

示例

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.
< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.