diff --git a/README.md b/README.md index 93aa6f9..9a268ad 100644 --- a/README.md +++ b/README.md @@ -96,18 +96,7 @@ Generate new frames **after** the source clip. - **`split_index`** — optional trim: `0` keeps the full clip; a negative value (e.g. `-16`) drops that many frames from the end before extending. - - mask - - BLACK × source - - WHITE × generated - control_frames - - source clip - - GREY × generated - +End Extend layout --- @@ -117,18 +106,7 @@ Generate new frames **before** a reference portion of the source clip. - **`split_index`** — how many frames from the start to keep as the reference tail (e.g. `24`). - - mask - - WHITE × generated - - BLACK × reference - control_frames - - GREY × generated - - reference frames - +Pre Extend layout --- @@ -138,22 +116,7 @@ Generate new frames **between** two halves of the source clip, split at `split_i - **`split_index`** — frame index where the source is split (`0` = auto-middle). Raises an error if out of range. - - mask - - BLACK × part_a - - WHITE × generated - - BLACK × part_b - control_frames - - part_a - - GREY × generated - - part_b - +Middle Extend layout --- @@ -166,22 +129,7 @@ Generate a transition **between the end and start** of a clip (useful for loopin The end segment is placed first, then the generated gap, then the start segment — so the model learns to connect the clip's end back to its beginning. - - mask - - BLACK × end_seg - - WHITE × generated - - BLACK × start_seg - control_frames - - end_seg - - GREY × generated - - start_seg - +Edge Extend layout --- @@ -192,36 +140,7 @@ Heal/blend **two halves** of a clip (or two separate clips) together. By default - **`edge_frames`** — context frames taken from each side of the join point. - **`split_index`** — unused. - - - single clip source - - part_1 - - part_2 - - part_3 - - part_4 - - ← edge → ← edge → - - mask - - BLACK × part_2 - - WHITE × generated - - BLACK × part_3 - - control_frames - - part_2 - - GREY × generated - - part_3 - +Join Extend layout --- @@ -232,22 +151,7 @@ Generate new frames **both before and after** the source clip. - **`split_index`** — number of generated frames to place before the clip. `0` = even split (half before, half after). - **`target_frames`** — total output frame count. - - mask - - WHITE × pre - - BLACK × source - - WHITE × post - control_frames - - GREY × pre - - source clip - - GREY × post - +Bidirectional Extend layout --- @@ -257,40 +161,7 @@ Insert generated frames **between each consecutive pair** of source frames. - **`split_index`** — number of new frames to insert per gap (min 1). `target_frames` is unused. - - mask - - B - - W × step - - B - - W × step - - B - - W × step - - B - - control_frames - - f0 - - GREY - - f1 - - GREY - - f2 - - GREY - - f3 - - +Frame Interpolation layout --- @@ -302,22 +173,7 @@ Regenerate a range of frames **in-place** within the source clip. - **`edge_frames`** — number of frames to replace (clamped to remaining frames after start). - `target_frames` is unused. Total output = `source_frames` (in-place replacement). - - mask - - BLACK × before - - WHITE × replace - - BLACK × after - control_frames - - before frames - - GREY × replace - - after frames - +Replace/Inpaint layout --- @@ -335,26 +191,7 @@ Compositing formula per pixel: control_frames = source × (1 − mask) + grey × mask ``` - - mask (per-pixel) - - - - - - - - - - - per-pixel mask broadcast to (B, H, W, 3) - control_frames (per-pixel composite) - - - source pixels (mask=0) - grey pixels (mask=1) - ↕ blended per-pixel - +Video Inpaint layout --- @@ -367,39 +204,7 @@ Place keyframe images at specific positions within a `target_frames`-length outp - **`keyframe_positions`** *(optional)* — comma-separated frame indices (e.g. `"0,20,50,80"`). Must have one value per source frame, sorted ascending, no duplicates, all within [0, target_frames-1]. Leave empty for **auto-spread** (first keyframe at frame 0, last at `target_frames-1`, others evenly distributed). - **`split_index`**, **`edge_frames`** — unused. - - Example: 4 keyframes, target_frames=81, positions auto-spread to 0, 27, 53, 80 - mask - - B - - W × 26 - - B - - W × 25 - - B - - W × 26 - - B - control_frames - - k0 - - GREY - - k1 - - GREY - - k2 - - GREY - - k3 - +Keyframe layout --- @@ -451,48 +256,7 @@ Merge: result = original[0:121] + vace[0:81] + original[153:274] ### Wiring Diagram - - - - Load Video - - VACE Source Prep - - Mask Generator - - Sampler / VACE Encode - - VACE Merge Back - - - source_clip - - - trimmed_clip - - - mode - - - mask - control_frames - target_frames - - - vace_pipe - - - source_clip - - - vace_output - - - - - - - +Wiring diagram --- diff --git a/docs/diagrams/bidirectional.svg b/docs/diagrams/bidirectional.svg new file mode 100644 index 0000000..f4ed3fe --- /dev/null +++ b/docs/diagrams/bidirectional.svg @@ -0,0 +1,16 @@ + + mask + + WHITE × pre + + BLACK × source + + WHITE × post + control_frames + + GREY × pre + + source clip + + GREY × post + diff --git a/docs/diagrams/edge-extend.svg b/docs/diagrams/edge-extend.svg new file mode 100644 index 0000000..b08fcc3 --- /dev/null +++ b/docs/diagrams/edge-extend.svg @@ -0,0 +1,16 @@ + + mask + + BLACK × end_seg + + WHITE × generated + + BLACK × start_seg + control_frames + + end_seg + + GREY × generated + + start_seg + diff --git a/docs/diagrams/end-extend.svg b/docs/diagrams/end-extend.svg new file mode 100644 index 0000000..7f86b56 --- /dev/null +++ b/docs/diagrams/end-extend.svg @@ -0,0 +1,12 @@ + + mask + + BLACK × source + + WHITE × generated + control_frames + + source clip + + GREY × generated + diff --git a/docs/diagrams/frame-interpolation.svg b/docs/diagrams/frame-interpolation.svg new file mode 100644 index 0000000..b424a6c --- /dev/null +++ b/docs/diagrams/frame-interpolation.svg @@ -0,0 +1,34 @@ + + mask + + B + + W × step + + B + + W × step + + B + + W × step + + B + + control_frames + + f0 + + GREY + + f1 + + GREY + + f2 + + GREY + + f3 + + diff --git a/docs/diagrams/join-extend.svg b/docs/diagrams/join-extend.svg new file mode 100644 index 0000000..6e0d77d --- /dev/null +++ b/docs/diagrams/join-extend.svg @@ -0,0 +1,30 @@ + + + single clip source + + part_1 + + part_2 + + part_3 + + part_4 + + ← edge → ← edge → + + mask + + BLACK × part_2 + + WHITE × generated + + BLACK × part_3 + + control_frames + + part_2 + + GREY × generated + + part_3 + diff --git a/docs/diagrams/keyframe.svg b/docs/diagrams/keyframe.svg new file mode 100644 index 0000000..37a0a08 --- /dev/null +++ b/docs/diagrams/keyframe.svg @@ -0,0 +1,33 @@ + + Example: 4 keyframes, target_frames=81, positions auto-spread to 0, 27, 53, 80 + mask + + B + + W × 26 + + B + + W × 25 + + B + + W × 26 + + B + control_frames + + k0 + + GREY + + k1 + + GREY + + k2 + + GREY + + k3 + diff --git a/docs/diagrams/middle-extend.svg b/docs/diagrams/middle-extend.svg new file mode 100644 index 0000000..efed653 --- /dev/null +++ b/docs/diagrams/middle-extend.svg @@ -0,0 +1,16 @@ + + mask + + BLACK × part_a + + WHITE × generated + + BLACK × part_b + control_frames + + part_a + + GREY × generated + + part_b + diff --git a/docs/diagrams/pre-extend.svg b/docs/diagrams/pre-extend.svg new file mode 100644 index 0000000..c3a02f5 --- /dev/null +++ b/docs/diagrams/pre-extend.svg @@ -0,0 +1,12 @@ + + mask + + WHITE × generated + + BLACK × reference + control_frames + + GREY × generated + + reference frames + diff --git a/docs/diagrams/replace-inpaint.svg b/docs/diagrams/replace-inpaint.svg new file mode 100644 index 0000000..6e87f30 --- /dev/null +++ b/docs/diagrams/replace-inpaint.svg @@ -0,0 +1,16 @@ + + mask + + BLACK × before + + WHITE × replace + + BLACK × after + control_frames + + before frames + + GREY × replace + + after frames + diff --git a/docs/diagrams/video-inpaint.svg b/docs/diagrams/video-inpaint.svg new file mode 100644 index 0000000..b234b68 --- /dev/null +++ b/docs/diagrams/video-inpaint.svg @@ -0,0 +1,20 @@ + + mask (per-pixel) + + + + + + + + + + + per-pixel mask broadcast to (B, H, W, 3) + control_frames (per-pixel composite) + + + source pixels (mask=0) + grey pixels (mask=1) + ↕ blended per-pixel + diff --git a/docs/diagrams/wiring.svg b/docs/diagrams/wiring.svg new file mode 100644 index 0000000..7a34394 --- /dev/null +++ b/docs/diagrams/wiring.svg @@ -0,0 +1,42 @@ + + + + + + + + + + Load Video + + VACE Source Prep + + Mask Generator + + Sampler / VACE Encode + + VACE Merge Back + + + source_clip + + + trimmed_clip + + + mode + + + mask + control_frames + target_frames + + + vace_pipe + + + source_clip + + + vace_output +