Buckets:

mishig's picture
|
download
raw
11.7 kB

Bria Fibo

تقود نماذج النص إلى الصورة خيالاً متقناً - لكنها تفتقر إلى التحكم. يغيّر FIBO ذلك.

يتم تدريب FIBO على عناوين نصية منظمة بصيغة JSON تصل إلى أكثر من 1000 كلمة، وهو مصمم لفهم وتحكم مختلف المعايير البصرية مثل الإضاءة والتكوين واللون وإعدادات الكاميرا، مما يتيح مخرجات دقيقة وقابلة للتكرار.

بمجرد 8 مليارات من المعاملات، يوفر FIBO مستوىً جديدًا من جودة الصور والالتزام بالتعليمات والتحكم الاحترافي.

FIBO is trained exclusively on a structured prompt and will not work with freeform text prompts. you can use the FIBO-VLM-prompt-to-JSON model or the FIBO-gemini-prompt-to-JSON to convert your freeform text prompt to a structured JSON prompt.

تجنّب استخدام نصوص تلميحية حرة مباشرةً مع FIBO لأنها لا تُنتج أفضل النتائج.

راجع صفحة Bria Fibo على Hugging Face لمعرفة المزيد.

الاستخدام

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

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

hf auth login

BriaFiboPipeline[[diffusers.BriaFiboPipeline]]

diffusers.BriaFiboPipeline[[diffusers.BriaFiboPipeline]]

diffusers.BriaFiboPipeline(transformer: BriaFiboTransformer2DModel, scheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_utils.KarrasDiffusionSchedulers, vae: AutoencoderKLWan, text_encoder: SmolLM3ForCausalLM, tokenizer: AutoTokenizer)

المصدر

المعاملات:

transformer (BriaFiboTransformer2DModel) : نموذج الترانسفورمر لنمذجة الانتشار ثنائي الأبعاد.

scheduler (FlowMatchEulerDiscreteScheduler أو KarrasDiffusionSchedulers) : الجدولة المستخدمة مع transformer لإزالة الضوضاء من الكمونيات المُرمّزة.

vae (AutoencoderKLWan) : مُشفِّر ذاتي تبايني (Variational Auto-Encoder) لتشفير الصور وفك تشفيرها إلى تمثيلات كامنة ومنها.

text_encoder (SmolLM3ForCausalLM) : مُشفِّر للنصوص لمعالجة أوامر الإدخال.

tokenizer (AutoTokenizer) : مُعالِج النصوص (Tokenizer) المستخدم لمعالجة نصوص الإدخال (prompts) الخاصة بـ text_encoder.

call[[diffusers.BriaFiboPipeline.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, output_type: str | None = 'pil', return_dict: bool = True, joint_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 = 3000, do_patching = False)

المصدر

المعاملات:

prompt (str أو list[str]) : الأمر أو الأوامر التي تُوجّه توليد الصورة.

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

negative_prompt (str أو list[str]، اختياري) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة بها. يتم تجاهلها عند عدم استخدام التوجيه (أي يتم تجاهلها إذا كان guidance_scale أقل من 1).

num_images_per_prompt (int، اختياري، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه.

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

latents (torch.FloatTensor، اختياري) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، فسيتم توليد كامنات من خلال الاستخراج باستخدام generator العشوائي المُقدَّم.

output_type (str، اختياري، القيمة الافتراضية "pil") : صيغة الصورة الناتجة عن عملية التوليد. اختر بين PIL: PIL.Image.Image أو np.array.

return_dict (bool، اختياري، القيمة الافتراضية True) : ما إذا كان يجب إرجاع ~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput بدلاً من tuple عادي.

joint_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، اختياري) : قائمة مدخلات المصفوفات (tensors) لدالة callback_on_step_end. سيتم تمرير المصفوفات المحددة في القائمة كحجة callback_kwargs. لن تتمكن من تضمين سوى المتغيرات المدرجة في خاصية ._callback_tensor_inputs لفئة خط الأنابيب (pipeline) الخاص بك.

max_sequence_length (int الافتراضي 3000) : أقصى طول تسلسل يُستخدم مع prompt.

do_patching (bool، اختياري، الافتراضي False) : ما إذا كان سيتم استخدام التصحيح (patching).

يعيد: ~pipelines.flux.BriaFiboPipelineOutput أو tuple

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

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

مثال:

import torch
from diffusers import BriaFiboPipeline
from diffusers.modular_pipelines import ModularPipeline

torch.set_grad_enabled(False)
vlm_pipe = ModularPipeline.from_pretrained("briaai/FIBO-VLM-prompt-to-JSON", trust_remote_code=True)

pipe = BriaFiboPipeline.from_pretrained(
    "briaai/FIBO",
    trust_remote_code=True,
    torch_dtype=torch.bfloat16,
)
pipe.enable_model_cpu_offload()

with torch.inference_mode():
    # 1. Create a prompt to generate an initial image
    output = vlm_pipe(prompt="a beautiful dog")
    json_prompt_generate = output.values["json_prompt"]

    # Generate the image from the structured json prompt
    results_generate = pipe(prompt=json_prompt_generate, num_inference_steps=50, guidance_scale=5)
    results_generate.images[0].save("image_generate.png")

encode_prompt[[diffusers.BriaFiboPipeline.encode_prompt]]

encode_prompt(prompt: str | list[str], device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, guidance_scale: float = 5, negative_prompt: str | list[str] | None = None, max_sequence_length: int = 3000, lora_scale: float | None = None)

المصدر

المعاملات:

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

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

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

guidance_scale (float) : مقياس التوجيه للتوجيه الحر من التصنيف.

negative_prompt (str أو list[str]، اختياري) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة بها. يتم تجاهلها عند عدم استخدام التوجيه (أي يتم تجاهلها إذا كان guidance_scale أقل من 1).

Xet Storage Details

Size:
11.7 kB
·
Xet hash:
183dd4f15dac886ce2668f329be3892c7fb339f917756db0b54387306b27ed42

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