Run Z-Image Turbo locally: txt2img, upscale and inpaint with crispz-studio (free, open source)
Z-Image Turbo generates a 1024px image in 8 steps on a consumer GPU. This tutorial
sets up crispz-studio, a free local UI dedicated to it: generation, ESRGAN + refine
upscaling, inpaint/outpaint, LoRAs and Civitai checkpoints, without ComfyUI.
Repo: https://github.com/mikecastrodemaria/crispz-studio

What you need
- Windows or Linux, Python 3.10+, an NVIDIA GPU with 12 GB VRAM or more
(BF16 all-in-VRAM wants ~16 GB; CPU offload covers smaller cards).
- ~15 GB of disk for the base model (downloaded once from Hugging Face).
Install
1. git clone https://github.com/mikecastrodemaria/crispz-studio
2. Run install.bat (Windows) or install.sh (Linux). It creates the venv and
installs torch + diffusers.
3. Launch with run.bat / run.sh, open http://127.0.0.1:7860.
First launch downloads Tongyi-MAI/Z-Image-Turbo. After that everything runs offline.



First image
Type a prompt, pick an aspect ratio, click Generate. The defaults are already
tuned for Turbo: 8 steps, CFG 0, euler, sgm_uniform. On an RTX 5090 a 1024px
image takes about 2 seconds; a 12 GB card stays comfortable.
Two settings worth knowing on day one:
- Performance presets switch between Turbo (8 steps) and Base-style checkpoints
(~28 steps, CFG 4). Picking a model auto-syncs the right preset.
- Upscale after generate chains every render through ESRGAN + a Z-Image refine
pass. One checkbox, no manual step.

Use Civitai checkpoints and LoRAs
Drop any Z-Image .safetensors from Civitai into checkpoints/, click Refresh, and
pick it in the model dropdown. The app loads it as a transformer override and keeps
the official VAE + text encoder, so a 12 GB single file is enough. FP8 and INT4
builds are filtered out with an explanation (diffusers cannot load them); take the
BF16/FP16 build.

LoRAs go into loras/, with 1 to 10 slots and per-slot weight. The Asset Browser
tab fetches previews, trigger words and example images from Civitai by SHA256
lookup, straight from the UI.
Images save with A1111-scheme metadata (switchable in Advanced), so Civitai
reads the generation parameters when you upload your renders.
Upscale and detail
The Upscale tab runs Real-ESRGAN then refines with Z-Image img2img. Useful starting
values: factor 2.0, denoise 0.30, refine 12 steps. Above ~1664px the refine
auto-tiles, which keeps 4K outputs inside a 32 GB card and even a 12 GB card
working. "Refine first" runs the diffusion at native resolution before ESRGAN when
you want speed over fine detail.

Inpaint, outpaint, reframe
One tab, three modes: Brush (repaint a mask), Expand sides (~30% per
border), Reframe (change aspect ratio, Contain or Cover). Leave the prompt
empty and the local captioner describes the image for coherent fills; the optional
Harmonize pass removes the pasted-zone look.

Going further
- X/Y/Z grids: compare checkpoints, samplers, steps or LoRA weights in one
annotated contact sheet.
- Job queue: snapshot settings into jobs and run overnight batches.
- CLI: every mode is scriptable --txt2img --upscale, server mode included).

Issues and feature requests: https://github.com/mikecastrodemaria/crispz-studio/issues

