Diffusers documentation

AutoPipeline

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoPipeline

AutoPipeline, görev ve modele göre doğru pipeline alt sınıfını otomatik olarak seçen bir görev-model pipeline'ıdır. Spesifik pipeline alt sınıfının adını bilmek zorunda kalmadan, farklı pipeline alt sınıflarını yükleme karmaşıklığını yönetir.

Bu, modele göre otomatik olarak pipeline alt sınıfını seçen, yalnızca model içeren bir pipeline olan DiffusionPipeline'den farklıdır.

AutoPipelineForImage2Image.from_pretrained(model_id)
        |
        +-- read model_index.json  (e.g. StableDiffusionXLPipeline)
        +-- task mapping           (image-to-image)
        |
        v
StableDiffusionXLImg2ImgPipeline   // returned instance

AutoPipelineForImage2Image, yalnızca görüntüden görüntüye görevlerde kullanılabilen, görevle ilgili alt sınıfı (örneğin StableDiffusionXLImg2ImgPipeline) döndürür.

import torch
from diffusers import AutoPipelineForImage2Image

pipeline = AutoPipelineForImage2Image.from_pretrained(
  "RunDiffusion/Juggernaut-XL-v9", dtype=torch.bfloat16, device_map="cuda",  # or "mps", "xpu", "cpu"
)
print(pipeline)
# StableDiffusionXLImg2ImgPipeline {
#   "_class_name": "StableDiffusionXLImg2ImgPipeline",
#   ...
# }

Aynı modeli DiffusionPipeline ile yüklemek, varsayılan metinden görüntüye alt sınıfı olan StableDiffusionXLPipeline'i döndürür. Bu pipeline metinden görüntüye işlemler içindir. Görüntüden görüntüye veya inpainting işlemleri için AutoPipelineForImage2Image veya AutoPipelineForInpainting gibi bir görev AutoPipeline'i veya eşleşen görev özel alt sınıfını yükleyin.

import torch
from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(
  "RunDiffusion/Juggernaut-XL-v9", dtype=torch.bfloat16, device_map="cuda",  # or "mps", "xpu", "cpu"
)
print(pipeline)
# StableDiffusionXLPipeline {
#   "_class_name": "StableDiffusionXLPipeline",
#   ...
# }

from_pipe ile görevleri değiştirin

Load a task AutoPipeline once, then switch tasks with from_pipe() without downloading the weights again. Components are reused from the source pipeline.

import torch
from diffusers import AutoPipelineForText2Image, AutoPipelineForImage2Image

pipeline_t2i = AutoPipelineForText2Image.from_pretrained(
  "RunDiffusion/Juggernaut-XL-v9", dtype=torch.bfloat16, device_map="cuda",  # or "mps", "xpu", "cpu"
)
pipeline_i2i = AutoPipelineForImage2Image.from_pipe(pipeline_t2i)

Daha fazla ayrıntı için Birden çok boru hattında modelleri yeniden kullanma bölümüne bakın.

Bir modelin desteklenip desteklenmediğini görmek için eslemeleri kontrol edin. Desteklenmeyen bir modeli yüklemeye çalışmak bir hata döndürür.

import torch
from diffusers import AutoPipelineForImage2Image

pipeline = AutoPipelineForImage2Image.from_pretrained(
    "openai/shap-e-img2img", dtype=torch.float16,
)
"ValueError: AutoPipeline can't find a pipeline linked to ShapEImg2ImgPipeline for None"

Dört tür AutoPipeline sınıfı vardır:

Bu sınıfların her birinde, bir pipeline'ı görevine özgü alt sınıfına bağlayan önceden tanımlanmış bir eşleme vardır.

from_pretrained() çağrıldığında, sınıf adı model_index.json dosyasından çıkarılır ve görev için eşlemeye göre uygun pipeline alt sınıfı seçilir.

Update on GitHub