Commit Graph
112 Commits
Author SHA1 Message Date
Alisson AnjosandClaude Opus 5.5 6df4276ae9 TARA: accept Add Guide keyframes (history frames) in native temporal mode
Add Guide keyframes pack as 'cond' rows right after the text, before the
references, at the target's own timeline positions and never denoised. The
layout now locates the reference rows after them instead of refusing them, so a
shot of a long take can lock the previous shot's last frames at its start while
TARA follows <Video 1>. The keyframe rows get no temporal bias; reference and
target alignment is unchanged (new test).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 11:22:59 +00:00
Alisson AnjosandClaude Opus 5.5 1360d01fbf Add optional structure guidance to TARA
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>
2026-10-25 13:29:44 +00:00
alisson-anjos f4b6f63be1 Add head swap mode to native H3 prompt builder 2026-10-24 14:56:37 +00:00
alisson-anjos 7d16db2ebd Add seconds or frames selection to native H3 shot loop 2026-10-24 14:39:40 +00:00
alisson-anjos 497ed48e53 Support inline phrase weights and make token inspection stops explicit 2026-10-24 12:42:37 +00:00
alisson-anjos bb2e19a8b2 Add clickable SAM 3.1 cast bindings and experimental H3 token weight editor 2026-10-24 11:21:49 +00:00
alisson-anjos 5997aadcf0 Add experimental per-Picture reference attention binding with target masks 2026-10-24 10:54:43 +00:00
alisson-anjos 4ec0b28d47 Add standalone native H3 shot loop with optional image continuity and workflow examples 2026-10-24 10:48:02 +00:00
alisson-anjos ec468baee4 Expose ordered original reference images for native workflow previews 2026-10-24 10:37:37 +00:00
alisson-anjos 2829f71754 Select verified temporal kernel prebuilts by Windows/Linux and GPU architecture 2026-10-23 22:15:46 +00:00
alisson-anjos de5c721584 Validate requested references early and fix single-image auto prompt defaults 2026-10-23 16:19:25 +00:00
alisson-anjos c99fdb623e Add native H3 automatic prompt stages and source-derived video geometry 2026-10-23 15:08:11 +00:00
alisson-anjos 3c00387c7c Release experimental TARA on main with Add Guide as the default 2026-10-23 13:00:20 +00:00
alisson-anjos 59f4bfd75d feat: automatically prepare verified temporal kernels on first use 2026-10-23 07:36:01 +00:00
alisson-anjos 84caa6575a feat: use optional one-pass Comfy Kitchen temporal kernels 2026-10-23 06:21:44 +00:00
alisson-anjos cc9e3f90be fix: recognize ComfyUI file-loaded sol-attn module names 2026-10-23 05:30:34 +00:00
alisson-anjos 0577009f76 feat: experimental temporal sol-attn compatibility with measured limits 2026-10-23 05:10:20 +00:00
alisson-anjos 19599a1015 feat: detect Model Attention Backend and add experimental Kitchen temporal bias 2026-10-23 04:44:40 +00:00
alisson-anjos 0ce4c673f6 Keep prompt reference roles explicit and regenerate stale captions (1.115.12) 2026-10-23 03:10:17 +00:00
alisson-anjos 3f440788cf Add compile-free FlashAttention temporal backend and guide scaling (1.115.11) 2026-10-23 00:02:49 +00:00
alisson-anjos 761df4b43d Allow dormant continuity defaults on first native temporal shot (1.115.10) 2026-10-22 23:24:26 +00:00
alisson-anjos be21e891dd Add experimental H3 native temporal node and Planner conditioning mode (1.115.9) 2026-10-22 21:30:46 +00:00
alisson-anjos 5e45c815fd Add configurable Planner prompt trigger with motion_transfer default (1.115.8) 2026-10-22 20:22:37 +00:00
alisson-anjos 64be9ced98 Fix stale prompt warning by syncing browser signature revision (1.115.7) 2026-10-22 14:52:26 +00:00
alisson-anjos deb243cf2a Separate Planner reference descriptions from source video analysis 2026-10-22 14:23:44 +00:00
alisson-anjos 4dbb29f68b Prevent unrequested style conversion in Planner prompts 2026-10-21 21:00:15 +00:00
alisson-anjos a43183074f Fix Planner visual edit requests and color-reference prompt bindings 2026-10-21 20:23:05 +00:00
alisson-anjos 3ce2eb1ea0 Compare every shot batch and reject mismatched shot timing 2026-10-19 14:05:08 +00:00
alisson-anjos 27872290fe Preserve stored shots when clearing redo selections and allow undo 2026-10-19 07:56:36 +00:00
alisson-anjosandClaude Opus 5.5 0cd1c04d17 Video Compare: several reference pictures in a strip below the videos (1.115.0)
- The reference input takes the refs list of BFS Shot Planner / Unpack (pictures of any size)
  or a batch, up to 12 (was: one batch, 4 shown).
