Diffusers documentation

Bria Fibo Edit

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Bria Fibo Edit

Fibo Edit هو نموذج من صورة إلى صورة بـ 8 مليارات من المعاملات، يُقدّم نموذجًا جديدًا للتحكم المهيكّل، ويعمل على مدخلات JSON مقترنة بصور المصدر لتمكين سير عمل تحرير حتمي وقابل للتكرار. بفضل الأقنعة الأصلية (Native Masking) للدقة الدقيقة، يتجاوز النموذج الانتشار المبني على الأوامر النصية البسيطة ليقدّم تحكمًا صريحًا وقابلًا للتفسير، مُحسَّنًا للبيئات الإنتاجية. تم تصميم بنيته الخفيفة الوزن للتخصيص العميق، مما يمكّن الباحثين من بناء نماذج “Edit” متخصصة للمهام المحددة لكل مجال، مع تقديم جودة جمالية من الطراز الأول.

راجع صفحة Bria Fibo Edit على Hugging Face لمعرفة المزيد. يتوفر نقطة تفتيش مُصغّرة في Fibo-Edit-1.5-turbo.

الاستخدام

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

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

hf auth login

BriaFiboEditPipeline

فئة diffusers.BriaFiboEditPipeline

< >

( transformer: BriaFiboTransformer2DModelscheduler: typing.Union[diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler, diffusers.schedulers.scheduling_utils.KarrasDiffusionSchedulers]vae: AutoencoderKLWantext_encoder: SmolLM3ForCausalLMtokenizer: AutoTokenizer )

المعاملات

  • transformer (BriaFiboTransformer2DModel) — نموذج الترانسفورمر لنمذجة الانتشار ثنائي الأبعاد.
  • scheduler (FlowMatchEulerDiscreteScheduler أو KarrasDiffusionSchedulers) — المجدول الذي يُستخدم مع transformer لإزالة الضوضاء من الكمونيات المُرمّزة.
  • vae (AutoencoderKLWan) — شبكة ترميز فك ترميز احتمالية (Variational Auto-Encoder) لتشفير الصور وفك تشفيرها إلى تمثيلات كامنة ومنها.
  • text_encoder (SmolLM3ForCausalLM) — مُشفِّر النص لمعالجة أوامر الإدخال.
  • tokenizer (AutoTokenizer) — المُجزِّئ المستخدم لمعالجة نصوص الإدخال المُوجِّهة لمُشفِّر النص (text_encoder).

__call__

< >

( prompt: typing.Union[str, typing.List[str]] = Noneimage: typing.Union[PIL.Image.Image, typing.List[PIL.Image.Image], NoneType] = Nonemask: typing.Union[torch.FloatTensor, PIL.Image.Image, typing.List[PIL.Image.Image], typing.List[torch.FloatTensor], numpy.ndarray, typing.List[numpy.ndarray], NoneType] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 30timesteps: typing.List[int] = Noneseed: int | None = Noneguidance_scale: float = 5negative_prompt: typing.Union[str, typing.List[str], NoneType] = Nonenum_images_per_prompt: typing.Optional[int] = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.FloatTensor] = Noneoutput_type: str = 'pil'return_dict: bool = Truejoint_attention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int, typing.Dict], NoneType]] = Nonecallback_on_step_end_tensor_inputs: typing.List[str] = ['latents']max_sequence_length: int = 3000do_patching = False_auto_resize: bool = True ) → ~pipelines.flux.BriaFiboPipelineOutput or tuple

المعاملات

  • prompt (str أو List[str]) — الموجّه أو الموجّهات التي تُوجّه توليد الصورة.
  • image (PIL.Image.Image أو List[PIL.Image.Image]، اختياري) — صورة مرجعية واحدة أو أكثر لتوجيه توليد الصورة. يُفسَّر القائمة على أنها مراجع متعددة (ولست دفعة): يتم ترميز كل مرجع بواسطة VAE بنسبة أبعاده الخاصة ويُوضع على مستوى زمني RoPE مستقل 1، 2، … . إذا لم يُعرَّف، يولّد خط الأنابيب صورة من الصفر.
  • mask (PipelineMaskInput، اختياري) — قناع اختياري يحدد المنطقة من image التي سيتم تحريرها. يتم إعادة توليد البكسلات المغطاة بالقناع بينما يُحافظ على بقية الصورة.
  • 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، اختياري، القيمة الافتراضية 30) — عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة بجودة أعلى على حساب بطء الاستدلال.
  • seed (int, اختياري) — بذرة تُستخدم لجعل التوليد حتميًا.
  • 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، اختياري) — كائنات latents ضجيجية مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، فسيتم توليد كائن latents عن طريق الاستخراج باستخدام 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).
  • _auto_resize (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ضبط دقة الإخراج الافتراضية (المأخوذة من صورة المرجع الأولى) على الدقات المفضلة.

يعيد

~pipelines.flux.BriaFiboPipelineOutput أو tuple

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

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

مثال:

import torch
from PIL import Image

from diffusers import BriaFiboEditPipeline
from diffusers.modular_pipelines import ModularPipelineBlocks

# This prompt-to-JSON block calls Gemini and needs GEMINI_API_KEY in the environment.
vlm_pipe = ModularPipelineBlocks.from_pretrained("briaai/FIBO-edit-gemini-prompt-to-JSON", trust_remote_code=True)
vlm_pipe = vlm_pipe.init_pipeline()

pipe = BriaFiboEditPipeline.from_pretrained(
    "briaai/Fibo-Edit-1.5-base",
    torch_dtype=torch.bfloat16,
)
pipe.to("cuda")

image = Image.open("owl.png")
json_prompt = vlm_pipe(image=image, prompt="Make the owl into a cat").values["json_prompt"]

result = pipe(prompt=json_prompt, image=image, num_inference_steps=30, guidance_scale=5)

# Multiple reference images: pass a list. Each reference conditions the edit at its
# own aspect ratio; the output resolution follows the first reference.
owl, forest = Image.open("owl.png"), Image.open("forest.png")
json_prompt = vlm_pipe(
    image=[owl, forest], prompt="Place the owl from the first image in the forest from the second image"
).values["json_prompt"]
result = pipe(
    prompt=json_prompt,
    image=[owl, forest],
    num_inference_steps=30,
    guidance_scale=5,
)

# The distilled Turbo checkpoint edits in 4 steps without classifier-free guidance.
pipe = BriaFiboEditPipeline.from_pretrained("briaai/Fibo-Edit-1.5-turbo", torch_dtype=torch.bfloat16)
pipe.to("cuda")
result = pipe(prompt=json_prompt, image=[owl, forest], num_inference_steps=4, guidance_scale=1)

encode_prompt

< >

( prompt: typing.Union[str, typing.List[str]]device: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1guidance_scale: float = 5negative_prompt: typing.Union[str, typing.List[str], NoneType] = Nonemax_sequence_length: int = 3000lora_scale: bool | 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).

prepare_reference_latents

< >

( image: Imagenum_channels_latents: intdtype: dtypedevice: devicedo_patching: bool = Falsereference_index: int = 1 )

VAE-encode مرجع PIL واحد بحجمه الأصلي ثم حزمه كتيار رموز سياق التحرير.

Update on GitHub