Diffusers documentation

Bria 3.2

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 3.2

Bria 3.2 adalah model text-to-image komersial siap pakai generasi berikutnya. Dengan hanya 4 miliar parameter, model ini memberikan estetika dan rendering teks yang luar biasa, dievaluasi untuk menghasilkan hasil yang setara dengan model open-source terkemuka, dan melampaui model berlisensi lainnya. Selain dibangun sepenuhnya di atas data berlisensi, 3.2 menyediakan beberapa keunggulan untuk penggunaan perusahaan dan komersial:

  • Komputasi Efisien - model ini 3 kali lebih kecil dibandingkan model setara di pasaran (4B parameter vs 12B parameter pada model open source lainnya)
  • Konsistensi Arsitektur: Arsitektur yang sama dengan 3.1—ideal untuk pengguna yang ingin melakukan peningkatan tanpa gangguan.
  • Percepatan Fine-tuning: fine-tuning 2x lebih cepat di L40S dan A100.

Checkpoint model asli untuk Bria 3.2 dapat ditemukan di sini. Repo Github untuk Bria 3.2 dapat ditemukan di sini.

Jika Anda ingin mempelajari lebih lanjut tentang platform Bria dan mendapatkan akses traril gratis, silakan kunjungi bria.ai.

Penggunaan

Karena model ini bersifat gated, sebelum menggunakannya dengan diffusers Anda perlu terlebih dahulu membuka halaman Bria 3.2 di Hugging Face, mengisi formulir, dan menerima gate. Setelah Anda masuk, Anda perlu login agar sistem Anda mengetahui bahwa Anda telah menerima gate.

Gunakan perintah di bawah ini untuk masuk:

hf auth login

BriaPipeline

kelas 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 )

Parameter

  • transformer (BriaTransformer2DModel) — Arsitektur Conditional Transformer (MMDiT) untuk mendenoise latens gambar yang telah dienkod.
  • scheduler (FlowMatchEulerDiscreteScheduler) — Scheduler yang digunakan bersama transformer untuk menghilangkan noise pada latens gambar yang telah dikodekan.
  • vae (AutoencoderKL) — Model Variational Auto-Encoder (VAE) untuk mengodekan dan mendekodekan gambar ke dan dari representasi laten.
  • text_encoder (T5EncoderModel) — Text-encoder yang dibekukan. Bria menggunakan T5, khususnya varian t5-v1_1-xxl.
  • tokenizer (T5TokenizerFast) — Tokenizer dari kelas T5Tokenizer.

Berdasarkan FluxPipeline dengan beberapa perubahan:

  • tidak ada embedding yang dipool
  • Kami menggunakan zero padding untuk prompt
  • Tidak ada guidance embedding karena ini bukan versi yang telah di-distil

__call__

< >

( prompt: str | list[str] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 30timesteps: list = 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 = ['latents']max_sequence_length: int = 128clip_value: None | float = Nonenormalize: bool = False ) → ~pipelines.bria.BriaPipelineOutput or tuple

Parameter

  • prompt (str atau list[str], opsional) — Prompt atau prompt-prompt untuk mengarahkan generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan prompt_embeds sebagai gantinya.
  • height (int, opsional, defaultnya self.unet.config.sample_size * self.vae_scale_factor) — Tinggi gambar yang dihasilkan dalam piksel. Ini diatur ke 1024 secara default untuk hasil terbaik.
  • width (int, opsional, defaultnya self.unet.config.sample_size * self.vae_scale_factor) — Lebar gambar yang dihasilkan dalam piksel. Ini diatur ke 1024 secara default untuk hasil terbaik.
  • num_inference_steps (int, opsional, default 50) — Jumlah langkah denoising. Semakin banyak langkah denoising, biasanya menghasilkan gambar dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat.
  • timesteps (list[int], opsional) — Timesteps kustom untuk digunakan dalam proses denoising dengan scheduler yang mendukung argumen timesteps di metode set_timesteps mereka. Jika tidak didefinisikan, perilaku default saat num_inference_steps diteruskan akan digunakan. Harus dalam urutan menurun.
  • guidance_scale (float, opsional, default 5.0) —

Mengembalikan

~pipelines.bria.BriaPipelineOutput atau tuple

~pipelines.bria.BriaPipelineOutput jika return_dict bernilai True, selain itu berupa tuple. Saat mengembalikan tuple, elemen pertama adalah daftar berisi gambar yang dihasilkan.

Fungsi yang dipanggil saat memanggil pipeline untuk generasi.

