To push a model to the Hub, call [`~diffusers.utils.PushToHubMixin.push_to_hub`] and specify the repository id of the model to be stored on the Hub:  
```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")
```  
For models, you can also specify the [*variant*](loading#checkpoint-variants) of the weights to push to the Hub. For example, to push `fp16` weights:  
```py
controlnet.push_to_hub("my-controlnet-model", variant="fp16")
```  
The [`~diffusers.utils.PushToHubMixin.push_to_hub`] function saves the model's `config.json` file and the weights are automatically saved in the `safetensors` format.  
Now you can reload the model from your repository on the Hub:  
```py
model = ControlNetModel.from_pretrained("your-namespace/my-controlnet-model")
```
/Users/nielsrogge/Documents/python_projecten/diffusers/docs/source/en/using-diffusers/push_to_hub.md