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 هو خط أنابيب مهمة ونموذج يختار تلقائيًا الفئة الفرعية الصحيحة لخط الأنابيب بناءً على المهمة. يتعامل مع تعقيد تحميل فئات خطوط الأنابيب الفرعية المختلفة دون الحاجة إلى معرفة اسم الفئة الفرعية المحدد لخط الأنابيب.

وهذا يختلف عن DiffusionPipeline، وهو خط أنابيب للنموذج فقط يختار تلقائيًا الفئة الفرعية للخط الأنابيب بناءً على النموذج.

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

يعيد AutoPipelineForImage2Image الفئة الفرعية الخاصة بالمهمة (على سبيل المثال، StableDiffusionXLImg2ImgPipeline)، والتي يمكن استخدامها فقط لمهام تحويل الصورة إلى صورة.

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",
#   ...
# }

عند تحميل النموذج نفسه باستخدام DiffusionPipeline، يُعاد الفرع الفرعي الافتراضي لتحويل النص إلى صورة، وهو StableDiffusionXLPipeline. هذا الخطّ الأنابيب مخصص لتحويل النص إلى صورة. أما لتحويل الصورة إلى صورة أو لإعادة التلوين (Inpainting)، فحمّل خطّ أنابيب تلقائيًا للمهمة مثل AutoPipelineForImage2Image أو AutoPipelineForInpainting، أو الفرع الفرعي المحدد للمهمة المطابق.

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

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)

راجع إعادة استخدام النماذج في خطوط أنابيب متعددة لمزيد من التفاصيل.

تحقق من الخرائط لمعرفة ما إذا كان النموذج مدعوماً أم لا. محاولة تحميل نموذج غير مدعوم تعيد خطأً.

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"

هناك أربعة أنواع من فئات AutoPipeline:

لكلٍّ من هذه الفئات تعيين مسبق، يربط خط الأنابيب بفئة فرعية مخصصة للمهمة الخاصة بها.

عند استدعاء from_pretrained()، يستخرج اسم الفئة من ملف model_index.json ويختار فئة خط الأنابيب الفرعية المناسبة للمهمة بناءً على الترميز.

Update on GitHub