Text-to-Image
Diffusers
Safetensors
MiniMax H3
Pruna AI
English
image-to-image
image-generation
image-editing
prompt-upsampling
modular-diffusers
Instructions to use PrunaAI/P-H3-Image with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use PrunaAI/P-H3-Image with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("PrunaAI/P-H3-Image", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Pruna AI
How to use PrunaAI/P-H3-Image with Pruna AI:
from pruna import PrunaModel pip install -U diffusers transformers accelerate
from pruna import PrunaModel import torch # switch to "mps" for apple devices pipe = PrunaModel.from_pretrained("PrunaAI/P-H3-Image", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Draw Things
- DiffusionBee
Add model card
Browse filesModel card with quickstart, recommended resolutions, prompting and editing guidance, and figures.
- .gitattributes +6 -0
- README.md +318 -0
- assets/edits.jpg +3 -0
- assets/multi_image.jpg +3 -0
- assets/p-h3-image.jpg +3 -0
- assets/prompt.jpg +3 -0
- assets/resolution_ladder.jpg +3 -0
- assets/resolutions.png +0 -0
- assets/styles.jpg +3 -0
.gitattributes
CHANGED
|
@@ -37,3 +37,9 @@ text_encoder/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
|
| 37 |
processor/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 38 |
tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 39 |
prompt_upsampler_processor/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
processor/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 38 |
tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 39 |
prompt_upsampler_processor/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
assets/edits.jpg filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
assets/multi_image.jpg filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
assets/p-h3-image.jpg filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
assets/prompt.jpg filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
assets/resolution_ladder.jpg filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
assets/styles.jpg filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -13,8 +13,326 @@ tags:
|
|
| 13 |
- image-to-image
|
| 14 |
- image-generation
|
| 15 |
- image-editing
|
|
|
|
| 16 |
- minimax-h3
|
| 17 |
- diffusers
|
| 18 |
- modular-diffusers
|
| 19 |
- pruna-ai
|
| 20 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
- image-to-image
|
| 14 |
- image-generation
|
| 15 |
- image-editing
|
| 16 |
+
- prompt-upsampling
|
| 17 |
- minimax-h3
|
| 18 |
- diffusers
|
| 19 |
- modular-diffusers
|
| 20 |
- pruna-ai
|
| 21 |
---
|
| 22 |
+
<!-- header start -->
|
| 23 |
+
<p align="center">
|
| 24 |
+
<img src="assets/p-h3-image.jpg" width="800">
|
| 25 |
+
</p>
|
| 26 |
+
<!-- header end -->
|
| 27 |
+
|
| 28 |
+
<p align="center">
|
| 29 |
+
<a href="https://github.com/PrunaAI/pruna">
|
| 30 |
+
<img src="https://img.shields.io/badge/GitHub-PrunaAI-9334E9?style=plastic&logo=github&logoColor=white" alt="GitHub">
|
| 31 |
+
</a>
|
| 32 |
+
|
| 33 |
+
<a href="https://twitter.com/PrunaAI">
|
| 34 |
+
<img src="https://img.shields.io/badge/Twitter%2FX-@PrunaAI-9334E9?style=plastic&logo=x&logoColor=white" alt="Twitter/X">
|
| 35 |
+
</a>
|
| 36 |
+
|
| 37 |
+
<a href="https://www.linkedin.com/company/pruna-ai">
|
| 38 |
+
<img src="https://img.shields.io/badge/LinkedIn-PrunaAI-9334E9?style=plastic&logo=linkedin&logoColor=white" alt="LinkedIn">
|
| 39 |
+
</a>
|
| 40 |
+
|
| 41 |
+
<a href="https://discord.com/invite/JFQmtFKCjd">
|
| 42 |
+
<img src="https://img.shields.io/badge/Discord-Join%20us-9334E9?style=plastic&logo=discord&logoColor=white" alt="Discord">
|
| 43 |
+
</a>
|
| 44 |
+
|
| 45 |
+
<a href="https://dashboard.pruna.ai/login?utm_source=huggingface&utm_medium=org_card&utm_campaign=hf_traffic">
|
| 46 |
+
<img src="https://img.shields.io/badge/Performance%20Models-Try%20them%20now-9334E9?style=plastic&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MTEiIGhlaWdodD0iNDc3IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMjMuNzAzIDMwMC41MzJjLTEuODQyLS42NzQtNC4xNDItMS4wNTctNS43MDMtMi4wMjktMTIuNTU4LTcuODQ2LTguODM3LTI1LjE3MiA1LjI1NS0yOC4zNjFhLjY2LjY2IDAgMCAwIC4zNDgtLjIwMS42LjYgMCAwIDAgLjE1Ni0uMzZxNi40OS04MS45ODYgNjguNTc3LTEzNC42MjlhLjM0LjM0IDAgMCAwIC4wOTItLjEyNS4zMy4zMyAwIDAgMC0uMDI2LS4zLjMzLjMzIDAgMCAwLS4xMTItLjEwOGMtNC4xMTUtMi40OTctOC42NC00Ljc1LTEyLjM1My03LjQ0M2ExOTAgMTkwIDAgMCAxLTE4Ljc5NC0xNS41MjJjLTIuOTM2LTIuNzY4LTMuNzAzLTUuODkxLjU4LTcuNzdhLjUuNSAwIDAgMCAuMjgtLjYwOEM1MyA3NS45NSA0OC40MTcgNDguNTk5IDQ1LjUxOCAxOS42NXEtLjM5My0zLjg1Mi0uMjcxLTYuMzJhLjc1Ljc1IDAgMCAxIC4xMzQtLjQuNy43IDAgMCAxIC4zMjQtLjI1NXEyLjEwNC0uODQyIDUuODQ0LTEuNDMxYzU4LjExNC05LjEzNiAxMjcuMDA5IDguNDI1IDE0NC4zMDcgNzIuNjQ1cS4xMDMuMzY0LjE3OCAwIDUuMDk2LTI0LjA5NyA0LjYzOC00OC4xOTMtLjA0Ny0yLjc4NyAxLjg3OS00Ljc4OCAxMC40MDctMTAuOCAyNC43OTgtOC42ODdjNy40NzEgMS4wOTUgNy43NDIgNC42MzggNy4yMDkgMTEuMWEzMzQgMzM0IDAgMCAxLTExLjg4NCA2NC43MDYuMzg4LjM4OCAwIDAgMCAuMTgyLjQ0NC40LjQgMCAwIDAgLjE2NC4wNTFjOTIuNDIxIDguNDUzIDE1OC44NzUgNzkuNDg5IDE2NS4wODQgMTcxLjI3NGExIDEgMCAwIDAgLjEyOS40MjQuODMuODMgMCAwIDAgLjI5MS4yOTZjMy43NSAyLjE3IDYuMiAyLjIxNiA4Ljg1NSA2LjU5MiA1LjA2OCA4LjMzMiAxLjQ1IDIwLjQzMS04LjU5MyAyMi40N2ExLjcxIDEuNzEgMCAwIDAtMS4zNjUgMS40NjhxLTkuMTczIDc1LjM4My02NC43NjIgMTIzLjM3MWMtMjguNjIyIDI0LjcwNC02NS43NDQgMzkuNzQ5LTEwMy40NjQgNDIuMzMtMTAwLjM1OSA2Ljg2My0xODQuNDg2LTY1LjYyMi0xOTUuMDA1LTE2NS41N2EuOC44IDAgMCAwLS4xNTQtLjM5NS43NC43NCAwIDAgMC0uMzMzLS4yNU0xNTEuMzM4IDk3LjY0M2wxOS4wNjYgMTkuMzc1YS41LjUgMCAwIDAgLjE1LjEuNS41IDAgMCAwIC4xNzYuMDMxLjQzLjQzIDAgMCAwIC4zMTktLjE1cTEwLjg0Ny0xMi40NjUgNy40NDMtMjguMTU1Yy00LjUzNS0yMC44Ni0xOC41OTgtMzcuNjY0LTM3LjI3MS00OC4zODktMjEuMDY3LTEyLjY4OS00Ny44NjUtMTUuOTA1LTcyLjI4LTE0Ljg0cS0uNjE3LjAzLS4xNC40MjJsNjMuNDcyIDUzLjMyNmEuNC40IDAgMCAwIC4xNDQuMDcyLjM0LjM0IDAgMCAwIC4zMDEtLjA2OC4zLjMgMCAwIDAgLjA4OC0uMTI2IDQ3IDQ3IDAgMCAwIDMuMjgyLTEzLjA4MXEuMDIzLS4yMzMuMTI0LS40MzN0LjI2OC0uMzM0YzIuOTU1LTIuNDc4IDQuMTE1LjQ1OCA0LjY5NCAyLjg1MnEyLjMyIDkuNTM3LjE4NyAxOS4yNDRhMS40OCAxLjQ4IDAgMCAwIC40NCAxLjQwM3ptLTYuNTI2IDkuMjk1LTkuMDI0LTEwLjI3NmEuNy43IDAgMCAwLS4zNDMtLjIwNy44Ni44NiAwIDAgMC0uNDMzIDBxLTExLjY4IDMuMDIxLTIzLjExNC0uODIyYy01LjgxNi0zLjg1Mi0uNzU4LTUuNTE3IDIuNTktNS44MTZxNS45MTgtLjUzMyAxMS43MzUtMi41MDZhLjMuMyAwIDAgMCAuMTI3LS4wOC4zLjMgMCAwIDAgLjA3My0uMTMzLjM0LjM0IDAgMCAwIC4wMDEtLjE1NC4zNC4zNCAwIDAgMC0uMDctLjEzOGMtMTkuNDU5LTIxLjE1LTQwLjc2LTQwLjI0NS02Mi4yNzUtNTkuMjY0cS0uMzU2LS4zMTgtLjMxOC4xNWEzMDggMzA4IDAgMCAwIDguMzg3IDUxLjgwMmM0LjU5MiAxOC4zMDggMTMuNzU1IDM0LjE1NyAzMS44NDggNDEuODcycTI2LjI0NyAxMS4xODIgNTMuNzI5IDIuODMzYS41ODMuNTgzIDAgMCAwIC4yOTktLjg4OCAyMzUgMjM1IDAgMCAwLTEzLjIxMi0xNi4zNzNtNDUuMTI1IDQ5Ljc0NXEtMTIuNTk1IDEuMzE4LTIzLjQ0MS01LjU4M2MtMy4wNzctNC44OTkgMi4wNjYtOC41OTMgNS40NDItMTEuMTgzYS41ODQuNTg0IDAgMCAwIC4xODctLjcwMSA4LjQ2IDguNDYgMCAwIDAtMy40ODgtMy44NjIuODEuODEgMCAwIDAtLjgyMy4wMDljLTE2LjY5MSA5Ljk3Ny0zNC40ODUgMTAuNzgyLTUzLjE4NiA2Ljk2N3EtMS41Ny0uMzItMi44NTIuNjQ1LTYxLjQ1MSA0Ni4zNy02OS42NyAxMjMuOTEzLS42ODMgNi40MzMtMS44MDYgOC44MjdjLTIuOTQ1IDYuMzAyLTcuNzcgNy44NDUtMTQuMjIyIDkuNDcycS0uNDQ5LjExMyAwIC4yMzRjOS4yNzYgMi4zMSAxNC42OCA2LjE0MyAxNi4wNzQgMTYuNDAxIDguNDYyIDYyLjQ5IDQ4Ljk0IDExNy44NjQgMTEwLjM4MyAxMzguMzQxYTEwNCAxMDQgMCAwIDAgMTEuMDA2IDMuNTA3YzkyLjY0NSAyMy45MDkgMTgxLjIzMi0zMy42NjIgMjAyLjgwNC0xMjUuMDU0cTEuNjA5LTYuNzkgMy40NS0xOS4wODVjMS4xMDQtNy4zOTYgNS42OTUtMTIuMTE4IDEzLjE0Ny0xMy41NjguNDEyLS4wODQgMS45MDgtLjc1Ny4yODEtLjk5MS04LjA1MS0xLjE0MS0xMi4yNC02LjM4Ni0xMi45ODgtMTQuMTI4cS0xLjA3NS0xMS4yNS0yLjUxNi0xOS4wMzhjLTExLjc3Mi02My44OTItNTYuMzgzLTExNC41NzItMTE5LjI4NS0xMzEuNDZxLTE1LjEyLTMuODgtMzAuOTg3LTUuMjQ1YS4zODYuMzg2IDAgMCAwLS40MDIuMjUyIDE2OC42IDE2OC42IDAgMCAxLTExLjM1MiAyNC44NTRjLTQuMTMzIDcuNDA2LTguMTYzIDE1LjQ5NC0xNS43NTYgMTYuNDc2Ii8+PGNpcmNsZSBjeD0iMTQwLjA2NSIgY3k9IjI3My4wMyIgcj0iNTAuNjE4IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iOS4yMDMiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTQ2Ljk2NyAyNDIuMDkyYzE1LjY3MiAwIDI4LjM3NiAxMy45NjMgMjguMzc2IDMxLjE4OHMtMTIuNzA0IDMxLjE4OS0yOC4zNzYgMzEuMTg5LTI4LjM3Ny0xMy45NjQtMjguMzc3LTMxLjE4OWMwLTIuNjI1LjI5Ny01LjE3NC44NTItNy42MSAxLjYwNyAzLjcyNyA1LjMxMyA2LjMzOCA5LjYyOSA2LjMzOCA1Ljc4OSAwIDEwLjQ4MS00LjY5MyAxMC40ODItMTAuNDgycy00LjY5My0xMC40ODEtMTAuNDgyLTEwLjQ4MWMtLjc2MSAwLTEuNTA0LjA4My0yLjIxOS4yMzcgNS4xMzktNS42NzYgMTIuMjUzLTkuMTkgMjAuMTE1LTkuMTkiLz48Y2lyY2xlIGN4PSIyNjkuOTMyIiBjeT0iMjczLjAzIiByPSI1MC42MTgiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSI5LjIwMyIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yNzYuODM0IDI0Mi4wOTJjMTUuNjcyIDAgMjguMzc2IDEzLjk2MyAyOC4zNzYgMzEuMTg4cy0xMi43MDQgMzEuMTg5LTI4LjM3NiAzMS4xODktMjguMzc3LTEzLjk2NC0yOC4zNzctMzEuMTg5YzAtMi42MjUuMjk3LTUuMTc0Ljg1My03LjYxIDEuNjA2IDMuNzI3IDUuMzEyIDYuMzM4IDkuNjI4IDYuMzM4IDUuNzg5IDAgMTAuNDgyLTQuNjkzIDEwLjQ4Mi0xMC40ODJzLTQuNjkzLTEwLjQ4MS0xMC40ODItMTAuNDgxYy0uNzYxIDAtMS41MDQuMDgzLTIuMjE5LjIzNyA1LjEzOS01LjY3NiAxMi4yNTQtOS4xOSAyMC4xMTUtOS4xOSIvPjxwYXRoIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSI5LjIwMyIgZD0iTTE3Ny4xMzUgMzQ1LjMyOGMuODk5LS4yNCAyLjgwMS0uMTk3IDYuMzA0LjQ2NCA2LjMxMSAxLjE5IDE2LjU4NSA0LjIyMSAyNi4xMjIgNC4yMjEgOS40NTIgMCAxNy4xMTgtMS45MjYgMjEuMzgzLTIuNjAzLjc3LS4xMjMgMS4zODUtLjE5OSAxLjg3OC0uMjM3LS4zNCAxMy44NDMtMTIuODkzIDI3LjcxLTI3Ljg2OCAyNy43MS0xNS4xNzIgMC0yNy44NzYtMTMuODM1LTI3Ljg3Ni0yOC44MTEgMC0uMzU3LjAyOS0uNTk2LjA1Ny0uNzQ0WiIvPjwvc3ZnPg==" alt="Performance Models">
|
| 47 |
+
</a>
|
| 48 |
+
</p>
|
| 49 |
+
<div align="center">
|
| 50 |
+
|
| 51 |
+
<h1 style="color: #9334E9;">p-h3-image</h1>
|
| 52 |
+
|
| 53 |
+
<h2>Image generation and editing based on MiniMax-H3</h2>
|
| 54 |
+
|
| 55 |
+
<h3>
|
| 56 |
+
<span style="color: #9334E9;">8 steps</span>
|
| 57 |
+
·
|
| 58 |
+
<span style="color: #9334E9;">No CFG</span>
|
| 59 |
+
·
|
| 60 |
+
<span style="color: #9334E9;">8 MP</span>
|
| 61 |
+
·
|
| 62 |
+
Text-to-image and editing with up to 8 images
|
| 63 |
+
</h3>
|
| 64 |
+
|
| 65 |
+
</div>
|
| 66 |
+
|
| 67 |
+
**p-h3-image** is an image model for text-to-image generation and image editing, based on
|
| 68 |
+
[MiniMax-H3](https://huggingface.co/MiniMaxAI/MiniMax-H3). It renders 8-megapixel images in 8 steps without
|
| 69 |
+
classifier-free guidance, edits with up to 8 input images, and comes with a prompt upsampler that turns a one-line
|
| 70 |
+
request into the full prompt p-h3-image renders best. It is strongest at photorealism, film and editorial looks, and
|
| 71 |
+
graphic styles with short quoted text.
|
| 72 |
+
|
| 73 |
+
This repository holds the [diffusers](https://github.com/huggingface/diffusers) pipeline. For ComfyUI, with int8 and
|
| 74 |
+
4-bit files that run in 21 GB of VRAM, see [PrunaAI/p-h3-image-comfy](https://huggingface.co/PrunaAI/p-h3-image-comfy).
|
| 75 |
+
|
| 76 |
+
| | |
|
| 77 |
+
|---|---|
|
| 78 |
+
| **Tasks** | Text-to-image, and image editing with 1 to 8 input images |
|
| 79 |
+
| **Sampling** | 8 steps, no CFG or negative prompt |
|
| 80 |
+
| **Resolution** | 8 MP for text-to-image, 4 or 8 MP for edits |
|
| 81 |
+
| **Prompt upsampler** | Included and on by default, based on Qwen3.5-9B |
|
| 82 |
+
| **Weights** | 33.1B-parameter transformer, 4B text encoder, VAE and prompt upsampler, 100 GB in bf16 |
|
| 83 |
+
| **GPU memory at 8 MP** | About 101 GB with the prompt upsampler, 83 GB without |
|
| 84 |
+
|
| 85 |
+
## Quickstart
|
| 86 |
+
|
| 87 |
+
Runs text-to-image and editing with the same pipeline. At 8 MP in bf16 it needs a GPU with about 101 GB of memory,
|
| 88 |
+
such as one H200 or B200.
|
| 89 |
+
|
| 90 |
+
```bash
|
| 91 |
+
pip install -U diffusers transformers accelerate torch pillow
|
| 92 |
+
```
|
| 93 |
+
|
| 94 |
+
```python
|
| 95 |
+
import torch
|
| 96 |
+
from diffusers import ModularPipeline
|
| 97 |
+
|
| 98 |
+
pipe = ModularPipeline.from_pretrained("PrunaAI/p-h3-image")
|
| 99 |
+
pipe.load_components(dtype=torch.bfloat16)
|
| 100 |
+
pipe.to("cuda")
|
| 101 |
+
|
| 102 |
+
prompt = (
|
| 103 |
+
"A German Expressionist oil painting of a Berlin street at night in the manner of Ernst Ludwig Kirchner, "
|
| 104 |
+
"with gaunt figures hurrying past a glowing gas lamp."
|
| 105 |
+
)
|
| 106 |
+
image = pipe(
|
| 107 |
+
prompt=prompt,
|
| 108 |
+
height=3360, width=2496, # 8 MP, 3:4
|
| 109 |
+
generator=torch.Generator().manual_seed(3),
|
| 110 |
+
output="images",
|
| 111 |
+
)[0]
|
| 112 |
+
image.save("berlin.png")
|
| 113 |
+
```
|
| 114 |
+
|
| 115 |
+
The pipeline picks the task from its inputs. Pass `image` to edit.
|
| 116 |
+
|
| 117 |
+
```python
|
| 118 |
+
from diffusers.utils import load_image
|
| 119 |
+
|
| 120 |
+
# Edit one image
|
| 121 |
+
edited = pipe(prompt="let it snow on the street", image=image, output="images")[0]
|
| 122 |
+
|
| 123 |
+
# Up to 8 images. The first is edited, the others are references, named Picture 2, Picture 3 and so on.
|
| 124 |
+
composed = pipe(
|
| 125 |
+
prompt="give the woman in picture 1 the hat from picture 2",
|
| 126 |
+
image=[load_image("portrait.png"), load_image("hat.png")],
|
| 127 |
+
output="images",
|
| 128 |
+
)[0]
|
| 129 |
+
```
|
| 130 |
+
|
| 131 |
+
## Recommended resolutions
|
| 132 |
+
|
| 133 |
+
<p align="center">
|
| 134 |
+
<img src="assets/resolutions.png" width="100%">
|
| 135 |
+
</p>
|
| 136 |
+
|
| 137 |
+
p-h3-image works best at **8 MP**. Images at 2 and 4 MP can be good too, but artifacts become more frequent, especially
|
| 138 |
+
in faces, hands and small details. For text-to-image, use one of the 8 MP sizes below. The default is 2912 × 2912.
|
| 139 |
+
|
| 140 |
+
Edits work best at 4 or 8 MP. Without `height` and `width`, the edit is generated at the size of Picture 1, scaled up to
|
| 141 |
+
at least 4 MP. The other images keep their size between 1 and 8 MP. Passing `height` and `width` changes the canvas,
|
| 142 |
+
not the images. Sides are rounded to multiples of 32, with a warning.
|
| 143 |
+
|
| 144 |
+
| Aspect ratio | 8 MP (width × height) | 4 MP, for edits |
|
| 145 |
+
|:---:|:---:|:---:|
|
| 146 |
+
| 1:1 | **2912 × 2912** | 2048 × 2048 |
|
| 147 |
+
| 4:3 | **3360 × 2496** | 2368 × 1760 |
|
| 148 |
+
| 3:4 | **2496 × 3360** | 1760 × 2368 |
|
| 149 |
+
| 3:2 | **3552 × 2368** | 2496 × 1664 |
|
| 150 |
+
| 2:3 | **2368 × 3552** | 1664 × 2496 |
|
| 151 |
+
| 16:9 | **3872 × 2176** | 2720 × 1536 |
|
| 152 |
+
| 9:16 | **2176 × 3872** | 1536 × 2720 |
|
| 153 |
+
|
| 154 |
+
```python
|
| 155 |
+
SIZES_8MP = { # aspect ratio -> (width, height)
|
| 156 |
+
"1:1": (2912, 2912),
|
| 157 |
+
"4:3": (3360, 2496),
|
| 158 |
+
"3:4": (2496, 3360),
|
| 159 |
+
"3:2": (3552, 2368),
|
| 160 |
+
"2:3": (2368, 3552),
|
| 161 |
+
"16:9": (3872, 2176),
|
| 162 |
+
"9:16": (2176, 3872),
|
| 163 |
+
}
|
| 164 |
+
|
| 165 |
+
width, height = SIZES_8MP["16:9"]
|
| 166 |
+
image = pipe(prompt=prompt, width=width, height=height, output="images")[0]
|
| 167 |
+
```
|
| 168 |
+
|
| 169 |
+
<p align="center">
|
| 170 |
+
<img src="assets/resolution_ladder.jpg" width="100%">
|
| 171 |
+
</p>
|
| 172 |
+
|
| 173 |
+
*The same prompt and seed from 1 to 16 MP, with the face enlarged in the bottom row. At 1 MP the face is smooth and
|
| 174 |
+
waxy. From 8 MP on, skin texture, stray hairs and the gold earrings come through. The composition shifts between
|
| 175 |
+
resolutions because the noise changes with the image size.*
|
| 176 |
+
|
| 177 |
+
## Prompting
|
| 178 |
+
|
| 179 |
+
p-h3-image is sensitive to prompting and renders full, specific prompts much better than short requests. The pipeline
|
| 180 |
+
therefore runs a prompt upsampler, based on Qwen3.5-9B, on every request. It writes a detailed prompt for the aspect
|
| 181 |
+
ratio of `height` and `width`, or, for an edit, a brief of what to keep and what to change. The prompt it wrote comes
|
| 182 |
+
back as the `prompt` output.
|
| 183 |
+
|
| 184 |
+
```python
|
| 185 |
+
out = pipe(prompt=prompt, height=3360, width=2496, output=["images", "prompt"])
|
| 186 |
+
print(out["prompt"])
|
| 187 |
+
```
|
| 188 |
+
|
| 189 |
+
To render a prompt as written, remove the step from the blocks.
|
| 190 |
+
|
| 191 |
+
```python
|
| 192 |
+
blocks = ModularPipeline.from_pretrained("PrunaAI/p-h3-image").blocks
|
| 193 |
+
blocks.sub_blocks.pop("prompt_upsampler")
|
| 194 |
+
|
| 195 |
+
pipe = blocks.init_pipeline("PrunaAI/p-h3-image")
|
| 196 |
+
pipe.load_components(dtype=torch.bfloat16)
|
| 197 |
+
pipe.to("cuda")
|
| 198 |
+
image = pipe(prompt=prompt, height=3360, width=2496, output="images")[0] # rendered as written
|
| 199 |
+
```
|
| 200 |
+
|
| 201 |
+
When you write prompts by hand, four things matter most.
|
| 202 |
+
|
| 203 |
+
1. **Say what the image is.** Open with one sentence that names the real object the image is, such as "a photograph
|
| 204 |
+
by an experienced street photographer", "a frame from a Japanese anime TV series", "a two-color risograph print" or
|
| 205 |
+
"a flat scan of a handwritten recipe card". This sets the look more reliably than any style word.
|
| 206 |
+
2. **Describe one scene.** Give a viewpoint, one main subject caught in a moment, a few supporting elements, and light
|
| 207 |
+
with a source and a direction.
|
| 208 |
+
3. **Spell out every word.** Text without its exact words turns into pseudo-text. Put each piece of text in quotes,
|
| 209 |
+
keep each string short, say where it sits, and end with "no other text". If you want no text, don't mention signs
|
| 210 |
+
or labels at all.
|
| 211 |
+
4. **Leave out hype words.** Stunning, epic, cinematic, vibrant, hyper-detailed, 8k or masterpiece push p-h3-image
|
| 212 |
+
toward a glossy, oversaturated, airbrushed look.
|
| 213 |
+
|
| 214 |
+
<p align="center">
|
| 215 |
+
<img src="assets/prompt.jpg" width="100%">
|
| 216 |
+
</p>
|
| 217 |
+
|
| 218 |
+
*The first sentence says what the image is (bold), and every string that must appear is quoted (blue). The
|
| 219 |
+
handwriting follows the quoted text almost word for word.*
|
| 220 |
+
|
| 221 |
+
Styles that work especially well include documentary and editorial photography, portraits with real skin texture, film
|
| 222 |
+
frames, TV-frame anime, ink and charcoal drawings, screen-printed posters and flat graphic design with short quoted
|
| 223 |
+
text.
|
| 224 |
+
|
| 225 |
+
<p align="center">
|
| 226 |
+
<img src="assets/styles.jpg" width="100%">
|
| 227 |
+
</p>
|
| 228 |
+
|
| 229 |
+
*Risograph print, child's crayon drawing, 1960s color photograph, 1970s film frame.*
|
| 230 |
+
|
| 231 |
+
## Editing
|
| 232 |
+
|
| 233 |
+
Pass one image to edit it, or a list of up to 8. Picture 1 is the image to edit, and the others are references the
|
| 234 |
+
request can name as Picture 2, Picture 3 and so on. The upsampler writes the edit prompt in the form p-h3-image edits
|
| 235 |
+
best from, so a short request such as "make the pickup truck red" is enough.
|
| 236 |
+
|
| 237 |
+
<p align="center">
|
| 238 |
+
<img src="assets/edits.jpg" width="100%">
|
| 239 |
+
</p>
|
| 240 |
+
|
| 241 |
+
*The same short request given as typed (middle) and written as an edit prompt that names what to keep (right), the form
|
| 242 |
+
the upsampler writes. As typed, p-h3-image often redraws the whole scene. As an edit prompt, only the requested part
|
| 243 |
+
changes.*
|
| 244 |
+
|
| 245 |
+
p-h3-image combines many references at once. Given up to 8 pictures and a one-line request, the upsampler names each
|
| 246 |
+
picture and what to take from it, and p-h3-image composes them into one scene.
|
| 247 |
+
|
| 248 |
+
<p align="center">
|
| 249 |
+
<img src="assets/multi_image.jpg" width="100%">
|
| 250 |
+
</p>
|
| 251 |
+
|
| 252 |
+
*Top, eight public-domain portraits and the dinner party p-h3-image composed from them, from a one-sentence request.
|
| 253 |
+
Bottom, eight scientists at a poker table, seven presidents wading through the swamp with an astronaut, and characters
|
| 254 |
+
from our own renders in the same swamp.*
|
| 255 |
+
|
| 256 |
+
To write edit prompts without the upsampler, use this form.
|
| 257 |
+
|
| 258 |
+
```txt
|
| 259 |
+
Edit <Picture 1>. <The change, described as the finished result>. Keep <everything that must stay> exactly as it is.
|
| 260 |
+
```
|
| 261 |
+
|
| 262 |
+
- **Point to the exact thing.** Name the object, person or text you mean and where it is, such as "the old man's faded
|
| 263 |
+
blue cap" rather than "his hat".
|
| 264 |
+
- **Describe the result, not the action.** Say how the edited part looks in the finished image, and give new things a
|
| 265 |
+
size next to something already there, such as "about the size of the cat's head".
|
| 266 |
+
- **Say what stays.** List what must not change, such as faces, poses, the background and the light. Without this
|
| 267 |
+
list, p-h3-image tends to redraw the whole image.
|
| 268 |
+
- **Quote new text exactly.** Put new text in quotes and name the text around it that must stay.
|
| 269 |
+
|
| 270 |
+
## Performance
|
| 271 |
+
|
| 272 |
+
One NVIDIA B200, bf16, batch size 1, 8 MP, no compilation or offloading.
|
| 273 |
+
|
| 274 |
+
| | Time | Peak GPU memory |
|
| 275 |
+
|---|:---:|:---:|
|
| 276 |
+
| Text-to-image, prompt as written | about 9 s | 83 GB |
|
| 277 |
+
| Prompt upsampler | 6 to 11 s more | 101 GB with the image model |
|
| 278 |
+
|
| 279 |
+
The 8 steps run over the checkpoint's own sampling grid. Pass `sigmas` to use another one. There is no guider,
|
| 280 |
+
`negative_prompt` or `guidance_scale`. For GPUs with less memory, use the int8 or w4a8 files in
|
| 281 |
+
[PrunaAI/p-h3-image-comfy](https://huggingface.co/PrunaAI/p-h3-image-comfy).
|
| 282 |
+
|
| 283 |
+
## Limitations
|
| 284 |
+
|
| 285 |
+
- **It is sensitive to prompting.** Hype words and very long prompts make images worse, and very short prompts give
|
| 286 |
+
weak results without the upsampler.
|
| 287 |
+
- **Hands can break, and small people in the background can come out distorted.** Rendering at 8 MP helps.
|
| 288 |
+
- **Text is not fully reliable.** Small or dense text, such as body copy or long code, turns into pseudo-text, and
|
| 289 |
+
longer passages sometimes get single letters wrong. Short quoted strings render well.
|
| 290 |
+
- **Lower resolutions show more artifacts.** At 2 and 4 MP, faces, hands and small details break more often than at
|
| 291 |
+
8 MP.
|
| 292 |
+
- **Single images only.** p-h3-image does not generate video or audio.
|
| 293 |
+
|
| 294 |
+
## License
|
| 295 |
+
|
| 296 |
+
p-h3-image is based on MiniMax-H3 and released under the [MiniMax H3 Community License](LICENSE). Please read it before
|
| 297 |
+
use. Among other terms, it excludes the European Union, the United Kingdom, the Republic of Korea and the United States
|
| 298 |
+
unless you have a separate license from MiniMax, and products built on it must show "Powered by MiniMax H3". The text
|
| 299 |
+
encoder's Qwen3-VL-4B parts and the prompt upsampler, based on Qwen3.5-9B, are under the
|
| 300 |
+
[Apache License 2.0](LICENSE-APACHE). See [NOTICE](NOTICE) for details.
|
| 301 |
+
|
| 302 |
+
p-h3-image would not exist without [MiniMax](https://huggingface.co/MiniMaxAI), who released H3 with open weights, and
|
| 303 |
+
the [Qwen team](https://huggingface.co/Qwen).
|
| 304 |
+
|
| 305 |
+
## What's next?
|
| 306 |
+
|
| 307 |
+
- Compress your own models with [Pruna](https://github.com/PrunaAI/pruna) and give us a ⭐️ for more efficiency!
|
| 308 |
+
- Want to use our optimized image models right away? Check [P-Image-Ideogram](https://www.pruna.ai/p-image-ideogram) and [P-Image-Edit](https://www.pruna.ai/p-image-edit).
|
| 309 |
+
|
| 310 |
+
<style>
|
| 311 |
+
.model-button {
|
| 312 |
+
display: inline-flex;
|
| 313 |
+
flex-direction: row;
|
| 314 |
+
justify-content: center;
|
| 315 |
+
align-items: center;
|
| 316 |
+
gap: 8px;
|
| 317 |
+
|
| 318 |
+
padding: 8px 20px;
|
| 319 |
+
border: none;
|
| 320 |
+
border-radius: 8px;
|
| 321 |
+
|
| 322 |
+
background: #9334e9;
|
| 323 |
+
color: #ffffff;
|
| 324 |
+
|
| 325 |
+
font-size: 14px;
|
| 326 |
+
font-weight: 400;
|
| 327 |
+
line-height: 1;
|
| 328 |
+
text-decoration: none;
|
| 329 |
+
white-space: nowrap;
|
| 330 |
+
cursor: pointer;
|
| 331 |
+
|
| 332 |
+
box-sizing: border-box;
|
| 333 |
+
overflow: visible;
|
| 334 |
+
opacity: 1;
|
| 335 |
+
}
|
| 336 |
+
</style>
|
| 337 |
+
|
| 338 |
+
<a href="https://dashboard.pruna.ai/login?utm_source=huggingface&utm_medium=model_card&utm_campaign=hf_traffic" class="model-button">Try our models</a>
|
assets/edits.jpg
ADDED
|
Git LFS Details
|
assets/multi_image.jpg
ADDED
|
Git LFS Details
|
assets/p-h3-image.jpg
ADDED
|
Git LFS Details
|
assets/prompt.jpg
ADDED
|
Git LFS Details
|
assets/resolution_ladder.jpg
ADDED
|
Git LFS Details
|
assets/resolutions.png
ADDED
|
assets/styles.jpg
ADDED
|
Git LFS Details
|