# Changelog
User-facing. The files named here are in the repository, not in the installed
pack — the published package excludes them. Engineering detail lives in
`docs/DEVLOG.md`. `CLAUDE.md` is the current map of the pack;
`docs/HANDOVER_*.md` and `BETA_NOTES.md` are historical and should not be read
as the state of this release.
## 2.0.0 — 2026-09-06
A full release, not a beta. The hop cache, the pin, the media slots and the
tone tools that accumulated on side branches since 1.1 are in this tree, plus
four new behaviours.
### New
- **`master_audio_file`** (MEDIA). One continuous take every hop lip-syncs
to. Empty (the default) is off and does not change existing renders. When
set: each hop is locked to a window of that file on the same clock as the
picture; delivered audio is a passthrough of the take, no VAE round trip.
The beat still needs the words in `[English] ...`.
- **`last_frame_guide`** (RUN, join & pin). `off` (default),
`before_restart`, or `still`. It AddGuide-pins `start_image` at a hop's
last pixel frame, so the hop *ends* on the photograph and a following
restart — which opens on that same photograph — reads as a match cut
rather than a jump. **`before_restart` is the setting to use:** it guides
only a hop whose next shot is `anchor: "restart"`. `still` guides every
hop, which also overrides an authored `framing` directive at every hop
ending — a shot set `framing: close` plays close and then snaps to the
still's wider framing in about 0.6 s, and the next hop pushes back in.
Use `still` only when no shot authors a framing. Needs a start image.
Neither becomes the next hop's frame 0.
- **`anchor: "restart"`** on a shot. That hop is a chain start: the start
image is frame 0, nothing is relayed from the previous hop. It is a cut.
Pair it with `join: hard_cut`. Restart hops now write their **full
length** — they used to drop the 0.9 s overlap as if they were a
continuation.
- **`refs` on a shot.** Which register stills ride that hop. Omit the field
for the register default (unscheduled stills on chain starts, off
continuations). `[]` is none. A filled list is those tags only, in that
order. Unknown tags fail on the queue.
- **SWAP**, a fifth tab. A one-hop identity swap from a reference clip: the
clip supplies the motion and the scene, a still from the REFERENCES rail
supplies the person. **Write** drafts it, **Accept** writes exactly one
shot plus the clip's description and never touches `ref_plan` -- your
register is not rewritten. Contributed by @frankyi, then rebuilt from its
own prose rather than merged.
Four named modes, because at cfg 1.0 there is no negative branch and a
mode that merely *omits* the swap line does not keep the clip's person --
the identity photograph is in front of the encoder either way and governs
the subject anyway. Each mode says positively what stays:
`replace_person` (face, build, hairstyle and wardrobe),
`head_swap` (face, hair and skin tone; the body, posture, hands and every
garment stay with the clip), `face_only` (features only), and
`keep_person` (swaps nobody -- the clip is a scene and motion plate, and
the identity picker greys out). The taxonomy follows PromptMasterLD's edit
laws; the prose is written fresh for H3 beats.
Alongside them: **background** from the clip, from a `@tag` picture, or
free; and an optional **wardrobe plate**, a `@tag` whose garment is *worn*
-- draping on the body in frame and creasing where it bends -- rather than
pasted.
**Two things to get right, both of which cost renders to find out.** Do
not run MEDIA's describe on the clip before a swap: that caption reaches
the encoder as what `