- With an object selected, a brush stroke grows the selected mask it starts on (or the nearest selected one) and
shift trims it, instead of adding a new object on top. The chip shows ✎; ↺ drops the edits (new /bfs/segpick/edit
route). The brush stays on after applying.
- clean_masks (default 0 = off): on every frame, and on the picked frames before tracking, pieces smaller than that %
of their subject's area join what surrounds them: stray specks where subjects touch switch color, holes are filled,
stray background bits go away. Each subject's largest piece always stays.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- A brush region no longer disappears after switching color and back: added objects are kept in the frame data, and
strokes not applied yet are applied to their color before the color or frame changes or a run starts.
- Objects added on a frame (brush, points, text) are shared by every color; each color selects its own. Removing one
removes it for all colors.
- Shift while painting does the opposite of the tool: the brush erases from the mark, the eraser paints back.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- BFSVideoSegmentPicker: track Molmo2 strictly forward from first_pick,
highlight the clicked person on frame 0, visually verify candidate
re-anchors (Picture 1 crop vs Picture 2 crop + color histogram + non-overlap
with already-claimed subjects), bound backward SAM 3 tracking to the
previous strip frame with spatial/color continuity checks, and force GC +
CUDA cache flush on _free.
- BFSH3KeyframeConditioning: unload TE and Video VAE from GPU after
ReferenceToVideo and AddGuide so MiniMaxH3 has full VRAM during sampling.
- Add CHANGELOG.md and bump pyproject.toml to 1.119.1.
- BFS Video Segment Picker (SAM 3): pick each subject on frames of a video, propagate
shot by shot (camera cuts detected), optional Molmo2 relocation after cuts, per-shot
and per-subject caches, status/log, whole-video scrubber with lost stretches, and a
hybrid guide output (normal map, DWPose skeleton with face, texture-free styles).
MoGe / DWPose / Molmo2 inputs are lazy (only on Propagate); models are unloaded
before them and after the node.
- BFS H3 Character Swap Conditioning: keyframe pins, normal map guide or DWPose guide,
Pictures 1-4 in color order, pictures list output.
- BFS Keyframe Planner, Keyframe Marks, Track From Frame, Workflow Loop, XY Sweep and
Frame Loop helpers.
- Segment Picker: export Panel/styles for the video picker.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe refs / Analyse / Auto prompt / target / mask preview ran the VLM and SAM in a server thread
outside torch.inference_mode(). After a workflow run those models hold inference tensors, so the
buttons failed with "Inference tensors do not track version counter". Fixes#14.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The mark can now be edited by hand. 🖌 Brush paints extra area into it (e.g. hair
SAM left out), ➖ Remove cuts out what SAM segments at the points placed and
🧽 Eraser paints what to cut out. Brush and eraser strokes are stored with the
image they were painted on and dropped when the image changes; text and point
entries are segmented again as before.
The canvas is hidden from the side panel (hideInPanel): its legacy renderer wrote
its own width into the widget and shrank the canvas in the node on click.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🖼 PNG downloads the frame on screen as shown (layout, divider, labels, reference
strip). With one frame (two images) the node also writes lossless PNGs of guide,
target and difference at the compared size; ⬇ save becomes ⬇ save PNG and draws from
them, and rec / the video format are hidden.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The node segments an image into objects with SAM 3.1 (MODEL and CLIP from a Load
Checkpoint node, one text prompt per concept) and shows them on a Vue canvas in the
node: hover highlights an object, click selects it. Objects the automatic pass misses
are added by a SAM 3 text prompt or by keep / exclude points through /bfs/segpick/add.
Outputs the selection's mask, one mask per object, the image with the selection
tinted (magenta at 0.3 by default), a numbered overlay and the objects as JSON. The
selection lives in a hidden widget, so it is saved and shared with the workflow.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
In 'mp4 file' mode the join already writes the final MP4 with audio. VHS Video
Combine / Create Video / Save Video fed by its images or comparison output
only encode the finished video again from memory (a 1920 run crashed on the
RAM). The join now logs which active ones do it, and the save_to tooltip and
node description say to bypass them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SolarRenderer-style structure CFG (arXiv 2610.28630, Sec. 3.3) at inference:
output + (w-1) * (output - output without <Video N>), the second pass run
without the motion video rows and without the temporal patch. Optional
structure_sigma_min limits it to high-noise steps. Default 1 = off.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>