README.md
| 1 | --- |
| 2 | license: other |
| 3 | license_name: qwen-research |
| 4 | base_model: Qwen/Qwen-Image-2.1 |
| 5 | library_name: diffusers |
| 6 | pipeline_tag: text-to-image |
| 7 | tags: |
| 8 | - qwen |
| 9 | - image-generation |
| 10 | - image-editing |
| 11 | - rgba |
| 12 | - lora |
| 13 | - distilled |
| 14 | - few-step |
| 15 | --- |
| 16 | <!-- header start --> |
| 17 | <!-- 200823 --> |
| 18 | <p align="center"> |
| 19 | <img src="assets/Pruna-Qwen-Image-2.1.png" width="800"> |
| 20 | </p> |
| 21 | <!-- header end --> |
| 22 | |
| 23 | <p align="center"> |
| 24 | <a href="https://github.com/PrunaAI/pruna"> |
| 25 | <img src="https://img.shields.io/badge/GitHub-PrunaAI-9334E9?style=plastic&logo=github&logoColor=white" alt="GitHub"> |
| 26 | </a> |
| 27 | |
| 28 | <a href="https://twitter.com/PrunaAI"> |
| 29 | <img src="https://img.shields.io/badge/Twitter%2FX-@PrunaAI-9334E9?style=plastic&logo=x&logoColor=white" alt="Twitter/X"> |
| 30 | </a> |
| 31 | |
| 32 | <a href="https://www.linkedin.com/company/pruna-ai"> |
| 33 | <img src="https://img.shields.io/badge/LinkedIn-PrunaAI-9334E9?style=plastic&logo=linkedin&logoColor=white" alt="LinkedIn"> |
| 34 | </a> |
| 35 | |
| 36 | <a href="https://discord.com/invite/JFQmtFKCjd"> |
| 37 | <img src="https://img.shields.io/badge/Discord-Join%20us-9334E9?style=plastic&logo=discord&logoColor=white" alt="Discord"> |
| 38 | </a> |
| 39 | |
| 40 | <a href="https://dashboard.pruna.ai/login?utm_source=huggingface&utm_medium=org_card&utm_campaign=hf_traffic"> |
| 41 | <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"> |
| 42 | </a> |
| 43 | </p> |
| 44 | <div align="center"> |
| 45 | |
| 46 | <h1 style="color: #9334E9;">⚡ Pruna-Qwen-Image-2.1</h1> |
| 47 | |
| 48 | <h2>Few-step LoRA adapters for Qwen-Image-2.1</h2> |
| 49 | |
| 50 | <h3> |
| 51 | <span style="color: #9334E9;">5 or 8 steps</span> |
| 52 | · |
| 53 | <span style="color: #9334E9;">Up to 6.3x faster</span> |
| 54 | · |
| 55 | <span style="color: #9334E9;">No CFG</span> |
| 56 | · |
| 57 | Text-to-image and image editing |
| 58 | </h3> |
| 59 | |
| 60 | </div> |
| 61 | |
| 62 | **Pruna-Qwen-Image-2.1 is a set of LoRA adapters that let |
| 63 | [`Qwen/Qwen-Image-2.1`](https://huggingface.co/Qwen/Qwen-Image-2.1) generate |
| 64 | and edit images in only 5 or 8 steps. The adapters load on top of the base |
| 65 | model, so the pipeline, text encoder, and VAE stay unchanged. Training is based |
| 66 | on DMD. Improved using Qwen.** |
| 67 | |
| 68 | > **v0.1: first release, work in progress.** Pruna-Qwen-Image-2.1 does not yet match the |
| 69 | > visual quality of the base model. We are still improving the distillation and |
| 70 | > will update this repository as new versions become available. |
| 71 | |
| 72 | ## Variants |
| 73 | |
| 74 | Both adapters are v0.1. Pick one based on whether you need **quality** or **speed**. |
| 75 | |
| 76 | | File | Steps | Trade-off | |
| 77 | |---|:---:|---| |
| 78 | | `p_qwen_image_2.1_8step_v0.1.safetensors` | 8 | **Higher quality.** Recommended as the default. | |
| 79 | | `p_qwen_image_2.1_5step_v0.1.safetensors` | 5 | **Higher speed**, with noticeably lower visual quality. | |
| 80 | |
| 81 | Each adapter is trained for its own sigma schedule. Load only one at a time. |
| 82 | |
| 83 | ## Prompts, editing, and resolution |
| 84 | |
| 85 | The adapters were trained at **1K resolution only**, with a mix of simple and |
| 86 | upsampled prompts, text-to-image generation, and single- and multi-image editing |
| 87 | with **up to 3 reference images**. Prompt upsampling is optional; detailed prompts |
| 88 | usually give better results. |
| 89 | |
| 90 | Start at **1024 × 1024** and use at most **3 reference images** for editing. |
| 91 | Higher resolutions (including 2K) and more reference images may work, but are |
| 92 | outside the training coverage, and quality may vary. The 2K timings below show |
| 93 | inference speed, not a guarantee of quality at that resolution. |
| 94 | |
| 95 | ## Benchmarking |
| 96 | |
| 97 | Use a table; Hugging Face can otherwise render the `<img>` elements as separate blocks. |
| 98 | |
| 99 | <table> |
| 100 | <tr> |
| 101 | <td width="50%"> |
| 102 | <img src="assets/Pruna-Qwen-Image-2.1-t2i-1024.png" width="100%"> |
| 103 | </td> |
| 104 | <td width="50%"> |
| 105 | <img src="assets/Pruna-Qwen-Image-2.1-t2i-2048.png" width="100%"> |
| 106 | </td> |
| 107 | </tr> |
| 108 | <tr> |
| 109 | <td width="50%"> |
| 110 | <img src="assets/Pruna-Qwen-Image-2.1-i2i-1024.png" width="100%"> |
| 111 | </td> |
| 112 | <td width="50%"> |
| 113 | <img src="assets/Pruna-Qwen-Image-2.1-i2i-2048.png" width="100%"> |
| 114 | </td> |
| 115 | </tr> |
| 116 | </table> |
| 117 | |
| 118 | Text-to-image with the official Qwen model-card example prompt, BF16, batch size 1, |
| 119 | on one NVIDIA H100 80GB. Median of 3 requests after one warmup per configuration. |
| 120 | Includes prompt encoding, denoising, and decoding; excludes PNG saving, model |
| 121 | loading, and warmup. Base: 40 steps with KV cache on; Pruna-Qwen-Image-2.1: 5 or 8 steps with |
| 122 | KV cache off, as configured for this benchmark. The examples below enable KV caching for |
| 123 | Pruna-Qwen-Image-2.1; the chart has not been remeasured with that setting. LoRAs were unmerged; |
| 124 | no CFG, compilation, or CPU offload. These timings do not imply equal image quality. |
| 125 | |
| 126 | ## Quickstart |
| 127 | |
| 128 | Runs text-to-image and image editing with the same pipeline. Needs a **CUDA GPU**. |
| 129 | |
| 130 | ```bash |
| 131 | pip install 'torch>=2.4.0' 'transformers>=5.17' accelerate peft pillow |
| 132 | pip install git+https://github.com/huggingface/diffusers@6256aa7666cedd47443adc8f82da9a10e110b09c |
| 133 | ``` |
| 134 | |
| 135 | ```python |
| 136 | import torch |
| 137 | from PIL import Image |
| 138 | from diffusers import FlowMatchEulerDiscreteScheduler, QwenImage21Pipeline |
| 139 | |
| 140 | STEPS = 8 # 8 for higher quality, 5 for higher speed |
| 141 | |
| 142 | # The terminal sigma 0 is appended by the scheduler. |
| 143 | SIGMAS = { |
| 144 | 5: [1.0, 0.94, 6 / 7, 2 / 3, 0.4], |
| 145 | 8: [1.0, 14 / 15, 6 / 7, 10 / 13, 2 / 3, 6 / 11, 0.4, 2 / 9], |
| 146 | }[STEPS] |
| 147 | |
| 148 | pipe = QwenImage21Pipeline.from_pretrained( |
| 149 | "Qwen/Qwen-Image-2.1", torch_dtype=torch.bfloat16 |
| 150 | ).to("cuda") |
| 151 | pipe.load_lora_weights( |
| 152 | "PrunaAI/Pruna-Qwen-Image-2.1", |
| 153 | weight_name=f"p_qwen_image_2.1_{STEPS}step_v0.1.safetensors", |
| 154 | ) |
| 155 | |
| 156 | # Use the sigmas exactly as given: no extra shifting. |
| 157 | pipe.scheduler = FlowMatchEulerDiscreteScheduler.from_config( |
| 158 | pipe.scheduler.config, |
| 159 | use_dynamic_shifting=False, |
| 160 | shift=1.0, |
| 161 | shift_terminal=None, |
| 162 | ) |
| 163 | ``` |
| 164 | |
| 165 | ## For Text-to-Image |
| 166 | |
| 167 | Longer, more descriptive prompts give better results. |
| 168 | |
| 169 | ```python |
| 170 | image = pipe( |
| 171 | prompt=( |
| 172 | 'A glowing neon shop sign that reads "QWEN IMAGE 2.1", mounted on a brick wall ' |
| 173 | "in a narrow city alley at night. Heavy rain, wet pavement reflecting pink and " |
| 174 | "blue light, shallow depth of field, cinematic photograph." |
| 175 | ), |
| 176 | width=1024, |
| 177 | height=1024, |
| 178 | generator=torch.Generator("cuda").manual_seed(42), |
| 179 | num_inference_steps=STEPS, |
| 180 | sigmas=SIGMAS, |
| 181 | true_cfg_scale=1.0, |
| 182 | use_kv_cache=True, |
| 183 | ).images[0] |
| 184 | ``` |
| 185 | |
| 186 | ### For Image Editing |
| 187 | |
| 188 | ```python |
| 189 | image = pipe( |
| 190 | prompt="Change the background to a sunset beach", |
| 191 | image=Image.open("input.png").convert("RGB"), |
| 192 | generator=torch.Generator("cuda").manual_seed(42), |
| 193 | num_inference_steps=STEPS, |
| 194 | sigmas=SIGMAS, |
| 195 | true_cfg_scale=1.0, |
| 196 | use_kv_cache=True, |
| 197 | ).images[0] |
| 198 | ``` |
| 199 | |
| 200 | ### Recommended settings |
| 201 | |
| 202 | - **Use the sigma schedule that matches your adapter**, and keep the scheduler |
| 203 | at `shift=1.0` with dynamic shifting off so the sigmas are not shifted twice. |
| 204 | - 8-step: `1 → 14/15 → 6/7 → 10/13 → 2/3 → 6/11 → 0.4 → 2/9 → 0` |
| 205 | (shift 2, computed as `σ = 2t / (1 + t)` on evenly spaced `t`) |
| 206 | - 5-step: `1 → 0.94 → 6/7 → 2/3 → 0.4 → 0` |
| 207 | - **No CFG.** Keep `true_cfg_scale=1.0` and do not pass a negative prompt. |
| 208 | - **Keep the LoRA strength at 1.0.** |
| 209 | - **Write detailed prompts for text-to-image.** Longer prompts that describe |
| 210 | the subject, setting, lighting, and style work noticeably better than short |
| 211 | ones. |
| 212 | |
| 213 | ## Limitations |
| 214 | |
| 215 | - This is a first version. Quality is below that of the base model. |
| 216 | - The 5-step adapter is faster than the 8-step one, but its images are |
| 217 | visibly worse. |
| 218 | - Short or vague text-to-image prompts give weaker results. |
| 219 | - The adapters are only intended for the settings above. Other step counts, |
| 220 | schedules, or CFG values are not supported. |
| 221 | |
| 222 | ## What this is not |
| 223 | |
| 224 | - Not a standalone model. It needs the `Qwen/Qwen-Image-2.1` base weights. |
| 225 | - Not a replacement for the base model when you need its full quality. |
| 226 | - Not a finished release. Expect the weights to change in future versions. |
| 227 | |
| 228 | ## License |
| 229 | |
| 230 | Pruna-Qwen-Image-2.1 is a derivative of Qwen-Image-2.1 and is distributed |
| 231 | under the **Qwen RESEARCH LICENSE AGREEMENT**. Review its use restrictions |
| 232 | before using or redistributing the adapters. |
| 233 | |
| 234 | Qwen is licensed under the Qwen RESEARCH LICENSE AGREEMENT, Copyright (c) 2026 |
| 235 | Hangzhou Tongyi Laboratory Technology Co., Ltd. All Rights Reserved. |
| 236 | |
| 237 | ## What's next? |
| 238 | |
| 239 | - **Use Pruna-Qwen-Image-2.1 to generate and edit images with Qwen-Image-2.1 in a few steps.** |
| 240 | - Compress your own models with [Pruna](https://github.com/PrunaAI/pruna) and give us a ⭐️ for more efficiency! |
| 241 | - 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). |
| 242 | |
| 243 | <style> |
| 244 | .model-button { |
| 245 | display: inline-flex; |
| 246 | flex-direction: row; |
| 247 | justify-content: center; |
| 248 | align-items: center; |
| 249 | gap: 8px; |
| 250 | |
| 251 | padding: 8px 20px; |
| 252 | border: none; |
| 253 | border-radius: 8px; |
| 254 | |
| 255 | background: #9334e9; |
| 256 | color: #ffffff; |
| 257 | |
| 258 | font-size: 14px; |
| 259 | font-weight: 400; |
| 260 | line-height: 1; |
| 261 | text-decoration: none; |
| 262 | white-space: nowrap; |
| 263 | cursor: pointer; |
| 264 | |
| 265 | box-sizing: border-box; |
| 266 | overflow: visible; |
| 267 | opacity: 1; |
| 268 | } |
| 269 | </style> |
| 270 | |
| 271 | <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> |