Files
olivv-cs-ComfyUI-FunPack/CHANGELOG.md
T

15 KiB

Changelog

[Unreleased]

Changed

  • The ComfyUI log survives a restart: the console is kept on disk as it prints, and the Log window has a "Previous run" button for the run before the last start. The Log also says how much RAM and GPU memory is in use when a LoRA is applied and when sampling starts, so a run the box kills for memory leaves a trace.
  • Shot camera and SLA are H3-only: models announce shot_prompts and sparse_attention (only H3 does), shot camera requires the first and the loader's SLA fields the second, so both are hidden when an LTX model is picked.

Added (experimental)

  • LTX 2.3 · Video to Video, direct preset (UNTESTED): no IC-LoRA. The picked video is encoded and sampled again from part-way down the schedule, so it keeps its layout and motion. How much changes is the sigmas slot (default 0.725, 0.421875, 0.0; start higher to change more). Size and length are the video's own, set by Video input. The graph validates; never run on a GPU.
  • LTX presets load separate files (diffusion model, video VAE, audio VAE, text encoder) instead of one checkpoint.
  • LTX 2.3 · Video to Video, IC-LoRA preset (UNTESTED): the wiring of ComfyUI's own LTX 2.3 IC-LoRA template (stock LoRA loader, Get IC-LoRA Parameters, the video as a guide at strength 1). Pick the IC-LoRA file in the pipeline, then pick a video as the scene's start picture; Video input prepares it. The graph builds and validates; never run on a GPU.
  • Video input (Project and Scene tabs): reference videos (and, on LTX, a video picked as the scene start, fed as frames) from the Media bin can be got ready before the model sees them, like a video loader node: target width and height (fill, fit with bars, or stretch; rounded to a multiple), edge crop in percent, frame rate (project's, the video's own or a number), skip first N frames, cut last N, every Nth frame, frame cap. The sound is cut to match. One set per project and one per scene; a dropdown in Project settings says whose is used (Automatic: the project's when switched on, otherwise the scene's). Off by default, so existing projects load videos as before. Works for any model whose pipeline takes reference videos (MiniMax H3 today). Tested on made-up frames and an encoded file, not yet on a rental.
  • Attention explorer (needs a Taste key): each run tries a small attention change (sharper, as is or looser) per depth group of blocks, and your ratings decide which changes stay; how far a change goes learns from ratings too (or type your own). The Log names the exact blocks made sharper or looser. Also learns, per run: how strongly each group attends to your prompt ("Prompt focus"), and the clip's four time bands and its sound separately ("Clip regions"). A rating counts more for runs of a similar prompt, and a combination you liked on this prompt is reused (with some groups re-drawn). Zero extra model passes. Untested on a real H3.
  • Noise merging (Settings > Engine > Sampling): "Merge" can also run a whole second video beside yours from the second seed ("Second run": one extra pass at every step up to the last one named, blended at the steps you name), or mix the run's starting noise with a second seed's (no extra cost, variance kept). Or, at the steps you name, the step is answered a second time on the same picture with different noise (a second seed), and the two pictures are blended at your strength. Merge order picks which one is the base. The second seed is random each run unless you type one. Picture and sound are both merged (the sound can be left out with "Merge sound too"). "Second pass new noise" sets how much of the step's own noise the second pass swaps for the second seed's (1 all, lower keeps more of your own). Costs one extra model pass per merged step. Untested on a real H3.
  • SLA rising sparsity (diffusion model loader, sla_sparsity_start): skip fewer attention blocks on early steps and more on late ones, in a straight line up to sla_sparsity. Off at 0. One real H3 render (4 steps, 0.70 to 0.90): quality held, perhaps slightly better. Idea from GSRS (arXiv 2610.21129); only the schedule is taken, not its other parts.

[5.0.3] "Classy Chopper" - 2026-10-25

Changed

  • FunPack is now FunUI. It outgrew "pack": it is a full interface. New logo, a wink ;), before the name in the top-left corner and in Settings > About. Node ids, log lines and docs follow the new name (FunUISampler, FunUI/Loaders and so on). The 5.x codename is now "Classy Chopper".
  • The app is served at /fun/ instead of /funpack/. The old address redirects.
  • Picker wheel settings are saved with the project.
  • Repository moved to digital-garbage/FunUI; GitHub redirects the old address, so existing clones keep updating.

Added (experimental)

  • PTD few-step (Settings > Engine > Sampling, MiniMax H3 only): renders in the 4 to 8 hops of a PTD adapter file from ComfyUI/models/ptd instead of a long schedule, with no CFG. Reads the EPFL fl2va and taobao-content-ai Ref2VA releases, as bf16 or int8, on the full or pruned base; ordinary LoRAs stack with it. The chosen sampler, steps and scheduler are replaced while it is on. Ported from ComfyUI-PTD-Compact (Nynxz). Runs on a real H3 (Ref2VA, 4 hops, int8); best with a turbo-merged base, SLA off and enhancements off.

Changed in Decisiveness

  • The manual setting is now a slider "Commitment" from -10 to +10 (0 is off). A value saved by an older version resets to 0.

Migrated on load

  • Projects, imported workflows and stored settings that carry old FunPack… names are renamed as they are read. Browser settings (wheel, welcome, timeline peek, model list) are carried over once. Nodes already placed in ComfyUI's own graph under the old FunPack… ids need adding again.

[5.0.2] - 2026-10-22

Changed

  • Interface follows Apple's Human Interface Guidelines more closely: roomier windows and gaps, text contrast of at least 4.5:1, nothing under 11px, a solid focus ring, a check mark and bolder label on selected choices, and a slider value you can type. Composer and Training open and close with a Genie motion; the preview picture scales to fit its stage.
  • README: new screenshots of the redesign and a clearer note on how the project is maintained.

Fixed

  • Restart ComfyUI no longer shows "Restarting ComfyUI…" twice while it waits.

[5.0.1] - 2026-10-21

Fixes from real H3 runs on rentals, plus the first usable LoRA training.

Fixed

  • Save Video no longer loses a video when the GPU encoder will not open: it saves on the CPU and the Log says why. NaN/Inf sound is dropped with a warning and the video is kept.
  • Reference videos and sound (H3 Reference to Video) go to R2V's own video and audio inputs, are no longer cut to 15 seconds, and a video's soundtrack comes along. Verified on H3. Old projects get the new slots on open.
  • Render button was dark with near-black text.
  • RTX VSR says why a load failed (missing libnvidia-ngx on rentals).
  • Taste direction works on the CPU (no more cuda/cpu mismatch in the prompt nudge and score slider).
  • Text-only H3 runs no longer need the preset's blank_like.
  • The Log now survives a crash, and notes a project whose length changed on save.
  • Media upload shows percent and no longer stalls the server on big clips.
  • Shot Camera no longer re-encodes the H3 prompt on every run.

Added

  • Log colours: a healthy log is all plain text. Only lines that need a look are coloured: warnings and alerts in amber, errors and tracebacks in red, in the Log window and in the terminal.
  • LoRA training now runs on H3 with FunPack's own loop (ComfyUI stays the backend): block swap, previews at chosen steps, Pause and Resume, Restore and continue, copies saved every N steps, live loss and time graphs, downloads, encoded data reused between runs. Training window is a step-by-step wizard (Data, Tags, Train, Results). Verified on H3; other models still use ComfyUI's trainer and are untested.
  • Gallery: saved videos and pictures next to Temp files, with preview, Select mode and a confirmed delete.
  • 15 reference slots for H3 (9 pictures, 3 videos, 3 sounds); FunPack Load Media takes a picture, video or sound.
  • Models & Pipeline: a bypass toggle per node. Quick wheel: Disable all enhancements, Fix the seed.
  • FunPack Timing splits the time before step 1 into model preparation, setup and the first forward pass.
  • Loading window names the module being loaded.

Added (experimental)

  • Distilled Flow samplers (experimental, untested on a real model): plain names in every ComfyUI sampler list, no settings. dflow_ord1 is Euler; dflow_ord2 reuses the last prediction for second order (no extra model calls); dflow_ord2_ab2 fades the second order in across the run. Sound riding in the latent stays first order. Back from 4.x; its extras (velocity bias, ALG, momentum, sharpness) are separate modules now.
  • Sharpness (experimental): wins back fine detail in the last part of the run with any sampler that calls the model once per step; no extra model calls. Settings > Engine > Sampling. Not the spatial latent sharpening that was tried and removed in 4.x.

[5.0.0] "Cunning Cranberry" - 2026-10-16

A rewrite from scratch, not an update of 4.x. Same idea (a studio for video inside ComfyUI that learns from your ratings), new architecture: every feature is a module that announces itself, so a feature cannot be forgotten in the UI, a wire cannot be missed, and a failing optional feature module is left out while the run carries on. 4.x projects are not imported; see "Not carried over".

