# Berbagi pipeline dan model

Bagikan pipeline, model, dan scheduler Anda di Hub dengan [PushToHubMixin](/docs/diffusers/main/id/api/schedulers/overview#diffusers.utils.PushToHubMixin). Mixin ini:

1. membuat repositori di Hub
2. menyimpan file model, scheduler, atau pipeline Anda agar dapat dimuat ulang kemudian
3. mengunggah folder yang berisi file-file ini ke Hub

Masuk ke akun Hugging Face Anda dengan [token](https://huggingface.co/settings/tokens) akses Anda.

```py
from huggingface_hub import notebook_login

notebook_login()
```

```bash
hf auth login
```

Push ke namespace pengguna Anda dengan id pendek (`"my-controlnet-model"`) atau ke org dengan `"your-org/my-controlnet-model"`.

## Model

Untuk mendorong model ke Hub, panggil [push_to_hub()](/docs/diffusers/main/id/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) dan tentukan id repositori model.

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

Metode [push_to_hub()](/docs/diffusers/main/id/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) menyimpan file `config.json` model dan bobotnya secara otomatis disimpan sebagai [file safetensors](./other-formats#safetensors).

Muat ulang model dengan [ControlNetModel.from_pretrained()](/docs/diffusers/main/id/api/models/overview#diffusers.ModelMixin.from_pretrained).

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

## Penjadwal

Untuk mendorong scheduler ke Hub, panggil [push_to_hub()](/docs/diffusers/main/id/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) dan tentukan id repositori dari scheduler tersebut.

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

Metode [push_to_hub()](/docs/diffusers/main/id/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) menyimpan file `scheduler_config.json` scheduler ke repositori yang ditentukan.

Load the scheduler again with [from_pretrained()](/docs/diffusers/main/id/api/schedulers/overview#diffusers.SchedulerMixin.from_pretrained).

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

## Pipeline

Untuk mendorong pipeline ke Hub, muat dengan [from_pretrained()](/docs/diffusers/main/id/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained), lalu panggil [push_to_hub()](/docs/diffusers/main/id/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) dengan id repositori.

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

Metode [push_to_hub()](/docs/diffusers/main/id/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) menyimpan setiap komponen ke subfolder di dalam repositori. Muat ulang pipeline dengan [DiffusionPipeline.from_pretrained()](/docs/diffusers/main/id/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained).

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

## Privasi

Set `private=True` di [push_to_hub()](/docs/diffusers/main/id/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) untuk menjaga file model, scheduler, atau pipeline tetap privat.

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

Lewati `create_pr=True` untuk membuka pull request pada repositori Hub yang sudah ada, alih-alih mendorong langsung ke branch default.

Model dan pipeline juga menerima `variant=` saat push jika Anda ingin file bobot bernama seperti `fp16`. Scheduler tidak menggunakan `variant`.

Repositori privat hanya terlihat oleh Anda. Pengguna lain tidak akan dapat meng-clone repositori tersebut dan repositori ini tidak akan muncul di hasil pencarian. Bahkan jika seorang pengguna memiliki URL ke repositori privat Anda, mereka akan menerima `404 - Sorry, we can't find the page you are looking for`. Anda harus [logged in](https://huggingface.co/docs/huggingface_hub/quick-start#login) untuk memuat model dari repositori privat.