- The player shows them in a strip below the videos, numbered Picture 1..n, instead of over
  the video's corner; ⬇ save / ● rec put the same strip below the videos in the file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 16:01:15 +00:00
alisson-anjosandClaude Opus 5.5 857ba260f3 Shot loop: every picture always reaches H3 (use_ref_2 removed); Auto prompt caption style; loop-proof writer (1.114.0)
- BFS Shot H3 Conditioning and its Simple version always pass every picture of the shot: the
  use_ref_2 switch is gone (the pictures are chosen in the planner). The published v1.1
  character-swap workflow had it off, so only <Picture 1> reached the model. Saved
  workflows are upgraded on load: their widget values are put back by name (checked with
  the published v1.1 and tutorial workflows).
- 🤖 Auto prompt: Style = H3 official (six sections) or OpenJutsu captions, the short
  'Replace the ... in the video with ... from <Picture n>. Keep ...' style of the training
  captions (written from the request, the frames and the pictures).
- The writer samples (repetition and presence penalties) instead of greedy decoding, which
  looped on long answers; repeated sentences and a cut sentence are removed, missing sound
  sections completed; an answer with problems (missing <Subject n> in detailed_description,
  a loop, H3 sections in a caption) is written once more, told what was wrong; labels still
  missing are tied after [Shot 1]. A subject acts with its own body (hands, not paws).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 15:22:30 +00:00
alisson-anjosandClaude Opus 5.5 a93cea17a9 Shot Planner: Auto prompt applies the panel request to the prompt input's template; real cut times (1.113.0)
- With Auto prompt on, the planner's prompt input is the template (e.g. a LoRA's body_swap
  prompt) and the panel's text is the request applied to it; the run tells the panel the
  template so 🤖 Write uses the same one (shown in the card). Without a VLM the template is the
  prompt. The template is part of a written prompt's 'made from'.
- The writer gets the shot's real cut times from the cut detector and at least one key frame
  per piece between cuts; a shot without cuts gets no timestamps (the ones the VLM writes from
  the frame times are removed), and [Shot 1] never has one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 02:08:18 +00:00
alisson-anjosandClaude Opus 5.5 7b57eacb7b Shot Planner: Auto prompt keeps a template request (trigger word first), timestamps only at cuts, labels with brackets (1.113.0)
- A request that is a whole prompt (H3 sections, e.g. a LoRA's body_swap template) is kept:
  same sentences and order, its trigger word first; the writer adds the pictures' features and
  the shot's camera, place, light and actions after [Shot 1].
- Writer rules: a timestamp only starts a new [Shot N] at a real cut, never inside a shot; the
  replacement is stated (the person of the guide video is replaced by <Subject N>); the summary
  names 'the guide video'; {details@Picture n} left in the request is filled by the writer.
- Picture / Subject / Video / Audio N written without brackets get them back.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 01:59:22 +00:00
alisson-anjosandClaude Opus 5.5 0d831b0bb5 Shot Planner: 🤖 Auto prompt in H3's official format; duet out of the planner and conditioning (1.113.0)
- 🤖 Auto prompt (Prompts & refs): the prompt boxes become requests and the VLM writes each
  shot's MiniMax H3 prompt in the full-reference format of MiniMax-H3's
  VIDEO_PROMPT_WRITING_GUIDE_ref_en (six sections, task types, retention markers, [Shot N],
  official camera terms) from key frames of the shot (auto: ~1.5/s, 3-8), the shot's
  pictures and their descriptions, the request, Colored Marks, selection and mode, citing
  the source as the guide video or <Video 1>. Write all / missing in the panel, per shot
  Write again and edit; shots without one are written at run time (before SAM 3) and the
  panel stores them; out-of-date prompts are flagged. A written prompt is part of the
  stored shot's signature.
- Duet removed from the planner (its split-screen prompt writer, /bfs/shotloop/write) and
  from BFS Shot H3 Conditioning (Advanced): duet, panel_*, rope_gap, task, instruction.
  The model input stays as a pass-through so workflows that routed the model keep working.
  BFS Shot H3 Duet and the Side Panel nodes keep the duet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 01:44:46 +00:00
alisson-anjosandClaude Opus 5.5 d94e1c2b19 Shot Planner: Colored Mark per picture, refs outputs, object preset, fixed points window (1.113.0)
- Colored Mark: every picture has a mark color (12-color palette, editable under each
  global picture); a shot's selection and each extra person ("+ Mark another person",
  text or points) pick the picture they become ("Picture 3 · red", with its
  thumbnail) and are drawn in its color. The prompt gets a model-agnostic mapping
  ("the person marked in red becomes the character from <Picture 3>"). The
  conditioning node checks each marked picture is passed and colors are not shared.
  Plans with the old second region open with it as <Picture 2>.
