Diffusers documentation

Bria 3.2

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Bria 3.2

Bria 3.2 هو نموذج توليد الصور من النص من الجيل التالي الجاهز للاستخدام التجاري. ومع 4 مليارات من المعاملات فقط، يوفر جماليات استثنائية وعرضًا للنص، وقد تم تقييمه ليوفر نتائج مماثلة للنتائج التي يقدمها النماذج مفتوحة المصدر الرائدة، ويتفوق على النماذج المرخّصة الأخرى. إلى جانب كونه مبنيًا بالكامل على بيانات مرخّصة، يوفر 3.2 عدة مزايا للاستخدام المؤسسي والتجاري:

  • حساب فعّال - النموذج أصغر بثلاثة أضعاف من النماذج المكافئة في السوق (4 مليارات من المعاملات مقابل 12 مليار من المعاملات في النماذج مفتوحة المصدر الأخرى)
  • اتساق البنية: نفس البنية الموجودة في الإصدار 3.1—مثالي للمستخدمين الذين يبحثون عن الترقية دون أي انقطاع.
  • تسريع الضبط الدقيق: تسريع الضبط الدقيق بمقدار الضعف على L40S و A100.

يمكن العثور على نقاط التفتيش الأصلية للنموذج الخاص بـ Bria 3.2 هنا. يمكن العثور على مستودع Github الخاص بـ Bria 3.2 هنا.

إذا كنت ترغب في معرفة المزيد عن منصة Bria والحصول على وصول تجريبي مجاني، يرجى زيارة bria.ai.

الاستخدام

بما أن النموذج محمي، فقبل استخدامه مع diffusers عليك أولاً الانتقال إلى صفحة Bria 3.2 على Hugging Face، وملء النموذج وقبول شروط الحماية. بعد الدخول، عليك تسجيل الدخول حتى يعرف نظامك أنك قد قبلت شروط الحماية.

استخدم الأمر أدناه لتسجيل الدخول:

hf auth login

BriaPipeline

فئة diffusers.BriaPipeline

< >

( transformer: BriaTransformer2DModelscheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_utils.KarrasDiffusionSchedulersvae: AutoencoderKLtext_encoder: T5EncoderModeltokenizer: T5Tokenizerimage_encoder: CLIPVisionModelWithProjection = Nonefeature_extractor: CLIPImageProcessorPil = None )

المعاملات

  • transformer (BriaTransformer2DModel) — بنية Transformer الشرطية (MMDiT) لإزالة الضوضاء من كامنات الصورة المُرمّزة.
  • scheduler (FlowMatchEulerDiscreteScheduler) — جدول زمني يُستخدم بالاقتران مع transformer لإزالة الضوضاء من كائنات الصورة المُرمّزة.
  • vae (AutoencoderKL) — نموذج الترميز التبايني التلقائي (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.
  • text_encoder (T5EncoderModel) — مُشفِّر نص ثابت. تستخدم Bria T5، وتحديداً النسخة t5-v1_1-xxl.
  • tokenizer (T5TokenizerFast) — مُقسِّم من فئة T5Tokenizer.

بناءً على FluxPipeline مع عدة تغييرات:

  • لا توجد تمثيلات مجمّعة
  • نستخدم التوسيع الصفري (zero padding) للموجّهات
  • لا يوجد تضمين إرشادي لأن هذه ليست نسخة مُقطّرة

__call__

< >

( prompt: str | list[str] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 30timesteps: list[int] = Noneguidance_scale: float = 5negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.FloatTensor] = Noneprompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents']max_sequence_length: int = 128clip_value: None | float = Nonenormalize: bool = False ) → ~pipelines.bria.BriaPipelineOutput or tuple

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير prompt_embeds بدلاً من ذلك.
  • 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) — عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة بجودة أعلى على حساب بطء الاستدلال.
  • timesteps (list[int], اختياري) — خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل timesteps في طريقة set_timesteps الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير num_inference_steps. يجب أن تكون بترتيب تنازلي.
  • guidance_scale (float، اختياري، القيمة الافتراضية 5.0) —

يعيد

~pipelines.bria.BriaPipelineOutput أو tuple

~pipelines.bria.BriaPipelineOutput إذا كان return_dict هو True، وإلا فسيكون tuple. عند إرجاع tuple، يكون العنصر الأول قائمة تحتوي على الصور المولّدة.

الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.

<<<<<<< HEAD مقياس التوجيه كما هو مُعرَّف في التوجيه الانتشاري بدون مُصنِّف Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في ورقة Imagen. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجّع مقياس توجيه أعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

negative_prompt ( str or list[str] , اختياري ):

