Skip to main content
Omnichar Studio trains LoRAs on your own GPU, with no cloud step. The training nodes sit on the same canvas as everything else. When a run finishes, the .safetensors file lands in models/loras/, and the LoRA loader node picks it up so you can generate with it straight away. A MiniMax H3 LoRA training in Omnichar Studio: a Load Dataset node of captioned clips, the Train LoRA node streaming loss and peak VRAM, a live loss graph, a Resources monitor and the training settings panel

Pick a model

Peaks are torch.cuda.max_memory_allocated over 12 steps at rank 16 and batch 1, so leave headroom for the CUDA context. The 16GB figures for Z-Image, Krea 2 and MiniMax H3 were measured on a Tesla T4; the other small-card entries are interpolated from L40S runs. Training directly on a step-distilled checkpoint breaks the distillation down, so each model either trains on an undistilled base or, for Z-Image, works around it with a training adapter or De-Turbo mode.

Install

If you installed with --extra all, the trainer is ready. Otherwise add the training extra:
Training has no downloader of its own. It reuses the model files a generate node’s model popup already fetched, and if a file is missing, the run stops and names it. Two things you fetch yourself: the Turbo training adapters for Z-Image and Krea 2, and the captioner, which downloads once the first time you press Auto-caption.

The training graph

  • Load Dataset feeds a dataset downstream. The node face shows thumbnails and counts; you edit images and captions in the side panel.
  • Caption runs a local captioner over the images that need one. Captions stay editable afterwards.
  • Train LoRA runs the job. Its face shows a live step counter, the streaming log and a progress bar. Hyperparameters live behind the Adjust button.
  • Graph plots the loss curve of the run wired into it.
  • Resources shows CPU, RAM and VRAM. It takes no connections.

Train your first LoRA

1

Build a dataset

On the Trainer tab, open Datasets, create a dataset, give it a trigger word and drag your images in. 20 to 50 images is a good range: a single character needs fewer, a broad style more.
2

Caption it

Run Auto-caption or write captions yourself. Start each one with a shared phrase, then describe the frame plainly. An uncaptioned image still trains, but against an empty prompt.
3

Pick a model and base

In Adjust, choose the architecture, then a base within it. Leave Base precision on Auto.
4

Start the run

Wire Load Dataset into Train LoRA and press Start. Watch the loss on the Graph node and VRAM on Resources.
5

Generate with it

The LoRA lands in models/loras/. Add a LoRA loader node, put the trigger word at the front of your prompt, and generate.
If you hit an out-of-memory error, lower the resolution before changing anything else.

Trigger words

The dataset’s trigger word is prepended to every caption during training, so the model sees mytoken, a photo of .... Put the same token at the front of your prompt to pull the LoRA in. Match the phrasing of your captions too: if they all say “an oil painting of”, a prompt written the same way hits the trained style more reliably than the trigger word alone.

Dataset and adapter options

  • LoRA scope. Full adapts the attention and feed-forward layers and is stronger on short style runs. Attention only suits long runs, where adapting everything starts to cost prompt adherence.
  • Caption dropout (default 0.05) trains a fraction of steps against an empty caption, so the LoRA still works when a prompt doesn’t repeat the trigger word exactly.
  • Flip images mirrors every image, doubling a small dataset. Leave it off for anything with text or a deliberate asymmetry.

Base precision

Base precision freezes the base model at 4-bit (NF4) while the LoRA itself trains at full precision, so only the frozen base loses fidelity.
  • Auto (default) sizes the base plus its activations at your resolution against your GPU, and picks.
  • Full precision (bf16) forces the unquantized base.
  • 4-bit (NF4) forces the quantized base.
It pays off on Krea 2 and FLUX.1. On FLUX.2 it saves nothing, and Z-Image has no 4-bit path. MiniMax H3 is always 4-bit.

Stop and resume

Stopping a run writes a checkpoint first, so Resume continues from the same step. A checkpoint holds the adapter weights, optimizer state, RNG state and step number. Runs cut short by a crash or a server restart show up under Outputs, ready to resume. Changing a setting in Adjust stages it behind an Update button. A checkpoint is tied to the rank, LoRA targets and base it was built with, so applying a change to a node with a resumable run asks first, then discards that run’s checkpoints. Finished LoRA files are never touched.

A worked example

inlineresearch/skin-lora-krea-2-raw is a skin-texture LoRA trained in Omnichar Studio on Krea 2 RAW, from the 26 image and caption pairs published as inlineresearch/krea2-skin-lora. The full benchmark matrix is in TRAINING.md.