Iris-Z: Open FLUX.2 Model Makes Images and Depth

Introduction
Speridlabs released Iris-Z on November 11: an open-weights image generator that thinks in two layers at once, color and geometry. Built on Black Forest Labs' FLUX.2, the same set of weights turns a prompt into an image, a prompt into an image plus its depth map, a photo into depth, and a depth map back into a fresh image. It ships in two sizes, Iris-Z-small (9.1B) and Iris-Z-big (32.2B), with weights on Hugging Face, a Python SDK on GitHub, and a free demo Space you can poke right now.
The headline claim is the fun part: a general-purpose generator, with no depth head and no second network, beating specialist depth models like MoGe-3 on standard benchmarks.
What Iris-Z Actually Does
Iris-Z starts from a pretrained text-to-image diffusion transformer and teaches it to treat depth like just another picture. Depth is stored as normalised log ray distance, encoded by the same FLUX.2 autoencoder, and placed in the same token sequence as the image. That means color and geometry condition each other at every denoising step instead of being bolted on afterwards.
Four tasks, one checkpoint:
- Prompt → image — it still behaves like the FLUX.2 model it came from
- Prompt → image + depth (RGBD) — a matched depth map generated alongside the picture
- Image → depth — monocular depth estimation from any photo
- Depth → image — repaint a scene from its depth map with a new prompt, like a built-in depth ControlNet
For creators, the RGBD and depth-to-image modes are the juicy ones: parallax animations, 2.5D camera moves, relighting passes, compositing plates, and "same layout, new season" restyles all start from a clean depth map.
The Two Sizes
- Iris-Z-small: 9.1B parameters, based on FLUX.2 klein base 9B, guidance 4.0, about 33 GB of GPU memory for all tasks
- Iris-Z-big: 32.2B parameters, based on FLUX.2 dev, guidance 3.5, about 112 GB of GPU memory for all tasks
- Resolution: 512 and 1024 for both
- Steps: 4 for depth estimation, 50 for generation by default
On a single H200 with SDK defaults, Speridlabs reports image → depth at 0.52 s (small, 512) to 5.29 s (big, 1024), and prompt → image + depth at 10.8 s (small, 512) up to 128.2 s (big, 1024). The project page is refreshingly honest that a specialist like MoGe-3 is still much cheaper per image: about 0.4 s versus 15 s for Iris-Z-big in the ten-seed benchmark setting.
The Depth Benchmarks
Scores are AbsRel × 100, where lower is better.
- Marigold's protocol (mean of five sets): Iris-Z-big 2.92, Iris-Z-small 3.11, MoGe-3 3.12, Marigold V2 4.10
- MoGe-3's protocol (mean of seven sets): Iris-Z-big 3.56, MoGe-3 3.70, Iris-Z-small 3.84, Marigold V2 5.40
Iris-Z-big beats MoGe-3 on six of the seven sets in MoGe-3's own suite; DIODE is the holdout. These are vendor numbers from Speridlabs' technical report, so treat them as a strong first signal until independent runs land.
Read the License Twice
The launch post says "fully open… (Apache 2.0)", and that's true for the code: the iris-z-sdk repo is Apache-2.0. The weights on Hugging Face, though, are tagged with the FLUX non-commercial license inherited from FLUX.2 dev. So: free to download, study, and play with; check the license before you use outputs or the model in paid client work.
One more setup note: Iris-Z reads the FLUX.2 autoencoder, which is gated. Accept the terms on the FLUX.2-dev Hugging Face page and log in with the HF CLI before first run.
Try It Today
No GPU? The Iris-Z Space on Hugging Face is running now.
Local install (Python 3.10, PyTorch 2.9.1 on CUDA 13.0, NVIDIA driver 580+):
git clone https://github.com/speridlabs/iris-z-sdk.git
cd iris-z-sdk
uv sync
hf auth loginThen pick a task. Use --model small if you're on a 48 GB-class card:
uv run python -m iris_z.sample rgbd --model small --prompt "a lantern-lit canal street at blue hour, wet cobblestones, deep perspective"
uv run python -m iris_z.sample depth --model small --image photo.jpg
uv run python -m iris_z.sample paint --model small --depth-map photo_depth.png --prompt "the same street buried in fresh snow at dawn"Depth comes out as _depth.npy (relative log depth) plus a colored _depth.png preview (near is red, far is blue), ready to feed into a parallax rig or a Comfy depth workflow.
A starter RGBD prompt that shows off strong layered geometry:
a winding mountain village at golden hour, stone stairways climbing between terracotta rooftops, laundry lines strung across narrow alleys, distant snowy peaks fading into haze, cinematic wide angle, rich foreground detailConclusion
Iris-Z is a lovely proof that one image model can learn how the world is shaped, not just how it looks. Today it is a big, slow-ish, non-commercial research release, but the depth-to-image and RGBD tricks are exactly the kind of building blocks that end up in ComfyUI graphs and 2.5D animation pipelines within weeks. Grab the small model, feed it your favorite photo, and watch the geometry pop out.
Original sources:
Iris-Z-small grew out of FLUX.2 klein. Want to play with its everyday sibling while you wait for a GPU? Try FLUX.2 Klein on Gen → https://artrealmai.com/gen?utm_source=magazine&utm_campaign=gen&utm_content=iris-z-open-image-depth-model-flux-2
—Aurelia ♡
