Minimax H3 lora training with clip dataset - #30
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MiniMax H3 clip LoRA training
Extends H3 LoRA training from stills to short video clips
First clip LoRA trained end to end: 500 steps over 167 pixel art clips, adapter saved.
Training
Clip length (seconds)setting switches a run fromstills to motion. Clips snap onto H3's 17n+5 frame grid at 24fps, so the floor is 22
frames (0.92s). Stills and clips write the same adapter and can share one dataset.
precache, discarding 20 minutes of work. Too short clips are now skipped and named
individually.
_encode_pixelsreturns the pairs it kept, so captions stay aligned withlatents. Without that, every caption after a skip would attach to the wrong clip and
nothing would error.
and
vm.overcommit_memory=0refuses any mapping larger than RAM plus swap. The kernelerror names the checkpoint, so it reads as a corrupt download, and it fired after the
precache. Now checked in milliseconds before it, with the exact fix in the message. Fails
open when the machine cannot be read.
logger.infowasbeing discarded entirely: the trainer subprocess installs no logging handler, so anything
below WARNING went nowhere. Progress now goes over the JSON protocol, which is the only
channel that reaches the UI.
loraport on all four H3 nodes, so a trained adapter is actually loadable.Trainer UI
NNNN.txtcaption sidecars included.
<video preload="metadata">and broken from an<img>. Fixed in the dataset grid, thecanvas
ThumbStrip, and the Load Dataset node.and fills as the node is resized.
user-select: noneon nodes). Log buffer raised 400 to 3000 so a failed run's setup linessurvive to be copied.
Project lifecycle
reload dropped you on the launcher and a Core restart left an open tab failing every call
with "No project is open". Core now records it and reopens on start; closing clears it.
Measured
Clips cost about 4x per step and essentially nothing extra in VRAM, because the caption
pass sets the peak either way.
Tests
804 passing. New coverage for the clip frame floor, the skip path, the mmap preflight
across all three overcommit modes, project restore across a restart, and the log channel
(the failure mode there was silence, not an error).
Docs
TRAINING.mdandREADME.mdupdated. Landing page changes are in the separateinline-studio-landing-pagerepo: a rewritten MiniMax guide with a seven step how to, thesettings spelled out, the
trojblue/test-HunyuanVideo-pixelart-videosexample dataset, andthe measured clip numbers.