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.43.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

パイプラインとモデルの共有

PushToHubMixin を使用して、パイプライン、モデル、スケジューラーを Hub に共有できます。このミックスインは:

  1. Hub にリポジトリを作成します
  2. モデル、スケジューラー、またはパイプラインのファイルを保存し、後で再読み込みできるようにします
  3. これらのファイルを含むフォルダを Hub にアップロードします

アクセストークンであるtokenで、Hugging Faceアカウントにログインしてください。

ノートブック
hf CLI
from huggingface_hub import notebook_login

notebook_login()

短いID("my-controlnet-model")を指定してユーザーネームスペースにプッシュするか、"your-org/my-controlnet-model"を指定して組織にプッシュします。

モデル

モデルを Hub にプッシュするには、push_to_hub() を呼び出し、モデルのリポジトリ ID を指定します。

from diffusers import ControlNetModel

controlnet = ControlNetModel(
    block_out_channels=(32, 64),
    layers_per_block=2,
    in_channels=4,
    down_block_types=("DownBlock2D", "CrossAttnDownBlock2D"),
    cross_attention_dim=32,
    conditioning_embedding_out_channels=(16, 32),
)
controlnet.push_to_hub("my-controlnet-model")

push_to_hub() メソッドは、モデルの config.json ファイルを保存し、重みは自動的に safetensors ファイル として保存されます。

ControlNetModel.from_pretrained() を使用して、モデルを再度読み込みます。

model = ControlNetModel.from_pretrained("your-namespace/my-controlnet-model")

スケジューラー

Hub にスケジューラをプッシュするには、push_to_hub() を呼び出し、スケジューラのリポジトリ ID を指定します。

from diffusers import DDIMScheduler

scheduler = DDIMScheduler(
    beta_start=0.00085,
    beta_end=0.012,
    beta_schedule="scaled_linear",
    clip_sample=False,
    set_alpha_to_one=False,
)
scheduler.push_to_hub("my-ddim-scheduler")

push_to_hub() メソッドは、スケジューラーの scheduler_config.json ファイルを指定されたリポジトリに保存します。

from_pretrained()でスケジューラを再度読み込みます。

scheduler = DDIMScheduler.from_pretrained("your-namespace/my-ddim-scheduler")

パイプライン

To push a pipeline to the Hub, load it with from_pretrained(), then call push_to_hub() with a repository id.

import torch
from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(
    "Qwen/Qwen-Image", dtype=torch.bfloat16, device_map="cuda"  # or "mps", "xpu", "cpu"
)
pipeline.push_to_hub("your-namespace/my-qwen-image")

The push_to_hub() method saves each component to a subfolder in the repository. Load the pipeline again with DiffusionPipeline.from_pretrained().

pipeline = DiffusionPipeline.from_pretrained("your-namespace/my-qwen-image")

プライバシー

private=True を push_to_hub() に設定すると、モデル、スケジューラー、またはパイプラインのファイルを非公開にできます。

controlnet.push_to_hub("my-controlnet-model-private", private=True)

create_pr=True を渡すことで、デフォルトブランチに直接プッシュする代わりに、既存の Hub リポジトリに対してプルリクエストを開くことができます。

モデルとパイプラインは、fp16 などの名前付き重みファイルを使用する場合、push 時に variant= を受け入れます。スケジューラーは variant を使用しません。

Private リポジトリは、あなた自身にのみ表示されます。他のユーザーはリポジトリをクローンできず、検索結果にも表示されません。ユーザーがPrivate リポジトリのURLを保有していても、404 - Sorry, we can't find the page you are looking for が返されます。Private リポジトリからモデルを読み込むには、ログイン している必要があります。

Update on GitHub