Diffusers documentation

单个文件

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

单个文件

from_single_file() 方法允许你加载:

  • 以单个文件存储的模型,如果您正在处理来自扩散生态系统的模型(例如 Automatic1111),并且通常依赖单文件布局来存储和共享模型,那么这种方式会很有用
  • 以原始分发布局存储的模型,当您使用其他服务微调的模型并希望直接将其加载到 Diffusers 模型对象和管道中时,此布局非常有用

阅读模型文件和布局指南,以了解 Diffusers 多文件夹布局与单文件布局之间的区别,以及如何加载存储在这些不同布局中的模型。

支持的管道

支持的模型

FromSingleFileMixin

类 diffusers.loaders.FromSingleFileMixin

< >

( )

将保存在 .ckpt 格式中的模型权重加载到 DiffusionPipeline 中。

from_single_file

< >

( pretrained_model_link_or_path**kwargs )

参数

  • pretrained_model_link_or_path (str 或 os.PathLike, 可选) — 可以是以下之一:
    • 指向 .ckpt 文件的链接(例如 "https://huggingface.co/<repo_id>/blob/main/<path_to_file>.ckpt"),位于 Hub 上。
    • 指向包含所有流水线权重的文件的路径。
  • dtype (str 或 torch.dtype,可选) — 覆盖默认的 torch.dtype,并使用其他 dtype 加载模型。
  • force_download (bool,可选,默认为 False) — 是否强制(重新)下载模型权重和配置文件,如果存在缓存版本则覆盖它们。
  • cache_dir (str | os.PathLike, 可选) — 如果未使用标准缓存,则下载的预训练模型配置将被缓存到的目录路径。
  • proxies (dict[str, str],可选) — 按协议或端点使用的代理服务器字典,例如 {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。每次请求都会使用这些代理。
  • local_files_only (bool,可选,默认为 False) — 是否仅加载本地的模型权重和配置文件。如果设置为 True,则不会从 Hub 下载模型。
  • token (str 或 bool,可选) — 用于远程文件的 HTTP bearer 授权令牌。如果为 True,则使用由 diffusers-cli login 生成的令牌(存储在 ~/.huggingface 中)。
  • revision (str, 可选, 默认为 "main") — 要使用的特定模型版本。它可以是分支名称、标签名称、提交 id,或 Git 允许的任何标识符。
  • original_config_file (str, 可选) — 用于训练模型的原始配置文件的路径。如果未提供,则将从检查点文件中推断配置文件。
  • config (str, 可选) — 可以是以下之一:
    • 一个字符串,即托管在 Hub 上的预训练流水线的 repo id(例如 CompVis/ldm-text2im-large-256)。
    • 指向包含 Diffusers 格式流水线组件配置的目录的路径(例如 ./my_pipeline_directory/)。
  • disable_mmap(‘bool’,可选,默认为 ‘False’)— 是否在加载 Safetensors 模型时禁用 mmap。当模型位于网络挂载或硬盘上时,此选项可能带来更好的性能。
  • kwargs(其余关键字参数字典,可选) — 可用于覆盖加载和可保存变量(特定流水线类的流水线组件)。被覆盖的组件会直接传递给流水线的 __init__ 方法。更多信息请参见下方示例。

从以 .ckpt 或 .safetensors 格式保存的预训练流水线权重中实例化一个 DiffusionPipeline。默认情况下,流水线会设置为评估模式(model.eval())。

示例:

>>> from diffusers import StableDiffusionPipeline

>>> # Download pipeline from huggingface.co and cache.
>>> pipeline = StableDiffusionPipeline.from_single_file(
...     "https://huggingface.co/WarriorMama777/OrangeMixs/blob/main/Models/AbyssOrangeMix/AbyssOrangeMix.safetensors"
... )

>>> # Download pipeline from local file
>>> # file is downloaded under ./v1-5-pruned-emaonly.ckpt
>>> pipeline = StableDiffusionPipeline.from_single_file("./v1-5-pruned-emaonly.ckpt")

>>> # Enable float16 and move to GPU
>>> pipeline = StableDiffusionPipeline.from_single_file(
...     "https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5/blob/main/v1-5-pruned-emaonly.ckpt",
...     torch_dtype=torch.float16,
... )
>>> pipeline.to("cuda")

FromOriginalModelMixin

类 diffusers.loaders.FromOriginalModelMixin

< >

( )

将保存在 .ckpt 或 .safetensors 格式中的预训练权重加载到模型中。

from_single_file

< >

( pretrained_model_link_or_path_or_dict: str | None = None**kwargs )

参数

  • pretrained_model_link_or_path_or_dict (str, 可选) — 可以是以下之一:
    • 指向 Hub 上 .safetensors 或 .ckpt 文件的链接(例如 "https://huggingface.co/<repo_id>/blob/main/<path_to_file>.safetensors")。
    • 指向本地 file 的路径,该文件包含组件模型的权重。
    • 包含组件模型权重的状态字典。
  • config (str, 可选) —
    • 一个字符串,即托管在 Hub 上的预训练流水线的 repo id(例如 CompVis/ldm-text2im-large-256)。
    • 指向包含 Diffusers 格式流水线组件配置的目录的路径(例如 ./my_pipeline_directory/)。
  • subfolder (str,可选,默认为 "") — 模型文件在 Hub 或本地更大的模型仓库中的子文件夹位置。
  • original_config (str, 可选) — 字典或指向 yaml 文件的路径,其中包含模型原始格式的配置。如果提供了字典,它将用于初始化模型配置。
  • dtype (torch.dtype,可选) — 覆盖默认的 torch.dtype,并使用其他 dtype 加载模型。
  • force_download (bool,可选,默认为 False) — 是否强制(重新)下载模型权重和配置文件,如果存在缓存版本则覆盖它们。
  • cache_dir (str | os.PathLike, 可选) — 如果未使用标准缓存,则下载的预训练模型配置将被缓存到的目录路径。
  • proxies (dict[str, str],可选) — 按协议或端点使用的代理服务器字典,例如 {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。每次请求都会使用这些代理。
  • local_files_only (bool,可选,默认为 False) — 是否仅加载本地的模型权重和配置文件。如果设置为 True,则不会从 Hub 下载模型。
  • token (str 或 bool,可选) — 用于远程文件的 HTTP bearer 授权令牌。如果为 True,则使用由 diffusers-cli login 生成的令牌(存储在 ~/.huggingface 中)。
  • revision (str, 可选, 默认为 "main") — 要使用的特定模型版本。它可以是分支名称、标签名称、提交 id,或 Git 允许的任何标识符。
  • low_cpu_mem_usage (bool,可选,如果 torch 版本 >= 1.9.0 且 — is_accelerate_available() 则默认为 True,否则为 False):通过仅加载预训练权重而不初始化权重来加速模型加载。在加载模型时,这也尝试将 CPU 内存(包括峰值内存)的使用量控制在不超过 1 倍模型大小。仅支持 PyTorch >= 1.9.0。如果您使用的是旧版本的 PyTorch,将此参数设置为 True 将引发错误。
  • disable_mmap('bool',可选,默认为 'False')— 是否在加载 Safetensors 模型时禁用 mmap。当模型位于网络挂载或硬盘上时,此选项可能表现更佳,因为这些存储设备可能无法很好地处理 mmap 的频繁寻址操作。
  • kwargs(其余关键字参数字典,可选) — 可用于覆盖加载和可保存的变量(例如特定流水线类的流水线组件)。被覆盖的组件会直接传递给流水线的 __init__ 方法。更多信息请参见下方示例。

从原始 .ckpt 或 .safetensors 格式保存的预训练权重实例化模型。默认情况下,模型会设置为评估模式(model.eval())。

>>> from diffusers import StableCascadeUNet

>>> ckpt_path = "https://huggingface.co/stabilityai/stable-cascade/blob/main/stage_b_lite.safetensors"
>>> model = StableCascadeUNet.from_single_file(ckpt_path)
Update on GitHub