Qwen Image 2512 LoRA Trainer
Playground
Try it on WavespeedAI!Qwen-Image-2512 LoRA Trainer lets you train custom LoRA models 10x faster with style, character, and object training. From concept to model in minutes, not hours—upload a ZIP file containing images to start. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
Features
Qwen Image 2512 LoRA Trainer
Qwen Image 2512 LoRA Trainer is a high-performance custom model training service for the Qwen Image 2512 text-to-image generation model. It allows you to train lightweight LoRA (Low-Rank Adaptation) adapters for personalized styles, characters, and concepts — with exceptional bilingual text rendering preserved throughout.
Training Architecture
The trainer is designed around Qwen Image’s 20B MMDiT architecture and produces specialized LoRA adapters optimized for the model’s unique capabilities:
-
Base LoRA adapter Trains on the core Qwen Image representation to capture your target style, character, or object, while keeping the base model frozen and stable.
-
Text-rendering preservation The training process is optimized to maintain Qwen Image’s superior Chinese and English text rendering capabilities even after fine-tuning.
-
Bilingual prompt compatibility Trained LoRAs work seamlessly with both Chinese and English prompts, preserving the model’s multilingual strengths.
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 text rendering and bilingual capabilities of Qwen Image 2512
Training Process
-
Data Upload Prepare and upload a ZIP file containing your training images. Include 10-20 high-quality images for best results.
-
Configure Trigger Word Set a unique trigger word (e.g., “p3r5on”) that will activate your trained style or character in prompts.
-
Adjust Training Parameters
- steps — Total training iterations (default: 1000)
- learning_rate — Training speed (default: 0.0004)
- lora_rank — Adapter capacity (default: 16)
-
LoRA Training The system runs a tailored LoRA optimization loop:
- Freezes the base model weights
- Trains only the low-rank adapter layers
- Applies Qwen-optimized settings for best results
-
Model Export After training completes, you receive:
- A LoRA adapter file (.safetensors) compatible with Qwen Image 2512
- Ready to use with Qwen Image 2512 LoRA
Parameters
| Parameter | Default | Description |
|---|---|---|
| data | — | ZIP file containing training images (required) |
| trigger_word | — | Unique word to activate your trained concept |
| steps | 1000 | Total training iterations |
| learning_rate | 0.0004 | Training speed (lower = more stable, higher = faster) |
| lora_rank | 16 | Adapter capacity (higher = more detail, larger file) |
Pricing
| Training Steps | Price (USD) |
|---|---|
| 1,000 | $1.00 |
| 2,000 | $2.00 |
| 5,000 | $5.00 |
| 10,000 | $10.00 |
Billing Rules
- Base price: $1 per 1,000 steps
- Total cost = $1 × (steps / 1000)
- Billed proportionally to the total number of steps in your job
Best Use Cases
- Character Consistency — Train on character images to maintain identity across generations.
- Brand Styles — Create custom visual styles for consistent marketing materials.
- Art Styles — Capture specific artistic aesthetics for creative projects.
- Product Visualization — Train on product photos for consistent e-commerce imagery.
Pro Tips
- Use 10-20 high-quality, diverse images of your subject for best results.
- Choose a unique trigger word that won’t conflict with common words.
- Start with default settings, then adjust if needed.
- Higher lora_rank captures more detail but increases file size.
- Lower learning_rate is more stable but requires more steps.
Notes
- Higher parameter values (steps, lora_rank) will increase training time.
- Training time scales with the number of images and total steps configured.
- For faster iterations, start with lower settings and increase gradually.
Try More Trainers
-
Z-Image LoRA Trainer — High-performance LoRA trainer for Z-Image models with Turbo-compatible optimization.
-
Wan 2.2 Image LoRA Trainer — LoRA trainer for the Wan 2.2 image model, ideal for custom styles that integrate into the Wan video/image ecosystem.
-
Flux Dev LoRA Trainer — LoRA trainer tailored for the Flux Dev model, focusing on high-fidelity creative visuals.
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/qwen-image-2512-lora-trainer" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"trigger_word": "p3r5on",
"steps": 1000,
"learning_rate": 0.0004,
"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.0004 | 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 |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | 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.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 |