- Points window: fixed size; the frame fits a fixed stage (points are stored relative to
  the frame); one point set per marked person.
- BFS Shot Planner outputs refs (every picture the shots use, as a list) and ref_count
  where ref_image / ref_image_2 were.
- Saved workflows are upgraded on load: the planner's ref_image / ref_image_2 inputs are
  removed, old ref outputs become refs / ref_count, and what fed Repack's ref_image
  feeds refs.
- New describe preset "object" (a noun phrase: what it is, shape, materials, colors,
  text), written for the prompt sentence like "short".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 01:27:19 +00:00
alisson-anjosandClaude Opus 5.5 6f335175d9 Shot Planner: one description per picture, Unpack refs list, PictureN chips (1.113.0)
- Describe references is per picture now: one row per picture the plan uses, each with
  its own preset (default = the card's; custom with its own instruction) and 🔄 to
  describe only that one. {details} = picture 1, {details2} = picture 2,
  {details@Picture n} = picture n. Descriptions saved per reference set by older plans
  are read as those pictures'. The separate "Describe each picture" section is gone.
- BFS Shot Unpack: refs (every picture of the shot, as a list: the next node runs once
  per picture) and ref_count replace ref_image / ref_image_2 in the same output slots.
  BFS Shot Repack's refs input takes the list back and splits it per shot; ref_image
  links from older workflows still work.
- Prompt chips read PictureN (they insert <Picture N>).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 01:16:27 +00:00
alisson-anjosandClaude Opus 5.5 7da6f7427f Shot Planner: up to 12 reference pictures, @Picture chips, {details@Picture n} (1.113.0)
- Plans keep a list of pictures (global_refs, per-shot refs) instead of ref / ref2; older
  plans are converted on load and ref / ref2 stay in the JSON as pictures 1 and 2. A
  shot's empty slot uses the global picture at the same position.
- Panel: the global list starts with one slot and + adds more (several files at once);
  drop image files on a slot to replace it or on the box to add them; recent thumbnails
  can be dragged onto any slot. Chips under every prompt insert <Picture N> at the cursor
  (@PictureN) or {details@Picture N} (📝).
- {details@Picture n}: the description of the shot's n-th picture alone. 📝 Describe each
  picture writes one per image (editable, saved as picture_details); without one, the
  planner's VLM, then the conditioning node's VLM, describes it at run time.
- The planner's ref_image / ref_image_2 inputs are gone (a workflow saved with them
  connected still runs and the log says they are ignored). Conditioning and Duet pass
  every picture of the shot (use_ref_2 off: only the first) and log when there are
  more than 9.
- Stored shots keep their signature when a shot has at most 2 pictures and no
  per-picture descriptions are set.
- A two-picture shot no longer gets the automatic <Subject 2> {details2} line when the
  prompt already names <Picture 2> or uses {details@Picture n}.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 00:18:36 +00:00
alisson-anjosandClaude Opus 5.5 084e1d22b5 Shot loop: a new LoRA, seed or sampler runs the shots again; no preview on BFS Shot Join (1.112.0)
- The stored-shot signature now includes what renders the shots: the planner reads the
  queued workflow (hidden PROMPT input) and fingerprints every node upstream of BFS Shot
  Join's images (loaders, LoRAs and strengths, sampler, seed, conditioning settings).
  Changing any of them runs every shot again on the next Run, instead of only
  re-assembling the stored ones. The join's own settings (crossfade, comparison) and
  display nodes don't count. A seed on "randomize" changes every Run, so fix it to keep
  the stored shots.
- BFS Shot Join no longer shows a video preview on the node; the video still goes out
  through images and the file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 14:48:59 +00:00
alisson-anjosandClaude Opus 5.5 55b120d14b Video Compare: choose the format of save / rec: MP4, small MP4, GIF or the browser file (1.111.0)
The browser records WebM (or a fragmented MP4 without a duration) that many apps and chat
previews won't play. The player now uploads the recording to ComfyUI in 8 MB pieces and
converts it there (ffmpeg, PyAV without it):
- MP4: H.264 + AAC, yuv420p, faststart, CRF 18.
- MP4 small: the same with the bitrate set to stay under 10 MB (smaller frame when it gets low).
- GIF: one palette per video, 15 fps, made smaller until it fits 10 MB, no sound.
- browser file: the recording as it is, no conversion.
The choice is remembered per browser.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 12:34:44 +00:00
alisson-anjosandClaude Opus 5.5 526745455f Source blur: choose what stays sharp, masked area, Sapiens2 segmenter, invert colours (1.110.0)
- Modes read "<region> (<what stays sharp>)": face / head + hands / person / masked area,
  with keep mouth (lips, teeth, tongue) / keep lips + tongue (teeth blurred too) /
  mouth too (nothing sharp). The 1.91 values keep working in saved workflows.
- masked area: the shot's own mask (the person being replaced, with its expand), no extra
  segmentation; without a mask it blurs the whole person.
- source_blur_segmenter: SAM 3.1 (as before) or Sapiens2 (facebook/sapiens2-seg-0.4b,
  body-part classes with lips, teeth and tongue apart from the face, one pass; downloads
  to models/sapiens2 the first time, runs in half precision, back to RAM after each shot).
  Frames keep their aspect ratio at the trained area instead of being stretched.
- source_blur_effect: blur, or invert colours (shapes and expression stay, skin tone and
  colours go).
- On BFS Shot H3 Conditioning (+ Simple), BFS Shot H3 Duet, BFS H3 Duet and BFS H3 Duet
  Conditioning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 12:02:24 +00:00
alisson-anjosandClaude Opus 5.5 78a806103e Video Compare: save / record, reference picture, side-by-side size fix; wheel zoom over panels (1.109.0)
- BFS Video Compare: "save" plays the video once from the start and downloads it as
  shown (layout, divider, labels); "rec" records what you do in the player until stop.
  Drawn into a canvas and encoded in the browser (MP4 where it can, else WebM).
- Optional "reference" input: up to 4 pictures shown in a corner of the player and in
  what save / rec download ("ref" toggles them).
- Side by side no longer grows the player out of the node (the videos stay absolutely
  positioned, one per half); save / rec / labels moved to their own row so the top bar
  fits in one line.
- The top video follows the bottom one by nudging its speed (it used to seek every
  frame: it stuttered, and drew blank into the canvas while seeking).
- BFS Shot Join: turning the comparison on after a run reads the original frames from
  the source video, so the guide column is there (before only the target came back).
- Mouse wheel over the Shot Planner panel and the Video Compare player zooms the canvas,
  except on something that can still scroll that way; Ctrl / Cmd + wheel always zooms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:50:49 +00:00
alisson-anjosandClaude Opus 5.5 ce3ca59b17 Shot loop: run again without changes only assembles; unload models before the join (1.108.0)
- Every shot stored and up to date: the planner hands out an assemble-only placeholder
  (no VLM, SAM 3 or history) and BFS Shot Join assembles the stored shots. Its images
  input is lazy, so conditioning, sampler and decode are not executed again (before,
  the last shot was generated again just so the join had something to join).
- Run tab: "Unload models before the join" (on by default): once every shot is
  rendered, unload the models so the join and the nodes after it get the memory.
  Not part of the shot signature, so toggling it keeps the stored shots.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:15:41 +00:00
alisson-anjosandClaude Opus 5.5 c11f3f9f12 Shot Planner: second pass size in the Run tab (1.107.0)
The Run tab gets a 'Second pass (upscale)' section: on/off, and the upscaled
size by multiplier, target dimensions or megapixels with an alignment, the
same arithmetic as Minimax H3 Latent Upscaler (3D). The planner outputs
second_pass (BOOLEAN), upscale_width and upscale_height (INT); the graph does
the latent upscale and the second sampling with its own nodes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:04:57 +00:00
alisson-anjosandClaude Opus 5.5 bacdbe9155 Revert the 15 s default range in the node (1.106.3)
The 15 s limit belongs to the published workflow, not to the node: a plan with
no range works on the whole video again, as before 1.106.2. Choosing a video in
the panel still starts with its first 15 s, as it always did.

This reverts commit d62a721.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:52:59 +00:00
alisson-anjosandClaude Opus 5.5 d62a72147c Shot Planner: a plan with no range works on the first 15 s (1.106.2)
A plan that never set its range (fresh node, older workflow, plan made outside
the panel) used the whole video, so a long video run through a workflow
nobody adjusted generated every shot of it. Unset now means the first 15 s,
read the same way by the panel and the server; the whole video is the
explicit 'whole video' choice (end frame 0), as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:52:14 +00:00
alisson-anjosandClaude Opus 5.5 35ef99090b Write MP4s without an ffmpeg program; manual splits beat Max shots (1.106.1)
Issue #12: on installs with no ffmpeg on PATH (Windows portable), Shot Join's
mp4 mode - also picked automatically for long videos when the RAM is short -
failed with WinError 2. Video files now go through bfs_video_io: ffmpeg from
PATH, else imageio-ffmpeg's, else PyAV (what ComfyUI's Save Video uses), for
writing and for reading the MP4 back. BFS Video Compare uses the same writer.

Issue #13: a workflow saved with Max shots = 1 silently dropped every shot
after the first, so double-click splits did nothing. A split made by hand now
raises Max shots to keep it, and the Video tab says when detected shots are
left out by the limit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:40:08 +00:00
alisson-anjosandClaude Opus 5.5 ea9841662a Add BFS Video Compare and a guide output on Shot Join (1.106.0)
BFS Video Compare plays two videos in one player (wipe, overlay or side by
side, any of guide / target / difference on top) and measures a per-pixel
difference map on the real frames, with the difference per frame as a
clickable strip. Shot Join gains a 'guide' output: the original frames under
each output frame (the comparison's original column), so the two connect
straight into the compare node.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:18:48 +00:00
alisson-anjosandClaude Opus 5.5 06c75bb85e Stop {details} from repeating the prompt words
The VLM is given the prompt sentence around {details} and sometimes answers
with it ('is the ... shown in', '... is the shown in <Picture 1>'), so the
prompt read 'is the is the ... shown in shown in'. The short preset now drops
those words, and every description (also ones already saved in a plan) is
cleaned when it goes into the prompt. Bump BFSNodes version to 1.105.5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 19:56:08 +00:00
alisson-anjosandClaude Opus 5.5 982b0e7dcb Embed the workflow in the MP4s the join writes
With save_to = mp4 file (chosen or by the RAM guard) the join writes the
video and comparison itself, without the prompt / workflow tags Save Video
adds, so the files could not be dropped back into ComfyUI. They now carry
the same tags (JSON, use_metadata_tags), passed through an ffmetadata file
so large workflows fit. Bump BFSNodes version to 1.105.4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 19:22:48 +00:00
alisson-anjosandClaude Opus 5.5 d01ca239ce Never leave the join's outputs empty in mp4-file mode
With save_to = mp4 file, chosen or forced by the RAM guard, the images and
comparison outputs were blocked, so the result nodes stayed empty and looked
broken. They now carry the video read back from the written files, scaled to
fit the free RAM (the files keep the full size), and the join shows the
files on its node. Bump BFSNodes version to 1.105.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:54:06 +00:00