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 上更新