Diffusers documentation

Compartilhando pipelines e modelos

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.43.0).
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