Diffusers documentation

DreamLite

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

DreamLite

DreamLite هو نموذج لتحويل النص إلى صورة وتحرير الصور من ByteDance. يجمع بين U-Net ثنائي الأبعاد مخصص (DreamLiteUNetModel) ومشفّر متعدد الوسائط Qwen3-VL كمشفّر للتعليمات النصية/الصورية، ويستخدم AutoencoderTiny (من نمط TAESD) كـ VAE لتشفير وفك تشفير الكمون بسرعة.

يتم عرض خطّتي أنابيب:

خط أنابيبالأنماطCFGحالة الاستخدام
DreamLitePipelineنص إلى صورة و تحرير الصور (يتم اختيارها تلقائيًا بناءً على ما إذا كان image هو None)CFG مزدوج بفرعين (3) (guidance_scale للفرع النصي، image_guidance_scale للفرع الصوري، على غرار InstructPix2Pix)أعلى جودة
DreamLiteMobilePipelineنص إلى صورة و تحرير الصور (يتم اختيارها تلقائيًا بناءً على ما إذا كان image هو None)لا شيء — مُصغَّر، تمريرة UNet واحدة لكل خطوةعلى الجهاز / زمن استجابة منخفض

نقاط التفتيش الرسمية:

تكتشف كلا خطتي العمل تلقائيًا ما إذا كان الوضع هو توليد صورة من نص أو تحرير صورة، بناءً على ما إذا كان تم تقديم معامل image. لا توجد فئة منفصلة باسم Img2Img.

عند تحميل صورة مدخلات للتحرير، يُفضَّل استخدام diffusers.utils.load_image(...) بدلاً من PIL.Image.open(...) الخام. يفرض load_image تحويلًا إلى RGB ويطبّق اتجاه EXIF، وكلاهما تفترضه خط المعالجة. استخدام Image.open بسيط لمصدر RGBA / لوحة ألوان / مُدوَّر بـ EXIF سيُنتج بشكل صامت شروطًا كامنة مختلفة ويُسهم في تدهور جودة المخرجات.

النص إلى صورة (أساسي)

import torch
from diffusers import DreamLitePipeline

pipe = DreamLitePipeline.from_pretrained("carlofkl/DreamLite-base", revision="diffusers", dtype=torch.bfloat16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

image = pipe(
    prompt="a dog running on the grass",
    negative_prompt="",
    height=1024,
    width=1024,
    num_inference_steps=28,
    generator=torch.Generator("cpu").manual_seed(42),
).images[0]
image.save("dreamlite_t2i.png")

تحرير الصور (الأساسي)

مرّر image للدخول إلى وضع التحرير. يكون كل من guidance_scale (الفرع النصي) وimage_guidance_scale (الفرع الصوري) نشطين هنا.

import torch
from diffusers import DreamLitePipeline
from diffusers.utils import load_image

pipe = DreamLitePipeline.from_pretrained("carlofkl/DreamLite-base", revision="diffusers", dtype=torch.bfloat16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

source = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png")

image = pipe(
    prompt="turn the cat into a corgi",
    image=source,
    height=1024,
    width=1024,
    num_inference_steps=28,
    generator=torch.Generator("cpu").manual_seed(42),
).images[0]
image.save("dreamlite_edit.png")

النص إلى صورة (جوال)

يتم تقطير خط أنابيب الجوال ويتخطى CFG بالكامل — تمريرة واحدة للأمام في UNet لكل خطوة. يقبل نفس الحجة prompt / height / width / num_inference_steps، لكنه يتجاهل guidance_scale وimage_guidance_scale إذا تم تمريرها (يُسجَّل تحذير).

import torch
from diffusers import DreamLiteMobilePipeline

pipe = DreamLiteMobilePipeline.from_pretrained("carlofkl/DreamLite-mobile", revision="diffusers", dtype=torch.bfloat16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

image = pipe(
    prompt="a dog running on the grass",
    height=1024,
    width=1024,
    num_inference_steps=4,
    generator=torch.Generator("cpu").manual_seed(42),
).images[0]
image.save("dreamlite_mobile_t2i.png")

تحرير الصور (جوال)

import torch
from diffusers import DreamLiteMobilePipeline
from diffusers.utils import load_image

pipe = DreamLiteMobilePipeline.from_pretrained("carlofkl/DreamLite-mobile", revision="diffusers", dtype=torch.bfloat16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

source = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png")

image = pipe(
    prompt="turn the cat into a corgi",
    image=source,
    height=1024,
    width=1024,
    num_inference_steps=4,
    generator=torch.Generator("cpu").manual_seed(42),
).images[0]
image.save("dreamlite_mobile_edit.png")

ملاحظات وحدود

  • تفرض كلا خطتي العمل batch_size = 1 داخلياً؛ ويتحكم num_images_per_prompt في عدد العينات المستخرجة من نفس الأمر النصي بدلاً من الدفعات المتوازية.
  • المشفر المُدخل هو Qwen3-VL، وهو نموذج متعدد الوسائط. لذا فإن تحميل خط الأنابيب الكامل يتطلب ذاكرة GPU كافية لكل من U-Net ومشفر النص Qwen3-VL (حوالي 4 جيجابايت + حوالي 0.7 جيجابايت في bf16 للإصدار الأساسي).
  • يكون AutoencoderTiny هو VAE ويعرّض encoder_block_out_channels؛ ويُشتق vae_scale_factor منه عند تهيئة خط الأنابيب.

DreamLitePipeline

فئة diffusers.DreamLitePipeline

< >

( text_encoder: Qwen3VLForConditionalGenerationtokenizer: AutoTokenizerprocessor: Qwen3VLProcessorvae: AutoencoderTinyunet: DreamLiteUNetModelscheduler: FlowMatchEulerDiscreteScheduler )

خط أنابيب DreamLite لتوليد الصور من النص وتحرير الصور بناءً على التعليمات.

يدعم نفس خط الأنابيب كلا الوضعين؛ يتم اكتشاف وضع التشغيل تلقائيًا من المدخلات:

  • image is None -> نص إلى صورة (CFG واحد على النص).
  • image is not None -> من صورة إلى صورة / تعديل تعليمات (CFG مزدوج: نص + صورة).

المكوّنات: text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): مشفّر نصي/بصري متعدد الوسائط يُستخدم لإنتاج تمثيلات شرطية. tokenizer ([~transformers.AutoTokenizer]): مجزّئ للنص فقط (وضع التوليد). processor ([~transformers.Qwen3VLProcessor]): معالج متعدد الوسائط لوضع التعديل (قالب النص + الصورة). vae ([~diffusers.AutoencoderTiny]): VAE صغير مناسب للأجهزة المحمولة لتشفير/فك تشفير الكمون. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet (GQA + qk_norm + طبقات التفكيك العميق). scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): مجدول أويلر لمطابقة التدفق مع إزاحة ديناميكية.

ملاحظة: batch_size مُقيَّد حاليًا بقيمة 1؛ num_images_per_prompt مدعوم.

__call__

< >

( prompt: typing.Optional[str] = Nonenegative_prompt: typing.Optional[str] = Noneimage: typing.Optional[PIL.Image.Image] = Noneheight: typing.Optional[int] = Nonewidth: typing.Optional[int] = Noneguidance_scale: float = 3.5image_guidance_scale: float = 1.5num_inference_steps: int = 30sigmas: typing.Optional[typing.List[float]] = Nonenum_images_per_prompt: typing.Optional[int] = 1generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = Noneoutput_type: typing.Optional[str] = 'pil'return_dict: bool = Truemax_sequence_length: int = 200text_pad_embedding: typing.Optional[torch.Tensor] = None )

المعاملات

  • prompt — نص الأمر.
  • negative_prompt — نص موجه سلبي (الافتراضي هو سلسلة فارغة).
  • image — صورة إدخال اختيارية. إذا تم تقديمها، يعمل خط الأنابيب في وضع التحرير / من صورة إلى صورة مع توجيه حر من التصنيفي مزدوج؛ وإلا فإنه يعمل في وضع من نص إلى صورة.
  • height — دقة الإخراج (الارتفاع). القيمة الافتراضية هي default_sample_size * vae_scale_factor (1024). تنطبق نفس القيمة الافتراضية في كل من T2I و I2I؛ مرّر قيمة صريحة لتجاوزها.
  • width — دقة الإخراج (العرض). القيمة الافتراضية هي default_sample_size * vae_scale_factor (1024). تنطبق نفس القيمة الافتراضية في كل من T2I و I2I؛ مرّر قيمة صريحة لتجاوزها.
  • guidance_scale — مقياس CFG على فرع النص (في كلا الوضعين).
  • image_guidance_scale — مقياس CFG إضافي على فرع الصورة (وضع التحرير فقط).
  • num_inference_steps — عدد خطوات إزالة الضوضاء.
  • sigmas — قيم sigmas صريحة اختيارية لـ FlowMatch؛ الافتراضي هو linspace منتظم.
  • num_images_per_prompt — عدد الصور الناتجة لكل موجه (ملاحظة: يُجبر batch_size على القيمة 1).
  • generator — مولّد عشوائي (أو مولّدات عشوائية).
  • output_type — "pil" أو "np" أو "pt" أو "latent".
  • return_dict — إذا كانت القيمة True، تُرجع DreamLitePipelineOutput؛ وإلا تُرجع tuple (images,).
  • max_sequence_length — الحد الأقصى لعدد رموز (tokens) موجه المستخدم التي تُحتفظ بها بعد إزالة بادئة قالب المحادثة. ينطبق هذا فقط على وضع generate (حيث يستخدم وضع edit الحشو الأصلي لمعالج الوسائط المتعددة).
  • text_pad_embedding — تضمين اختياري مُتعلَّم للمواضع المقنّعة.

شغّل خط أنابيب DreamLite.

DreamLiteMobilePipeline

فئة diffusers.DreamLiteMobilePipeline

< >

( text_encoder: Qwen3VLForConditionalGenerationtokenizer: AutoTokenizerprocessor: Qwen3VLProcessorvae: AutoencoderTinyunet: DreamLiteUNetModelscheduler: FlowMatchEulerDiscreteScheduler )

خط أنابيب DreamLite Mobile: نسخة مُصغّرة وخالية من التوجيه الحر من المُصنِّف من DreamLitePipeline للاستدلال السريع بعدد قليل من الخطوات (الافتراضي 4 خطوات).

يتم اكتشاف وضع التشغيل تلقائيًا من المدخلات (على غرار خط الأنابيب الأساسي):

  • image is None -> من النص إلى الصورة.
  • image is not None -> من صورة إلى صورة / تعديل تعليمات.

بما أن التوجيه الحر من المُصنِّف مُستخلص، فإن guidance_scale وimage_guidance_scale مقبولتان من أجل توافق الواجهة البرمجية مع DreamLitePipeline لكنهما يُتجاهلان في حلقة إزالة الضوضاء. كما أن negative_prompt غير موجودة عمداً.

المكوّنات (مطابقة لخط الأنابيب الأساسي): text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): مشفّر متعدد الوسائط للنص/الرؤية. tokenizer ([~transformers.AutoTokenizer]): مجزّئ للنص فقط (وضع التوليد). processor ([~transformers.Qwen3VLProcessor]): معالج متعدد الوسائط لوضع التحرير. vae ([~diffusers.AutoencoderTiny]): VAE صغير مناسب للأجهزة المحمولة. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet. scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): مجدول أويلر لمطابقة التدفق مع إزاحة ديناميكية.

ملاحظة: batch_size مُقيَّد حاليًا بقيمة 1؛ num_images_per_prompt مدعوم.

__call__

< >

( prompt: typing.Union[str, typing.List[str]] = Noneimage: typing.Optional[PIL.Image.Image] = Noneheight: typing.Optional[int] = Nonewidth: typing.Optional[int] = Nonenum_inference_steps: int = 4guidance_scale: typing.Optional[float] = Noneimage_guidance_scale: typing.Optional[float] = Nonesigmas: typing.Optional[typing.List[float]] = Nonenum_images_per_prompt: typing.Optional[int] = 1generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = Noneoutput_type: typing.Optional[str] = 'pil'return_dict: bool = Truemax_sequence_length: int = 200text_pad_embedding: typing.Optional[torch.Tensor] = None )

المعاملات

  • prompt — نص الأمر.
  • image — صورة إدخال اختيارية. إذا تم تقديمها، يتم التشغيل في وضع التحرير / من صورة إلى صورة؛ وإلا يتم التشغيل في وضع من نص إلى صورة.
  • height — دقة الإخراج (الارتفاع). القيمة الافتراضية هي default_sample_size * vae_scale_factor (1024).
  • width — دقة الإخراج (العرض). القيمة الافتراضية هي default_sample_size * vae_scale_factor (1024).
  • num_inference_steps — عدد خطوات إزالة الضوضاء. القيمة الافتراضية هي 4 (مُقطَّرة).
  • guidance_scale — يُقبل من أجل توافق الواجهة البرمجية مع DreamLitePipeline؛ يُتجاهل لأن CFG تم استخلاصه.
  • image_guidance_scale — يُقبل من أجل توافق الواجهة البرمجية مع DreamLitePipeline؛ يُتجاهل لأن CFG تم استخلاصه.
  • sigmas — قيم sigmas صريحة اختيارية لـ FlowMatch؛ الافتراضي هو linspace منتظم.
  • num_images_per_prompt — عدد الصور الناتجة لكل موجه (ملاحظة: يُجبر batch_size على القيمة 1).
  • generator — مولّد عشوائي (أو مولّدات عشوائية).
  • output_type — "pil" أو "np" أو "pt" أو "latent".
  • return_dict — إذا كانت القيمة True، تُرجع DreamLitePipelineOutput؛ وإلا تُرجع (images,).
  • max_sequence_length — الحد الأقصى لعدد رموز (tokens) موجه المستخدم التي تُحتفظ بها بعد إزالة بادئة قالب المحادثة. ينطبق هذا فقط على وضع generate (حيث يستخدم وضع edit الحشو الأصلي لمعالج الوسائط المتعددة).
  • text_pad_embedding — تضمين اختياري مُتعلَّم للمواضع المقنّعة.

شغّل خط أنابيب DreamLite Mobile المُقطّر.

DreamLitePipelineOutput

فئة diffusers.DreamLitePipelineOutput

< >

( images: typing.Union[typing.List[PIL.Image.Image], numpy.ndarray] )

المعاملات

  • images (List[PIL.Image.Image] أو np.ndarray) — قائمة من صور PIL منزوعة الضوضاء بطول batch_size أو مصفوفة NumPy بأبعاد (batch_size, height, width, num_channels). تمثل صور PIL أو مصفوفة NumPy الصور منزوعة الضوضاء من خط أنابيب الانتشار.

فئة الإخراج لخطوط أنابيب DreamLite.

Update on GitHub