Buckets:
| # P-H3-Image | |
| P-H3-Image, Pruna AI tarafından [MiniMax-H3](./minimax_h3) tabanlı olarak geliştirilmiş, metinden görüntüye üretim ve talimata dayalı görüntü düzenleme için kullanılan bir görüntü modelidir. Kontrol noktasını [PrunaAI/P-H3-Image](https://huggingface.co/PrunaAI/P-H3-Image) adresinde bulabilirsiniz. | |
| ```py | |
| import torch | |
| from diffusers import ComponentsManager, ModularPipeline | |
| manager = ComponentsManager() | |
| manager.enable_auto_cpu_offload(device="cuda") # or "mps", "xpu" | |
| pipe = ModularPipeline.from_pretrained("PrunaAI/P-H3-Image", components_manager=manager) | |
| pipe.load_components(dtype=torch.bfloat16) | |
| prompt = ( | |
| "A German Expressionist oil painting of a Berlin street at night in the manner of Ernst Ludwig Kirchner, " | |
| "with gaunt figures hurrying past a glowing gas lamp." | |
| ) | |
| image = pipe(prompt=prompt, height=3360, width=2496, generator=torch.Generator().manual_seed(3), output="images")[0] | |
| edited = pipe(prompt="let it snow on the street", image=image, output="images")[0] | |
| ``` | |
| Her istek önce [prompt upsampler](#prompt-upsampling) üzerinden geçer. Hızlandırıcıdaki her bileşenle birlikte, hattın 8 megapikselde bfloat16 ile yaklaşık 101 GB'a ihtiyacı vardır; bu nedenle örnekler otomatik boşaltmayı kullanır: [ComponentsManager](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager), bir blok gerektiğinde her bileşeni hızlandırıcıya taşır ve hat 80 GB'lık bir GPU üzerinde çalışır. | |
| ## Bileşenler | |
| | Bileşen | Sınıf | | |
| |---|---| | |
| | `transformer` | [MiniMaxH3Transformer3DModel](/docs/diffusers/main/tr/api/models/minimax_h3_transformer3d#diffusers.MiniMaxH3Transformer3DModel) | | |
| | `text_encoder` | `Qwen3VLForConditionalGeneration` (Qwen3-VL-4B) | | |
| | `text_connector` | [PH3ImageTextConnector](/docs/diffusers/main/tr/api/pipelines/p_h3_image#diffusers.PH3ImageTextConnector) | | |
| | `vae` | [AutoencoderKLPH3Image](/docs/diffusers/main/tr/api/models/autoencoderkl_p_h3_image#diffusers.AutoencoderKLPH3Image) | | |
| | `tokenizer`, `processor` | Metin kodlayıcısının belirteçleyicisi ve MiniMax-H3'ün görüntü işleyicisine sahip bir `Qwen3VLProcessor` | | |
| | `scheduler`, `audio_scheduler` | [MiniMaxH3Scheduler](/docs/diffusers/main/tr/api/schedulers/minimax_h3#diffusers.MiniMaxH3Scheduler) | | |
| | `prompt_upsampler`, `prompt_upsampler_processor` | `Qwen3_5ForConditionalGeneration` (Qwen3.5-9B tabanlı) ve işlemcisi | | |
| ## İş Akışları | |
| İş akışı, `image` girdisinde seçilir: | |
| - **`text2image`**, `prompt` üzerinden üretim yapar. `height` ve `width` varsayılan olarak 2912'dir ve 32'nin katlarına yuvarlanır. Model, 8 megapikselde en iyi sonucu verir; örneğin 2912x2912, 3872x2176 veya 2176x3872. | |
| - **`image_conditioned`**, `image` öğesini `prompt` içindeki talimata göre düzenler ve 4 veya 8 megapiksel çözünürlükte en iyi sonucu verir. Görsel, metin kodlayıcı için yaklaşık `vision_pixels` (bir megapiksel) çözünürlükte, VAE için ise kendi boyutunda kodlanır; bu aralığın dışında kalması durumunda `reference_min_pixels` (bir megapiksel) değerine yükseltilir veya `reference_max_pixels` (sekiz megapiksel) değerine düşürülür. `height` ve `width` belirtilmediğinde, düzenleme ilk görselin boyutunda oluşturulur; bu boyut daha küçükse `canvas_min_pixels` (dört megapiksel) değerine yükseltilir. 32'nin katlarına yuvarlanarak geçirilen `height` ve `width` değerleri tuvali değiştirir ancak görselleri değiştirmez. `image` ayrıca en fazla 8 görselden oluşan bir liste de olabilir: ilk görsel düzenlenir, diğerleri ise `<Picture 2>`, `<Picture 3>` vb. şeklinde referans olarak kullanılır. | |
| ## Prompt örnekleme | |
| P-H3-Image, kısa istekler yerine tam istekleri işlemek üzere tasarlandığından, pipeline her istekte önce prompt upsampler'ı çalıştırır. İsteği değerlendirir ve ardından prompt'u yazar: `height` ve `width` en-boy oranına uygun ayrıntılı bir metinden-görsele prompt veya düzenleme sırasında görsellerde nelerin korunup nelerin değiştirileceğine dair bir özet. Yazdığı prompt, `prompt` çıktısı olarak geri döner. | |
| ```py | |
| out = pipe(prompt=prompt, height=3360, width=2496, output=["images", "prompt"]) | |
| print(out["prompt"]) | |
| ``` | |
| `max_new_tokens`, akıl yürütme ve istemi birlikte sınırlar; varsayılan olarak metinden görüntüye için 1024, düzenlemeler için 1536 token'dur. Upsampler kullanılabilir bir istem döndürmezse, pipeline bunu render etmek yerine bir hata fırlatır. | |
| `prompt` değerini olduğu gibi görüntülemek için bloklardan adımı çıkarın. Çıkarılan blok ayrıca kendi başına da çalışır; örneğin prompt'u görüntülemesinden önce kullanıcıya göstermek için: | |
| ```py | |
| manager = ComponentsManager() | |
| manager.enable_auto_cpu_offload(device="cuda") | |
| blocks = ModularPipeline.from_pretrained("PrunaAI/P-H3-Image").blocks | |
| upsampler_block = blocks.sub_blocks.pop("prompt_upsampler") | |
| upsampler = upsampler_block.init_pipeline("PrunaAI/P-H3-Image", components_manager=manager) | |
| upsampler.load_components(dtype=torch.bfloat16) | |
| upsampled = upsampler(prompt=prompt, height=3360, width=2496, output="prompt") | |
| pipe = blocks.init_pipeline("PrunaAI/P-H3-Image", components_manager=manager) | |
| pipe.load_components(dtype=torch.bfloat16) | |
| image = pipe(prompt=upsampled, height=3360, width=2496, output="images")[0] | |
| ``` | |
| Adım olmadan, upsampler'ın yazdığı her iki biçimdeki düzenleme komutu, altı bölümlük özet veya `Edit <Picture 1>.` ile başlayan bir paragraf, olduğu gibi kodlanır; diğer tüm talimatlar bu önekle eklenir. | |
| ## Örnekleme | |
| - 8 adım, kontrol noktasının `sample_sigmas` üzerinde çalışır. Başka bir ızgara kullanmak için `sigmas` parametresini iletin. | |
| - Model rehberlik damıtılmıştır, bu nedenle bir rehber, `negative_prompt` veya `guidance_scale` yoktur. | |
| ## PH3ImageModularPipeline[[diffusers.PH3ImageModularPipeline]] | |
| #### diffusers.PH3ImageModularPipeline[[diffusers.PH3ImageModularPipeline]] | |
| ```python | |
| diffusers.PH3ImageModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/p_h3_image/modular_pipeline.py#L22) | |
| MiniMax-H3 tabanlı bir görüntü modeli olan P-H3-Image için metinden görüntüye (`text2image`) ve talimata dayalı düzenleme (`image_conditioned`) için bir ModularPipeline. | |
| Görsel, iki adet atılan ses latentini içeren tek bir paketlenmiş dizide gürültüden arındırılmış tek bir latent karedir. | |
| ```py | |
| import torch | |
| from diffusers import ComponentsManager, ModularPipeline | |
| manager = ComponentsManager() | |
| manager.enable_auto_cpu_offload(device="cuda") | |
| pipe = ModularPipeline.from_pretrained("PrunaAI/P-H3-Image", components_manager=manager) | |
| pipe.load_components(dtype=torch.bfloat16) | |
| prompt = ( | |
| "A German Expressionist oil painting of a Berlin street at night in the manner of Ernst Ludwig Kirchner, " | |
| "with gaunt figures hurrying past a glowing gas lamp." | |
| ) | |
| image = pipe(prompt=prompt, height=3360, width=2496, output="images")[0] | |
| ``` | |
| ## PH3ImageBlocks[[diffusers.PH3ImageBlocks]] | |
| #### diffusers.PH3ImageBlocks[[diffusers.PH3ImageBlocks]] | |
| ```python | |
| diffusers.PH3ImageBlocks() | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/p_h3_image/modular_blocks_p_h3_image.py#L376) | |
| P-H3-Image için modüler pipeline blokları: `text2image` ve `image` geçirildiğinde talimata dayalı düzenleme (`image_conditioned`). `prompt` önce prompt upsampler'dan geçer; verilen haliyle render etmek için `prompt_upsampler` adımını kaldırın. | |
| Desteklenen iş akışları: | |
| - `text2image`: `prompt` gerektirir | |
| - `image_conditioned`: `prompt` ve `image` gerektirir | |
| Bileşenler: image_processor (`VaeImageProcessor`) prompt_upsampler (`Qwen3_5ForConditionalGeneration`): İstem yükseltici. prompt_upsampler_processor (`AutoProcessor`): İşlemcisi. text_encoder (`Qwen3VLForConditionalGeneration`) text_connector (`PH3ImageTextConnector`) tokenizer (`Qwen2Tokenizer`) processor (`Qwen3VLProcessor`) vae (`AutoencoderKLPH3Image`) scheduler (`MiniMaxH3Scheduler`) audio_scheduler (`MiniMaxH3Scheduler`) transformer (`MiniMaxH3Transformer3DModel`) | |
| Yapılandırmalar: reference_min_pixels (varsayılan: 1048576) reference_max_pixels (varsayılan: 8388608) canvas_min_pixels (varsayılan: | |
| 4194304) vision_pixels (varsayılan: 1000000) sample_sigmas (varsayılan: [1.0, 0.984753, 0.967905, 0.951688, | |
| 0.925372, 0.881923, 0.810083, 0.528718, 0.0]): `sigmas` geçirilmediğinde kullanılan checkpoint'in örneklem ızgarası. | |
| Girdiler: image (`Image | list`, *isteğe bağlı*): Düzenlenecek görüntü veya en fazla 8 görüntünün listesi: ilki düzenlenir, diğerleri referans olarak kullanılır. height (`int`, *isteğe bağlı*): Üretilen görüntünün piksel cinsinden yüksekliği, 32'nin katına yuvarlanır. `text2image` için varsayılan değer 2912'dir ve 8 megapikselde en iyi sonucu verir. Bir düzenleme, en az `canvas_min_pixels` olmak üzere ilk görüntünün boyutuna ayarlanır ve 4 veya 8 megapikselde en iyi sonucu verir. width (`int`, *isteğe bağlı*): Üretilen görüntünün piksel cinsinden genişliği, 32'nin katına yuvarlanır. `text2image` için varsayılan değer 2912'dir ve 8 megapikselde en iyi sonucu verir. Bir düzenleme, en az `canvas_min_pixels` olmak üzere ilk görüntünün boyutuna ayarlanır ve 4 veya 8 megapikselde en iyi sonucu verir. prompt (`str`): İstem veya `image` geçirildiğinde düzenleme talimatı. Tek bir dize. max_new_tokens (`int`, *isteğe bağlı*, iş akışına bağlı olarak varsayılan 1536 veya 1024): Upsampler'ın akıl yürütmesi dahil olmak üzere üretebileceği en fazla token sayısı. vision_images (`list`, *isteğe bağlı*): Metin kodlayıcı için yeniden boyutlandırılmış düzenleme görüntüleri, düzenlenecek görüntü ilk sırada. reference_images (`list`, *isteğe bağlı*): VAE için yeniden boyutlandırılmış düzenleme görüntüleri, düzenlenecek görüntü ilk sırada. condition_latents (`list`, *isteğe bağlı*): Düzenleme görüntülerinin koşullandırma latentleri. Biçimleri, referans bloklarının geometrisini verir. generator (`Generator`, *isteğe bağlı*): İsteğin üreteci. Koşullandırma gürültüsü, üretilen satırların gürültüsünden önce, her koşul için bir çekim olacak şekilde buradan çekilir. latents (`Tensor`): `(1, latent_channels, 1, latent_height, latent_width)` biçiminde önceden üretilmiş görüntü gürültüsü, çekim yerine kullanılır. sigmas (`list`, *isteğe bağlı*): Sıkı şekilde azalan ve 0 ile biten özel bir örneklem ızgarası. Varsayılan olarak kontrol noktasının `sample_sigmas` değerini kullanır. **denoiser_input_fields (`None`, *isteğe bağlı*): Transformer'ın adla okuduğu paketlenmiş dizinin yapısal açıklaması: `token_tags`, `position_ids` ve üç satır-dizin tensörü. attention_kwargs (`dict`, *isteğe bağlı*): Dikkat işleyicileri için ek kwargs. output_type (`str`, *isteğe bağlı*, varsayılan pil): Çıktı biçimi: 'pil', 'np', 'pt'. | |
| Çıktılar: görüntüler (`list`): Oluşturulan görüntüler. | |
| ## PH3ImageTextConnector[[diffusers.PH3ImageTextConnector]] | |
| #### diffusers.PH3ImageTextConnector[[diffusers.PH3ImageTextConnector]] | |
| ```python | |
| diffusers.PH3ImageTextConnector(hidden_state_indices: tuple = (13, 19, 25, 31, 36), text_hidden_size: int = 2560, out_channels: int = 5120) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/condition_embedders/condition_embedder_p_h3_image.py#L22) | |
| **Parametreler:** | |
| hidden_state_indices (`tuple[int, ...]`, varsayılan `(13, 19, 25, 31, 36)`) : Metin kodlayıcısının `hidden_states` alanındaki hangi girdilerin okunacağı, `output_hidden_states` numaralandırmasına göre (`0` gömme çıktısı, `i` `i`. çözücü katmanının çıktısı ve sonuncu ise son normalize edilmiş gizli durum). | |
| text_hidden_size (`int`, varsayılan `2560`) : Metin kodlayıcısının gizli boyutu. | |
| out_channels (`int`, varsayılan `5120`) : MiniMax-H3'ün transformer'ının okuduğu koşullandırma kanal sayısı. | |
| P-H3-Image'ın Qwen3-VL metin kodlayıcısının gizli durumlarını, dönüştürücüsünün okuduğu metin koşullamasına eşler. | |
| `hidden_state_indices` içinde listelenen gizli durumlar birleştirilir, standartlaştırılır, doğrusal olarak projekte edilir ve standartlaştırma işlemi geri alınır. İlk token, her istem için aynı koşullandırmaya sahip bir dikkat yutucusudur (attention sink) bu nedenle `sink_embedding` ile değiştirilir. | |
| #### forward[[diffusers.PH3ImageTextConnector.forward]] | |
| ```python | |
| forward(hidden_states: tuple) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/condition_embedders/condition_embedder_p_h3_image.py#L61) | |
| **Parametreler:** | |
| hidden_states (`tuple[torch.Tensor, ...]`) : Metin kodlayıcısının gizli durumları, `output_hidden_states=True` ile döndürüldüğü gibi: her giriş için `(batch_size, num_tokens, text_hidden_size)` biçiminde bir tensör. | |
| **Dönüş:** `torch.Tensor` | |
| bağlantıcının parametrelerinin veri türünde, `(batch_size, num_tokens, out_channels)` biçimindeki koşullandırma. | |
Xet Storage Details
- Size:
- 13.7 kB
- Xet hash:
- 40125f1e8343222b1464ab3b9cf8c28665631828659bf7d03df15c9b105d360f
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.