<<<<<<< HEAD Skala panduan seperti yang didefinisikan dalam Classifier-Free Diffusion Guidance. guidance_scale didefinisikan sebagai w dari persamaan 2. dari Imagen Paper. Skala panduan diaktifkan dengan mengatur guidance_scale > 1. Skala panduan yang lebih tinggi mendorong generasi gambar yang erat kaitannya dengan prompt teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah.

negative_prompt ( str atau list[str] , opsional ):

Skala panduan seperti yang didefinisikan dalam Classifier-Free Diffusion Guidance. guidance_scale didefinisikan sebagai w dari persamaan 2. pada Imagen Paper. Skala panduan diaktifkan dengan mengatur guidance_scale > 1. Skala panduan yang lebih tinggi mendorong generasi gambar yang sangat terkait dengan prompt teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah. negative_prompt (str atau list[str], opsional):

main Prompt atau prompt-prompt yang tidak digunakan untuk memandu generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan negative_prompt_embeds sebagai gantinya. Diabaikan jika tidak menggunakan guidance (yaitu, diabaikan jika guidance_scale kurang dari 1). num_images_per_prompt (int, opsional, default 1): Jumlah gambar yang akan dihasilkan per prompt. generator (torch.Generator atau list[torch.Generator], opsional): Satu atau daftar generator torch untuk membuat generasi menjadi deterministik. latents (torch.FloatTensor, opsional): Latents berisik yang telah dihasilkan sebelumnya, diambil dari distribusi Gaussian, untuk digunakan sebagai input untuk generasi gambar. Dapat digunakan untuk menyesuaikan generasi yang sama dengan prompt yang berbeda. Jika tidak disediakan, tensor latents akan dihasilkan dengan sampling menggunakan generator acak yang disediakan. prompt_embeds (torch.FloatTensor, opsional): Embedding teks yang telah dihasilkan sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, mis. pembobotan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input prompt. negative_prompt_embeds (torch.FloatTensor, opsional): Embedding teks negatif yang telah dihasilkan sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, mis. pembobotan prompt. Jika tidak disediakan, negative_prompt_embeds akan dihasilkan dari argumen input negative_prompt. output_type (str, opsional, default "pil"): Format output dari gambar yang dihasilkan. Pilih antara PIL: PIL.Image.Image atau np.array. return_dict (bool, opsional, default True): Apakah akan mengembalikan ~pipelines.bria.BriaPipelineOutput alih-alih tuple biasa. attention_kwargs (dict, opsional): Kamus kwargs yang jika ditentukan akan diteruskan ke AttentionProcessor seperti yang didefinisikan di bawah self.processor dalam diffusers.models.attention_processor. callback_on_step_end (Callable, opsional): Fungsi yang dipanggil di akhir setiap langkah denoising selama inferensi. Fungsi ini dipanggil dengan argumen berikut: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs akan berisi daftar semua tensor seperti yang ditentukan oleh callback_on_step_end_tensor_inputs. callback_on_step_end_tensor_inputs (list, opsional): Daftar input tensor untuk fungsi callback_on_step_end. Tensor yang ditentukan dalam daftar akan diteruskan sebagai argumen callback_kwargs. Anda hanya dapat menyertakan variabel yang terdaftar dalam atribut ._callback_tensor_inputs dari kelas pipeline Anda. max_sequence_length (int default 256): Panjang urutan maksimum untuk digunakan dengan prompt. clip_value (float, opsional): Jika diset, noise yang diprediksi akan dipangkas ke rentang [-clip_value, clip_value] pada setiap langkah denoising. normalize (bool, opsional, default False): Apakah akan menormalisasi noise yang diprediksi pada setiap langkah denoising.

Contoh:

>>> 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 )

Parameter

  • prompt (str atau list[str], opsional) — prompt yang akan dienkod
  • device — (torch.device): perangkat torch
  • num_images_per_prompt (int) — jumlah gambar yang harus dihasilkan per prompt
  • do_classifier_free_guidance (bool) — apakah akan menggunakan classifier free guidance atau tidak
  • negative_prompt (str atau list[str], opsional) — Prompt atau prompt-prompt yang tidak digunakan untuk mengarahkan generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan negative_prompt_embeds sebagai gantinya. Diabaikan jika tidak menggunakan guidance (yaitu, diabaikan jika guidance_scale kurang dari 1).
  • prompt_embeds (torch.FloatTensor, opsional) — Embedding teks yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya pemberatan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input prompt.
  • negative_prompt_embeds (torch.FloatTensor, opsional) — Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input negative_prompt.
Update on GitHub