Skip to content

Plan and preview one timed generation for a recurring music-video section - #14447

Merged
atomantic merged 2 commits into
mainfrom
claim/issue-14241
Oct 31, 2026
Merged

atomantic merged 2 commits into
mainfrom
claim/issue-14241

Conversation

@atomantic

Copy link
Copy Markdown
Owner

Refs #14241. This is the planning slice; the issue stays open.

What ships

  • Planner (server/lib/musicVideoSequenceCoverage.js, pure): groups a coverage: 'sequence' section's cutaway footage shots (same set + protagonist, contiguous, no performance shot, inside the model max) into one-request runs, and records why every other shot stays per-shot. It composes the prompt as contiguous time ranges, naming references the way each model expects (Image n on H3, @Imagen on Seedance), and maps each scene back onto its existing in/out points in the returned clip. No new cut times are invented. Kling stays per-shot because no verified multi_prompt body exists.
  • Scene field: coverage: 'per-shot' | 'sequence' is in the create and update schemas, buildScene, and splitScene, with a parity test.
  • Read-only preview: GET /api/music-video/:id/sequence-coverage returns the grouped runs, the exact prompt and fal body (H3 sends prompt_expansion_mode: 'disabled' through main's promptExpansion option), the labeled prompt-expansion addition, and the clip spans. It submits nothing and spends nothing.

Still open on #14241

  • Production submit: send one fal request per sequence group in place of the per-scene falSceneTake calls.
  • Use ffmpeg to split the returned clip onto the planned spans, then attach each piece to its scene.
  • The shot-card UI that displays the sent prompt and expansion value.

Tests

Planner tests cover the split, the performance exclusion, the over-max refusal, and the H3 expansion value. A service preview test covers the same three-shot case. No provider calls. npm run pregate passes.

…14241)

Add the pure planner for sequence coverage: group a section's cutaway
footage shots that share a set and protagonist into a single reference-to-video
request, compose the timed-range prompt with each model's own image naming,
and map every scene back to its existing in/out inside the returned clip.
Performance shots, mismatched sets, gaps and runs over the model max stay
per-shot; Kling stays per-shot (no verified multi_prompt body). buildFalVideoRequest
accepts a fixedOverrides entry so a sequence disables H3 prompt expansion.
Scenes accept coverage: 'sequence'; GET /api/music-video/:id/sequence-coverage
previews the one-request runs, the exact prompt and request fields, and each
scene's cut inside the clip. Read-only; nothing is submitted.

@wrenchwren wrenchwren left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved pending CI

@atomantic
atomantic merged commit 1e0f927 into main Oct 31, 2026
16 checks passed
@atomantic
atomantic deleted the claim/issue-14241 branch October 31, 2026 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request implementer:opus-5-5 PR opened by the opus-5-5 model

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants