Commit Graph
35 Commits
Author SHA1 Message Date
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 Sonnet 5.5 aef6e08e55 fix: a saved RTX choice falls back to a clear message where RTX is absent; a failed add-on install is offered again; RTX needs Turing or newer
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 22:45:41 +03:00
digital-garbageandClaude Sonnet 5.5 30c4b62eb8 fix: RTX is offered only where it can run, and off means off; the modules toast says what is true
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 22:32:23 +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 Opus 5.5 64cc73c401 fix: older projects' CreateVideo + SaveVideo become FunPack Save Video on open
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 16:15:46 +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 8f63ee0b7a fix: FunPack Save Video defaults to H.264 (plays in Firefox); H.265 stays an option
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 15:50:52 +03:00
digital-garbageandClaude Opus 5.5 82d18494ad feat: FunPack Save Video: H.265 on NVENC (hvc1, plays in Mac Chrome/Safari), H.264 option; no NVENC = H.264 on every CPU core (core SaveVideo used one); presets use it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 15:43:18 +03:00
digital-garbageandClaude Opus 5.5 109ea2fb4f revert: H3 decode in one piece showed a tile grid (the decoder is trained on 256px tiles); back to ComfyUI's own tiling, tooltip says so
Reverts b015ce3f.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 15:01:07 +03:00
digital-garbageandClaude Opus 5.5 b015ce3f87 fix: H3 decode with tile size 0 decodes each frame in one piece (core tiled at 256 regardless); out of memory steps down to 512, then 256 tiles
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 14:51:11 +03:00
digital-garbageandClaude Opus 5.5 06ac0afb03 feat: Save video as names the file with a random hash, not FunPack_00001_
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 23:40:11 +03:00
digital-garbageandClaude Opus 5.5 f4e89d4433 fix: auto-hide opens from its strip, never the title bar; popovers re-place on resize; one-line autocomplete; last frame held at end; saved videos named after their render
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:44:27 +03:00
digital-garbageandClaude Opus 5.5 2aa52b0eee fix: a removed scene's result says where it went; Inspector follows text edited elsewhere; own renders import past the upload limit; xformers warning only when it is on
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 03:13:05 +03:00
digital-garbageandClaude Sonnet 5.5 0ccc49bd6e feat: takes show a still of each take (poster route) and any take can be picked from the strip
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 13:09:17 +03:00
digital-garbageandClaude Sonnet 5.5 0f9a2ac98e fix(continuity): reversed predecessor, pin note, quiet first clip, clamped last frame, flat-dark guard
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 04:08:21 +03:00
digital-garbageandClaude Sonnet 5.5 4d76f4c6e0 feat: Continuity — a 'From generated frame' scene starts from the last picture of the clip before it (render module's last-frame route, dark-frame guard), identity picture for every scene, Engine ▸ Continuity settings
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 04:03:13 +03:00
digital-garbageandClaude Sonnet 5.5 4a1bf89c48 fix: effects and seam transitions now reach the render; separated-lane starts follow gaps and overlapping seams; lanes release their files when paused; inspector survives a failing section
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 03:03:35 +03:00
digital-garbageandClaude Sonnet 5.5 01fc0e4a71 feat(ui): clip effects + transitions, original-sound volume, video/audio import, file-lane slide/trim, audio lanes heard on the monitor, wheel customisation; fix: timeline syntax break; render: separated lane starts at its clip's place in the render
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 03:00:12 +03:00
digital-garbageandClaude Sonnet 5.5 dd600040a5 fix: overlay colours accept #rgb/#rrggbbaa, orphan overlays show, dialog keeps project-width default and dead pictures, a failing lane feature cannot stop the timeline
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 02:27:52 +03:00
digital-garbageandClaude Sonnet 5.5 e8a06e6790 fix(ui): Working card holds focus, menu-opened modals restore focus, trim/slip carry the separated sound, montage keeps lane volume, dead lanes make no black render, Taste export reports refusals
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 23:26:58 +03:00
digital-garbageandClaude Sonnet 5.5 c15953eceb fix(ui): modal traps Tab on the whole page, toast clicks do not dismiss a modal, Taste export downloads, menus above floating windows, montage pieces restore sound, excluded clip's lane goes quiet, Working card cannot be Esc'd
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 23:20:23 +03:00
digital-garbageandClaude Sonnet 5.5 47752491db fix: LTX — tiled decode asked the way comfy asks it, picture found for ALG/DynaShift/guidance (shared av_video_stream), odd sizes said
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 10:30:37 +03:00
digital-garbageandClaude Sonnet 5.5 a799846df0 feat: final render is made at a clip's own resolution (first clip, a chosen clip, or the project's), never forced to the project size
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 02:49:03 +03:00
digital-garbageandClaude Sonnet 5.5 561551eb90 fix: every clip contributes exactly its window of picture (held or cut), lanes without sound are left out and said
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 16:36:41 +03:00
digital-garbageandClaude Sonnet 5.5 45952015a3 fix: crossfade after a cut or gap renders (one timebase), short renders refused with a sentence, audio lanes use their file's length, segment ffmpeg failure is not a retryable 503
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 16:26:15 +03:00
digital-garbageandClaude Sonnet 5.5 ece9e2e9d7 fix: ghost previews keep their in-point, empty segments refused, odd canvases render, clip sound padded to its picture, mixed-fps export, render reports what it left out, upscale notice/busy-state
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 16:15:41 +03:00
digital-garbageandClaude Sonnet 5.5 beb5fe331b fix: preview window follows the URL not the unsaved project; export keeps sound/validates windows/unique names; upscale poll survives blips and detects vanished jobs; upscale settings follow the project; upload failures shown; EXIF-upright thumbnails
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 16:05:40 +03:00
digital-garbageandClaude Sonnet 5.5 1e0f9bc49e feat: render stage (serving, preview segments, export, stitch), post-render upscale, media rename/thumbnails, frontend backport from v4
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 15:48:46 +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 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 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-garbage 65b35e9cf3 log: one function for "it loaded and then broke", said in six places
The wording fix a commit ago was written by hand in two files and the same
mislabel was still sitting in four others -- traits, chain, modifier install and
node schema all reported a thing that loaded, recognised its work and then
raised as one that "did not load", sending a reader after an import error that
never happened. Three hand-written strings would have drifted, so log.broke()
now says it once and every site calls it.

Two of the new tests were vacuous when first written -- "nothing said did not
load" is also true where nothing ran at all, and picking the first provider
found lands on one whose traits exclude the test's model. Both assert the line
is present before asserting the wrong line is not.

One finding, confirmed, plus four sites it did not name.
2026-08-29 23:21:23 +03:00
digital-garbage eed00e56c9 log: a provider that broke mid-build was reported as one that never loaded
`log.failed` means "did not load", and both the latent and the decode paths used
it for a provider that loaded, claimed the model and then broke while working --
"did not load -- RuntimeError: ..." sends whoever reads the log looking for an
import error that never happened. The levels were separated for exactly this.

One finding, confirmed.
2026-08-29 23:15:02 +03:00
digital-garbageandClaude Opus 5 a81ac48083 model support is a folder, and a modifier you can watch working
Decode now takes the MODEL, so a provider answers "is this mine" by identity
instead of by shape. H3 was claiming any latent that happened to have two
parts -- right today because it is the only thing producing one, wrong the
moment a second AV model exists, and wrong in the way that reads as an
unrelated fault rather than an error. It declines when the model is not
wired, and the node says that is what is missing.

That completes the shape a model module should have: one folder saying how
this model behaves at each stage -- what it is, how its latent is built, how
its output is decoded -- instead of that knowledge spreading through the
conditioning and sampling code as special cases.

Added a modifier that runs on SD1.5, because a feature nobody can watch is a
feature nobody can check. It declares no traits, so it applies everywhere,
which is the other half of the rule ALG demonstrates by narrowing. Measured
on this machine at a fixed seed: off and on differ, 0.4 gives a visibly
richer picture that still reads correctly, and 1.2 blows the highlights --
so the range is -1..1, set from what was measured rather than from a round
number. A slider whose top half destroys the image lies about its range.

Two things found while building it. ComfyUI has a real circular import
between nodes_latent and nodes_post_processing that resolves only because
init_extra_nodes reaches one first; a custom node has to break it the same
way. And the accumulation bug returned through a third door: stripping
handled keyed wrappers but not the anonymous function lists on
model_options, so chaining doubled the effect. Tagging is now generic -- it
looks for our mark rather than for a list of hook names that would need
keeping current.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-29 13:33:09 +03:00
digital-garbageandClaude Opus 5 134cee78b7 output: decode, which is the last thing FunPack needs to own
Core already turns images into a video and writes the file, and handles
containers, codecs and muxing properly. Writing our own would be a worse
copy of tested code, so there is no FunPack save node and no reason for VHS
either.

What core cannot generalise is decoding a latent that is not one tensor: an
AV latent has two branches wanting different VAEs, and their arrangement is
the model's business. Same rule as the empty latent -- a model module may
claim it, and H3 now does. A nested latent nobody claims is refused rather
than handed to vae.decode, which would raise somewhere confusing or quietly
decode one branch as the picture. A missing audio VAE is named, because
returning no audio looks exactly like a model that makes none.

With this the pipeline closes end to end using FunPack's eight nodes and
core's samplers and video nodes -- verified by loading both together. That
matters more than the node count: until now nothing FunPack produced could
be measured, only reasoned about.

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