Diffusers documentation

PRX Pixel

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

PRX Pixel

PRXPixel, Photoroom tarafından geliştirilen piksel uzayında metinden görüntüye üretim modelidir. ~7B parametreli PRXTransformer2DModel, ham RGB görüntülerini doğrudan gürültüden arındırır — VAE gerekmez. Model, Qwen3-VL metin kodlayıcısıyla koşullandırılır ve akış eşleştirmesi (flow matching) kullanır; bu yöntemde dönüştürücü (transformer), her adımda temiz görüntüyü tahmin eder (x-prediction). Üretim çözünürlüğü, zaman adımı modülasyonuna (timestep modulation) aktarılır, böylece model hedef boyutun farkındadır.

Mevcut modeller

ModelÇözümAçıklamaÖnerilen parametrelerÖnerilen dtype
Photoroom/prxpixel-t2i1024Qwen3-VL metin kodlayıcılı, piksel uzayında ~7B model28 adım, cfg=5.0torch.bfloat16

Hattın yüklenmesi

PRXPixelPipeline, Qwen3VLTextModel'i tanıtan sürüm olan transformers >= 4.57 sürümünü gerektirir. from_pretrained() ile yükleyin:

import torch
from diffusers import PRXPixelPipeline

pipe = PRXPixelPipeline.from_pretrained("Photoroom/prxpixel-t2i", dtype=torch.bfloat16)
pipe.to("cuda")  # or "mps", "xpu", "cpu"

prompt = "A front-facing portrait of a lion in the golden savanna at sunset."
image = pipe(prompt, num_inference_steps=28, guidance_scale=5.0).images[0]
image.save("prxpixel_output.png")

Bellek Optimizasyonu

Bellek kısıtlamalı ortamlar için:

import torch
from diffusers import PRXPixelPipeline

pipe = PRXPixelPipeline.from_pretrained("Photoroom/prxpixel-t2i", dtype=torch.bfloat16)
pipe.enable_model_cpu_offload()

# Or use sequential CPU offload for even lower memory
pipe.enable_sequential_cpu_offload()

PRXPixelPipeline

sınıf diffusers.PRXPixelPipeline

< >

( transformer: PRXTransformer2DModelscheduler: FlowMatchEulerDiscreteSchedulertext_encoder: PreTrainedModeltokenizer: transformers.models.auto.tokenization_auto.AutoTokenizer | transformers.tokenization_utils_base.PreTrainedTokenizerBasedefault_sample_size: int | None = 1024prompt_max_tokens: int = 256noise_scale: float = 2.0 )

Parametreler

  • transformer (PRXTransformer2DModel) — ~7B parametreli PRX gürültü azaltıcı. PRXPixel için in_channels=3, bir darboğaz img_in ve resolution_embeds=True ile oluşturulur ve temiz görüntüyü x0 tahmin etmesi için eğitilir.
  • scheduler (FlowMatchEulerDiscreteScheduler) — (piksel uzayındaki) latentleri gürültüden arındırmak için kullanılan akış eşleştirme zamanlayıcısı.
  • text_encoder (PreTrainedModel) — İfadeleri kodlamak için kullanılan Qwen3-VL metin omurgası (görüntü kulesi atılır). Bir last_hidden_state döndürmelidir.
  • tokenizer (PreTrainedTokenizerBase) — text_encoder için tokenizer (genellikle AutoTokenizer üzerinden yüklenir).
  • default_sample_size (int, isteğe bağlı, varsayılan 1024) — __call__'e yükseklik/genişlik verilmediğinde kullanılan varsayılan yükseklik/genişlik.
  • prompt_max_tokens (int, isteğe bağlı, varsayılan 256) — Kodlamadan önce prompt'un doldurulacağı/kısaltılacağı metin token sayısı.
  • noise_scale (float, isteğe bağlı, varsayılan 2.0) — Başlangıç Gauss gürültüsüne uygulanan ölçek. PRXPixel, birim olmayan bir başlangıç gürültü ölçeğiyle eğitildiğinden örnekleme randn * noise_scale ile başlamalıdır.

PRXPixel modeliyle metinden görüntüye üretim hattı.

PRXPixel bağımsız, piksel uzayında metinden görüntüye bir iş akışıdır. Ham RGB verisini doğrudan ~7B parametreli PRXTransformer2DModel ile gürültüden arındırır ve VAE içermez (üretim tamamen piksel uzayında gerçekleştiği için gürültüsü arındırılmış çıktı görseldir). İfadeler, Qwen3-VL metin kodlayıcısıyla kodlanır (görüntü kulesi atılır). PRXPipeline'den farklı olarak, dönüştürücü x-prediction ile eğitilir: her adımda temiz görüntüyü x0 tahmin eder ve bu, zamanlayıcı adımı öncesinde akış eşleştirme hızına dönüştürülür. Örnekleme randn * noise_scale ile başlar (varsayılan noise_scale=2.0) ve varsayılan çözünürlük 1024px'tir.

Bu model DiffusionPipeline sınıfından devralır. Kütüphanenin tüm pipeline'lar için uyguladığı genel yöntemler (indirme veya kaydetme, belirli bir cihazda çalıştırma vb.) için üst sınıf belgelendirmesine bakın.

Örnekler:

>>> import torch
>>> from diffusers import PRXPixelPipeline

