2025-12-12 15:14:52 +08:00
# Text-To-Image
2025-11-30 17:46:39 +08:00
2025-12-11 20:06:17 +08:00
Source <https://github.com/vllm-project/vllm-omni/tree/main/examples/offline_inference/text_to_image>.
2025-11-30 17:46:39 +08:00
2025-12-31 15:03:24 +08:00
This folder provides several entrypoints for experimenting with `Qwen/Qwen-Image` `Qwen/Qwen-Image-2512` `Tongyi-MAI/Z-Image-Turbo` using vLLM-Omni:
2025-11-30 17:46:39 +08:00
2025-12-15 21:43:28 +08:00
- `text_to_image.py` : command-line script for single image generation with advanced options.
2025-11-30 18:20:44 +08:00
- `web_demo.py` : lightweight Gradio UI for interactive prompt/seed/CFG exploration.
2025-11-30 17:46:39 +08:00
2025-12-31 16:00:55 +08:00
Note that when you pass in multiple independent prompts, they will be processed sequentially. Batching requests is currently not supported.
2025-12-15 21:43:28 +08:00
## Basic Usage
```python
from vllm_omni.entrypoints.omni import Omni
if __name__ == "__main__" :
omni = Omni ( model = "Qwen/Qwen-Image" )
prompt = "a cup of coffee on the table"
2025-12-31 09:46:44 +08:00
outputs = omni . generate ( prompt )
2026-01-05 09:17:06 +08:00
images = outputs [ 0 ] . request_output [ 0 ] . images
2025-12-15 21:43:28 +08:00
images [ 0 ] . save ( "coffee.png" )
```
2025-11-30 18:20:44 +08:00
2025-12-31 18:34:02 +08:00
Or put more than one prompt in a request, processing them sequentially.
```python
from vllm_omni.entrypoints.omni import Omni
if __name__ == "__main__" :
omni = Omni ( model = "Qwen/Qwen-Image" )
prompts = [
"a cup of coffee on a table" ,
"a toy dinosaur on a sandy beach" ,
"a fox waking up in bed and yawning" ,
]
outputs = omni . generate ( prompts )
for i , output in enumerate ( outputs ):
2025-12-31 22:02:04 +08:00
image = output . request_output [ 0 ] . images [ 0 ] . save ( f " { i } .jpg" )
2025-12-31 18:34:02 +08:00
```
2025-11-30 18:20:44 +08:00
## Local CLI Usage
2025-11-30 17:46:39 +08:00
```bash
python text_to_image.py \
2025-12-11 20:06:17 +08:00
--model Tongyi-MAI/Z-Image-Turbo \
2025-11-30 17:46:39 +08:00
--prompt "a cup of coffee on the table" \
--seed 42 \
--cfg_scale 4.0 \
--num_images_per_prompt 1 \
--num_inference_steps 50 \
--height 1024 \
--width 1024 \
--output outputs/coffee.png
```
Key arguments:
- `--prompt` : text description (string).
- `--seed` : integer seed for deterministic sampling.
- `--cfg_scale` : true CFG scale (model-specific guidance strength).
- `--num_images_per_prompt` : number of images to generate per prompt (saves as `output` , `output_1` , ...).
- `--num_inference_steps` : diffusion sampling steps (more steps = higher quality, slower).
- `--height/--width` : output resolution (defaults 1024x1024).
- `--output` : path to save the generated PNG.
2025-12-12 15:14:52 +08:00
> ℹ ️ Qwen-Image currently publishes best-effort presets at `1328x1328`, `1664x928`, `928x1664`, `1472x1140`, `1140x1472`, `1584x1056`, and `1056x1584`. Adjust `--height/--width` accordingly for the most reliable outcomes.
2025-11-30 18:20:44 +08:00
## Web UI Demo
2025-11-30 17:46:39 +08:00
Launch the gradio demo:
```bash
python gradio_demo.py --port 7862
```
Then open `http://localhost:7862/` on your local browser to interact with the web UI.
2025-11-30 18:20:44 +08:00
## Example materials
2025-11-30 17:46:39 +08:00
??? abstract "gradio_demo.py"
``````py
2025-12-11 20:06:17 +08:00
--8<-- "examples/offline_inference/text_to_image/gradio_demo.py"
2025-11-30 18:20:44 +08:00
` `````
??? abstract "text_to_image.py"
` `````py
2025-12-11 20:06:17 +08:00
--8<-- "examples/offline_inference/text_to_image/text_to_image.py"
2025-11-30 17:46:39 +08:00
` `````