Z-Image Style LoRA Training
Train a Z-Image style LoRA from ComfyUI — no GPU, no Kohya
- importModel
- file_path
Z-Image is the model the community anointed "the SDXL 2.0 we've been waiting for" - Alibaba's 6B image model that's small enough to run locally and built to be fine-tuned. Style LoRAs are one of the main reasons people adopt it. Normally, training one means setting up ai-toolkit or OneTrainer, downloading the base model, and babysitting a training run for hours on your GPU. This node deletes that entire project: it hands the training job to Runware's cloud and returns the finished LoRA as a file path.
The catch, and it's the honest one: the dataset is a ZIP file, provided as a UUID or URL. So you still prepare your images locally, zip them, and get them onto the internet somewhere Runware can fetch - you just don't do the compute. For a style LoRA this is genuinely appealing: a few hundred curated images of an aesthetic, zipped, and the cloud does the gradient math.
How it works
Training task, so the request goes to runware:z-image@style-lora-training with taskType: training. The node's inputs:
importModel- a RUNWARE_IMPORTMODEL socket from the pack's builder nodes; this is how the trained LoRA gets registered with Runware so you can use it in inference nodes later.dataset- required STRING: a ZIP of training images, as a UUID or a URL.learningRate- default 0.0005, range 1e-5 to 0.01. Lower learns slower but steadier; this is the number that fixes most overfitting.trainingSteps- default 300, range 10–4000. For a style LoRA on a curated set, don't blow past this by much - the community's lesson is that too many steps on a small dataset just memorizes the training images.triggerWord- the word that activates the style at inference time. Leave it empty and the LoRA still trains, but you'll have nothing stable to invoke it with.
Output: file_path (STRING) - the trained LoRA file, saved to your output folder.
Installing
Pack-wide, one install: ComfyUI Manager → Custom Nodes Manager → search Runware → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
No model downloads for training, no training stack to install - the cloud has it. API key from the Runware dashboard.
Gotchas
The dataset prep is the whole game. The modern style-LoRA lesson from the KB applies: diverse backgrounds over all-transparent ones (the model learns "no background" as part of the style), clean images, consistent subject matter for a character LoRA or varied contexts for a style LoRA. And remember the Z-Image training note: train on the base, run on Turbo - you're training against Z-Image proper here, which is the right target; if you're running the result on a Turbo node, expect it to carry over fine since Turbo is a distillation of the same family. Finally, training is the most expensive thing Runware sells - a 4000-step run is a real invoice line, so start at the 300 default and only raise steps if the LoRA is genuinely undertrained. Check the cost on the title bar before you queue something big.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| importModel | RUNWARE_IMPORTMODEL | — | |
| dataset | STRING | Training dataset as a ZIP file (UUID or URL) containing the training images, each optionally paired with a `.txt` caption file of the same filename. | |
| checkpointopt | STRING | AIR of a LoRA previously trained on Runware to resume from. `trainingSteps` runs as additional steps from its final checkpoint. LoRAs trained elsewhere are not supported. | |
| learningRateopt | FLOAT | 0.000.00001–0.01 | Step size applied at each training update. Lower values learn more slowly but can improve stability. |
| trainingStepsopt | INT | 30010–4000 | Total number of optimization steps to run during training. |
| triggerWordopt | STRING | Word or phrase used to activate the trained concept at inference time. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| file_path | STRING | — |