Buckets:

mishig's picture
|
download
raw
15.5 kB

Bria 3.2

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

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

نُشرت نقاط التفتيش الأصلية للنموذج الخاص بـ Bria 3.2 في briaai/BRIA-3.2، ولم تعد متاحة على Hub. يمكن العثور على مستودع Github الخاص بـ Bria 3.2 هنا.

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

الاستخدام

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

hf auth login

BriaPipeline[[diffusers.BriaPipeline]]

diffusers.BriaPipeline[[diffusers.BriaPipeline]]

diffusers.BriaPipeline(transformer: BriaTransformer2DModel, scheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_utils.KarrasDiffusionSchedulers, vae: AutoencoderKL, text_encoder: T5EncoderModel, tokenizer: T5Tokenizer, image_encoder: CLIPVisionModelWithProjection = None, feature_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[[diffusers.BriaPipeline.call]]

__call__(prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 30, timesteps: list[int] = None, guidance_scale: float = 5, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.FloatTensor] = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = 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 = 128, clip_value: None | float = None, normalize: bool = False)

المصدر

المعاملات:

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 Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة. negative_prompt (str أو list[str]، *اختياري*): ======= مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w في المعادلة 2. من Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين 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، اختياري): كامنات ضجيج مُولّدة مسبقاً، مُستخرجة من توزيع غاوسي، لاستخدامها كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد بموجّهات مختلفة. إذا لم تُوفَّر، سيتم توليد متجه كامنات عن طريق الاستخراج باستخدام 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[[diffusers.BriaPipeline.encode_prompt]]

encode_prompt(prompt: str | list[str], device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | list[str] | None = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, max_sequence_length: int = 128, lora_scale: float | None = None)

المصدر

المعاملات:

prompt (str أو list[str]، اختياري) : النص الذي سيتم ترميزه

device : (torch.device): جهاز torch

num_images_per_prompt (int) : عدد الصور التي يجب توليدها لكل موجه

do_classifier_free_guidance (bool) : ما إذا كان سيتم استخدام التوجيه الحر للتصنيف أم لا

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.

Xet Storage Details

Size:
15.5 kB
·
Xet hash:
7fb9a4a63132fde5954cd01e13742269506c3bfcc07a0d14e54e87dd177f06a4

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