Nodes/comfyui-superside-nodes/Superside Z-Image LoRA Trainer
ComfyUI Node

Superside Z-Image LoRA Trainer

The Superside trainer

By Superside·Created about a month ago·Updated 3 days ago· 1
Superside Z-Image LoRA Trainer
  • images
  • lora_file_url
default_caption
api_key
steps2000
learning_rate0.0005
images_zip_url

LoRA training normally means a 3060, a weekend, and a fight with ai-toolkit's dependency tree. This node is the opposite of that: it trains a LoRA on Z-Image Turbo entirely on fal's servers, using fal-ai/z-image-turbo-trainer-v2, from a batch of images sitting in your ComfyUI graph. No local training stack, no hours of your GPU. The output is a URL, and the intended destination is the other half of this pair - Z-Image Turbo Inpaint+LoRA - where you paste that URL into lora_url and instantly have a model that understands your subject.

What it's for

The pack's own use case is a realistic-skin LoRA from close-up skin and imperfection references - the "re-skin" pipeline that lives behind several of these nodes. But it's a general trainer: a character, a style, a product texture, whatever you have images for. The LoRA trains against Z-Image Turbo specifically, which is the important part: because the inpaint node uses the same base model, compatibility is guaranteed. That's the lesson the README hammers - a LoRA trained on one family has nowhere to plug in on another (a Krea 2 trainer LoRA can't inpaint anywhere, a Flux LoRA crosses checkpoints). Keep both halves on Z-Image Turbo and you never think about it.

The inputs that matter

  • images - an IMAGE batch, not a single image. Load a folder or stack several LoadImage nodes through an Image Batch node. 10+ images recommended; the node warns (but doesn't refuse) below that.
  • default_caption - required when training from the IMAGE batch, and here's the honest catch: every image gets the same caption. There's no per-image caption UI. Include your trigger word, describe what's common to all of them ("sks skin texture, close-up photo, realistic pores and imperfections"). If you need per-image captions, build a zip of images + matching .txt files yourself and pass its URL via images_zip_url, which overrides the batch.
  • steps (default 2000) and learning_rate (default 0.0005) - the two knobs. 2000 steps at that LR is a sensible starting point for a small dataset; the old SDXL instinct to crank the LR doesn't transfer to these architectures.
  • api_key - your fal key, same as every node here.

The single output is lora_file_url (STRING) - a diffusers_lora_file URL, ready to paste into the Inpaint+LoRA node's lora_url.

Installing

Same pack install, same restart:

cd ComfyUI/custom_nodes
git clone https://github.com/Superside/comfyui-superside-nodes.git
pip install -r requirements.txt

then find it under Superside (ComfyUI Manager also works, search "Superside"). The requirements are just fal-client, pillow, numpy, torch, requests. The only real dependency is money and a key: training runs are metered, your dataset leaves your machine and lives on fal's upload storage, and a single run is not instant - it's a real training job.

Common issues

  • Undertrained or mushy LoRA → fewer than 10 images, or a caption that doesn't isolate what you want. Dataset curation beats every training knob; this node can't fix a bad dataset.
  • Training works but the LoRA does nothing at inference → check the lora_url/scale wiring in the Inpaint node, and remember the /resolve/ not /blob/ rule from that node's docs.
  • Planning to move to Z-Image Base later → know this now: Turbo LoRAs don't run on Base. They're different training targets, and the community hit that wall the day Base shipped. If your endgame is Base, train on Base - this trainer targets Turbo, so it's a Turbo LoRA, full stop.

The honest comparison: local training (ai-toolkit on a 3060) is cheaper per run and keeps your data at home, but it's hours and setup. This trades money for your GPU and your patience. For a quick character or skin LoRA on a deadline, that's a good trade.

CategorySuperside

Inputs (6)

NameTypeDefaultDescription
imagesIMAGEBatch of training images (ignored when images_zip_url is set). At least 10 recommended.
default_captionSTRINGApplied to every image (no per-image caption files here). Include your trigger word.
api_keySTRING
stepsoptINT2000100–10000Number of training steps.
learning_rateoptFLOAT0.00050.00001–0.01Training learning rate.
images_zip_urloptSTRINGURL of a pre-built zip (images + matching .txt captions). Overrides the IMAGE batch input.

Outputs (1)

NameTypeDescription
lora_file_urlSTRING