What it is

  • A browser studio at /funpack/: timeline with one clip per scene, Composer (story in one box, cut word, templates, $variables, shortcuts), properties, media bin, preview, takes, rating, Export, Render, project wizard and guided tour.
  • Models & Pipeline: the pipeline as cards. Pick files, swap or add nodes (any installed custom node), wire one node's output into another's input, import a ComfyUI workflow. The server refuses what would not build and says why.
  • Modules (Settings ▸ Modules): each feature switches on or off on its own. A pipeline runs without an optional node whose module did not load, and says so. A module that fails during a run is left out of it, the log says why, and it stays off until its code changes and ComfyUI restarts, or you turn it back on.
  • Learning from ratings: a Taste key remembers ratings; the guidance, steering and prompt modules that use them start acting once they have enough ratings (a few liked clips for some, ten or more rated clips for others; some also need disliked ones) and say so when they need more.

Models

  • MiniMax H3: the model v5 is built and tested around. Presets for reference to video; works text-only (no source picture). A second-pass preset exists in the code but is not offered until it has been verified.
  • Stable Diffusion 1.5: experimental.
  • LTX 2.x: UNTESTED. Never run on a real LTX model, and nobody plans to test it soon. Presets and the module are marked UNTESTED, and LTX runs log the same notice. You are free to try it; please report problems in Issues.

Features

  • Proven: prompt markup, empty latent, second pass (the H3 preset for it is held back), loaders (diffusion model, CLIP, VAE, LoRA, checkpoint, media), cut opening, decode, save video, anchor de-staticking (ALG), randomizer, DynaShift, first-step seed search, modifiers, sampler, detail, shot camera, prompt enhancer, Render, taste modules (slider, guidance, prompt nudge, attention, REINS, early guidance), shot memory, decisiveness, late-branch guidance, momentum, velocity bias.
  • Experimental: continuity, identity transfer, negative erase, camera move, context windows, block influence, block repeat, phrase probe, shadow negative, video detail, temporal style, massive-activation steering, video-to-audio coupling, LoRA training.
  • Prompt enhancer: a language model rewrites each finished prompt. Has its own encoder pick (Composer ▸ Enhance ▸ Encoder), because H3's own encoder cannot write prose. Verified with Gemma 4.
  • Auto Montage: builds a new cut at the end of the timeline from your rendered clips; originals stay untouched, and the pieces are never regenerated or rated.
  • Upscale a finished render with an upscale model (.safetensors) or NVIDIA RTX Super Resolution.
  • LoRA training (add-on, Settings > Modules): a Training window with four steps. Data (optional): drop files, pick from your Bin, or take your rated results (Liked, Disliked, Bad composition, Bad image, All). Tags: a caption editor beside every picture, a tag cloud, bulk edits and automatic tagging with downloadable tagger models. Train: all the settings, a live loss graph, Pause and Resume, and previews: every N steps training waits while your own pipeline makes a picture or clip with the LoRA so far, then carries on. Results: past runs. It trains everything in the set. H3 (picture and sound together) uses the module's own training loop with ComfyUI carrying the batches; other models use ComfyUI's trainer, with the loaders in your pipeline. Experimental, and UNTESTED on real models or GPUs: proven only on tiny stand-in models on CPU.
  • Add-ons (spaCy for automatic camera and focus, nvidia-vfx, onnxruntime for LoRA training) install on the next start after you switch them on.

Not carried over

  • 4.x projects and saved settings are not imported: start new projects in 5. ComfyUI workflow files can still be imported in Models & Pipeline.
  • Features that never proved out stay out: plateau step-cache, block steering, NVFP4 loader.
  • The unwired Engine Appearance module (the theme lives in Settings ▸ Appearance). Settings saved while it existed are ignored, not refused.

Known limits

  • LTX 2.x is untested (see Models).
  • .gguf text encoders need the ComfyUI-GGUF node pack and work only for architectures it understands; otherwise they are refused with a message. Gemma 4 .gguf does not work; a loader for it may come later.
  • H3 start frame: in the H3 preset the scene picture sets the video's shape only; a start frame is not part of it.
  • H3 second pass is held back: not offered until verified.
  • The ready-made pipelines need Save video, Load media, the loaders, the sampler and decode: if the module behind one of those fails to load, Generate names the missing node and refuses. The optional nodes (Enhance prompt, Shot camera, Prompt markup, Negative erase, Cut opening, Identity transfer) are skipped instead, with a note beside Generate, and their controls are hidden. Which nodes are optional is declared by the model module (MiniMax H3, LTX), so it applies while that module loads. The one exception: the Reference 1 picture of Identity transfer stays on screen and does nothing until the module is back.
  • Turning some modules on switches the model compiler off for the run, which costs sampling time.

Docs