Buckets:

mishig's picture
|
download
raw
17.8 kB
# DreamLite
DreamLite هو نموذج لتحويل النص إلى صورة وتحرير الصور من ByteDance. يجمع بين U-Net ثنائي الأبعاد مخصص (`DreamLiteUNetModel`) ومشفّر متعدد الوسائط `Qwen3-VL` كمشفّر للتعليمات النصية/الصورية، ويستخدم VAE من نوع `AutoencoderTiny` (بأسلوب TAESD) لتشفير وفك تشفير الكمون بسرعة.
يتم عرض خطّتي أنابيب:
| خط أنابيب | الأنماط | CFG | حالة الاستخدام |
|---|---|---|---|
| [DreamLitePipeline](/docs/diffusers/main/ar/api/pipelines/dreamlite#diffusers.DreamLitePipeline) | نص إلى صورة **و** تحرير الصور (يتم اختيارها تلقائيًا بناءً على ما إذا كان `image` هو `None`) | CFG مزدوج بفرعين (3) (`guidance_scale` للفرع النصي، `image_guidance_scale` للفرع الصوري، على غرار InstructPix2Pix) | أعلى جودة |
| [DreamLiteMobilePipeline](/docs/diffusers/main/ar/api/pipelines/dreamlite#diffusers.DreamLiteMobilePipeline) | نص إلى صورة **و** تحرير الصور (يتم اختيارها تلقائيًا بناءً على ما إذا كان `image` هو `None`) | لا شيء — مُصغَّر، تمريرة UNet واحدة لكل خطوة | على الجهاز / زمن استجابة منخفض |
نقاط التفتيش الرسمية:
* النموذج الأساسي: [carlofkl/DreamLite-base](https://huggingface.co/carlofkl/DreamLite-base)
* نموذج جوال مُقطّر: [carlofkl/DreamLite-mobile](https://huggingface.co/carlofkl/DreamLite-mobile)
> [!TIP]
> تكتشف كلا خطتي العمل تلقائيًا ما إذا كان الوضع هو توليد صورة من نص أو تحرير صورة، بناءً على ما إذا كان تم تقديم معامل `image`. لا توجد فئة منفصلة باسم `Img2Img`.
> [!TIP]
> عند تحميل صورة مدخلات للتحرير، يُفضَّل استخدام `diffusers.utils.load_image(...)` بدلاً من `PIL.Image.open(...)` الخام. يفرض `load_image` تحويلًا إلى RGB ويطبّق اتجاه EXIF، وكلاهما تفترضه خط المعالجة. أما استخدام `Image.open` العادي لمصدر بصيغة RGBA / لوحة ألوان / مُدوَّر عبر EXIF فسيُنتج بشكل صامت شروطًا كامنة مختلفة ويُسهم في تدهور جودة المخرجات.
## النص إلى صورة (أساسي)
```python
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` (الفرع الصوري) نشطين هنا.
```python
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` إذا تم تمريرها (يُسجَّل تحذير).
```python
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")
```
## تحرير الصور (جوال)
```python
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]]
#### diffusers.DreamLitePipeline[[diffusers.DreamLitePipeline]]
```python
diffusers.DreamLitePipeline(text_encoder: Qwen3VLForConditionalGeneration, tokenizer: AutoTokenizer, processor: Qwen3VLProcessor, vae: AutoencoderTiny, unet: DreamLiteUNetModel, scheduler: FlowMatchEulerDiscreteScheduler)
```
[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dreamlite/pipeline_dreamlite.py#L155)
خط أنابيب 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__[[diffusers.DreamLitePipeline.__call__]]
```python
__call__(prompt: typing.Optional[str] = None, negative_prompt: typing.Optional[str] = None, image: typing.Optional[PIL.Image.Image] = None, height: typing.Optional[int] = None, width: typing.Optional[int] = None, guidance_scale: float = 3.5, image_guidance_scale: float = 1.5, num_inference_steps: int = 30, sigmas: typing.Optional[typing.List[float]] = None, num_images_per_prompt: typing.Optional[int] = 1, generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = None, output_type: typing.Optional[str] = 'pil', return_dict: bool = True, max_sequence_length: int = 200, text_pad_embedding: typing.Optional[torch.Tensor] = None)
```
[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dreamlite/pipeline_dreamlite.py#L388)
**المعاملات:**
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](/docs/diffusers/main/ar/api/pipelines/dreamlite#diffusers.DreamLitePipelineOutput)؛ وإلا تُرجع tuple `(images,)`.
max_sequence_length : الحد الأقصى لعدد رموز موجه المستخدم التي تُحفظ بعد إزالة بادئة قالب المحادثة. ينطبق هذا فقط على وضع `generate` (حيث يستخدم وضع `edit` الحشو الأصلي لمعالج الوسائط المتعددة).
text_pad_embedding : تضمين اختياري مُتعلَّم للمواضع المقنّعة.
**يعيد:**
[DreamLitePipelineOutput](/docs/diffusers/main/ar/api/pipelines/dreamlite#diffusers.DreamLitePipelineOutput) أو `tuple`.
شغّل خط أنابيب DreamLite.
## DreamLiteMobilePipeline[[diffusers.DreamLiteMobilePipeline]]
#### diffusers.DreamLiteMobilePipeline[[diffusers.DreamLiteMobilePipeline]]
```python
diffusers.DreamLiteMobilePipeline(text_encoder: Qwen3VLForConditionalGeneration, tokenizer: AutoTokenizer, processor: Qwen3VLProcessor, vae: AutoencoderTiny, unet: DreamLiteUNetModel, scheduler: FlowMatchEulerDiscreteScheduler)
```
[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dreamlite/pipeline_dreamlite_mobile.py#L156)
خط أنابيب DreamLite **Mobile**: نسخة مُصغّرة وخالية من التوجيه الحر من المُصنِّف من [DreamLitePipeline](/docs/diffusers/main/ar/api/pipelines/dreamlite#diffusers.DreamLitePipeline) للاستدلال السريع بعدد قليل من الخطوات (الافتراضي 4 خطوات).
يتم اكتشاف وضع التشغيل تلقائيًا من المدخلات (على غرار خط الأنابيب الأساسي):
- `image is None` -> من النص إلى الصورة.
- `image is not None` -> من صورة إلى صورة / تعديل تعليمات.
بما أن التوجيه الحر من المُصنِّف **مُستخلص**، فإن `guidance_scale` و`image_guidance_scale` مقبولة من أجل توافق الواجهة البرمجية مع [DreamLitePipeline](/docs/diffusers/main/ar/api/pipelines/dreamlite#diffusers.DreamLitePipeline) لكنها تُتجاهل في حلقة إزالة الضوضاء. كما أن `negative_prompt` غير موجودة عمداً.
Components (مطابق لخط الأنابيب الأساسي): 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__[[diffusers.DreamLiteMobilePipeline.__call__]]
```python
__call__(prompt: typing.Union[str, typing.List[str]] = None, image: typing.Optional[PIL.Image.Image] = None, height: typing.Optional[int] = None, width: typing.Optional[int] = None, num_inference_steps: int = 4, guidance_scale: typing.Optional[float] = None, image_guidance_scale: typing.Optional[float] = None, sigmas: typing.Optional[typing.List[float]] = None, num_images_per_prompt: typing.Optional[int] = 1, generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = None, output_type: typing.Optional[str] = 'pil', return_dict: bool = True, max_sequence_length: int = 200, text_pad_embedding: typing.Optional[torch.Tensor] = None)
```
[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dreamlite/pipeline_dreamlite_mobile.py#L384)
**المعاملات:**
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](/docs/diffusers/main/ar/api/pipelines/dreamlite#diffusers.DreamLitePipeline)؛ **يتم تجاهله** لأن CFG تم استخلاصه.
image_guidance_scale : تم قبوله لضمان توافق الواجهة البرمجية مع [DreamLitePipeline](/docs/diffusers/main/ar/api/pipelines/dreamlite#diffusers.DreamLitePipeline)؛ **يتم تجاهله** لأن CFG تم استخلاصه.
sigmas : قيم sigmas صريحة اختيارية لـ FlowMatch؛ الافتراضي هو linspace منتظم.
num_images_per_prompt : عدد الصور المُخرَجة لكل موجه (ملاحظة: يُجبر `batch_size` على القيمة 1).
generator : مولّد عشوائي أو أكثر.
output_type : `"pil"` أو `"np"` أو `"pt"` أو `"latent"`.
return_dict : إذا كانت القيمة True، تُرجع [DreamLitePipelineOutput](/docs/diffusers/main/ar/api/pipelines/dreamlite#diffusers.DreamLitePipelineOutput)؛ وإلا `(images,)`.
max_sequence_length : الحد الأقصى لعدد رموز موجه المستخدم التي تُحفظ بعد إزالة بادئة قالب المحادثة. ينطبق هذا فقط على وضع `generate` (حيث يستخدم وضع `edit` الحشو الأصلي لمعالج الوسائط المتعددة).
text_pad_embedding : تضمين اختياري مُتعلَّم للمواضع المقنّعة.
**يعيد:**
[DreamLitePipelineOutput](/docs/diffusers/main/ar/api/pipelines/dreamlite#diffusers.DreamLitePipelineOutput) أو `tuple`.
شغّل خط أنابيب DreamLite Mobile المُقطّر.
## DreamLitePipelineOutput[[diffusers.DreamLitePipelineOutput]]
#### diffusers.DreamLitePipelineOutput[[diffusers.DreamLitePipelineOutput]]
```python
diffusers.DreamLitePipelineOutput(images: typing.Union[typing.List[PIL.Image.Image], numpy.ndarray])
```
[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dreamlite/pipeline_output.py#L25)
**المعاملات:**
images (`List[PIL.Image.Image]` أو `np.ndarray`) : قائمة من صور PIL منزوعة الضوضاء بطول `batch_size` أو مصفوفة NumPy بأبعاد `(batch_size, height, width, num_channels)`. تمثل صور PIL أو مصفوفة NumPy الصور منزوعة الضوضاء من خط أنابيب الانتشار.
فئة الإخراج لخطوط أنابيب DreamLite.

Xet Storage Details

Size:
17.8 kB
·
Xet hash:
02ecc1b3aa22079d91dd41740b4ad825b6948ac97ee476dbf8f4811172763647

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.