diff --git a/H3_LONG_VIDEOS_GUIDE.md b/H3_LONG_VIDEOS_GUIDE.md index 63a6282..f653dc7 100644 --- a/H3_LONG_VIDEOS_GUIDE.md +++ b/H3_LONG_VIDEOS_GUIDE.md @@ -150,6 +150,17 @@ This controls how the prompt box is split into beats. - `auto`: blank lines first, then multi-line paragraphs can still split line by line - `each line`: every content line becomes a beat +What this really means: + +- A beat is one shot. +- If the node accidentally reads two actions as one beat, it tries to do both in one shot. +- If it accidentally reads one action as two beats, it creates an extra cut. + +So this setting is really about: + +- how many shots the node will make +- where the cuts happen + ### `character_memory` Persistent wardrobe and style memory for tracked characters. @@ -159,6 +170,13 @@ Good for: - clothing that should stay stable - clothing changes you want to control clearly +What this really means: + +- The anchor is the permanent identity and scene language. +- `character_memory` is the persistent clothing and worn-item memory. +- If you put clothing in the anchor prose, the node keeps restating it forever. +- If you put clothing in `character_memory`, the node can change or remove it later. + ### `auto_wardrobe` Lets the node detect clothing removals directly from beat prose. @@ -325,18 +343,44 @@ If you need around 20 seconds of action, you usually need: These settings control how one beat connects to the next. +What continuity means here: + +- Beat 1 renders a shot. +- The node can take the end of that shot and feed it into beat 2 in different ways. +- That carry-over is what makes a chain feel like one continuous take instead of a series of disconnected clips. + +There are two main kinds of carry-over: + +- a real keyframe anchor +- a softer "use this as a reference image too" carry + +The real keyframe is stronger for continuity. +The reference-image carry is weaker, but can coexist more safely with some ref setups. + ### `first_frame` Optional opening keyframe for shot 1. If empty, the first shot begins from text/reference conditioning alone. +What this really means: + +- This is only for the start of the chain. +- It does not control later shot transitions unless beat 1 hands its final frame forward. +- If you want the opening shot to start from a specific composition or pose, use this. + ### `trim_seam` Drops the first frame of each later shot. Use this to avoid showing the same handoff moment twice. +What this really means: + +- The next shot often begins by reproducing the frame it was handed. +- If you keep that frame, you see the same instant twice. +- Trimming the seam hides that duplicate frame and makes motion feel smoother. + ### `handoff_offset` Hands an earlier frame to the next shot instead of the literal last frame. @@ -346,6 +390,13 @@ Useful when: - a shot ends with an open mouth - the next shot starts with awkward lip motion +What this really means: + +- The literal final frame of a shot can be a bad frame to continue from. +- Example: a character is mid-word, mouth wide open. +- If the next shot starts from that exact frame, the new shot can begin with ugly mouth motion. +- Offsetting by a few frames lets the node hand forward a cleaner pose. + ### `vary_seed_per_shot` Changes the seed between beats. @@ -354,6 +405,15 @@ Usually leave this off for a continuous take. Turning it on makes cuts feel more separate because micro-detail resets between beats. +What this really means: + +- The overall person and scene can still be "the same" in a broad sense. +- But tiny details like skin texture, cloth texture, grain, and little surface quirks will refresh at each beat. +- So this is often the difference between: + a true continuous-feeling chain + and + a sequence of visually related separate shots + ### Beat-Level `continuity:` You can override continuity for one beat inside the beat text. @@ -367,6 +427,103 @@ continuity: handoff ref continuity: soft carry ``` +What each option really does: + +### `continuity: hard cut` + +The next beat starts fresh. + +In practice: + +- do not carry the previous shot forward as a keyframe +- do not treat the previous shot as a continuation anchor +- let the new beat begin like a new setup + +Use it when: + +- you want a deliberate cut +- the previous shot ended in a bad transition state +- wardrobe/state changed and you do not want the old frame dragging that state into the next shot + +### `continuity: keyframe carry` + +The next beat starts from the previous frame as a real anchor. + +In practice: + +- the node tells the new shot to start from that exact handed-forward frame +- this is the strongest continuity mode + +Use it when: + +- you want the new beat to feel like the same take continued +- you care more about continuity than about allowing the new beat to re-compose itself freely + +Risk: + +- if the carried frame is bad, awkward, or mid-transition, the next shot inherits that problem + +### `continuity: handoff ref` + +The previous frame is carried as an extra reference image instead of as the strict starting keyframe. + +In practice: + +- the new shot is shown the previous frame as guidance +- but it is not forced to literally begin from it + +Use it when: + +- you still want some continuity +- but a real keyframe carry is too rigid +- or the shot is already heavily reference-conditioned and you want a softer transition + +Trade-off: + +- smoother than a hard cut +- weaker than a true keyframe carry + +### `continuity: soft carry` + +Carry the previous shot only if the new shot is not already using references. + +In practice: + +- if the beat has no ref images, the handoff can carry forward +- if the beat is already ref-conditioned, the shot is allowed to begin more independently + +Use it when: + +- you want a sensible default +- you want continuity where it fits +- but you do not want every ref-conditioned beat forced too hard to the last frame + +### When To Use Which One + +Use this mental model: + +- `hard cut` = new shot, start fresh +- `keyframe carry` = continue the same take +- `handoff ref` = remind the new shot where it came from +- `soft carry` = continue when convenient, back off when refs already dominate + +### How continuity settings work together + +The final transition is shaped by all of these together: + +- `first_frame` +- `trim_seam` +- `handoff_offset` +- `vary_seed_per_shot` +- beat-level `continuity:` +- whether the shot is also carrying character/location refs + +Example: + +- `keyframe carry` plus `trim_seam` plus stable seed usually gives the smoothest chain +- `hard cut` plus different seed gives the most separate-looking next shot +- `handoff ref` is the in-between option + ## Group 5: References And Identity These settings decide how reference images are used. @@ -404,6 +561,88 @@ Modes: - `every shot`: references on every shot - `every shot + handoff ref`: references on every shot plus previous frame as an extra soft ref +What this really means: + +- `ref_mode` decides when H3 actually sees the reference images. +- This is not just about prompt words. It controls whether the images themselves are part of the conditioning for that beat. + +### `auto ref2v` + +Best general default. + +What it does: + +- if the prompt uses `` tags, those tags control placement +- if there are no tags anywhere, all connected refs are used on every shot + +Why this exists: + +- single-character chains often want identity support on every beat +- forcing tags for every shot would be annoying + +### `where tagged` + +Strict explicit routing. + +What it does: + +- if tags exist, only the tagged shots get those refs +- if there are no tags at all, it falls back to first-shot behavior + +Use it when: + +- you want exact manual control +- you do not want every beat pulling every ref + +### `first shot` + +Use refs only to establish the look at the start. + +What it does: + +- beat 1 gets the refs +- later beats rely on continuity from the chain itself + +Use it when: + +- you want the look established once +- then want later shots to flow from the chain rather than keep reasserting the refs + +Risk: + +- identity can drift later if continuity alone is not strong enough + +### `every shot` + +Use refs every time. + +What it does: + +- every beat gets the refs again + +Use it when: + +- identity drift is the main problem +- you would rather keep the face stable even if the chain feels more cut-based + +Risk: + +- transitions can feel less like one continuous take + +### `every shot + handoff ref` + +Use the references every time and also carry the previous shot as another soft reference. + +What it does: + +- keep identity pressure high +- still remind the next beat what the previous shot looked like + +Use it when: + +- you want both identity support and some transition support +- but you do not want a hard keyframe carry + ### `ref_image_size` Controls how large the reference is encoded. @@ -411,6 +650,13 @@ Controls how large the reference is encoded. - `match`: cheaper, usually enough - `max`: stronger identity/location fidelity, slower and heavier +What this really means: + +- `match` keeps the ref conditioning lighter and cheaper +- `max` gives the model a larger, richer reference encoding + +If faces are drifting and the card can handle it, `max` is one of the first things to try. + ### `ref_noise_aug` Controls how literally the model follows the reference image. @@ -427,6 +673,13 @@ Lower: - more approximate - more likely to drift +What this really means: + +- high values say "follow this reference closely" +- lower values say "take this more as guidance" + +So this is one of the main identity-strength knobs. + ### Beat-Level `ref_mode:` And `ref_noise_aug:` You can override these inside a beat. @@ -453,6 +706,13 @@ Simple usage patterns: - one location plus named characters: use character names in the beat and tag the location when needed - exact slot control: use explicit `` tags +What to remember: + +- tags control explicit slot placement +- names can pull matching character refs into the real image-conditioning list +- location refs are often tagged because they are about where the shot happens +- character refs are often named because they are about who is in the shot + ## Group 6: Audio And Sound These settings shape the soundtrack behavior. @@ -486,10 +746,22 @@ Modes: Adds prompt-side silence control to beats with no quoted dialogue. +What this really means: + +- the node tells H3 "nobody is speaking here" +- this helps stop random mouth motion and random voice babble +- but it is still only prompt guidance, not a hard guarantee + ### `allow_nonspeech_vocals` Allows screams, gasps, sobs, and similar non-dialogue sounds in otherwise non-speaking beats. +What this really means: + +- you still do not want speech +- but you do want human vocal sounds +- this is the "let them cry, gasp, scream, groan" option + ### `mute_nonspeech_audio` Hard mutes the audio for non-dialogue beats. @@ -500,6 +772,12 @@ Trade-off: - you also lose the generated ambience for those beats +What this really means: + +- if the beat has no dialogue, the node can zero that beat's audio +- this is the most reliable way to stop H3 inventing speech +- but it also deletes any nice incidental ambience H3 might have generated for that beat + ### `mute_fade_ms` Smooths the edges of audible shots next to muted ones. @@ -511,6 +789,11 @@ There are two layers: - prompt-level guidance - hard muting +That means: + +- `auto_silence_nonspeech` is the polite request +- `mute_nonspeech_audio` is the hard enforcement + If you want the safest anti-babble setup: - leave `auto_silence_nonspeech` on @@ -552,6 +835,12 @@ This is the optional second pass. Enables the refinement pass. +What this really means: + +- the node renders the beat once +- then runs a second sampler pass over that result +- the goal is to polish, not to invent a whole different shot + ### `detail_sampler_name` Sampler for the refinement pass. @@ -564,10 +853,21 @@ Scheduler for the refinement pass. Extra steps for the refinement pass. +What this really means: + +- more steps gives the second pass more opportunity to change the image +- that can help detail +- but after a point it stops being "cleanup" and starts becoming "rewrite" + ### `detail_denoise` How strongly the refinement pass is allowed to rewrite the beat. +What this really means: + +- low denoise = polish what is already there +- high denoise = let the second pass substantially alter what is already there + ### How The Detail-Pass Settings Work Together The detail pass starts from the first-pass result and tries to polish it. @@ -588,6 +888,13 @@ Aggressive settings can improve texture, but they can also: - pull away from references - break continuity +That is why this group should be read as one combined strength control: + +- `detail_pass` decides whether the second pass exists +- `detail_steps` decides how long it keeps working +- `detail_denoise` decides how free it is to change things +- `detail_sampler_name` and `detail_scheduler` shape how that rewrite behaves + Good starting point: - `detail_pass = on`