Diffusers documentation
パイプラインとモデルの共有
パイプラインとモデルの共有
PushToHubMixin を使用して、パイプライン、モデル、スケジューラーを Hub に共有できます。このミックスインは:
- Hub にリポジトリを作成します
- モデル、スケジューラー、またはパイプラインのファイルを保存し、後で再読み込みできるようにします
- これらのファイルを含むフォルダを Hub にアップロードします
アクセストークンであるtokenで、Hugging Faceアカウントにログインしてください。
from huggingface_hub import notebook_login
notebook_login()hf auth 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 リポジトリからモデルを読み込むには、ログイン している必要があります。