58 Commits
Author SHA1 Message Date
digital-garbageandClaude Sonnet 5.5 83ca881510 Step merging: Main prompt reads (A while B, A B, only A, only B) sets what the prompt says outside the merged steps
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 02:32:57 +02:00
digital-garbage 3dbcc8a4e8 Prompt enhancer: Dynamic style for more motion; counts-only motion check script 2026-11-05 23:29:27 +02:00
digital-garbage affa3a863e Veda: opt-in per-phase timing, one line naming every size of a Two stages run, fewer device reads
veda_timing (loader, method veda) logs the time in gather, score, select, kernel and scatter
for a run; off by default and it changes no number. The run line now names the size and tile
plan of each stage, not only the last. Cheap speed-ups that keep the numbers exactly: the
list width of kept tiles comes from the layout instead of a device read, the head groups and
the per-row pattern stay on the device, and the predictor's projections are copied from pinned
memory.
2026-11-05 21:57:31 +02:00
digital-garbage 1e2ac5ca67 Sparse attention method veda for MiniMax H3 (experimental), with an optional predictor download
Learned tile-sparse attention (Veda, arXiv 2605.30325): tiles, tile plans, predictor
scoring and selection in plain torch (tested on CPU, including a real tiny H3 with a
stand-in kernel), an INT8 Triton kernel derived from SageAttention (untested on a GPU),
installed through the same override and per-step wrapper as SLA. Runs at the predictor's
trained budget; LoRA, MXFP8, Two stages, dense steps and the attention backend compose.
Settings > Models offers the official Hugging Face download of the predictor on a click,
with its licence beside it; taggers and this share one downloader (core/fetch.py).
2026-11-05 21:32:39 +02:00
digital-garbageandClaude Sonnet 5.5 9b1cb52024 Post settings in Engine > Post: smoothing moved out of the node, plus auto contrast, auto brightness, colour strength
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 20:32:03 +02:00
digital-garbageandClaude Sonnet 5.5 0ed59f06d2 Two stages: Trilinear removed (migrated to Bicubic via renamed_options); Save Video: opt-in edge smoothing
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 20:19:14 +02:00
Claude 5eabca5839 LoRA loader: Apply to stage (First/Second/Both) for Two stages, and Diffusers-layout H3 LoRAs now load
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjVKTwSL4mCUi3hd811
2026-11-02 12:56:50 +00:00
Claude a0234fa01b Frozen node list: Save Video has the optional quality input
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjW75aYB8UyVRZo6fCr
2026-11-01 12:00:07 +00:00
Claude 3862f3ec36 LoRA Loader: up to eight LoRAs in one node, applied in order; slot 1 keeps its inputs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjU1A5dzqoK4stWcmzk
2026-10-29 19:23:48 +00:00
Claude 0f36445830 Interpolate runs as a FunUI background job, not a ComfyUI prompt (an extra prompt without loaders made ComfyUI drop the workflow's models); the NVIDIA effect stays loaded between jobs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjW75aYB8UyVRZo6fCr
2026-10-29 13:18:07 +00:00
Claude 97b85a3f09 Interpolate: RTX Frame Generation as its own module and add-on, button and modes like Upscale
Shared video stream and NVIDIA helpers move to core (video_pipe, nvidia); the add-on needs nvidia-vfx 0.2+, moves an older one up and never moves a newer one back; Upscale and Interpolate cannot feed each other in Always mode.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjW75aYB8UyVRZo6fCr
2026-10-29 13:00:01 +00:00
Claude 5df050a7f2 Project settings: Resolution is the Short side / Long side / Pixel count; H3 sizes with FunUIAspectSize, old projects keep Pixel count
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjYcwzhZeJZAD6ujMjA
2026-10-29 11:47:13 +00:00
Claude 3837d585e0 VAE Loader: optional decode-only VAE (Sol-H3-VAE, X2 Detail) while the main VAE encodes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjW75aYB8UyVRZo6fCr
2026-10-29 10:59:06 +00:00
Claude a80e58490c Two stages as a sampling setting (a model wrapper, any sampler) instead of a preset
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjW75aYB8UyVRZo6fCr
2026-10-29 10:05:19 +00:00
Claude 791bb6ca48 H3: two-stage preset (first steps on a smaller picture), Sampler denoised output, Resample to an exact size without an upscaler file, Stage Size node
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjW75aYB8UyVRZo6fCr
2026-10-29 09:55:37 +00:00
Claude b108d4f4f5 H3 loader: MXFP8 option for the middle blocks (Sol-H3 recipe), credit in README
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjW75aYB8UyVRZo6fCr
2026-10-29 09:44:49 +00:00
Claude 5d84c71056 LTX Image to Video: the timeline picture is the aspect source (new FunUI Aspect Size node), the project size is the budget
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BzJLJWVu7RZnbRqm3nYAnX
2026-10-27 10:43:45 +00:00
Claude a17484a9aa Freeze the Guide Frames node's inputs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjYZhHqk196LykrWy3T
2026-10-27 10:38:06 +00:00
Claude c70c74f01f LTX: two tested presets (Image to Video from References, Video to Video direct) with text to video as the fallback in both; docs say LTX 2.3 is tested
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BzJLJWVu7RZnbRqm3nYAnX
2026-10-27 09:45:04 +00:00
Claude a4eaabc20e Video input: prepare reference videos (size, crop, rate, skip, cut, every Nth, cap) per project or per scene
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BzJLJWVu7RZnbRqm3nYAnX
2026-10-27 01:04:58 +00:00
Claude 527d368c82 SLA: optional rising sparsity (sla_sparsity_start), GSRS idea; CPU test env script
Skip fewer attention blocks on early steps and more on late ones, in a straight
line up to sla_sparsity. Off at 0, untested on H3. Credit GSRS (arXiv 2610.21129).
tools/test_env.sh and tools/cpuforce.py set up the suite on a GPU-less machine.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0176SHndmQj7T1VtWAWZiNcq
2026-10-25 16:05:33 +00:00
Claude 3adebb731f Rename FunPack to FunUI (5.0.3 Classy Chopper): /fun endpoint, wink logo, load-time migration of old names
Old project/workflow names and browser settings migrate on load; /funpack redirects to /fun.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016acRss69eH1235eRdFTZHY
2026-10-25 13:11:03 +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 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 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 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 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 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 0f88ce744e feat: the prompt enhancer has its own encoder pick (Composer > Enhance > Encoder), so H3 can rewrite with Gemma 4; verified on a rental
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 16:27:16 +03:00
digital-garbageandClaude Sonnet 5.5 1fc5d99dcc feat: MiniMax H3 Reference to Video works text-only; with no picture a plain stand-in of the Width/Height shape feeds the size chain (found on a real GPU)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 15:03:52 +03:00
digital-garbageandClaude Sonnet 5.5 c83d878f3a feat: spaCy and NVIDIA RTX Super Resolution are opt-in add-ons; upscale gains an RTX engine; "resolution source" is now "aspect ratio source"
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 22:20:35 +03:00
digital-garbageandClaude Sonnet 5.5 d59a9ecba4 fix: a loaded project file is saved cleared; the shot camera node always gets the project id; infusion skips a word the shot already says
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 07:11:54 +03:00
digital-garbageandClaude Opus 5.5 8eaf5be5f4 feat: SLA method choice (sla / sol-attn / vsa via ComfyUI's Model Sparse Attention); first step dense by default; dense steps read from the schedule, so a cancel or a two-call sampler no longer shifts them
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 01:30:59 +03:00
digital-garbageandClaude Opus 5.5 91f9cdb70d feat: SLA gains comfy_kitchen's int8 sol_attn engine, precise word/audio protection, reference tiers, dense steps, block 32, tail, stabilize motion; later wrappers no longer skipped
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 01:00:58 +03:00
digital-garbageandClaude Opus 5.5 99f00f2950 feat: FunPack Save Video takes frames, sound and fps directly; Create Video dropped from the presets
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 16:08:28 +03:00
digital-garbageandClaude Opus 5.5 0f8420bb87 test: FunPackSaveVideo joins the frozen shipped-node list
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 15:48:41 +03:00
digital-garbageandClaude Sonnet 5.5 b9717ed1cc feat: int8_convrot option on the diffusion model loader (H3 bf16 file -> int8 + rotation at load)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 14:09:24 +03:00
digital-garbageandClaude Sonnet 5.5 dce64c1813 feat: shot camera (cut times, views, camera moves for [Shot N]) with rating-taught memory
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 14:07:03 +03:00
digital-garbageandClaude Sonnet 5.5 85827f7886 test: freeze FunPackNegativeErase's inputs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 12:06:40 +03:00
digital-garbageandClaude Sonnet 5.5 a51faa729b feat: LTX modules — video->audio coupling, context windows, identity transfer (Best-FaceID); TinyLTX real-model fixture; ltx_av trait
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 10:48:36 +03:00
digital-garbageandClaude Sonnet 5.5 6bfeb63c4c feat: LTX 2.x model module — recognised from the checkpoint header, joint video+audio latent sized from the audio VAE, decode, text/image-to-video pipelines
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 10:24:43 +03:00
digital-garbageandClaude Sonnet 5.5 ab743a1116 test: freeze FunPackUpscaleVideo inputs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 15:48:56 +03:00
digital-garbageandClaude Sonnet 5.5 8be3770080 feat: H3 tiled and X2 Detail VAE decode, phrase probe with Settings panel
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 15:17:03 +03:00
digital-garbageandClaude Sonnet 5.5 b29fda7a0e feat: prompt enhancer (node module, H3 preset slot, Composer Enhance + Chat tabs, readout route)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 15:05:22 +03:00
digital-garbageandClaude Opus 5.5 9d028ccc92 feat(v5): prompt markup for H3 -- (word:1.5), [phrase@t0-t1], [a|b]
Prompt Markup strips it before the encoder; Apply Prompt Markup puts weights
and timed windows on attention and blends on the conditioning. Where the words
sit is the H3 module's (text_tokenizer, prompt_rows, video_time_rows). Wired
into both H3 presets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 18:11:51 +03:00
digital-garbageandClaude Opus 5.5 6838e3b997 feat(v5): cut opening frames -- keep the anchor's transfer, drop the still
Cuts decoded frames and the same time off the sound. In both H3 presets,
0 by default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:56:15 +03:00
digital-garbageandClaude Opus 5.5 02705eae9d test: freeze the new second-pass nodes and FunPack Sampler's sigmas input
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:52:50 +03:00
digital-garbageandClaude Sonnet 5 79ca8cfb6b feat: SLA block-sparse attention for MiniMax H3, ported from v4
Loader-level attention option: mean-pool Q and a smoothed K into
blocks, score them with one small matmul, attend only the top
1-sparsity fraction of key blocks per query block, via a vendored
Triton kernel. Runs alongside the chosen attention backend rather than
replacing it (one override slot; the backend becomes SLA's dense
fall-through for the text refiner, masked calls, and trailing dense
steps), and refuses cleanly -- naming why -- on anything that is not
MiniMax H3 or a machine without CUDA+Triton.

modules/loaders/sla_block_map.py and sla_kernel.py are near-verbatim
ports of v4's vendored files (no FunPack-specific imports, so nothing
to adapt); sla_attention.py is the loader-facing glue (H3 gate,
override composition, per-step wrapper), same content as v4's with a
"not a module" note added to match gguf_support.py's convention.
Wired into FunPackDiffusionModelLoader as six new optional widgets,
following v4's loaders.py wiring but expressed in v5's io.Schema style.

The Triton kernel itself is unexercisable on this Mac (no CUDA) --
matches how real generation is verified in this project (rented GPU,
not local). Ported the CPU-testable half of v4's test suite (the
override contract, the H3 gate, the per-step wrapper); the three
kernel-correctness tests carry the same CUDA+Triton skip guard v4 used.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 15:13:05 +03:00
digital-garbage f8dd49d04f feat: FunPackLoadMedia -- load a media-library file into the graph as an image
The bridge piece B and C (resolution source, reference images) both need:
Media bin picks have no way into a ComfyUI graph today. One node, media_id
in, IMAGE out, backed by core/media.py's existing store.

Also fixes a real .gitignore bug found along the way: a bare "media/"
pattern matched modules/media/ (this node's own source) as well as the
intended root-level user-data directory. Rooted both media/ and projects/.
2026-09-11 11:37:23 +03:00