Iris-3B and Turbo: Setup, GPU Memory and Image Costs
Iris-3B generates images directly in pixel space with a 3B diffusion transformer and a separate frozen 4B Qwen3-VL text encoder. Choose Base for adjustable sampling, or the official four-step Turbo checkpoint for a fixed fast sampling path. Both are downloadable under Apache 2.0; plan memory for the complete pipeline rather than just the image-model file.
Content reviewed:
Try the official Iris-3B Turbo demo ↗
Use this model
See access details in the guide below.
Choose a first image task
- Generate a one-megapixel image from a descriptive English prompt.
- Compare Base and Turbo on text, object counts and visual variety using the same prompt.
- Use the separately fine-tuned depth or restoration checkpoints when the task starts from an existing image.
Choose Base or the official four-step Turbo
The Base checkpoint uses 100 denoising steps and CFG 3 by default. Turbo is a complete distilled checkpoint of all 3B generator parameters, with guidance baked into its weights. It is separate from the community turbo LoRA.
Turbo reads its fixed four-step schedule from distill.yaml. Its prompt, seed and image dimensions remain adjustable; --steps, --cfg-scale and --negative-prompt do not apply to that path. Choose Base when you need those sampling controls.
| Variant | Checkpoint download | Sampling controls |
|---|---|---|
| Base | About 12GB | 100 steps / CFG 3 default; adjustable |
| Official Turbo | About 6GB | Fixed four-step distilled schedule |
Install the code and generate a first image
The official code requires Python 3.11 or newer, PyTorch 2.7.1 or newer and an NVIDIA GPU with CUDA. Create an isolated Python environment, clone the repository and install it with pip install -e . before downloading the selected checkpoint.
For Turbo, run the commands below from the installed repository. Qwen3-VL-4B-Instruct downloads automatically on the first generation. Allow time and storage for that download before judging the cold-start delay. Inspect the saved image for the objects, text and composition requested.
hf download speridlabs/iris-3b --include "turbo/*" --local-dir iris-3b
python scripts/sample.py --checkpoint iris-3b/turbo \
--prompt "a red fox sleeping in fresh snow, golden hour"Use Base for adjustable sampling
Download the main checkpoint while excluding depth/*, upscaler/* and turbo/*, as shown in the official quickstart. Point scripts/sample.py at iris-3b rather than iris-3b/turbo. Keep the seed and dimensions fixed when comparing variants so the workload is clear.
Include the text encoder in the GPU budget
The 3B name describes the image generator. Text-to-image also uses a frozen 4B Qwen3-VL encoder. The approximately 12GB Base and 6GB Turbo figures describe checkpoint downloads, excluding that encoder and runtime allocations.
Turbo is distributed in BF16, while the model card describes upcasting its weights to FP32 and using BF16 autocast for inference. A smaller file therefore does not directly establish a matching reduction in peak VRAM. Record GPU memory during the full first request and subsequent requests, including the selected dimensions and batch size. The official guide does not specify a minimum VRAM requirement. Choose a GPU using peak-memory measurements for the complete pipeline at your intended resolution and batch size.
Keep the H100 timing with its batch size
SperidLabs reports about 0.7 seconds per 1024×1024 image for official Turbo on one H100 at batch four. Use that as a publisher result for that configuration. It does not give a single-image latency or a consumer-GPU timing, and should not be substituted for a complete billed session.
The publisher’s matched image evaluations show different tradeoffs: Turbo’s prompt-following scores are slightly higher, while long rendered text and OneIG-Bench results are lower than Base. The card also describes less seed diversity and possible faint grain on flat backgrounds. Compare accepted outputs for your task rather than choosing solely by step count.
Community workflows use different memory and sampling paths
ComfyUI node author bani4kaskashka reports 1.8 seconds per step and 7.7GB peak VRAM on an RX 9060 XT 16GB with Windows ROCm for one-megapixel images. The pack moves components between GPU and system RAM rather than keeping everything resident; its documentation asks for about 22GB free system RAM with all three models loaded. Its Turbo workflow uses a community LoRA, separate from the official full Turbo checkpoint. These figures describe that node pack and offload policy, rather than a minimum GPU for the official script.
In an independent Reddit example set, b4silio reports Base Iris at 100 steps taking 59.4 seconds for 1024×1536 and 73.3 seconds for 1024×1824 on a Blackwell 6000 Pro using a custom pipeline. Precision and peak memory are not specified. The different dimensions, sampler and pipeline prevent a direct timing comparison with the official Turbo H100 result. Use the linked images to inspect the author’s examples rather than inferring a Base-versus-Turbo quality winner from elapsed time.
For Apple silicon, TKY-27’s October 19 audit of the independent Iris-3B Metal engine uses official BF16 Turbo, four steps, 1024×1024 and real Qwen encoding on an M5 MacBook Pro with 24GiB. Comparing the engine’s v0.5.0 reference (1bf1d73) with its v0.6.0 audited implementation, warm repeated-prompt medians fall from 12.52 to 9.81 seconds across six requests per version; changed-prompt medians fall from 18.30 to 14.05 seconds across four. The pipeline timing excludes startup, PNG writing, HTTP and GUI persistence. Peak process memory is 10.08 versus 10.04GiB, so this comparison does not establish a memory improvement. The same project rejected an earlier faster FP16 candidate after a storefront prompt changed BREAD to BRIEAD; use the released recipe rather than selecting a path solely for its timing.
Calculate cost per accepted image
Divide the actual billed compute session by usable images, counting setup, downloads, failed attempts and idle time when billed. In a hypothetical 30-minute rental at $1/hour, the session costs $0.50. With 100 accepted images that is $0.005 each; with 25 it is $0.02 each, before storage and network charges.
For owned hardware, use measured wall power and elapsed time with your electricity rate. Compare Base and Turbo at the same output dimensions and quality threshold, keeping warm generation time separate from the first request. A four-step model can still require retries when a task needs precise text or object counts.
Use separate checkpoints for depth and restoration
The repository also provides fine-tuned depth and 4× restoration models. These use an empty prompt and do not require the text encoder. They are separate downloads and tasks, so text-to-image memory and Turbo timing do not describe their operation.
The depth output is relative rather than metric distance. Restoration can tile large outputs. Use the relevant scripts and inspect their output format before building a pipeline around either task.
Retain both model and encoder licenses
Iris-3B is released under Apache 2.0. The Qwen3-VL-4B-Instruct text encoder is fetched separately and retains its publisher’s Apache 2.0 license. Keep the corresponding notices with redistributed components.
Before you use it
- Check rendered text and exact object counts in the output image.
- Turbo has a fixed schedule; negative prompting and adjustable CFG belong to the Base path.
How to get started
Try the official demo or generate a small Turbo batch, then compare Base when text detail, seed variety or sampling controls matter.
Sources
Sources (5)
- Independent Iris-3B Metal engine audit and quality gate ↗
Source checked:
- Iris Comfy Nodes maintainer measurements and workflow identity ↗
Source checked:
- b4silio independent Iris Base image and timing report ↗
Source checked:
- SperidLabs Iris model card, Turbo configuration and publisher tests ↗
Source checked:
- Iris code, setup and sampling entry points ↗
Source checked: