Diffusers documentation
Bria 3.2
Bria 3.2
Bria 3.2, bir sonraki nesil ticari kullanıma hazır metinden görüntüye modelidir. Sadece 4 milyar parametreye sahip olmasına rağmen istisnai estetik ve metin işleme özellikleri sunar; önde gelen açık kaynak modellerle karşılaştırıldığında benzer sonuçlar verdiği değerlendirilmiş ve diğer lisanslı modelleri geride bırakmıştır. Tamamen lisanslı veriler üzerine inşa edilmesinin yanı sıra, 3.2 kurumsal ve ticari kullanım için çeşitli avantajlar sunar:
- Verimli Hesaplama - model, piyasadaki eşdeğer modellerden X3 kat daha küçük (diğer açık kaynak modellerde 12B parametreye karşılık 4B parametre)
- Mimari Tutarlılığı: 3.1 ile aynı mimari—kesinti olmadan yükseltme yapmak isteyen kullanıcılar için idealdir.
- İnce Ayar Hızlandırması: L40S ve A100 üzerinde 2 kat daha hızlı ince ayar.
Bria 3.2'nin orijinal model denetim noktaları burada bulunabilir. Bria 3.2'nin Github deposu burada bulunabilir.
Bria platformu hakkında daha fazla bilgi edinmek ve ücretsiz traril erişimi almak istiyorsanız, lütfen bria.ai adresini ziyaret edin.
Kullanım
Model kapılı (gated) olduğu için, diffusers ile kullanmadan önce Bria 3.2 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
BriaPipeline
sınıf diffusers.BriaPipeline
< source >( 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 )
Parametreler
- transformer (BriaTransformer2DModel) — Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan Koşullu Transformer (MMDiT) mimarisi.
- scheduler (FlowMatchEulerDiscreteScheduler) —
Kodlanmış görüntü latentlerini gürültüden arındırmak için
transformerile birlikte kullanılacak bir zamanlayıcı. - vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli.
- text_encoder (
T5EncoderModel) — Donmuş metin kodlayıcı. Bria T5'i, özellikle de t5-v1_1-xxl varyantını kullanır. - tokenizer (
T5TokenizerFast) — T5Tokenizer sınıfının sınıflandırıcısı.
Birkaç değişiklik içeren FluxPipeline tabanlı:
- birleştirilmiş gömme yok
- İstemler için sıfır dolgusu kullanıyoruz
- Bu, damıtılmış bir sürüm olmadığı için yönlendirme gömme (guidance embedding) yoktur
__call__
< source >( 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
Parametreler
- prompt (
strveyalist[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa, bunun yerineprompt_embedsparametresinin geçirilmesi gerekir. - 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 50) — 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. - timesteps (
list[int], isteğe bağlı) —timestepsargümanınıset_timestepsyöntemlerinde destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. Tanımlanmamışsa,num_inference_stepsgeçirildiğinde varsayılan davranış kullanılır. Azalan sırada olmalıdır. - guidance_scale (
float, isteğe bağlı, varsayılan 5.0) —
Dönüş değeri
~pipelines.bria.BriaPipelineOutput veya tuple
~pipelines.bria.BriaPipelineOutput
return_dict True ise, aksi halde tuple. Tuple döndürüldüğünde, ilk öğe üretilen görsellerin listesidir.
Üretim için pipeline çağrıldığında tetiklenen işlev.
<<<<<<< HEAD
Classifier-Free Diffusion Guidance makalesinde tanımlandığı gibi guidance scale. guidance_scale, Imagen Paper'deki 2. denklemin w parametresi olarak tanımlanır. Guidance scale, guidance_scale > 1 olarak ayarlanarak etkinleştirilir. Daha yüksek guidance scale, prompt ile daha yakından ilişkili görsellerin üretilmesini teşvik eder, ancak bu genellikle daha düşük görsel kalitesi pahasına olur.
negative_prompt ( str or list[str] , isteğe bağlı ):
Sınıflandırıcı-Ücretsiz Difüzyon Rehberliği'nde tanımlandığı gibi rehberlik ölçeği. guidance_scale, Imagen Makalesi'ndeki 2. denklemindeki w olarak tanımlanır. Rehberlik ölçeği, guidance_scale > 1 olarak ayarlanarak etkinleştirilir. Daha yüksek rehberlik ölçeği, genellikle daha düşük görüntü kalitesi pahasına, prompt ile yakından ilişkili görüntülerin üretilmesini teşvik eder.
negative_prompt (str veya list[str], isteğe bağlı):
main Görsel üretimini yönlendirmeyecek istem veya istemler. Tanımlanmazsa, bunun yerine
negative_prompt_embedsgeçirilmelidir. 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): İstem başına üretilecek görsel sayısı. generator (torch.Generatorveyalist[torch.Generator], isteğe bağlı): Üretimi deterministik hale getirmek için bir veya torch generator(ları). latents (torch.FloatTensor, isteğe bağlı): Görsel üretimi için girdi olarak kullanılacak, Gauss dağılımından örneklenen önceden üretilmiş gürültülü latensler. Farklı istemlerle aynı üretimi ince ayar yapmak için kullanılabilir. Sağlanmazsa, sağlanan rastgelegeneratorkullanılarak örneklem alınarak bir latens tensörü oluşturulur. prompt_embeds (torch.FloatTensor, isteğe bağlı): Önceden üretilmiş metin gömme değerleri. Metin girdilerini kolayca ince ayar yapmak için kullanılabilir, ör. istem ağırlıklandırma. Sağlanmazsa, metin gömme değerleripromptgirdi argümanından oluşturulur. negative_prompt_embeds (torch.FloatTensor, isteğe bağlı): Önceden üretilmiş negatif metin gömme değerleri. Metin girdilerini kolayca ince ayar yapmak için kullanılabilir, ör. istem ağırlıklandırma. Sağlanmazsa, negative_prompt_embedsnegative_promptgirdi argümanından oluşturulur. output_type (str, isteğe bağlı, varsayılan"pil"): Üretilen görselin çıktı biçimi. PIL:PIL.Image.Imageveyanp.arrayarasında seçim yapın. return_dict (bool, isteğe bağlı, varsayılanTrue): Düz bir demet yerine~pipelines.bria.BriaPipelineOutputdöndürülecek mi. 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çerecektir. callback_on_step_end_tensor_inputs (list, isteğe bağlı):callback_on_step_endişlevi için tensör girdileri listesi. Listede belirtilen tensörlercallback_kwargsargümanı olarak geçirilecektir. Yalnızca pipeline sınıfınızın._callback_tensor_inputsözniteliğinde listelenen değişkenleri dahil edebilirsiniz. max_sequence_length (intvarsayılan 256):promptile kullanılacak maksimum dizi uzunluğu. clip_value (float, isteğe bağlı): Ayarlanırsa, tahmin edilen gürültü her gürültü azaltma adımında[-clip_value, clip_value]aralığına kırpılır. normalize (bool, isteğe bağlı, varsayılanFalse): Tahmin edilen gürültünün her gürültü azaltma adımında normalize edilecek mi.
Örnekler:
>>> 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
< source >( 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 )
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ı - do_classifier_free_guidance (
bool) — classifier free guidance kullanılacak mı - negative_prompt (
strveyalist[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, bunun yerinenegative_prompt_embedsparametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yaniguidance_scaledeğeri1'den küçükse) yok sayılır. - prompt_embeds (
torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleripromptgirdi argümanından oluşturulur. - negative_prompt_embeds (
torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds,negative_promptgirdi argümanından oluşturulur.