مقياس التوجيه كما هو معرّف في التوجيه الانتشاري بدون مُصنِّف. يُعرَّف guidance_scale على أنه w من المعادلة 2. في ورقة Imagen. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجّع مقياس توجيه أعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة. negative_prompt (str أو list[str]، اختياري):

main الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم تُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهلها عند عدم استخدام التوجيه (أي يتم تجاهلها إذا كان guidance_scale أقل من 1). num_images_per_prompt (int، اختياري، القيمة الافتراضية 1): عدد الصور المراد توليدها لكل موجّه. generator (torch.Generator أو list[torch.Generator]، اختياري): مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتمياً. latents (torch.FloatTensor، اختياري): متغيرات كامنة ضجيجية مُولَّدة مسبقاً، مٌستخرجة من توزيع غاوسي، لاستخدامها كمدخلات لتوليد الصورة. يمكن استخدامها لتعديل نفس التوليد بموجّهات مختلفة. إذا لم تٌوفَّر، سيتم توليد متجه latents عن طريق الاستخراج باستخدام generator العشوائي المُقدَّم. prompt_embeds (torch.FloatTensor، اختياري): تضمينات نصية مٌولَّدة مسبقاً. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلاً وزن الموجّه. إذا لم تٌوفَّر، سيتم توليد التضمينات النصية من معامل الإدخال prompt. negative_prompt_embeds (torch.FloatTensor، اختياري): تضمينات نصية سلبية مٌولَّدة مسبقاً. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلاً وزن الموجّه. إذا لم تٌوفَّر، سيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt. output_type (str، اختياري، القيمة الافتراضية "pil"): صيغة الإخراج للصورة المٌولَّدة. اختر بين PIL: PIL.Image.Image أو np.array. return_dict (bool، اختياري، القيمة الافتراضية True): ما إذا كان يجب إرجاع ~pipelines.bria.BriaPipelineOutput بدلاً من tuple عادي. attention_kwargs (dict، اختياري): قاموس kwargs الذي إذا تم تحديده يٌمرَّر إلى AttentionProcessor كما هو مٌعرَّف تحت self.processor في diffusers.models.attention_processor. 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، اختياري): قائمة مدخلات المتجهات لدالة callback_on_step_end. سيتم تمرير المتجهات المحددة في القائمة كحجة callback_kwargs. لن تتمكن من تضمين متغيرات غير مدرجة في خاصية ._callback_tensor_inputs لفئة خط الأنابيب الخاص بك. max_sequence_length (int القيمة الافتراضية 256): أقصى طول تسلسل لاستخدامه مع prompt. clip_value (float، اختياري): إذا تم ضبطه، يتم قص الضجيج المٌتنبَّأ به إلى النطاق [-clip_value, clip_value] في كل خطوة إزالة ضجيج. normalize (bool، اختياري، القيمة الافتراضية False): ما إذا كان يجب تطبيع الضجيج المٌتنبَّأ به في كل خطوة إزالة ضجيج.

أمثلة:

>>> import torch
>>> from diffusers import BriaPipeline

>>> pipe = BriaPipeline.from_pretrained("briaai/BRIA-3.2", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
# BRIA's T5 text encoder is sensitive to precision. We need to cast it to bfloat16 and keep the final layer in float32.

>>> pipe.text_encoder = pipe.text_encoder.to(dtype=torch.bfloat16)
>>> for block in pipe.text_encoder.encoder.block:
...     block.layer[-1].DenseReluDense.wo.to(dtype=torch.float32)
# BRIA's VAE is not supported in mixed precision, so we use float32.

>>> if pipe.vae.config.shift_factor == 0:
...     pipe.vae.to(dtype=torch.float32)

>>> prompt = "Photorealistic food photography of a stack of fluffy pancakes on a white plate, with maple syrup being poured over them. On top of the pancakes are the words 'BRIA 3.2' in bold, yellow, 3D letters. The background is dark and out of focus."
>>> image = pipe(prompt).images[0]
>>> image.save("bria.png")

encode_prompt

< >

( prompt: str | list[str]device: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1do_classifier_free_guidance: bool = Truenegative_prompt: str | list[str] | None = Noneprompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = Nonemax_sequence_length: int = 128lora_scale: float | None = None )

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه الذي سيتم ترميزه
  • device — (torch.device): جهاز torch
  • num_images_per_prompt (int) — عدد الصور التي يجب توليدها لكل موجه
  • do_classifier_free_guidance (bool) — ما إذا كان سيتم استخدام classifier free guidance أم لا
  • negative_prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).
  • prompt_embeds (torch.FloatTensor, اختياري) — تضمينات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال prompt.
  • negative_prompt_embeds (torch.FloatTensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt.
Update on GitHub