Buckets:
| # Flux2 | |
| Flux.2 هي سلسلة النماذج الحديثة لتوليد الصور من Black Forest Labs، وقد سبقتها سلسلة [Flux.1](./flux). إنها نموذج جديد كليًا بهيكل معماري جديد وتدريب مسبق تم من الصفر! | |
| يمكن العثور على نقاط التفتيش الأصلية لنموذج Flux [هنا](https://huggingface.co/black-forest-labs). ويمكن العثور على كود الاستدلال الأصلي [هنا](https://github.com/black-forest-labs/flux2). | |
| > [!TIP] | |
| > قد يكون تشغيل Flux2 مكلفًا إلى حد كبير على أجهزة العتاد الاستهلاكي. ومع ذلك، يمكنك تنفيذ مجموعة من التحسينات لتشغيله بشكل أسرع وبطريقة أكثر كفاءة في استخدام الذاكرة. راجع [هذا القسم](https://huggingface.co/blog/sd3#memory-optimizations-for-sd3) لمزيد من التفاصيل. بالإضافة إلى ذلك، يمكن أن يستفيد Flux من التكميم (Quantization) لتحسين كفاءة الذاكرة مقابل زيادة في زمن الاستدلال (Inference Latency). راجع [هذا المنشور على المدونة](https://huggingface.co/blog/quanto-diffusers) لمعرفة المزيد. | |
| > | |
| > يمكن أن يسرّع [التخزين المؤقت](../../optimization/cache) الاستدلال أيضًا من خلال تخزين المخرجات الوسيطة وإعادة استخدامها. | |
| ## توسيع عينات التسمية | |
| يمكن لـ Flux.2 أن يولّد مخرجات أفضل بشكل محتمل عند استخدام أوامر (prompts) أفضل. يمكننا "تحسين" الأمر المُدخل عن طريق ضبط معامل `caption_upsample_temperature` ضمن معاملات استدعاء خط الأنابيب. يوصي [التنفيذ الرسمي](https://github.com/black-forest-labs/flux2/blob/5a5d316b1b42f6b59a8c9194b77c8256be848432/src/flux2/text_encoder.py#L140) بأن تكون قيمة هذا المعامل 0.15. | |
| ## Flux2Pipeline[[diffusers.Flux2Pipeline]] | |
| #### diffusers.Flux2Pipeline[[diffusers.Flux2Pipeline]] | |
| ```python | |
| diffusers.Flux2Pipeline(scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKLFlux2, text_encoder: Mistral3ForConditionalGeneration, tokenizer: AutoProcessor, transformer: Flux2Transformer2DModel) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2.py#L251) | |
| **المعاملات:** | |
| transformer ([Flux2Transformer2DModel](/docs/diffusers/main/ar/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel)) : معمارية Transformer الشرطية (MMDiT) لإزالة الضوضاء من كامنات الصورة المُرمّزة. | |
| scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : مُجدوِل يُستخدم بالاقتران مع `transformer` لإزالة الضوضاء من كامنات الصورة المُرمَّزة. | |
| vae (`AutoencoderKLFlux2`) : نموذج الترميز التحويلي التبايني (VAE) لتشفير الصور وفك تشفيرها إلى تمثيلات كامنة ومنها. | |
| text_encoder (`Mistral3ForConditionalGeneration`) : [Mistral3ForConditionalGeneration](https://huggingface.co/docs/transformers/en/model_doc/mistral3#transformers.Mistral3ForConditionalGeneration) | |
| tokenizer (`AutoProcessor`) : مُجزِّئ من الفئة [PixtralProcessor](https://huggingface.co/docs/transformers/en/model_doc/pixtral#transformers.PixtralProcessor). | |
| خط أنابيب Flux2 لتوليد الصور من النص. | |
| مرجع: [https://bfl.ai/blog/flux-2](https://bfl.ai/blog/flux-2) | |
| #### __call__[[diffusers.Flux2Pipeline.__call__]] | |
| ```python | |
| __call__(image: PIL.Image.Image | list[PIL.Image.Image] | None = None, prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, sigmas: list[float] | None = None, guidance_scale: float | None = 4.0, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 512, text_encoder_out_layers: tuple[int] = (10, 20, 30), caption_upsample_temperature: float = None) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2.py#L746) | |
| **المعاملات:** | |
| image (`torch.Tensor`، `PIL.Image.Image`، `np.ndarray`، `list[torch.Tensor]`، `list[PIL.Image.Image]`، أو `list[np.ndarray]`) : `Image`، مصفوفة numpy أو tensor تمثل دفعة من الصور (image batch) لاستخدامها كنقطة انطلاق. لكل من مصفوفة numpy وtensor الخاص بـ pytorch، النطاق المتوقع للقيم هو بين `[0, 1]` إذا كان tensor أو قائمة من tensors، فيجب أن يكون الشكل المتوقع `(B, C, H, W)` أو `(C, H, W)`. إذا كانت مصفوفة numpy أو قائمة من المصفوفات، فيجب أن يكون الشكل المتوقع `(B, H, W, C)` أو `(H, W, C)` كما يمكنه قبول كامنات الصور (image latents) كـ `image`، ولكن إذا تم تمرير الكامنات مباشرةً فلن يتم ترميزها مرة أخرى. | |
| prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `prompt_embeds` بدلاً من ذلك. | |
| guidance_scale (`float`، *اختياري*، القيمة الافتراضية 1.0) : يتم تفعيل مقياس التوجيه المدمج عن طريق تعيين `guidance_scale` > 1. كلما زاد `guidance_scale`، شجّع النموذج على توليد صور أكثر توافقًا مع `prompt` على حساب انخفاض جودة الصورة. تقرب النماذج المُقطّرة بالتوجيه من التوجيه الحقيقي الحر من المصنّف لقيم `guidance_scale` > 1. راجع [الورقة البحثية](https://huggingface.co/papers/2210.03142) لمعرفة المزيد. | |
| height (`int`، *اختياري*، الافتراضي هو self.unet.config.sample_size * self.vae_scale_factor) : ارتفاع الصورة المولّدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج. | |
| width (`int`، *اختياري*، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) : عرض الصورة المولدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج. | |
| num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال. | |
| sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`. | |
| num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه. | |
| generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : مولّد واحد أو قائمة من [مولّدات torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا. | |
| latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم. | |
| prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`. | |
| output_type (`str`، *اختياري*، القيمة الافتراضية `"pil"`) : صيغة الصورة الناتجة عن عملية التوليد. اختر بين [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` أو `np.array`. | |
| return_dict (`bool`، *اختياري*، الافتراضي `True`) : ما إذا كان يجب إرجاع `~pipelines.qwenimage.QwenImagePipelineOutput` بدلاً من tuple عادي. | |
| attention_kwargs (`dict`، *اختياري*) : قاموس kwargs يُمرَّر إلى `AttentionProcessor` إذا تم تحديده، كما هو معرَّف تحت `self.processor` في [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py). | |
| callback_on_step_end (`Callable`، *اختياري*) : دالة تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال. تُستدعى الدالة بالحجج التالية: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. سيتضمن `callback_kwargs` قائمة بجميع المصفوفات كما حددتها `callback_on_step_end_tensor_inputs`. | |
| callback_on_step_end_tensor_inputs (`List`، *اختياري*) : قائمة مدخلات المصفوفات (tensors) لدالة `callback_on_step_end`. سيتم تمرير المصفوفات المحددة في القائمة كحجة `callback_kwargs`. لن تتمكن من تضمين سوى المتغيرات المدرجة في خاصية `._callback_tensor_inputs` لفئة خط الأنابيب (pipeline) الخاص بك. | |
| max_sequence_length (`int` الافتراضي 512) : أقصى طول تسلسل يُستخدم مع `prompt`. | |
| text_encoder_out_layers (`tuple[int]`) : فهارس الطبقات المستخدمة في `text_encoder` لاستخراج تمثيلات الموجه النهائية. | |
| caption_upsample_temperature (`float`) : عند تحديد هذا المعامل، سنحاول إجراء زيادة عينة التسمية (caption upsampling) للحصول على مخرجات محسّنة محتملاً. ننصح بإعداده على 0.15 إذا كان من المقرر إجراء زيادة عينة التسمية. | |
| **يعيد:** `~pipelines.flux2.Flux2PipelineOutput` أو `tuple` | |
| `~pipelines.flux2.Flux2PipelineOutput` إذا كان `return_dict` هو True، وإلا `tuple`. عند إرجاع tuple، يكون العنصر الأول قائمة تحتوي على الصور المولّدة. | |
| الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد. | |
| أمثلة: | |
| ```py | |
| >>> import torch | |
| >>> from diffusers import Flux2Pipeline | |
| >>> pipe = Flux2Pipeline.from_pretrained("black-forest-labs/FLUX.2-dev", torch_dtype=torch.bfloat16) | |
| >>> pipe.to("cuda") | |
| >>> prompt = "A cat holding a sign that says hello world" | |
| >>> # Depending on the variant being used, the pipeline call will slightly vary. | |
| >>> # Refer to the pipeline documentation for more details. | |
| >>> image = pipe(prompt, num_inference_steps=50, guidance_scale=2.5).images[0] | |
| >>> image.save("flux.png") | |
| ``` | |
| ## Flux2KleinPipeline[[diffusers.Flux2KleinPipeline]] | |
| #### diffusers.Flux2KleinPipeline[[diffusers.Flux2KleinPipeline]] | |
| ```python | |
| diffusers.Flux2KleinPipeline(scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKLFlux2, text_encoder: Qwen3ForCausalLM, tokenizer: Qwen2Tokenizer, transformer: Flux2Transformer2DModel, is_distilled: bool = False) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2_klein.py#L155) | |
| **المعاملات:** | |
| transformer ([Flux2Transformer2DModel](/docs/diffusers/main/ar/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel)) : معمارية Transformer الشرطية (MMDiT) لإزالة الضوضاء من كامنات الصورة المُرمّزة. | |
| scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : مُجدوِل يُستخدم بالاقتران مع `transformer` لإزالة الضوضاء من كامنات الصورة المُرمَّزة. | |
| vae (`AutoencoderKLFlux2`) : نموذج الترميز التحويلي التبايني (VAE) لتشفير الصور وفك تشفيرها إلى تمثيلات كامنة ومنها. | |
| text_encoder (`Qwen3ForCausalLM`) : [Qwen3ForCausalLM](https://huggingface.co/docs/transformers/en/model_doc/qwen3#transformers.Qwen3ForCausalLM) | |
| tokenizer (`Qwen2TokenizerFast`) : مُجزِّئ من الفئة [Qwen2TokenizerFast](https://huggingface.co/docs/transformers/en/model_doc/qwen2#transformers.Qwen2TokenizerFast). | |
| خط أنابيب Flux2 Klein لتوليد الصور من النص. | |
| مرجع: [https://bfl.ai/blog/flux2-klein-towards-interactive-visual-intelligence](https://bfl.ai/blog/flux2-klein-towards-interactive-visual-intelligence) | |
| #### __call__[[diffusers.Flux2KleinPipeline.__call__]] | |
| ```python | |
| __call__(image: list[PIL.Image.Image] | PIL.Image.Image | None = None, prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, sigmas: list[float] | None = None, guidance_scale: float = 4.0, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: str | list[str] | None = None, output_type: str = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int, dict], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 512, text_encoder_out_layers: tuple[int] = (9, 18, 27)) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2_klein.py#L614) | |
| **المعاملات:** | |
| image (`torch.Tensor`، `PIL.Image.Image`، `np.ndarray`، `List[torch.Tensor]`، `List[PIL.Image.Image]`، أو `List[np.ndarray]`) : `Image`، مصفوفة numpy أو tensor تمثل دفعة من الصور (image batch) تُستخدم كنقطة انطلاق. لكل من مصفوفة numpy وtensor الخاص بـ pytorch، النطاق المتوقع للقيم هو بين `[0, 1]` إذا كان tensor أو قائمة من tensors، فيجب أن يكون الشكل المتوقع `(B, C, H, W)` أو `(C, H, W)`. أما إذا كانت مصفوفة numpy أو قائمة من المصفوفات، فيجب أن يكون الشكل المتوقع `(B, H, W, C)` أو `(H, W, C)` كما يمكنه قبول كامنات الصور (image latents) كـ `image`، ولكن إذا تم تمرير الكامنات مباشرةً فلن يتم ترميزها مرة أخرى. | |
| prompt (`str` أو `List[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `prompt_embeds` بدلاً من ذلك. | |
| guidance_scale (`float`، *اختياري*، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). يُعرَّف `guidance_scale` على أنه `w` من المعادلة 2. في [Imagen Paper](https://huggingface.co/papers/2205.11487). يتم تفعيل مقياس التوجيه عن طريق تعيين `guidance_scale > 1`. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt`، وعادةً على حساب انخفاض جودة الصورة. بالنسبة للنماذج المُقطَّرة خطوة بخطوة، يتم تجاهل `guidance_scale`. | |
| height (`int`، *اختياري*، الافتراضي هو self.unet.config.sample_size * self.vae_scale_factor) : ارتفاع الصورة المولّدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج. | |
| width (`int`، *اختياري*، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) : عرض الصورة المولدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج. | |
| num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال. | |
| sigmas (`List[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`. | |
| num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه. | |
| generator (`torch.Generator` أو `List[torch.Generator]`، *اختياري*) : مولّد واحد أو قائمة من [مولّدات torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا. | |
| latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم. | |
| prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. لاحظ أن "" تُستخدم كموجّه سلبي في هذا الخطّ الأنابيب. إذا لم تُوفَّر، فستُولَّد من "". | |
| output_type (`str`، *اختياري*، القيمة الافتراضية `"pil"`) : صيغة الصورة الناتجة عن عملية التوليد. اختر بين [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` أو `np.array`. | |
| return_dict (`bool`، *اختياري*، الافتراضي `True`) : ما إذا كان يجب إرجاع `~pipelines.qwenimage.QwenImagePipelineOutput` بدلاً من tuple عادي. | |
| attention_kwargs (`dict`، *اختياري*) : قاموس kwargs يُمرَّر إلى `AttentionProcessor` إذا تم تحديده، كما هو معرَّف تحت `self.processor` في [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py). | |
| callback_on_step_end (`Callable`، *اختياري*) : دالة تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال. تُستدعى الدالة بالحجج التالية: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. سيتضمن `callback_kwargs` قائمة بجميع المصفوفات كما حددتها `callback_on_step_end_tensor_inputs`. | |
| callback_on_step_end_tensor_inputs (`List`، *اختياري*) : قائمة مدخلات المصفوفات (tensors) لدالة `callback_on_step_end`. سيتم تمرير المصفوفات المحددة في القائمة كحجة `callback_kwargs`. لن تتمكن من تضمين سوى المتغيرات المدرجة في خاصية `._callback_tensor_inputs` لفئة خط الأنابيب (pipeline) الخاص بك. | |
| max_sequence_length (`int` الافتراضي 512) : أقصى طول تسلسل يُستخدم مع `prompt`. | |
| text_encoder_out_layers (`tuple[int]`) : فهارس الطبقات المستخدمة في `text_encoder` لاستخراج تمثيلات الموجه النهائية. | |
| **يعيد:** `~pipelines.flux2.Flux2PipelineOutput` أو `tuple` | |
| `~pipelines.flux2.Flux2PipelineOutput` إذا كان `return_dict` هو True، وإلا `tuple`. عند إرجاع tuple، يكون العنصر الأول قائمة تحتوي على الصور المولّدة. | |
| الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد. | |
| أمثلة: | |
| ```py | |
| >>> import torch | |
| >>> from diffusers import Flux2KleinPipeline | |
| >>> pipe = Flux2KleinPipeline.from_pretrained( | |
| ... "black-forest-labs/FLUX.2-klein-base-9B", torch_dtype=torch.bfloat16 | |
| ... ) | |
| >>> pipe.to("cuda") | |
| >>> prompt = "A cat holding a sign that says hello world" | |
| >>> # Depending on the variant being used, the pipeline call will slightly vary. | |
| >>> # Refer to the pipeline documentation for more details. | |
| >>> image = pipe(prompt, num_inference_steps=50, guidance_scale=4.0).images[0] | |
| >>> image.save("flux2_output.png") | |
| ``` | |
| ## Flux2KleinKVPipeline[[diffusers.Flux2KleinKVPipeline]] | |
| #### diffusers.Flux2KleinKVPipeline[[diffusers.Flux2KleinKVPipeline]] | |
| ```python | |
| diffusers.Flux2KleinKVPipeline(scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKLFlux2, text_encoder: Qwen3ForCausalLM, tokenizer: Qwen2Tokenizer, transformer: Flux2Transformer2DModel, is_distilled: bool = True) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2_klein_kv.py#L155) | |
| **المعاملات:** | |
| transformer ([Flux2Transformer2DModel](/docs/diffusers/main/ar/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel)) : معمارية Transformer الشرطية (MMDiT) لإزالة الضوضاء من كامنات الصورة المُرمّزة. | |
| scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : مُجدوِل يُستخدم بالاقتران مع `transformer` لإزالة الضوضاء من كامنات الصورة المُرمَّزة. | |
| vae (`AutoencoderKLFlux2`) : نموذج الترميز التحويلي التبايني (VAE) لتشفير الصور وفك تشفيرها إلى تمثيلات كامنة ومنها. | |
| text_encoder (`Qwen3ForCausalLM`) : [Qwen3ForCausalLM](https://huggingface.co/docs/transformers/en/model_doc/qwen3#transformers.Qwen3ForCausalLM) | |
| tokenizer (`Qwen2TokenizerFast`) : مُجزِّئ من الفئة [Qwen2TokenizerFast](https://huggingface.co/docs/transformers/en/model_doc/qwen2#transformers.Qwen2TokenizerFast). | |
| خط أنابيب Flux2 Klein KV لتوليد الصور من النص مع استخدام صور مرجعية مشروطة عبر ذاكرة KV المؤقتة. | |
| في خطوة إزالة الضوضاء الأولى، تُضمَّن رموز الصورة المرجعية في المرور الأمامي، وتُخزَّن إسقاطات K/V الخاصة باهتمامها في ذاكرة مؤقتة. في الخطوات اللاحقة، يُعاد استخدام إسقاطات K/V المخزنة دون إعادة حسابها، مما يوفر استنتاجًا أسرع عند استخدام الصور المرجعية. | |
| مرجع: [https://bfl.ai/blog/flux2-klein-towards-interactive-visual-intelligence](https://bfl.ai/blog/flux2-klein-towards-interactive-visual-intelligence) | |
| #### __call__[[diffusers.Flux2KleinKVPipeline.__call__]] | |
| ```python | |
| __call__(image: list[PIL.Image.Image] | PIL.Image.Image | None = None, prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 4, sigmas: list[float] | None = None, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, output_type: str = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int, dict], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 512, text_encoder_out_layers: tuple[int] = (9, 18, 27)) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2_klein_kv.py#L610) | |
| **المعاملات:** | |
| image (`PIL.Image.Image` أو `List[PIL.Image.Image]`، *اختياري*) : صورة مرجعية أو صور مرجعية للتكييف. في خطوة إزالة الضوضاء الأولى، تُدرج الرموز المرجعية في المرور الأمامي وتُخزَّن قيم الانتباه K/V الخاصة بها مؤقتًا. في الخطوات اللاحقة، تُعاد استخدام قيم K/V المخزنة مؤقتًا دون إعادة حسابها. | |
| prompt (`str` أو `List[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. | |
| height (`int`، *اختياري*) : ارتفاع الصورة المولّدة بالبكسل. | |
| width (`int`, *اختياري*) : عرض الصورة المولدة بالبكسل. | |
| num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 4) : عدد خطوات إزالة الضوضاء. | |
| sigmas (`List[float]`، *اختياري*) : قيم سيجما مخصصة لجدول إزالة الضوضاء. | |
| num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه. | |
| generator (`torch.Generator` أو `List[torch.Generator]`، *اختياري*) : مولّدات للتوليد الحتمي. | |
| latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا. | |
| prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. | |
| output_type (`str`، *اختياري*، القيمة الافتراضية `"pil"`) : صيغة الإخراج: `"pil"` أو `"np"`. | |
| return_dict (`bool`، *اختياري*، الافتراضي `True`) : ما إذا كان يجب إرجاع `Flux2PipelineOutput` أو مجرد tuple. | |
| attention_kwargs (`dict`، *اختياري*) : معاملات إضافية تُمرَّر إلى معالجات الانتباه. | |
| callback_on_step_end (`Callable`، *اختياري*) : دالة الاستدعاء التي تُستدعى في نهاية كل خطوة إزالة ضوضاء. | |
| callback_on_step_end_tensor_inputs (`List`، *اختياري*) : مدخلات من نوع Tensor لدالة الاستدعاء. | |
| max_sequence_length (`int`، القيمة الافتراضية 512) : الحد الأقصى لطول التسلسل للموجّه. | |
| text_encoder_out_layers (`tuple[int]`) : فهارس الطبقات لاستخراج حالة المخفي لمشفّر النص. | |
| **يعيد:** | |
| `~pipelines.flux2.Flux2PipelineOutput` أو `tuple`. | |
| الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد. | |
| أمثلة: | |
| ```py | |
| >>> import torch | |
| >>> from PIL import Image | |
| >>> from diffusers import Flux2KleinKVPipeline | |
| >>> pipe = Flux2KleinKVPipeline.from_pretrained( | |
| ... "black-forest-labs/FLUX.2-klein-9b-kv", torch_dtype=torch.bfloat16 | |
| ... ) | |
| >>> pipe.to("cuda") | |
| >>> ref_image = Image.open("reference.png") | |
| >>> image = pipe("A cat dressed like a wizard", image=ref_image, num_inference_steps=4).images[0] | |
| >>> image.save("flux2_kv_output.png") | |
| ``` | |
Xet Storage Details
- Size:
- 29 kB
- Xet hash:
- f01685ccc3abfef8b169a6a7285fe5a5af3629876829d798d21a61bddec09d8c
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.