Buckets:

mishig's picture
|
download
raw
12.3 kB
# 单个文件
[from_single_file()](/docs/diffusers/v0.43.0/zh/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file) 方法允许你加载:
* 以单个文件存储的模型,如果您正在处理来自扩散生态系统的模型(例如 Automatic1111),并且通常依赖单文件布局来存储和共享模型,那么这种方式会很有用。
* 以原始分发布局存储的模型,适用于使用其他服务微调的模型,并可直接加载到 Diffusers 模型对象和流水线中
> [!TIP]
> 阅读[模型文件和布局](../../using-diffusers/other-formats)指南,以了解 Diffusers 多文件夹布局与单文件布局之间的区别,以及如何加载存储在这些不同布局中的模型。
## 支持的管道
- [StableDiffusionPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/stable_diffusion/text2img#diffusers.StableDiffusionPipeline)
- [StableDiffusionImg2ImgPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/stable_diffusion/img2img#diffusers.StableDiffusionImg2ImgPipeline)
- [StableDiffusionInpaintPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/stable_diffusion/inpaint#diffusers.StableDiffusionInpaintPipeline)
- [StableDiffusionControlNetPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/controlnet#diffusers.StableDiffusionControlNetPipeline)
- [StableDiffusionControlNetImg2ImgPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/controlnet#diffusers.StableDiffusionControlNetImg2ImgPipeline)
- [StableDiffusionControlNetInpaintPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/controlnet#diffusers.StableDiffusionControlNetInpaintPipeline)
- [StableDiffusionUpscalePipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/stable_diffusion/upscale#diffusers.StableDiffusionUpscalePipeline)
- [StableDiffusionXLPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLPipeline)
- [StableDiffusionXLImg2ImgPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLImg2ImgPipeline)
- [StableDiffusionXLInpaintPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLInpaintPipeline)
- [StableDiffusionXLInstructPix2PixPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/pix2pix#diffusers.StableDiffusionXLInstructPix2PixPipeline)
- [StableDiffusionXLControlNetPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/controlnet_sdxl#diffusers.StableDiffusionXLControlNetPipeline)
- `StableDiffusionXLKDiffusionPipeline`
- [StableDiffusion3Pipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/stable_diffusion/stable_diffusion_3#diffusers.StableDiffusion3Pipeline)
- [LatentConsistencyModelPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/latent_consistency_models#diffusers.LatentConsistencyModelPipeline)
- [LatentConsistencyModelImg2ImgPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/latent_consistency_models#diffusers.LatentConsistencyModelImg2ImgPipeline)
- `StableDiffusionControlNetXSPipeline`
- `StableDiffusionXLControlNetXSPipeline`
- [LEditsPPPipelineStableDiffusion](/docs/diffusers/v0.43.0/zh/api/pipelines/ledits_pp#diffusers.LEditsPPPipelineStableDiffusion)
- [LEditsPPPipelineStableDiffusionXL](/docs/diffusers/v0.43.0/zh/api/pipelines/ledits_pp#diffusers.LEditsPPPipelineStableDiffusionXL)
- `PIAPipeline`
## 支持的模型
- [UNet2DConditionModel](/docs/diffusers/v0.43.0/zh/api/models/unet2d-cond#diffusers.UNet2DConditionModel)
- `StableCascadeUNet`
- [AutoencoderKL](/docs/diffusers/v0.43.0/zh/api/models/autoencoderkl#diffusers.AutoencoderKL)
- [ControlNetModel](/docs/diffusers/v0.43.0/zh/api/models/controlnet#diffusers.ControlNetModel)
- [SD3Transformer2DModel](/docs/diffusers/v0.43.0/zh/api/models/sd3_transformer2d#diffusers.SD3Transformer2DModel)
- [FluxTransformer2DModel](/docs/diffusers/v0.43.0/zh/api/models/flux_transformer#diffusers.FluxTransformer2DModel)
## FromSingleFileMixin[[diffusers.loaders.FromSingleFileMixin]]
#### diffusers.loaders.FromSingleFileMixin[[diffusers.loaders.FromSingleFileMixin]]
```python
diffusers.loaders.FromSingleFileMixin()
```
[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/single_file.py#L243)
将保存在 `.ckpt` 格式中的模型权重加载到 [DiffusionPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/overview#diffusers.DiffusionPipeline) 中。
#### from_single_file[[diffusers.loaders.FromSingleFileMixin.from_single_file]]
```python
from_single_file(pretrained_model_link_or_path, **kwargs)
```
[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/single_file.py#L248)
**参数:**
pretrained_model_link_or_path (`str` 或 `os.PathLike`,*可选*) : 可以是以下之一: - 指向 Hub 上 `.ckpt` 文件的链接(例如 `"https://huggingface.co/<repo_id>/blob/main/<path_to_file>.ckpt"`)。 - 指向包含所有流水线权重的*文件*的路径。
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 承载者授权令牌。如果为 `True`,则使用由 `diffusers-cli login` 生成的令牌(存储在 `~/.huggingface` 中)。
revision (`str`,*可选*,默认为 `"main"`):要使用的特定模型版本。它可以是分支名称、标签名称、提交 ID,或 Git 允许的任何标识符。
original_config_file (`str`, *可选*) : 用于训练模型的原始配置文件的路径。如果未提供,则将从检查点文件中推断出配置文件。
config (`str`, *可选*) : 可以是以下之一: - 一个字符串,即托管在 Hub 上的预训练流水线的 *repo id*(例如 `CompVis/ldm-text2im-large-256`)。 - 一个指向 *目录* 的路径(例如 `./my_pipeline_directory/`),其中包含以 Diffusers 格式存储的流水线组件配置。
disable_mmap ('bool', *可选*,默认为 'False'):是否在加载 Safetensors 模型时禁用 mmap。当模型位于网络挂载或硬盘上时,此选项可能带来更好的性能。
kwargs (其余关键字参数字典,*可选*):可用于覆盖加载和可保存的变量(特定 pipeline 类的 pipeline 组件)。被覆盖的组件会直接传递给 pipeline 的 `__init__` 方法。更多信息请参见下方示例。
从以 `.ckpt` 或 `.safetensors` 格式保存的预训练流水线权重中实例化一个 [DiffusionPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/overview#diffusers.DiffusionPipeline)。默认情况下,流水线会设置为评估模式(`model.eval()`)。
示例:
```py
>>> 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]]
#### diffusers.loaders.FromOriginalModelMixin[[diffusers.loaders.FromOriginalModelMixin]]
```python
diffusers.loaders.FromOriginalModelMixin()
```
[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/single_file_model.py#L276)
将保存在 `.ckpt` 或 `.safetensors` 格式中的预训练权重加载到模型中。
#### from_single_file[[diffusers.loaders.FromOriginalModelMixin.from_single_file]]
```python
from_single_file(pretrained_model_link_or_path_or_dict: str | None = None, **kwargs)
```
[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/single_file_model.py#L281)
**参数:**
pretrained_model_link_or_path_or_dict (`str`, *可选*) : 可以是以下之一: - 指向 Hub 上 `.safetensors` 或 `.ckpt` 文件的链接(例如 `"https://huggingface.co/<repo_id>/blob/main/<path_to_file>.safetensors"`)。 - 指向包含组件模型权重的本地 *文件* 的路径。 - 包含组件模型权重的 state dict。
config (`str`, *可选*) : - 一个字符串,即托管在 Hub 上的预训练流水线的 *repo id*(例如 `CompVis/ldm-text2im-large-256`)。 - 一个指向 *目录* 的路径(例如 `./my_pipeline_directory/`),其中包含以 Diffusers 格式存储的流水线组件配置。
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 承载者授权令牌。如果为 `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 (其余关键字参数字典,*可选*):可用于覆盖加载和可保存的变量(例如特定 pipeline 类的 pipeline 组件)。被覆盖的组件会直接传递给 pipeline 的 `__init__` 方法。更多信息请参见下方示例。
从以原始 `.ckpt` 或 `.safetensors` 格式保存的预训练权重实例化模型。默认情况下,模型会设置为评估模式(`model.eval()`)。
```py
>>> 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)
```

Xet Storage Details

Size:
12.3 kB
·
Xet hash:
a1f2427ef294f17e5ff45d928efc13443a64d9658826a4df70addaff48f24dbe

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.