Diffusers documentation
AutoPipeline
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 instanceAutoPipelineForImage2Image, 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:
- AutoPipelineForText2Image
- AutoPipelineForImage2Image
- AutoPipelineForInpainting
- AutoPipelineForText2Audio
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.