What we’re building
A complete, reproducible workflow to train a Z‑Image Turbo LoRA with the Ostris AI Toolkit, running on a rented GPU (RunPod). We’ll go from blank slate to a downloadable .safetensors LoRA, then load it into a downstream workflow (e.g., ComfyUI) to test the results with a trigger token.
You’ll learn:
- How to spin up the right environment on RunPod
- How to assemble and configure a dataset for concept training
- How to pick the right model, adapter, and sample prompts for monitoring
- How to kick off and observe training progress
- How to export and use your LoRA in your own pipeline
💡 Pro tip: Z‑Image Turbo is fast and surprisingly VRAM‑friendly. Even before the base model drops, the distilled weights already make for practical LoRA experimentation.
Check out the accompanying video on YouTube.
TL;DR (Quick Reference)
- Start a RunPod instance using the “Ostris AI Toolkit” template.
- Create a dataset (8–20 images is a good starting point). Optionally add captions.
- New job → select Z‑Image Turbo + LoRA target.
- Set a unique trigger token (e.g., myuniqueconcept) and configure sample prompts.
- Run ~3,000 steps to start; expect ~1 hour on a high-end GPU (e.g., RTX 5090).
- Download the resulting LoRA (.safetensors) from the job’s Checkpoints.
- Load the LoRA into your favorite workflow (ComfyUI, etc.) and prompt with the trigger.
Step 1 — Spin up the GPU workspace
On RunPod, search for and launch the Ostris AI Toolkit template. Keep disk size generous (datasets and samples eat space as you iterate).
🧪 Debug tip: If you see 0% GPU utilization during training, your job likely didn’t start or is stuck on CPU. Check the Training Queue and logs.
Step 2 — Assemble a tiny but consistent dataset
Hop into Datasets → New Dataset. Name it something meaningful; I like a short handle that matches my future trigger token.
Upload 8–20 representative images. Keep variety in poses and contexts, but a consistent subject identity.
Captions are optional. If you add them, keep the phrasing consistent (e.g., always include your trigger token).
🧭 Guideline: Resolution 1024×1024 is a solid baseline with Z‑Image Turbo. If your source images vary wildly, consider pre-cropping/centering the subject.
Step 3 — Configure the training job like a pro
Head to New Job:
- Training name: something short you’ll recognize later
- Trigger token: a unique string (avoid real words; e.g., xqteachu, zimg_concept01)
- Architecture: Z‑Image Turbo (LoRA target)
You’ll see a training adapter path. There’s also a newer “v2” adapter rolling out. If it’s available in your build, you can switch the file name from v1 to v2 to try it out.
Attach your dataset and set preview sampling. Samples during training are clutch—they confirm your LoRA is “taking.”
For samples, create two contrasting prompts so you can inspect generalization:
- “{trigger}, cinematic portrait, soft light, 85mm, bokeh”
- “{trigger}, full body action scene, dynamic pose, outdoor, golden hour”
💡 Pro tip: Keep the LoRA strength modest when previewing (e.g., 0.7–0.9). Too high can overcook and hide issues until it’s too late.
If your GPU is tight on VRAM, turn on the Low VRAM option in the model panel.
Step 4 — Start the job and watch it like a hawk
Create Job → Training Queue → Play → Start.
On a 5090, ~3k steps typically finishes around the 1‑hour mark (defaults). If samples are configured every 250 steps, you’ll see the subject “phase in” across iterations.
🧪 Debug tip: If loss flatlines suspiciously early or samples look unrelated to your subject after ~1k steps, your trigger might not be present in the sample prompts, or your dataset is too small/too noisy.
Step 5 — Evaluate progress and export the LoRA
Open the Samples tab to review the training trajectory. You’ll usually notice early frames not obeying the trigger, then progressively adapting to your subject.
When it’s done, jump to the job Overview → Checkpoints. Download the newest .safetensors file—this is your LoRA.
📦 Housekeeping: Save the training config alongside the .safetensors so you can reproduce tweaks later (steps, adapter version, dataset size, etc.).
Step 6 — Try the LoRA in your workflow
I like to validate in ComfyUI with a simple graph: base Z‑Image Turbo → CLIP encode prompt (including trigger) → sampler → VAE → preview.
Example prompt:
- “myuniqueconcept, cheerful portrait, natural light, editorial style”
If the result skews too strongly to the subject or artifacts creep in, lower the LoRA strength a bit and re‑sample.
Final output from one of my runs:












Top comments (0)