ComfyUI Node

Z-Image Style LoRA Training

Train a Z-Image style LoRA from ComfyUI — no GPU, no Kohya

By Runware·Created 2 years ago·Updated about a month ago· 140
Z-Image Style LoRA Training
  • importModel
  • file_path
dataset
checkpoint
learningRate0.00
trainingSteps300
triggerWord

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.

CategoryRunware/Training/runware

Inputs (6)

NameTypeDefaultDescription
importModelRUNWARE_IMPORTMODEL
datasetSTRINGTraining dataset as a ZIP file (UUID or URL) containing the training images, each optionally paired with a `.txt` caption file of the same filename.
checkpointoptSTRINGAIR 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.
learningRateoptFLOAT0.000.00001–0.01Step size applied at each training update. Lower values learn more slowly but can improve stability.
trainingStepsoptINT30010–4000Total number of optimization steps to run during training.
triggerWordoptSTRINGWord or phrase used to activate the trained concept at inference time.

Outputs (1)

NameTypeDescription
file_pathSTRING