Diffusers 文档

单个文件

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

单个文件

方法 from_single_file() 允许您加载:

  • 存储在单个文件中的模型,这在您使用来自扩散生态系统(如 Automatic1111)的模型,并且通常依赖于单个文件布局来存储和共享模型时非常有用。
  • 以其原始分发布局存储的模型,这在您使用通过其他服务进行微调的模型,并希望将其直接加载到 Diffusers 模型对象和管道中时非常有用。

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

支持的管道

支持的模型

FromSingleFileMixin

class diffusers.loaders.FromSingleFileMixin

< >

( )

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

from_single_file

< >

( pretrained_model_link_or_path **kwargs )

参数

  • pretrained_model_link_or_path (stros.PathLike, 可选) — 可以是:

    • Hub 上的 .ckpt 文件链接(例如 "https://huggingface.co/<repo_id>/blob/main/<path_to_file>.ckpt")。
    • 包含所有管道权重的 文件 路径。
  • torch_dtype (strtorch.dtype, 可选) — 覆盖默认的 torch.dtype 并使用其他数据类型加载模型。
  • force_download (bool, 可选, 默认为 False) — 是否强制(重新)下载模型权重和配置文件,如果存在缓存版本则覆盖。
  • cache_dir (Union[str, os.PathLike], 可选) — 下载的预训练模型配置的缓存目录路径,如果未使用标准缓存。
  • proxies (Dict[str, str], 可选) — 按协议或端点使用的代理服务器字典,例如 {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。代理在每个请求中都使用。
  • local_files_only (bool, 可选, 默认为 False) — 是否只加载本地模型权重和配置文件。如果设置为 True,模型将不会从 Hub 下载。
  • token (strbool, 可选) — 用于远程文件的 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

class diffusers.loaders.FromOriginalModelMixin

< >

( )

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

from_single_file

< >

( pretrained_model_link_or_path_or_dict: typing.Optional[str] = None **kwargs )

参数

  • pretrained_model_link_or_path_or_dict (str, 可选) — 可以是:

    • Hub 上的 .safetensors.ckpt 文件链接(例如 "https://huggingface.co/<repo_id>/blob/main/<path_to_file>.safetensors")。
    • 包含组件模型权重的本地 文件 路径。
    • 包含组件模型权重的状态字典。
  • config (str, 可选) —

    • Hub 上预训练管道的 repo id 字符串(例如 CompVis/ldm-text2im-large-256)。
    • 包含 Diffusers 格式的管道组件配置的 目录 路径(例如 ./my_pipeline_directory/)。
  • subfolder (str, 可选, 默认为 "") — Hub 上或本地大型模型仓库中模型文件的子文件夹位置。
  • original_config (str, 可选) — 字典或 yaml 文件的路径,其中包含模型的原始格式配置。如果提供了字典,将用于初始化模型配置。
  • torch_dtype (torch.dtype, 可选) — 覆盖默认的 torch.dtype 并使用其他数据类型加载模型。
  • force_download (bool, 可选, 默认为 False) — 是否强制(重新)下载模型权重和配置文件,如果存在缓存版本则覆盖。
  • cache_dir (Union[str, os.PathLike], 可选) — 下载的预训练模型配置的缓存目录路径,如果未使用标准缓存。
  • proxies (Dict[str, str], 可选) — 按协议或端点使用的代理服务器字典,例如 {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。代理在每个请求中都使用。
  • local_files_only (bool, 可选, 默认为 False) — 是否只加载本地模型权重和配置文件。如果设置为 True,模型将不会从 Hub 下载。
  • token (strbool, 可选) — 用于远程文件的 HTTP bearer 授权令牌。如果为 True,则使用 diffusers-cli login 生成的令牌(存储在 ~/.huggingface 中)。
  • revision (str, 可选, 默认为 "main") — 要使用的特定模型版本。它可以是分支名称、标签名称、提交 ID 或 Git 允许的任何标识符。
  • 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)
< > 在 GitHub 上更新