Z Image LoRA Trainer
Playground
Try it on WavespeedAI!Z-Image-LoRA-Trainer – train custom image LoRA models from your own dataset, with zip uploads, auto-tuned defaults and fast iteration for brand, character or IP looks. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Z-Image LoRA Trainer
Z-Image LoRA Trainer is a high-performance custom model training service for the Z-Image / Z-Image-Turbo text-to-image generation models. It allows you to train lightweight LoRA (Low-Rank Adaptation) adapters for personalized styles, characters, and concepts, while preserving the fast and high-quality generation properties of Z-Image.
Training Architecture
The trainer is designed around Z-Image’s efficient diffusion architecture and its Turbo distilled variants, and produces one or more specialized LoRA adapters depending on your configuration:
-
Base LoRA adapter
Trains on the core Z-Image representation to capture your target style, character, or object, while keeping the base model frozen and stable. -
Turbo-aware fine-tuning (optional)
When used with Z-Image-Turbo, the trainer applies Turbo-compatible optimization settings (step-aware learning rate, safe rank and scaling) to maintain high image quality even at low sampling steps.
This architecture ensures that your LoRA:
- Remains compact and easy to share
- Is plug-and-play with supported UIs and pipelines (e.g. ComfyUI / AI Toolkit)
- Preserves the speed and efficiency of Z-Image / Z-Image-Turbo
Training Process
-
Data Upload
Prepare and upload a ZIP file containing your training images and, optionally, captions or prompts. -
Automatic Preprocessing
The trainer automatically:- Validates and filters your dataset
- Resizes and normalizes images for Z-Image
- Aligns captions / prompts (or auto-generates basic captions if enabled)
-
LoRA Training
The system runs a tailored LoRA optimization loop for Z-Image:- Freezes the base model weights
- Trains only the low-rank adapter layers
- Applies Turbo-safe settings when targeting Z-Image-Turbo
-
Model Export
After training completes, you receive:- A LoRA adapter file compatible with Z-Image / Z-Image-Turbo
- Recommended loading settings (weight scale, steps, and sampling tips) for image generation
Price
- $1 per training
Try more trainers
-
Wan 2.2 Image LoRA Trainer - High-performance LoRA trainer for the Wan 2.2 image model, ideal for custom styles and characters that integrate smoothly into the Wan video/image ecosystem.
-
Qwen Image LoRA Trainer - Built on the Qwen image model with strong multi-language prompt support and rich semantic understanding, great for text-sensitive image customization.
-
Flux Dev LoRA Trainer - LoRA trainer tailored for the Flux Dev model, focusing on high-fidelity, creative visuals and experimentation with new artistic styles.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/z-image-lora-trainer" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"trigger_word": "p3r5on",
"steps": 1000,
"learning_rate": 0.0001,
"lora_rank": 16
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| data | string | Yes | - | - | URL to zip archive with images. Try to use at least 4 images in general the more the better. In addition to images the archive can contain text files with captions. Each text file should have the same name as the image file it corresponds to. |
| trigger_word | string | No | p3r5on | - | Trigger word to be used in the captions. If None, a trigger word will not be used. If no captions are provide the trigger_word will be used instead of captions. If captions are the trigger word will not be used. |
| steps | integer | No | 1000 | 500 ~ 10000 | Number of steps to train the LoRA on. |
| learning_rate | number | No | 0.0001 | 0.00000 ~ 1.00000 | |
| lora_rank | integer | No | 16 | 1 ~ 64 |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |