Skip to content

fix(recipe): no truncar el diálogo TTS al duration de la escena - #21

Closed
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-management-c7a5
Closed

fix(recipe): no truncar el diálogo TTS al duration de la escena#21
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-management-c7a5

Conversation

@cursor

@cursor cursor Bot commented Aug 29, 2026

Copy link
Copy Markdown

Qwen3 (y el resto de motores de audio) tratan duration_seconds como tope duro. resolveAudio usaba recipe.scene.duration, que en un episodio multi-plano es solo el fallback por plano — a menudo el hold silencioso inicial, o más corto que el plano hablado.

Trigger: receta tipo CharacterKit (hold 6s → plano hablado 9s, beat hasta 7.6s). Si scene.duration se omite, el parser lo pone a 6s. Auto-generate cortaba 1.6s del final de la línea mientras la boca seguía animando.

Fix: recipeAudioDuration toma el máximo de los planos y beats que usan esa pista, igual que recipeAssetDuration ya hacía para placas H3.

Tests: sceneRecipe, sceneRecipeAssets y characterKitEpisode (50 pass).

Open in Web View Automation 

Qwen3 treats duration_seconds as a hard cap. Multi-shot episodes use
scene.duration as a per-shot fallback (often the short opening hold),
so Auto-generate truncated later dialogue while mouth keyframes kept
moving. Size each track from the shots and beats that actually use it.

Co-authored-by: ignaciodelcano+dcl <ignaciodelcano+dcl@gmail.com>
@github-actions

Copy link
Copy Markdown

PR Review — Loreframe Studio

Risk: low
Scope: 5 file(s); +99/-4; React UI

Automated review from scripts/analyze_pr.py. This is a heuristic pass (no LLM) so humans still own the merge decision.

Findings

  • low — UI changed — rebuild before merge
    Run cd ui && npm run build (CI already does this). Pinokio Update rebuilds for end users; keep ui/dist untracked.

Changed files

  • modified: ui/src/lib/sceneRecipe.ts, ui/src/lib/sceneRecipeAssets.ts, ui/tests/characterKitEpisode.test.mjs, ui/tests/sceneRecipe.test.mjs, ui/tests/sceneRecipeAssets.test.mjs

CONTRIBUTING checklist

  • python scripts/verify_clean_repo.py
  • python -m compileall -q app/services app/launch.py scripts
  • cd ui && npm run build if the UI changed
  • No weights, CivitAI sidecars, or generated guides
  • Stays local-first (no required accounts / telemetry)

Posted by the repo PR review workflow. Re-runs on each push to the PR.

@IAnMove

IAnMove commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Superseded by #93 (fix(recipe): size generated audio for its consumers), already on main. That change sizes generated recipe audio for its consumers instead of truncating TTS to the scene duration.

Closing the draft and keeping the branch.

@IAnMove

IAnMove commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Closed as superseded by #93. Branch kept.

@IAnMove IAnMove closed this Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants