Diffusers documentation
DreamLite
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 واحدة لكل خطوة | على الجهاز / زمن استجابة منخفض |
نقاط التفتيش الرسمية:
- النموذج الأساسي: carlofkl/DreamLite-base
- نموذج جوال مُقطّر: carlofkl/DreamLite-mobile
تكتشف كلا خطتي العمل تلقائيًا ما إذا كان الوضع هو توليد صورة من نص أو تحرير صورة، بناءً على ما إذا كان تم تقديم معامل
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
< source >( 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__
< source >( 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
< source >( 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__
< source >( 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
< source >( images: typing.Union[typing.List[PIL.Image.Image], numpy.ndarray] )
فئة الإخراج لخطوط أنابيب DreamLite.