Release 3.4.1: CHANGELOG, README, version bump

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
digital-garbage
2026-07-31 18:17:06 +03:00
co-authored by Claude Opus 5
parent 2011b18b95
commit 44a9373524
3 changed files with 72 additions and 1 deletions
+63
View File
@@ -2,7 +2,38 @@
## [Unreleased]
## [3.4.1] - 2026-07-31
### Added
- **A second sampling pass on the Chain Sampler.** Give it a schedule and every scene is
sampled twice: pass 1 runs the main sigmas in full, then pass 2 runs its own schedule in
full, starting from pass 1's finished clip. Nothing is cut short and nothing is derived —
total steps are simply the two added up — and pass 2 re-enters through ComfyUI's ordinary
img2img noise scaling, so **its first sigma is a literal strength dial** (0.8 reworks the
shot, 0.4 polishes, 0.2 is detail work). The i2v anchor stays pinned across the split. In
the Cutting Room it is one field, **Second pass schedule**, under FunPack Studio ▸ Sampler
algorithm: typing a schedule enables the pass, clearing it turns the pass off.
- **An optional operation between the two passes** (`none` by default — nothing runs unless
you pick one). `sharpen` runs one forward of Lightricks' trained 2× latent upsampler and
resamples straight back to the original size: no video-model calls, a fraction of a step,
and pass 2 then re-denoises the result, which is what makes it stick. `upscale_2x` keeps
the 2×, so pass 2 runs at four times the pixels and the scene decodes at double resolution
(3–5× the cost of the second half, and the i2v pin is dropped — the scene report says so).
Both use the same upsampler file segmented detailing does, and the model picker now appears
alongside the operation instead of only under segmented detailing.
- **Cut the opening off i2v scenes** (`cut_opening_frames`, Chain Sampler ▸ Timing & Seed).
The anchor is a pinned frame at position 0: it carries identity, style and composition
better than anything that weakens it on the way in — and it is also literally the first
frame you see, so every i2v scene opens on the exact reference still. The scene is
generated exactly as normal, anchor at full strength, **no extra sampling**, and the
opening is then cut off the finished clip: an i2v generation that reads as t2v. Nothing is
regrown, so the scene comes out that much shorter and the audio is cropped to match.
- **Context windows** for scenes longer than the model's comfortable window (ComfyUI core's
own mechanism, audio-aware on LTX — nothing ported). Engages only past the window length,
so shorter scenes pay nothing.
- **The progress readout says what is running**, not just a step count: `sampling 17/26 ·
scene 2/3 · pass 2 of 2`. The second pass also announces itself on the ComfyUI console the
moment it starts, rather than only in the run report afterwards.
- **Prompt `$name` variables in Easy Gen** — the shorthand-for-a-full-phrase layer the
Cutting Room's Composer already had (`$vid = "High quality, high fidelity realistic video,
motion blur, cinematic fog"`). A **$ Variables** button in the prompt bar opens its own
@@ -19,9 +50,41 @@
indistinguishable from a real crash at the API level), and any partial media it did write
is still shown.
- **Easy Gen re-attaches to a running generation after a page reload** — the Cutting Room
already did.
### Changed
- **Variable values are now auto-growing text boxes** (both UIs) instead of one-line inputs —
a long phrase was effectively uneditable in a single-line field.
- **Plateau step-cache and context windows are mutually exclusive** — the cache cannot tell
one window from another within a step, so it is skipped with a note in the scene report.
### Fixed
- **Context windows never worked.** The schedule names were ComfyUI core's spelled backwards
(`uniform_standard` where core says `standard_uniform`), so every choice except `batched`
raised a `ValueError` out of the sampler and **failed the whole render**. Core's names are
the choices now; the old spellings are still accepted and mapped onto them, so a saved
project keeps generating. An unknown name is refused with a reason naming what your
ComfyUI accepts, instead of escaping as an exception.
- The same call also passed a keyword core's window handler does not always take, which was
reported as *"ComfyUI core too old"* — silently switching off a feature that core fully
supports. Unsupported keywords are dropped now, with a note naming the one setting that
degrades.
- **A rejected prompt now says why.** ComfyUI's top-level error for a validation failure is a
fixed blob ("Prompt outputs failed validation", no details); the part naming the node, the
widget and the bad value is in `node_errors`, which the editor never read — so every
rejected prompt reported the same nothing. Both are shown.
- **Bypass no longer refuses a node over an output nothing uses.** A node that emits an extra
output the graph never wires (an IC-LoRA loader's `latent_downscale_factor`, say) could not
be bypassed at all, because a passthrough was demanded for every output rather than for the
ones actually consumed.
- **The progress bar counted only the first pass**, so a second pass overflowed it and then
jumped backwards at the next scene.
- **Identity transfer** follows ComfyUI's new RoPE matrix layout.
- **Models & Pipeline** treats ComfyUI V3 MultiType widgets as widgets rather than required
sockets, so a node using them no longer reads as unsatisfied.
- The latent upsampler loads on ComfyUI v0.29.0, which moved it onto DynamicVram and made
`operations` a required argument.
## [3.4.0] - 2026-07-24
+8
View File
@@ -74,6 +74,14 @@ and several bugfixes (a bypass toggle that could silently do nothing, a state-sy
could revert Models & Pipeline edits, and more) — see the [CHANGELOG](CHANGELOG.md) for the
full list.
**3.4.1** adds a **second sampling pass** on the Chain Sampler — give it a schedule and every
scene is sampled twice, with an optional latent sharpen/2× upscale between the passes — plus
**cut the opening** for i2v scenes (keep the anchor's identity transfer at full strength, then
cut the reference still out of the finished clip), **context windows** for scenes longer than
the model's comfortable window, and a progress readout that says which scene and which pass is
running. Context windows, which never actually worked before, are fixed — see the
[CHANGELOG](CHANGELOG.md) for the full list.
See [`docs/MovieEditor.md`](docs/MovieEditor.md) for complete Cutting Room documentation.
## Installation
+1 -1
View File
@@ -2,7 +2,7 @@
[project]
name = "ComfyUI-FunPack" # Unique identifier for your node. Immutable after creation.
description = "An AI movie studio inside ComfyUI: the Cutting Room browser-based video editor with timeline, per-scene prompts and one-click montage generation, plus a self-improving engine that learns from your ratings. Includes the full node stack (Studio, Refiner V2, LTXAV Scene Chain Sampler) for classic graph workflows."
version = "3.4.0" # Custom Node version. Must be semantically versioned.
version = "3.4.1" # Custom Node version. Must be semantically versioned.
license = { text = "GNU GPL v3" }
dependencies = [] # Filled in from requirements.txt