Buckets:

mishig's picture
|
download
raw
15.9 kB
#
# Apache Lisansı, 2.0 Sürümü ("Lisans") altında lisanslanmıştır;
# bu dosyayı, Lisansa uygun olarak kullanabilirsiniz.
# Lisansın bir kopyasını şu adresten edinebilirsiniz
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Uygulanabilir yasa gerektirmedikçe veya yazılı olarak anlaşılmadıkça, yazılım
# Lisans kapsamında dağıtılan, "OLDUĞU GİBİ" esasına göre dağıtılır,
# HİÇBİR TÜR AÇIK VEYA ZIMMİ GARANTİ VEYA ŞART İÇERMEZ.
# İzinleri ve
# lisans kapsamındaki kısıtlamalar. -->
# 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üm | Açıklama | Önerilen parametreler | Önerilen dtype |
|:-----:|:---------:|:----------:|:----------:|:----------:|
| [`Photoroom/prxpixel-t2i`](https://huggingface.co/Photoroom/prxpixel-t2i) | 1024 | Qwen3-VL metin kodlayıcılı, piksel uzayında ~7B model | 28 adım, cfg=5.0 | `torch.bfloat16` |
## Hattın yüklenmesi
[PRXPixelPipeline](/docs/diffusers/main/tr/api/pipelines/prx_pixel#diffusers.PRXPixelPipeline), `Qwen3VLTextModel`'i tanıtan sürüm olan `transformers >= 4.57` sürümünü gerektirir. [from_pretrained()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) ile yükleyin:
```py
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:
```py
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[[diffusers.PRXPixelPipeline]]
#### diffusers.PRXPixelPipeline[[diffusers.PRXPixelPipeline]]
```python
diffusers.PRXPixelPipeline(transformer: PRXTransformer2DModel, scheduler: FlowMatchEulerDiscreteScheduler, text_encoder: PreTrainedModel, tokenizer: transformers.models.auto.tokenization_auto.AutoTokenizer | transformers.tokenization_utils_base.PreTrainedTokenizerBase, default_sample_size: int | None = 1024, prompt_max_tokens: int = 256, noise_scale: float = 2.0)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/prx/pipeline_prx_pixel.py#L98)
**Parametreler:**
transformer (`PRXTransformer2DModel`) : ~7B parametreli PRX gürültü azaltıcı. PRXPixel için bu model `in_channels=3`, bir darboğaz `img_in` ve `resolution_embeds=True` ile oluşturulur ve temiz görüntüyü `x0` tahmin edecek şekilde eğitilir.
scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/flow_match_euler_discrete#diffusers.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`) : İstemleri kodlamak için kullanılan Qwen3-VL metin omurgası (görüntü kulesi atılır). `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 hiçbir değer sağlanmadığında 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`, *opsiyonel*, 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, örneklemeye `randn * noise_scale` ile başlanmalıdır.
PRXPixel modeliyle metinden görüntüye üretim hattı.
PRXPixel, bağımsız bir piksel uzayı metinden görüntüye üretim hattı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](/docs/diffusers/main/tr/api/pipelines/prx#diffusers.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 değer, 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](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.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:
```py
>>> 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__[[diffusers.PRXPixelPipeline.__call__]]
```python
__call__(prompt: str | list[str] = None, negative_prompt: str = '', height: int | None = None, width: int | None = None, num_inference_steps: int = 28, timesteps: list = None, guidance_scale: float = 4.0, num_images_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, prompt_attention_mask: typing.Optional[torch.BoolTensor] = None, negative_prompt_attention_mask: typing.Optional[torch.BoolTensor] = None, output_type: str | None = 'pil', return_dict: bool = True, use_resolution_binning: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list = ['latents'])
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/prx/pipeline_prx_pixel.py#L406)
**Parametreler:**
prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmamışsa, bunun yerine `prompt_embeds` geçirilmelidir.
negative_prompt (`str`, *isteğe bağlı*, varsayılan `""`) : Görsel üretimi yönlendirmemek için kullanılan 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`) : Üretilen görüntünün piksel cinsinden yüksekliği.
width (`int`, *isteğe bağlı*, varsayılan `default_sample_size`) : Üretilen 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ı*) : `set_timesteps` metodunda `timesteps` argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. 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](https://huggingface.co/papers/2207.12598)'de tanımlandığı gibi yönlendirme ölçeği. `guidance_scale`, [Imagen Paper](https://huggingface.co/papers/2205.11487)'deki 2. denklemindeki `w` olarak tanımlanır. Yönlendirme ölçeği, `guidance_scale > 1` olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ö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.
num_images_per_prompt (`int`, *isteğe bağlı*, varsayılan 1) : Her istem için üretilecek 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(leri)](https://pytorch.org/docs/stable/generated/torch.Generator.html) listesi.
latents (`torch.Tensor`, *isteğe bağlı*) : Görsel üretimi için girdi olarak kullanılacak, Gauss dağılımından örneklenen önceden oluşturulmuş gürültülü latentler. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele `generator` kullanılarak örneklem yoluyla bir latent tensörü oluşturulur.
prompt_embeds (`torch.FloatTensor`, *isteğe bağlı*) : Ön oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, metin gömme değerleri `prompt` girdi argümanından oluşturulur.
negative_prompt_embeds (`torch.FloatTensor`, *isteğe bağlı*) : Ön 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ğlanmaz ve `guidance_scale > 1` ise, dikkat maskesi boş bir diziden oluşturulur.
output_type (`str`, *isteğe bağlı*, varsayılan `"pil"`) : Üretilen görüntünün çıktı biçimi. [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` veya `np.array` arasında seçim yapın.
return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine [PRXPipelineOutput](/docs/diffusers/main/tr/api/pipelines/prx#diffusers.pipelines.prx.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ünürlüklere eşlenir. Üretilen 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 oluşturmak 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` tarafından belirtilen tüm tensörlerin listesini içerir.
callback_on_step_end_tensor_inputs (`list`, *isteğe bağlı*) : `callback_on_step_end` fonksiyonu 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üş:** [PRXPipelineOutput](/docs/diffusers/main/tr/api/pipelines/prx#diffusers.pipelines.prx.PRXPipelineOutput) veya `tuple`
`return_dict` True ise [PRXPipelineOutput](/docs/diffusers/main/tr/api/pipelines/prx#diffusers.pipelines.prx.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:
```py
>>> 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[[diffusers.PRXPixelPipeline.check_inputs]]
```python
check_inputs(prompt: str | list[str], height: int, width: int, guidance_scale: float, callback_on_step_end_tensor_inputs: list[str] | None = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/prx/pipeline_prx_pixel.py#L324)
Tüm girdilerin doğru formatta olduğunu kontrol edin.
#### encode_prompt[[diffusers.PRXPixelPipeline.encode_prompt]]
```python
encode_prompt(prompt: str | list[str], device: typing.Optional[torch.device] = None, do_classifier_free_guidance: bool = True, negative_prompt: str = '', num_images_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, prompt_attention_mask: typing.Optional[torch.BoolTensor] = None, negative_prompt_attention_mask: typing.Optional[torch.BoolTensor] = None, tokenizer_max_length: int | None = None, skip_text_cleaning: bool = False)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/prx/pipeline_prx_pixel.py#L263)
Standart metin kodlayıcı ve belirteçleyiciyi kullanarak metin komutunu kodlayın veya önceden hesaplanmış gömme değerlerini kullanın.
#### prepare_latents[[diffusers.PRXPixelPipeline.prepare_latents]]
```python
prepare_latents(batch_size: int, num_channels_latents: int, height: int, width: int, dtype: dtype, device: device, generator: typing.Optional[torch.Generator] = None, latents: typing.Optional[torch.Tensor] = None)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/prx/pipeline_prx_pixel.py#L378)
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[[diffusers.pipelines.prx.PRXPipelineOutput]]
#### diffusers.pipelines.prx.PRXPipelineOutput[[diffusers.pipelines.prx.PRXPipelineOutput]]
```python
diffusers.pipelines.prx.PRXPipelineOutput(images: list[PIL.Image.Image] | numpy.ndarray)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/prx/pipeline_output.py#L24)
**Parametreler:**
images (`list[PIL.Image.Image]` veya `np.ndarray`) : `batch_size` uzunluğunda gürültüsü azaltılmış PIL görselleri listesi veya `(batch_size, height, width, num_channels)` biçiminde numpy dizisi. PIL görselleri veya numpy dizisi, difüzyon hattının gürültüsü azaltılmış görsellerini temsil eder.
PRX hatları için çıktı sınıfı.

Xet Storage Details

Size:
15.9 kB
·
Xet hash:
35a299cd47b37640a0b8c848549fa5423d1a6b448c9d7c729bc83d0f9332198e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.