← Files KreaARCHIVED FILE
skills/krea-motion/workflows/reveal-sequence.md
7.44 KB · Sep 30, 2026 · 23:19 UTC
# Reveal Sequence ## Trigger Use for a **multi-beat cinematic reveal film**: a product launch film, a brand reveal, a hardware or hero-object piece, an architectural film, a CGI showcase — 8 to 30 seconds of elegant, deliberate, textless motion where one subject is disclosed across several beats. Not this workflow: - one shot only → `../workflows/cinematic-shot.md` - a paid social ad, UGC, or performance creative → the `krea-marketing` skill (the ad framing, hooks, captions and formats live there) - anime or narrative animation with characters and story → the `krea-generate` skill (`../../krea-generate/SKILL.md`) - designed typography, kinetic type, end cards → generate textless footage here, compose type in post per the `krea-marketing` skill's `../../krea-marketing/workflows/launch-teaser.md` ## Two Construction Paths — Choose Deliberately ### Path A — One Generation, Multi-Beat One Seedance job carrying 3 or 4 fully staged beats with real cuts inside it. **Choose when** total runtime is ≤ 15s, all beats live in one world, and no beat needs a guaranteed exact frame. **Advantages** the world, light and grade are automatically consistent; the cuts are free; one job, one cost, one QA pass. **Constraints** Seedance commits to about **three strongly distinct beats** on its own. Four land only when every beat is fully staged and no beat runs long. Cap beats at 2.5s and put `no long static holds, keep cutting` in the constraints tail. These are beats inside one generation, so hard rule 3's lengths apply — see `../references/cut-architecture.md`. ### Path B — Chained Shots, Assembled Several separate Seedance jobs, each one shot, normalized and concatenated locally. **Choose when** runtime exceeds 15s, beats live in different worlds or lighting states, a specific shot needs its own start/end frames, or individual shots need independent retakes without regenerating the piece. **Advantages** surgical retakes; no beat budget; per-shot best-of-N. **Costs** you own continuity — world, light, grade and scale must be enforced by prompt discipline across jobs, plus a normalize-and-assemble pass. **Default: try Path A first** for anything ≤ 15s. It is cheaper, faster, and its consistency is hard to match by hand. Fall back to Path B when a beat fails repeatedly or the runtime demands it. ## Recipe ### 1. Lock the subject still Everything downstream inherits it. Read the source with vision. The start image is the quality ceiling for the entire film — a soft mark or a bad crop poisons every beat. Fix it before planning beats. ### 2. Write the beat sheet before any prompt A reveal has a shape, not a list. Use the tempo grammar from `../references/cinematic-craft.md`: These are separate assembled shots on Path B, so they may run longer than the in-generation beat lengths in `../references/cut-architecture.md`. On Path A, use that file's lengths instead. | Beat | Length | Job | |---|---|---| | 1 — Held opener | 2.5–3s | Darkness, scale, near-stillness. Earns the rest. | | 2 — First information | 2–2.5s | One fact: a detail, an angle, a material. | | 3 — Second information | 2–2.5s | A different fact. Often the mechanism or the mark. | | 4 — Accent (optional) | 1–1.5s | The fast one. Contrast makes the fuller beats read as deliberate. | | 5 — Landing | 2–3s | Composed, still, fully lit, resolved. | For each beat write: shot size, lens, the one camera move, the one physical event, and the named transition out. Pull the moves from `../references/reveal-recipes.md` and `../references/dimensional-motion.md`. **Show the beat sheet to the user before generating.** It is cheap to change here and expensive to change after. ### 3. Resolve Seedance `list_models` → `get_model_schema` → the `krea-generate` skill's `../../krea-generate/references/models/seedance-2.md` for field mapping. ### 4. Cost preflight Price the run before submitting. Show: path A or B, beat count, seconds, blocking runs on `-fast`, delivery runs on `seedance-2-5`, best-of-N for the hero beat, and the retry budget. Wait for the go-ahead. ### 5. Write the prompt(s) Build the prompt per `../../krea-generate/references/models/seedance-2.md`. Path A specifics: - one world block governing every beat - each beat: time range + shot size + lens + one move + one event + named transition - no beat over ~2.5s; no long final hold - `no long static holds, keep cutting` in the constraints tail - one motion split covering the whole piece Path B specifics — restate in **every** job: - the same world block, verbatim - the same light block, verbatim - the same grade and lens family - the same subject lock - the same negatives Verbatim repetition across jobs is what makes separate generations cut together. ### 6. Block cheap, judge, then commit Generate the whole piece on `seedance-2-fast` first — the full Path A prompt, or the two most load-bearing shots of Path B. Judge: - Do the beats read as distinct, or did the back half coast on one lazy move? - Did the cuts cut? Prove it: ```bash ffmpeg -i sequence-raw.mp4 -vf "select='gt(scene,0.3)',showinfo" -f null - 2>&1 | grep showinfo ``` An empty list on a multi-beat prompt means the cuts morphed. Fix by fully staging each beat, not by shouting HARD CUT. - Contact sheet across the full duration: ```bash ffmpeg -i sequence-raw.mp4 -vf "fps=1,scale=320:-1,tile=6x5" -frames:v 1 contact.png ``` The tile is 30 cells, so the sheet covers `30 ÷ fps` seconds — at `fps=1` that is 30s, the top of this workflow's range. Set `fps` to at least `30 ÷ duration` or the sheet stops before the landing. Read it with vision. Check: one world throughout, subject locked, marks intact in the **last** frames, no flare, no drift into blue. ### 7. Retake per beat One change per retake. Path A: adjust the one failing beat's staging and re-run with the seed pinned. Path B: regenerate the single failing shot and leave the rest locked. If a Path A beat fails three times, lift it out and produce it as a Path B shot, then assemble. ### 8. Deliver Re-run the approved prompt on `bytedance/seedance-2-5`, best-of-2 for the hero beat. Upscale if the live schema exposes it and delivery needs it. Path B assembly — normalize before concatenating or the cut will hitch. Commands in `../references/edit-qa-retakes.md`. Strip per-clip generated audio unless the plan keeps it, and lay one designed bed under the whole piece. ### 9. Final QA before handoff - [ ] One world, one light logic, one grade across every beat - [ ] Subject never rotates, drifts or changes scale unless a beat named it - [ ] Realtime physics — nothing came back speed-ramped - [ ] Every mark and printed line intact in every last frame - [ ] Cuts verified by scene detection, not by eye - [ ] No god rays, flare, bloom or blue cast anywhere - [ ] No on-screen text, captions or invented graphics - [ ] The film **lands** — the final frame is composed and still, not drifting ## Banned - Do not plan a reveal as one long continuous camera move over 15 seconds. That is a screensaver, not a film. - Do not end a multi-beat prompt with a long hold — the model front-loads and coasts. - Do not let beat 3 relocate to a different world. - Do not vary the world or light wording between Path B jobs. - Do not burn captions or type into these deliverables; the format reads cheap with them and clean typography belongs in post. - Do not call scene detection optional. Eyeballing cuts is how morphs ship. - Do not name a brand as an imitation target. Describe the look in craft terms.
SHA-256: 942d982574cfa172a7a86ab20c21f0280fc7e850129b66bfdf80884b4c7b68ce