Diffusers documentation

Compartilhando pipelines e modelos

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Compartilhando pipelines e modelos

Compartilhe seus pipelines, modelos e agendadores no Hub com PushToHubMixin. Este mixin:

  1. cria um repositório no Hub
  2. salva os arquivos do seu modelo, agendador ou pipeline para que possam ser recarregados posteriormente
  3. envia a pasta contendo esses arquivos para o Hub

Faça login na sua conta do Hugging Face com o seu token de acesso.

notebook
hf CLI
from huggingface_hub import notebook_login

notebook_login()

Faça push para o namespace do seu usuário com um id curto ("my-controlnet-model") ou para uma organização com "your-org/my-controlnet-model".

Modelos

Para enviar um modelo para o Hub, chame push_to_hub() e especifique o id do repositório do modelo.

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

O método push_to_hub() salva o arquivo config.json do modelo e os pesos são salvos automaticamente como arquivos safetensors.

Carregue o modelo novamente com ControlNetModel.from_pretrained().

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

Agendador

Para enviar um agendador para o Hub, chame push_to_hub() e especifique o id do repositório do agendador.

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

O método push_to_hub() salva o arquivo scheduler_config.json do agendador no repositório especificado.

Carregue o agendador novamente com from_pretrained().

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

Pipeline

Para enviar um pipeline para o Hub, carregue-o com from_pretrained() e, em seguida, chame push_to_hub() com um id de repositório.

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

O método push_to_hub() salva cada componente em uma subpasta no repositório. Carregue o pipeline novamente com DiffusionPipeline.from_pretrained().

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

Privacidade

Defina private=True em push_to_hub() para manter os arquivos de um modelo, agendador ou pipeline privados.

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

Pass create_pr=True para abrir um pull request em um repositório existente no Hub, em vez de fazer push diretamente para a branch padrão.

Modelos e pipelines também aceitam variant= no push quando você deseja um arquivo de pesos nomeado, como fp16. Schedulers não usam variant.

Repositórios privados são visíveis apenas para você. Outros usuários não poderão clonar o repositório e ele não aparecerá nos resultados de busca. Mesmo que um usuário tenha a URL do seu repositório privado, ele receberá um 404 - Sorry, we can't find the page you are looking for. Você deve estar logado para carregar um modelo de um repositório privado.

Update on GitHub