Diffusers documentation
Bria Fibo Düzenle
Bria Fibo Düzenle
Fibo Edit, JSON girdileriyle eşleştirilen kaynak görüntüler üzerinde çalışarak deterministik ve tekrarlanabilir düzenleme iş akışlarını mümkün kılan, yapılandırılmış kontrolün yeni bir paradigmasını tanıtan 8B parametreli görüntüden görüntüye bir modeldir. İnce ayarlı hassasiyet için yerel maskeleme özelliğine sahip olan model, basit istem tabanlı difüzyonun ötesine geçerek üretim ortamlarına optimize edilmiş, açık ve yorumlanabilir bir kontrol sunar. Hafif mimarisi derin özelleştirme için tasarlanmıştır; bu sayede araştırmacılara, üst düzey estetik kalite sunarken alanına özgü görevler için özel “Edit” modelleri oluşturma imkânı tanır.
Daha fazla bilgi için Bria Fibo Edit Hugging Face sayfasına bakın. Damıtılmış bir kontrol noktası Fibo-Edit-1.5-turbo adresinde mevcuttur.
Kullanım
Model kapılı (gated) olduğu için, diffusers ile kullanmadan önce Bria Fibo Edit Hugging Face sayfasına gidip formu doldurmanız ve kapıyı kabul etmeniz gerekir. Kabul ettikten sonra, sisteminizin kapıyı kabul ettiğinizi bilmesi için oturum açmanız gerekir.
Giriş yapmak için aşağıdaki komutu kullanın:
hf auth login
BriaFiboEditPipeline
sınıf diffusers.BriaFiboEditPipeline
< source >( transformer: BriaFiboTransformer2DModelscheduler: typing.Union[diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler, diffusers.schedulers.scheduling_utils.KarrasDiffusionSchedulers]vae: AutoencoderKLWantext_encoder: SmolLM3ForCausalLMtokenizer: AutoTokenizer )
Parametreler
- transformer (
BriaFiboTransformer2DModel) — 2D difüzyon modellemesi için transformer modeli. - scheduler (
FlowMatchEulerDiscreteSchedulerveyaKarrasDiffusionSchedulers) — Kodlanmış latentlerin gürültüsünü almak içintransformerile kullanılacak zamanlayıcı. - vae (
AutoencoderKLWan) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için Varyasyonel Oto-Kodlayıcı. - text_encoder (
SmolLM3ForCausalLM) — Girdi istemlerini işlemek için metin kodlayıcı. - tokenizer (
AutoTokenizer) — text_encoder için girdi metin istemlerini işlemek için kullanılan Tokenizer.
__call__
< source >( 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
Parametreler
- prompt (
strveyaList[str]) — Görsel üretimi yönlendirmek için istem veya istemler. - image (
PIL.Image.ImageveyaList[PIL.Image.Image], isteğe bağlı) — Görsel üretimini yönlendirmek için bir veya daha fazla referans görsel. Bir liste, birden fazla referans olarak yorumlanır (bir parti değil): her referans kendi en-boy oranında VAE kodlanır ve kendi RoPE zaman düzlemine 1, 2, … yerleştirilir. Tanımlanmazsa, pipeline sıfırdan bir görsel üretir. - mask (
PipelineMaskInput, isteğe bağlı) — Düzenlenecekimagebölgesini tanımlayan isteğe bağlı maske. Maske tarafından kaplanan pikseller yeniden oluşturulurken görüntünün geri kalanı korunur. - height (
int, isteğe bağlı, varsayılan: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden yüksekliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. - width (
int, isteğe bağlı, varsayılan: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden genişliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. - num_inference_steps (
int, isteğe bağlı, varsayılan 30) — Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar. - seed (
int, isteğe bağlı) — Üretimi deterministik hale getirmek için kullanılan bir tohum. - timesteps (
List[int], isteğe bağlı) —timestepsargümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları.set_timestepsyönteminde. Tanımlanmamışsa,num_inference_stepsgeçirildiğinde varsayılan davranış kullanılacaktır. Azalan sırada olmalıdır. - guidance_scale (
float, isteğe bağlı, varsayılan 5.0) — Classifier-Free Diffusion Guidance makalesinde tanımlandığı gibi yönlendirme ölçeği.guidance_scale, Imagen Paper'daki 2. denklemindekiwolarak tanımlanır. Yönlendirme ölçeği,guidance_scale > 1olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği,promptile yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle bu da daha düşük görsel kalitesi pahasına olur. - negative_prompt (
strveyaList[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Yönlendirme kullanılmadığında yok sayılır (yaniguidance_scale1'den küçükse yok sayılır). - num_images_per_prompt (
int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak görsel sayısı. - generator (
torch.GeneratorveyaList[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için bir veya torch üreteci listesi. - latents (
torch.FloatTensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görsel üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ince ayar yapmak için kullanılabilir. Sağlanmazsa, sağlanan rastgelegeneratorkullanılarak örneklemeye dayalı bir latents tensörü oluşturulur. - output_type (
str, isteğe bağlı, varsayılan"pil") — Görsel oluşturma çıktısının biçimi. Şunlardan birini seçin: PIL:PIL.Image.Imageveyanp.array. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutputdöndürülüp döndürülmemesi. - joint_attention_kwargs (
dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindekiself.processoraltında tanımlananAttentionProcessor'a iletilen bir kwargs sözlüğü. - callback_on_step_end (
Callable, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan bir işlev. İşlev aşağıdaki argümanlarla çağrılır:callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).callback_kwargs,callback_on_step_end_tensor_inputstarafından belirtilen tüm tensörlerin listesini içerir. - callback_on_step_end_tensor_inputs (
List, optional) — The list of tensor inputs for thecallback_on_step_endfunction. The tensors specified in the list will be passed ascallback_kwargsargument. You will only be able to include variables listed in the._callback_tensor_inputsattribute of your pipeline class. - max_sequence_length (
int, varsayılan 3000) —promptile kullanılacak maksimum dizi uzunluğu. - do_patching (
bool, isteğe bağlı, varsayılanFalse) — Patching kullanılacak mı. - _auto_resize (
bool, isteğe bağlı, varsayılanTrue) — Varsayılan çıktı çözünürlüğünün (ilk referans görüntüsünden alınan) tercih edilen çözünürlüklere uyumlu hale getirilip getirilmeyeceğini belirtir.
Dönüş değeri
~pipelines.flux.BriaFiboPipelineOutput veya tuple
~pipelines.flux.BriaFiboPipelineOutput eğer
return_dict True ise, aksi halde bir tuple. Tuple döndürüldüğünde, ilk öğe üretilen görsellerin listesidir.
Üretim için pipeline çağrıldığında tetiklenen işlev.
Örnek:
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
< source >( 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 )
Parametreler
- prompt (
strveyaList[str], isteğe bağlı) — kodlanacak prompt - device — (
torch.device): torch cihazı - num_images_per_prompt (
int) — her prompt için oluşturulacak görsel sayısı - guidance_scale (
float) — Sınıflandırıcı serbest yönlendirmesi için yönlendirme ölçeği. - negative_prompt (
strveyaList[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Yönlendirme kullanılmadığında yok sayılır (yaniguidance_scale1'den küçükse yok sayılır).
prepare_reference_latents
< source >( image: Imagenum_channels_latents: intdtype: dtypedevice: devicedo_patching: bool = Falsereference_index: int = 1 )
Bir PIL referansını kendi boyutunda VAE ile kodlayın ve bir düzenleme bağlamı jetonu akışı olarak paketleyin.