20 Commits
Author SHA1 Message Date
digital-garbageandClaude Sonnet 5.5 34db2b331d Reference sheet generator (optional module + dialog); leak report tests start from unwrapped ComfyUI functions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 00:50:31 +02:00
Claude 0414df00c9 Diffusers LoRA modules with no place are counted under any wrapper prefix; Watermark hint names the trimmed-clip exception
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjX7o2YfeGQE18MEtPu
2026-11-08 20:19:39 +00:00
Claude d8e849f615 Timeline never shorter than its lanes even from a saved height; Diffusers LoRA modules with no place in H3 are counted and alerted
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjVsBg3ixjnT1Fgdy12
2026-11-08 16:32:05 +00:00
digital-garbage 84a92f3d14 Review round 1: carried last frame is the sampler's own, Interpolate keeps full length at x3/x4, MXFP8 skipped no longer blocks LoRA training, Diffusers lora_down/up spelling, back-up 1.0 step lookup, block map mean, Latent upscaler fallback declared, Story box on project switch 2026-11-08 02:22:54 +02:00
digital-garbageandClaude Sonnet 5.5 25cc6ed0b4 Review round 2: partial Q/K/V LoRAs, Turbo polish no longer read as the last step, cut-short videos refused, NaN-safe block map, bounded block ranges; Common phrases lists words and phrases of any length
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 12:23:25 +02:00
digital-garbage 5f6ed35929 Matrix: every modifier is listed or exempt with a reason, must report active, and must wire in; crossed with samplers and Two stages
Brownian leaves the stock sampler alone when torchsde internals differ. LoRA: unwrapped refiner layout, absent blocks, LoKr.
2026-11-05 15:58:29 +02:00
digital-garbage 4b306ae65f Round 3: Brownian noise equals stock noise at any sigma height; every LoRA wrapper reaches every Diffusers module
Queries are limited as plain numbers inside the sampler call. Tests for 11 wrappers and sigma 14.6.
2026-11-05 15:44:24 +02:00
digital-garbage 3351fbf503 LoRA: a wrapped Diffusers file reaches the fused qkv rows; a wrong-width qkv pair is dropped, not merged
README credits Karras et al. for the churn idea in Turbo. Tests for three wrappers and the width check.
2026-11-05 15:23:43 +02:00
digital-garbage 2f1a0df7a0 Review: only H3 LoRAs are renamed to H3 names (LTX transformer_blocks LoRAs load again)
Interpolate Always warns once, not per render. README credits the resize kernels; hint and example text corrected.
2026-11-05 15:13:03 +02:00
Claude 4579d31585 LoRA Loader: a slot's settings and the next slot's picker appear only once a LoRA is chosen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tw9fjV2UVj2u3F3mbnYrQW
2026-11-05 11:23:35 +00: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 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 f8955c2ef2 Keep ComfyUI's console on disk (Previous run in the Log window) and log memory at LoRA load and sampler start
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BzJLJWVu7RZnbRqm3nYAnX
2026-10-27 09:03:30 +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
digital-garbage 41a75c3cd6 fix: server messages name the right Settings pages; effect, add-on, shot camera, LoRA, VAE, erase and SLA hints say what they do 2026-10-15 13:08:08 +03:00
digital-garbageandClaude Opus 5.5 837a4215a4 fix: v4 regressions before the rental: taste judge trains under inference mode; LoRA keys unwrapped, misfits dropped, no-match said; unsupported dtype said; missed run finish read from history; prompt nudge no longer holds the model
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 03:08:29 +03:00
digital-garbageandClaude Sonnet 5.5 054f18a525 fix: Generate reads the live screen, not a save; autosave delay is a setting that waits for typing; H3 preset always carries a LoRA loader (None = untouched)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 15:51:40 +03:00
digital-garbageandClaude Sonnet 5 776529e0d8 feat: assign category to every remaining module
The port plan calls for every module under modules/ to declare a
CATEGORY so Settings/Engine panels can group by it. Only alg, sharpen,
appearance, and full_control had one; the other 12 (loaders, empty
latent, media load, minimax_h3, output decode, sampling modifiers/
sampler, system pipeline) are plain infrastructure with no user-facing
settings dial, so they land in "system" except output_decode (post,
matching its STAGE) and the two sampling modules (sampling). Verified
against core/tests (548 passed) -- category validation and the
registry's field-mapping catch a typo here, per the earlier fixture-gap
fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 09:46:58 +03:00
digital-garbageandClaude Opus 5 74671329f9 log: a severity, a source, and a message
[Log] Info: FunPack Diffusion Model Loader | flux.safetensors loaded, attention sage
    [Log] Alert: MiniMaxH3ImageToVideo node | no "first_image" input is connected
    [Log] Warning: FunPack LoRA Loader | style.safetensors is empty and will not load
    [Log] Critical: torch | cannot allocate 14 GB (3 GB free); the run will not start

The difference between the middle two is the one that matters. Alert is a
choice you may not have made on purpose. Warning is something that will NOT
do what its name says -- the level v4 needed and did not have, which is how
560 handlers came to swallow a failure and carry on, so a feature could be
switched on, do nothing, and never say so.

Info is not decoration either: "loaded on GPU using sage attention" is how
an attention setting that did nothing gets noticed months before the
pictures look wrong enough to investigate.

Every call site moved -- there is no note() left to be vague through -- and
the loaders now say what they actually loaded rather than only what they
were asked for. Records are kept in a bounded ring as well as printed, so a
long rental session cannot turn the log into a memory leak, and served at
/funpack/api/log so a person can read it somewhere other than a terminal
full of ComfyUI's own output. There is a page for it.

Also dropped the preflight this was traded for: min and max are already
declared and already enforced at both doors, and a second protection layer
around a check that exists is ceremony.

Two mistakes worth keeping: a log line reached into the model's shape to
describe it and could have failed the load it was only narrating; and both
new pages passed `children` to an element that takes `rows`, which the kit
accepted and silently dropped. It throws on an unknown element and not on an
unknown prop.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-29 17:09:33 +03:00
digital-garbageandClaude Opus 5 ab9cbdb556 loaders: the four FunPack loaders, as V3 nodes
Ported from v4, minus two mechanisms that are no longer needed. The LoRA
loader takes one LoRA and chains, so the FlexibleOptionalInputType dict
subclass that lied to ComfyUI's validator has nothing left to do. The CLIP
loader uses numbered slots like core's DualCLIPLoader instead of a JSON
array in a string widget.

Autogrow looked like the right answer for the encoder list and is not: it
sets force_input on any widget input, so a list of combos renders as sockets
and the file picker stops being a picker. Every core use of it is a
connection type.

GGUF and SLA are deliberately not here. Both are capabilities rather than
loader options, and both belong in modules of their own.

The tests follow what the loaders PRODUCE rather than stopping at the call:
the attention override is carried into comfy's real dispatch and checked
against every backend this machine registers, because an override that only
fails at the first attention call fails at sampling, not at load.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-29 03:32:06 +03:00