>>> pipe = PRXPixelPipeline.from_pretrained("Photoroom/prxpixel-t2i", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")

>>> prompt = "A front-facing portrait of a lion in the golden savanna at sunset."
>>> image = pipe(prompt, num_inference_steps=28, guidance_scale=5.0).images[0]
>>> image.save("prxpixel_output.png")

__call__

< >

( prompt: str | list[str] = Nonenegative_prompt: str = ''height: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 28timesteps: list = Noneguidance_scale: float = 4.0num_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = Noneprompt_attention_mask: typing.Optional[torch.BoolTensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.BoolTensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueuse_resolution_binning: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] ) → PRXPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerine prompt_embeds parametresinin geçirilmesi gerekir.
  • negative_prompt (str, isteğe bağlı, varsayılan "") — Görsel üretimini yönlendirmemesi istenen istem veya istemler. Yönlendirme kullanılmadığında yok sayılır (yani guidance_scale 1'den küçükse yok sayılır).
  • height (int, isteğe bağlı, varsayılan default_sample_size) — Oluşturulan görüntünün piksel cinsinden yüksekliği.
  • width (int, isteğe bağlı, varsayılan default_sample_size) — Oluşturulan görüntünün piksel cinsinden genişliği.
  • num_inference_steps (int, isteğe bağlı, varsayılan 28) — 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ı) — timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. set_timesteps yönteminde. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılacaktır. Azalan sırada olmalıdır.
  • guidance_scale (float, isteğe bağlı, varsayılan 4.0) — Classifier-Free Diffusion Guidance'de tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper'daki 2. denklemin w'si olarak tanımlanır. Yönlendirme ölçeği, guidance_scale > 1 olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği, prompt ile yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle daha düşük görsel kalitesi pahasına.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak görsel sayısı.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için bir veya torch üreteci listesi.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • 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ğerleri prompt girdi 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 ve guidance_scale > 1 ise, negatif gömme değerleri boş bir diziden oluşturulur.
  • prompt_attention_mask (torch.BoolTensor, isteğe bağlı) — prompt_embeds için önceden oluşturulmuş dikkat maskesi. Sağlanmazsa, dikkat maskesi prompt girdi argümanından oluşturulur.
  • negative_prompt_attention_mask (torch.BoolTensor, isteğe bağlı) — negative_prompt_embeds için önceden oluşturulmuş dikkat maskesi. Sağlanmazsa ve guidance_scale > 1 ise, dikkat maskesi boş bir diziden 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.Image veya np.array.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine PRXPipelineOutput döndürülüp döndürülmemesi.
  • use_resolution_binning (bool, isteğe bağlı, varsayılan True) — True olarak ayarlanırsa, istenen yükseklik ve genişlik, önceden tanımlı en-boy oranı sınıfları kullanılarak en yakın çözümlere eşlenir. Oluşturulan latentler görüntülere çözümlendikten sonra, istenen çözünürlüğe yeniden boyutlandırılır. Optimal çözünürlüklerde kare olmayan görüntüler üretmek için faydalıdır.
  • 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, step, timestep, callback_kwargs). callback_kwargs, callback_on_step_end_tensor_inputs ile belirtilen tüm tensörlerin listesini içerir.
  • callback_on_step_end_tensor_inputs (list, isteğe bağlı) — callback_on_step_end işlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler callback_kwargs argümanı olarak geçirilir. Yalnızca ._callback_tensor_inputs özniteliğinde listelenen tensörleri dahil edebilirsiniz.

Dönüş değeri

PRXPipelineOutput veya tuple

return_dict True ise PRXPipelineOutput, aksi halde bir `tuple döner. Tuple döndürüldüğünde, ilk öğe üretilen görsellerin listesidir.

Üretim için pipeline çağrıldığında tetiklenen işlev.

Örnekler:

>>> import torch
>>> from diffusers import PRXPixelPipeline

>>> pipe = PRXPixelPipeline.from_pretrained("Photoroom/prxpixel-t2i", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")

>>> prompt = "A front-facing portrait of a lion in the golden savanna at sunset."
>>> image = pipe(prompt, num_inference_steps=28, guidance_scale=5.0).images[0]
>>> image.save("prxpixel_output.png")

check_inputs

< >

( prompt: str | list[str]height: intwidth: intguidance_scale: floatcallback_on_step_end_tensor_inputs: list[str] | None = Noneprompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = None )

Tüm girdilerin doğru formatta olduğunu kontrol edin.

encode_prompt

< >

( prompt: str | list[str]device: typing.Optional[torch.device] = Nonedo_classifier_free_guidance: bool = Truenegative_prompt: str = ''num_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = Noneprompt_attention_mask: typing.Optional[torch.BoolTensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.BoolTensor] = Nonetokenizer_max_length: int | None = Noneskip_text_cleaning: bool = False )

Standart metin kodlayıcı ve belirteçleyiciyi kullanarak metin komutunu kodlayın veya önceden hesaplanmış gömme değerlerini kullanın.

prepare_latents

< >

( batch_size: intnum_channels_latents: intheight: intwidth: intdtype: dtypedevice: devicegenerator: typing.Optional[torch.Generator] = Nonelatents: typing.Optional[torch.Tensor] = None )

Difüzyon süreci için başlangıç latenslerini hazırlar.

PRXPixel, birim olmayan bir başlangıç gürültü ölçeğiyle eğitilir; bu nedenle örneklenen gürültü self.config.noise_scale ile çarpılır.

PRXPipelineOutput

sınıf diffusers.pipelines.prx.PRXPipelineOutput

< >

( images: list[PIL.Image.Image] | numpy.ndarray )

Parametreler

  • images (list[PIL.Image.Image] veya np.ndarray) — Uzunluğu batch_size olan gürültüsü azaltılmış PIL görüntülerinin listesi veya (batch_size, height, width, num_channels) biçiminde bir numpy dizisi. PIL görüntüleri veya numpy dizisi, difüzyon hattının gürültüsü azaltılmış görüntülerini temsil eder.

PRX hatları için çıktı sınıfı.

Update on GitHub