MiniMax H3 LoRA training, now on video clips locally
H3 LoRAs can now train on short video clips, so the adapter learns motion instead of just appearance.
- Set Clip length (seconds) in the Trainer's Adjust panel to switch a run from stills to clips
- Leave it empty and nothing changes: stills work exactly as before
- Both write the same adapter file, and one dataset can hold images and clips together
- Clips shorter than 22 frames (0.92s at 24fps) are skipped and named in the log, not fatal
- Works on all four H3 nodes, including Reference to Video
What it costs
Measured, not projected.
| Card | Images, 512px | Clips, 512px |
|---|---|---|
| L40S (46GB) | 20.6GB · 0.63s/step | (Should work) |
| RTX PRO 4500 Blackwell (32GB) | 20.49GB · 0.72s/step | 20.9GB · 3.01s/step |
| L4 (24GB) | 20.55GB · 1.81s/step | 20.4GB · not timed |
| Tesla T4 (16GB) | 12.7GB · 16.2s/step | not measured(Should work) |
- Clips cost about 4x per step and almost nothing extra in VRAM
- The caption pass sets the peak, which is why resolution and clip length barely move it
- A 500-step clip run is roughly 27 minutes of training on a 32GB card, plus about 7 minutes to
load the checkpoint - Caching scales with dataset size, not step count: 173 clips takes about 20 minutes
On 16GB cards. Stills train at a 12.7GB peak, unchanged from v1.2.63.
Try it on a public dataset
The first clip LoRA was trained on
trojblue/test-HunyuanVideo-pixelart-videos,
173 short anime pixel art clips with captions.
hf download trojblue/test-HunyuanVideo-pixelart-videos \
--repo-type dataset --local-dir ~/dataset- Captions ship in
metadata.jsonl, so convert them toNNNN.txtsidecars first - Point Load from path at the
trainfolder and the sidecars are picked up automatically - 6 of the 173 clips fall under the frame floor and are skipped, leaving 167 to train on
- 500 steps at 512px with a 1 second clip length produced a usable adapter
Trainer quality of life
- Load from path: import a whole folder without a file picker, caption sidecars included
- Clips render in the dataset grid, the Load Dataset node and on canvas, instead of drawing black
- Load Dataset fills with as many thumbnails as fit, rather than a fixed 6, and grows as you
resize the node - Hover to play, double click to open on any dataset tile
- Copy logs, all of them or a single line, straight from the Train LoRA node, with text
selection working inside the node - Precache reports progress item by item, so a long cache no longer looks like a hang
- The log keeps 3000 lines instead of 400, so a failed run's setup lines survive to be copied
Fixes
- Your open project survives a page refresh and a Core restart. It used to live only in memory, so a
reload dropped you on the launcher and a Core restart left an open tab failing every call with
"No project is open" - One clip below the frame floor no longer throws away a 20 minute precache. Too-short clips are
skipped individually and the run continues - A checkpoint the kernel cannot memory map is now refused in seconds with the exact fix in the
message, rather than after the precache with a rawCannot allocate memory (12)that reads like a
corrupt download
Upgrading
The app reads its version from Core's installed metadata, so reinstall or it keeps reporting the old
one:
cd core && uv pip install --python .venv/bin/python -e . --no-depsIf you hit unable to mmap ... Cannot allocate memory on a machine with less RAM than the
checkpoint, the new preflight will tell you this:
sudo sysctl -w vm.overcommit_memory=1
# to keep it across reboots
echo 'vm.overcommit_memory = 1' | sudo tee /etc/sysctl.d/99-inline-studio.confLinks
- How to train one, step by step guide
- Download Trainer
- Full benchmark tables
- MiniMax H3 weights
- Example dataset
What's Changed
- cuda version check based on hardware by @imprsnst in #29
- Minimax H3 lora training with clip dataset by @imprsnst in #30
Full Changelog: v1.2.63...v1.2.64