Commit Graph
274 Commits
Author SHA1 Message Date
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
Claude 193822cf25 Training copies a dynamic-VRAM model as a plain one so only one model sits on the card
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 17:43:34 +00:00
Claude e3e8d1276b Training frees the VAEs, text encoder and other models before the trainer copies the model
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 17:37:46 +00:00
Claude 81d9f0be23 Training: SD-style tiny run tested, refusals reach the window, waiting hint
Picture models proven on a tiny UNet (one shape and mixed shapes). Light theme checked.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 15:58:24 +00:00
Claude cfb55eff45 Training: choose which prompt parts become captions (prefix, main, postfix, variables)
Variables expand when ticked, stay as written otherwise.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 15:55:24 +00:00
Claude a3c87a3b5c Training: rated results bring their prompts as captions (optional)
Shortcuts expanded; variables, prefixes and postfixes left out. A switch in the Data step turns it off.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MpnF7GwNGMbngU11wjym7P
2026-10-17 15:53:04 +00:00
Claude ab100f85a4 LoRA training add-on: sets, tagger, trainer node on ComfyUI's Train LoRA, H3 support
Backend only (window follows). Switched on in Settings > Modules. H3 repairs proven on a tiny H3 on CPU, 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 15:05:57 +00:00
digital-garbageandClaude Sonnet 5.5 eeaf72ba31 fix: the fp32-over-bf16 warning says it runs slowly
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 03:21:20 +03:00
digital-garbageandClaude Sonnet 5.5 ad6d6b54e6 fix: plainer loader warning for fp32 compute over bf16 weights
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 03:20:57 +03:00
digital-garbageandClaude Sonnet 5.5 69eaa15ce0 fix: the fp32-over-bf16 loader note no longer claims it does not run
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 03:20:01 +03:00
digital-garbageandClaude Sonnet 5.5 4549ffc2b3 feat: Diffusion Model Loader says when fp32 compute is picked over bf16 weights
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 03:19:36 +03:00
digital-garbageandClaude Sonnet 5.5 6bcd929771 fix: Save Video drops NaN/Inf audio with a warning and still saves the video
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 03:18:53 +03:00
digital-garbageandClaude Sonnet 5.5 4852d50609 fix: Shot Camera only reports 'changed' when it will rewrite, so the H3 prompt/reference encode (~7s) is cached between runs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 01:53:46 +03:00
digital-garbageandClaude Sonnet 5.5 8359ec7e83 feat: FunPack Timing splits the time before step 1 into model preparation, setup and the first forward pass
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 01:43:41 +03:00
digital-garbageandClaude Sonnet 5.5 03d902e208 fix: taste direction works on the CPU, so Taste prompt nudge / score slider no longer die on a cuda-vs-cpu mismatch
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 01:11:50 +03:00
digital-garbageandClaude Sonnet 5.5 1565ac3982 fix: skipped slots offer no Remove/Swap, stand-in load clears skipped, null pass value refused; route-level and precedence tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 01:28:22 +03:00
digital-garbageandClaude Sonnet 5.5 803ea68f21 fix: optional nodes are declared per node class by the model modules (saved pipelines and swapped nodes covered); skip chain cannot crash; skipped controls hidden in the project tab; skipped card says so (attacker round 26)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 01:02:59 +03:00
digital-garbageandClaude Sonnet 5.5 3beb13f6c5 feat: optional preset slots - a pipeline runs without Enhance, Shot camera, Prompt markup, Negative erase, Cut opening or Identity transfer when their module did not load, says so beside Generate, and hides their controls
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 00:41:38 +03:00
digital-garbageandClaude Sonnet 5.5 ca43f43e68 fix: a model probe whose detector raised says so instead of 'nobody recognises it'; routes and shot camera failures worded truthfully (attacker round 23)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 23:55:24 +03:00
digital-garbageandClaude Sonnet 5.5 618b5ba1c1 fix: a failing target_rows provider is said, once; separate once-keys for the two modifier nodes; spam-guard test (attacker round 20)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 23:24:53 +03:00
digital-garbageandClaude Sonnet 5.5 99568ba9ae fix: a provider failing in a new way is said again; the Load Modifiers stale-module log is tested (attacker round 19)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 23:15:13 +03:00
digital-garbageandClaude Sonnet 5.5 6e5035671a fix: provider errors say 'failed while' once; import guard covers class/for/match bodies; diffusion picker lists .gguf again so a saved pick gets the install message; stale-module wording true for broken modules (attacker round 17)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 22:58:01 +03:00
digital-garbageandClaude Sonnet 5.5 5c2588a9b2 fix: import guard sees every import form and is shown to fail; diffusion picker hides .gguf with no backend; provider errors are logged; stale module ids said at the modifiers node too (attacker round 16)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 22:36:30 +03:00
digital-garbageandClaude Sonnet 5.5 a88b814b28 fix: modules no longer import each other (shared taste helper is a plain file); UI gates match real ids and are tested; boot cannot stall; empty pipelines refused; truncated .gguf listing says so (attacker round 15)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 22:10:20 +03:00
digital-garbageandClaude Sonnet 5.5 3050a80056 feat: saved settings naming a module or setting that no longer exists are skipped with a once-per-run log line, not refused; RETIRED list removed
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 21:43:24 +03:00
digital-garbageandClaude Sonnet 5.5 0f86ffd909 fix: .gguf listing walks by folder identity (sibling cycles, root links, case); dangling links not listed (attacker round 14)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 20:26:47 +03:00
digital-garbageandClaude Sonnet 5.5 24372a5def fix: the prompt enhancer no longer needs the CLIP loader module to import; a test forbids module-level imports between modules
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 20:22:42 +03:00
digital-garbageandClaude Sonnet 5.5 3042532c0c fix: a symlinked folder aliasing a sibling is listed under both names; an undequantizable gguf tensor type names the file (attacker round 13)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 19:28:02 +03:00
digital-garbageandClaude Sonnet 5.5 76d534adb7 fix: symlink loops no longer stall the .gguf listing; a name with .. is refused after a link too (attacker round 12)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 19:17:23 +03:00