Diffusers documentation

Partage de pipelines et de modèles

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Partage de pipelines et de modèles

Partagez vos pipelines, modèles et planificateurs sur le Hub avec PushToHubMixin. Ce mixin :

  1. crée un dépôt sur le Hub
  2. enregistre votre modèle, votre planificateur ou vos fichiers de pipeline afin qu’ils puissent être rechargés ultérieurement
  3. téléverse le dossier contenant ces fichiers sur le Hub

Connectez-vous à votre compte Hugging Face avec votre token d'accès.

notebook
hf CLI
from huggingface_hub import notebook_login

notebook_login()

Poussez vers votre espace utilisateur avec un identifiant court ("my-controlnet-model") ou vers une organisation avec "your-org/my-controlnet-model".

Modèles

Pour pousser un modèle vers le Hub, appelez push_to_hub() et spécifiez l'identifiant du dépôt du modèle.

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")

La méthode push_to_hub() enregistre le fichier config.json du modèle et les poids sont automatiquement enregistrés sous forme de fichiers safetensors.

Chargez à nouveau le modèle avec ControlNetModel.from_pretrained().

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

Planificateur

Pour pousser un planificateur vers le Hub, appelez push_to_hub() et spécifiez l'identifiant du dépôt du planificateur.

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")

La méthode push_to_hub() enregistre le fichier scheduler_config.json du planificateur dans le dépôt spécifié.

Chargez à nouveau le planificateur avec from_pretrained().

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

Pipeline

Pour pousser un pipeline vers le Hub, chargez-le avec from_pretrained(), puis appelez push_to_hub() avec un identifiant de dépôt.

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")

La méthode push_to_hub() enregistre chaque composant dans un sous-dossier du dépôt. Chargez à nouveau le pipeline avec DiffusionPipeline.from_pretrained().

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

Confidentialité

Définissez private=True dans push_to_hub() pour garder un modèle, un planificateur ou les fichiers d'un pipeline privés.

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

Passez create_pr=True pour ouvrir une pull request sur un dépôt Hub existant plutôt que de pousser directement sur la branche par défaut.

Les modèles et les pipelines acceptent également variant= lors de la publication si vous souhaitez un fichier de poids nommé tel que fp16. Les planificateurs n'utilisent pas variant.

Les dépôts privés ne sont visibles que par vous. Les autres utilisateurs ne pourront pas cloner le dépôt et il n’apparaîtra pas dans les résultats de recherche. Même si un utilisateur dispose de l’URL de votre dépôt privé, il recevra un 404 - Sorry, we can't find the page you are looking for. Vous devez être connecté pour charger un modèle depuis un dépôt privé.

Update on GitHub