Diffusers documentation

Общие конвейеры и модели

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

Общие конвейеры и модели

Делитесь своими конвейерами, моделями и планировщиками на Hub с помощью PushToHubMixin. Этот миксин:

  1. создаёт репозиторий на Hub
  2. сохраняет файлы вашей модели, планировщика или конвейера, чтобы их можно было загрузить позже
  3. загружает папку, содержащую эти файлы, в Hub

Войдите в свой аккаунт Hugging Face с помощью токена доступа token.

notebook
hf CLI
from huggingface_hub import notebook_login

notebook_login()

Загрузите модель в пространство имён пользователя с коротким идентификатором ("my-controlnet-model") или в организацию с именем "your-org/my-controlnet-model".

Модели

Чтобы отправить модель на Hub, вызовите push_to_hub() и укажите идентификатор репозитория модели.

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

Метод push_to_hub() сохраняет файл конфигурации модели config.json, а веса автоматически сохраняются в виде файлов safetensors.

Снова загрузите модель с помощью ControlNetModel.from_pretrained().

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

Планировщик

Чтобы отправить планировщик в Hub, вызовите push_to_hub() и укажите идентификатор репозитория планировщика.

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

Метод push_to_hub() сохраняет файл scheduler_config.json планировщика в указанное репозиторий.

Снова загрузите планировщик с помощью from_pretrained().

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

Pipeline

To push a pipeline to the Hub, load it with from_pretrained(), then call push_to_hub() with a repository id.

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

The push_to_hub() method saves each component to a subfolder in the repository. Load the pipeline again with DiffusionPipeline.from_pretrained().

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

Конфиденциальность

Укажите private=True в push_to_hub(), чтобы сделать файлы модели, планировщика или конвейера приватными.

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

Передайте create_pr=True, чтобы создать pull request в существующем репозитории на Hub, а не отправлять изменения напрямую в ветку по умолчанию.

Модели и конвейеры также принимают параметр variant= при загрузке, если вам нужен файл весов с определённым именем, например fp16. Планировщики не используют variant.

Приватные репозитории видны только вам. Другие пользователи не смогут клонировать репозиторий, и он не будет отображаться в результатах поиска. Даже если пользователь имеет URL вашего приватного репозитория, он получит 404 - Sorry, we can't find the page you are looking for. Чтобы загрузить модель из приватного репозитория, вы должны быть авторизованы.

Update on GitHub