Diffusers documentation

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

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