# Partage de pipelines et de modèles

Partagez vos pipelines, modèles et planificateurs sur le Hub avec [PushToHubMixin](/docs/diffusers/v0.43.0/fr/api/schedulers/overview#diffusers.utils.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](https://huggingface.co/settings/tokens) d'accès.

```py
from huggingface_hub import notebook_login

notebook_login()
```

```bash
hf auth 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()](/docs/diffusers/v0.43.0/fr/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) et spécifiez l'identifiant du dépôt du modèle.

```py
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()](/docs/diffusers/v0.43.0/fr/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) enregistre le fichier `config.json` du modèle et les poids sont automatiquement enregistrés sous forme de [fichiers safetensors](./other-formats#safetensors).

Chargez à nouveau le modèle avec [ControlNetModel.from_pretrained()](/docs/diffusers/v0.43.0/fr/api/models/overview#diffusers.ModelMixin.from_pretrained).

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

## Planificateur

Pour pousser un planificateur vers le Hub, appelez [push_to_hub()](/docs/diffusers/v0.43.0/fr/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) et spécifiez l'identifiant du dépôt du planificateur.

```py
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()](/docs/diffusers/v0.43.0/fr/api/schedulers/overview#diffusers.utils.PushToHubMixin.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()](/docs/diffusers/v0.43.0/fr/api/schedulers/overview#diffusers.SchedulerMixin.from_pretrained).

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

## Pipeline

Pour pousser un pipeline vers le Hub, chargez-le avec [from_pretrained()](/docs/diffusers/v0.43.0/fr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained), puis appelez [push_to_hub()](/docs/diffusers/v0.43.0/fr/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) avec un identifiant de dépôt.

```py
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()](/docs/diffusers/v0.43.0/fr/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) enregistre chaque composant dans un sous-dossier du dépôt. Chargez à nouveau le pipeline avec [DiffusionPipeline.from_pretrained()](/docs/diffusers/v0.43.0/fr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained).

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

## Confidentialité

Définissez `private=True` dans [push_to_hub()](/docs/diffusers/v0.43.0/fr/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) pour garder un modèle, un planificateur ou les fichiers d'un pipeline privés.

```py
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é](https://huggingface.co/docs/huggingface_hub/quick-start#login) pour charger un modèle depuis un dépôt privé.

