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).
单个文件
from_single_file() 方法允许你加载:
- 以单个文件存储的模型,如果您正在处理来自扩散生态系统的模型(例如 Automatic1111),并且通常依赖单文件布局来存储和共享模型,那么这种方式会很有用
- 以原始分发布局存储的模型,当您使用其他服务微调的模型并希望直接将其加载到 Diffusers 模型对象和管道中时,此布局非常有用
阅读模型文件和布局指南,以了解 Diffusers 多文件夹布局与单文件布局之间的区别,以及如何加载存储在这些不同布局中的模型。
支持的管道
- StableDiffusionPipeline
- StableDiffusionImg2ImgPipeline
- StableDiffusionInpaintPipeline
- StableDiffusionControlNetPipeline
- StableDiffusionControlNetImg2ImgPipeline
- StableDiffusionControlNetInpaintPipeline
- StableDiffusionUpscalePipeline
- StableDiffusionXLPipeline
- StableDiffusionXLImg2ImgPipeline
- StableDiffusionXLInpaintPipeline
- StableDiffusionXLInstructPix2PixPipeline
- StableDiffusionXLControlNetPipeline
StableDiffusionXLKDiffusionPipeline- StableDiffusion3Pipeline
- LatentConsistencyModelPipeline
- LatentConsistencyModelImg2ImgPipeline
StableDiffusionControlNetXSPipelineStableDiffusionXLControlNetXSPipeline- LEditsPPPipelineStableDiffusion
- LEditsPPPipelineStableDiffusionXL
PIAPipeline
支持的模型
- UNet2DConditionModel
StableCascadeUNet- AutoencoderKL
- ControlNetModel
- SD3Transformer2DModel
- FluxTransformer2DModel
FromSingleFileMixin
将保存在 .ckpt 格式中的模型权重加载到 DiffusionPipeline 中。
from_single_file
< source >( 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/)。
- 一个字符串,即托管在 Hub 上的预训练流水线的 repo id(例如
- 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
将保存在 .ckpt 或 .safetensors 格式中的预训练权重加载到模型中。
from_single_file
< source >( 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 的路径,该文件包含组件模型的权重。
- 包含组件模型权重的状态字典。
- 指向 Hub 上
- config (
str, 可选) —- 一个字符串,即托管在 Hub 上的预训练流水线的 repo id(例如
CompVis/ldm-text2im-large-256)。 - 指向包含 Diffusers 格式流水线组件配置的目录的路径(例如
./my_pipeline_directory/)。
- 一个字符串,即托管在 Hub 上的预训练流水线的 repo id(例如
- 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())。