Commit Graph
302 Commits
Author SHA1 Message Date
Claude d1d83ebd8e feat: PTD few-step support for MiniMax H3 as a module
Settings > Engine > Sampling: pick a PTD adapter file from models/ptd and the run samples the file's own 4 to 8 hops with no CFG, whatever sampler and steps are chosen. Reads the EPFL fl2va and taobao-content-ai Ref2VA releases (bf16 or int8, full or pruned base); ordinary LoRAs stack. Ported from ComfyUI-PTD-Compact (Nynxz), ComfyUI-PTD (EPFL VITA Lab) and ComfyUI-MiniMaxH3-PTD (taobao-content-ai), all Apache-2.0: README Thank you plus NOTICE and licence text in the module. Proven on a tiny real H3 on CPU only.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0164nckPWA2L2ugVqiDcXzc3
2026-10-22 14:58:06 +00:00
Claude f0e4a20524 Block influence recording is off until the user turns it on
Default was on when no switch file existed. Now off; the Settings toggle stays.
Tests pin the new default.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HsiMULvrCeUuixnkGAABVU
2026-10-22 08:48:21 +00:00
Claude 49d69aa394 test: a picked H3 file keeps Shadow negative and Video detail on screen
Fake safetensors header through the probe and the real manifest; fails on the
code before 9b4b559, passes after.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011av2BXzE4UT5HfXpnhTNJQ
2026-10-22 08:37:09 +00:00
Claude 9b4b559d19 fix: H3 file probe now shows Shadow negative and Video detail
The pre-load probe left out adaln_modalities, so picking an H3 file hid every
setting that needs it. Run time still checks the loaded model.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011av2BXzE4UT5HfXpnhTNJQ
2026-10-22 08:17:55 +00:00
Claude 156f86e618 fix: checkpoint loader reports a missing VAE; a start picture no pipeline slot takes is named as unused
Tests: VAE, LoRA (7 key dialects), CLIP and checkpoint loaders; every preset x every kind of picked file is used or named.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WP6HMLLhRYcghAEXK4KLwK
2026-10-21 04:36:20 +00:00
Claude c089fe3a9a test: every diffusion loader option loads a tiny H3 file; every reference kind reaches its H3 socket and passes ComfyUI validation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WP6HMLLhRYcghAEXK4KLwK
2026-10-21 04:29:20 +00:00
Claude 4069a6f59a test: every file type the Media bin accepts is made, uploaded, thumbnailed and loaded 2026-10-21 04:29:19 +00:00
Claude 4c677b984d test: every sampler and scheduler on offer finishes a real tiny H3 sample 2026-10-21 04:29:19 +00:00
Claude 88f4cc2986 test: every modifier setting walked through its choices on the real tiny H3 and LTX models 2026-10-21 04:29:19 +00:00
Claude 24f946f43c release: 5.0.1 changelog, version and training credit
Load Media refuses unreadable files in plain words; gallery delete refuses odd names; stale tests updated.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9uCRvqd1GDx6PZDZLyovu
2026-10-21 03:40:31 +00:00
Claude 329781499c feat: H3 preset has 15 reference slots (9 pictures, 3 videos, 3 sounds); saved projects get the new ones on open
Pictures are numbered among pictures, so any mix fits R2V's own inputs.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CHWxqHtxwWrq4kEyFTaHds
2026-10-21 02:54:22 +00:00
Claude a36af5f3a1 fix: a video or audio reference is routed from the inputs the model node offers, not from preset data
Works for any H3 Reference to Video pipeline, edited or not. Drops the preset routing data and the refresh that carried it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CHWxqHtxwWrq4kEyFTaHds
2026-10-21 02:43:47 +00:00
Claude d03ba50216 fix: projects saved while the video/audio Load Media nodes existed drop those slots instead of failing to load
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CHWxqHtxwWrq4kEyFTaHds
2026-10-21 02:37:16 +00:00
Claude bf62683f5a feat: Load Media takes a picture, video or sound and the app wires the output that fits
A video or audio reference now uses an ordinary reference slot, so old projects need no new slots; saved media slots take the preset's current roles.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CHWxqHtxwWrq4kEyFTaHds
2026-10-21 02:22:23 +00:00
Claude 600a4d8050 fix: reference video is no longer cut to 15 seconds
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CHWxqHtxwWrq4kEyFTaHds
2026-10-21 02:02:18 +00:00
Claude 129cc10d0f fix: video and audio references go to R2V's own video/audio inputs; aspect ratio source accepts a video
New Load Media (video) and (audio) nodes; picture loader keeps first frame for the aspect source only.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CHWxqHtxwWrq4kEyFTaHds
2026-10-21 02:01:01 +00:00
Claude f71a055ae0 fix: a video picked as a reference loads as its first frame instead of failing in Load Media
Audio is still refused, with a plainer message.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CHWxqHtxwWrq4kEyFTaHds
2026-10-21 01:54:44 +00:00
Claude df5424e0df Sharpness edits the model's answer directly, last step included, as 4.x did
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dy3QqNuYH9NSJgob83xcTX
2026-10-20 16:29:11 +00:00
Claude 0dc605f013 Distilled Flow: three named presets (ord1, ord2, ord2_ab2), no Heun variants
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dy3QqNuYH9NSJgob83xcTX
2026-10-20 16:11:19 +00:00
Claude 73adf3e65d Distilled Flow sampler presets (dflow_*) and a sampler-neutral Sharpness module
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dy3QqNuYH9NSJgob83xcTX
2026-10-20 16:01:27 +00:00
Claude 28d191133b Training: free the card at the start of every run, cached data or not
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-18 23:48:41 +00:00
Claude ad2157110b Training: the node always runs (a second resume was answered from ComfyUI's cache in 0s); the window adopts the server's pause instead of an older one
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-18 23:39:55 +00:00
Claude 7ef57ba162 Rated results: caption only from the file's own prompt, never the project's; keep every file listed and mark doubtful ratings
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-18 22:24:27 +00:00
Claude 63ab3a3ae6 LoRA training: a rated result made in this session takes the prompt embedded in its file; an older rating on a reused name is left out
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-18 22:17:02 +00:00
Claude 1139c38cf7 LoRA training: rated results are checked against the file itself, files added without words take the prompt embedded in them, no length limit on prefix and postfix
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-18 22:14:29 +00:00
Claude 107bc05f91 RTX VSR: explain a failed load (missing libnvidia-ngx on rentals) instead of the bare SDK code
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AnqLiHvACqkfhdfsb7qgo5
2026-10-18 00:22:18 +00:00
Claude 797cbcc579 LoRA training: time per step, a graph of it, and the time spent in all (restarts included)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-18 00:15:41 +00:00
Claude cd4c576e6e LoRA training: download the saved step copies and the preview as well as the final LoRA
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 22:40:15 +00:00
Claude bfaee07258 LoRA training: Download LoRA on a finished run in Results
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 22:35:32 +00:00
Claude 9aa1791ec8 LoRA training: encoded clips and captions are kept on disk and reused by the next run
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 22:00:51 +00:00
Claude 3c421b2c1d LoRA training: fix resume in inference mode, Restore and continue, live graph in Results
The saved optimizer state was read in ComfyUI's inference mode, so the first optimizer step after a resume failed. It is copied to normal tensors first. A failed or stopped run keeps its saved state and Results offers Restore and continue. The graph, progress and previews of a running training moved from Train to Results; Train says where to look.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 20:54:49 +00:00
Claude 65a731584c LoRA training: save a copy of the LoRA every N steps as name_stepN
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 20:14:16 +00:00
Claude 6603f42ecb LoRA training: pause, resume and a preview LoRA at chosen steps (backend)
A run can wait at a step boundary (Pause, or every N steps for a preview): its state is saved,
the LoRA so far is written as <name>_preview.safetensors, and the card is let go. Resume carries on
from the saved state under the same run. UNTESTED on real weights.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 20:08:01 +00:00
Claude 919097c732 LoRA training: our own loop for H3, and a Log that survives a crash
The H3 run trains with a loop of our own (LoRA on the attention and feed-forward projections of the
50 blocks, per-block checkpoint, uniform noise levels, musubi-tuner's approach) while ComfyUI carries
the batches. Every Log record is flushed to disk as it is said and reloaded on start; the run
writes each stage and step to it. ComfyUI's own offloading toggle is ignored by the new loop.
UNTESTED on the real weights.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 19:57:06 +00:00
Claude a13f037f72 H3 training: modulate blocks out of place so the backward pass stops keeping every block's recompute alive
Measured on a tiny H3: backward growth was ~75 MB per block, now flat (61-88 MB at 2, 8 and 16 blocks).
The in-place mul_/addcmul_ on slices of the stream in the block helpers were the cause.
UNTESTED on the real weights.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 19:47:34 +00:00
Claude 498eb731b6 feat: training learning rate defaults to musubi-tuner's 0.0001 and the H3 note carries its recipe
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 19:34:17 +00:00
Claude d0d572c4ec feat: block swap option for LoRA training and a per-block memory log in the backward pass
Block swap keeps the frozen weights of the last N transformer blocks in system
memory and lets ComfyUI's weight casting fetch them one layer at a time. The idea
and the block count as the one knob follow musubi-tuner's block swap (kohya-ss,
Apache License 2.0); this is an independent implementation.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 19:30:50 +00:00
Claude 905a356623 fix: a failed training run lets go of its memory, and the next run starts by freeing what is left
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 19:08:38 +00:00
Claude c793a9daac feat: log what the forward pass left on the card just before the first backward passes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 19:07:27 +00:00
Claude 0d2b6779be feat: show a clip's frame count and rate in the training pickers and tags step
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 18:58:03 +00:00
Claude 45b60ac874 Training captions are plain text boxes; the set has its own prefix and postfix
Tags from the tagger are added after a comma and the caption is never reworded.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 18:38:03 +00:00
Claude b0afaab8db Training loads the model and copies its inputs outside inference mode
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 18:33:26 +00:00
Claude a070ce9400 Training reads every clip for as many frames as the shortest gives, and allows up to 1025
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 18:30:50 +00:00
Claude 50ed30dfc7 Rated results are listed only when their file is still on this machine
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 18:21:56 +00:00
Claude bb9ec64a46 H3 training checkpoints one block at a time and the text refiner on its own
Depth 1 made the whole model a single checkpoint, so nothing was saved.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 18:14:55 +00:00
Claude 1dfb4c5f09 Training logs the shape of the first latent and text
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 18:07:58 +00:00
Claude e715eeb5eb Training logs the card after each stage of the trainer's setup
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 18:02:39 +00:00
Claude c3a40be163 fix: Save Video falls back to the CPU when the GPU encoder will not open, in gpu mode too, and says why
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019Q78Fcj3Wf9gZpbXmSAUuW
2026-10-17 17:59:13 +00:00
Claude e583a3c5cf Training reports what the card holds before and after freeing it
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 17:56:22 +00:00
Claude c4adc1242d Training takes the model file from the pipeline and loads it once itself
The loader node no longer runs in front of the trainer; its copy shares that one model.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 17:48:06 +00:00