Promotion and re-promotion (#57) #112
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
needs-info
needs-triage
question
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crowmaki/ai-studio!112
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-57-promotion"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #57. Part of #24 (User Stories 129, 148, 149, 154–157).
What changes
A filmmaker can finish the draft they like, and the final matches it.
promote_take(take, refine_seed?)queues anh3.promotionjob built from what the draft recorded:take_inputrows, not from the Shot's current inputs.LoadLatent "<file> [output]"under the names the draft saved them as. The video latent goes throughMinimaxH3LatentUpscaler3DandLTXVConcatAVLatent, then a refine pass at the final size of the Take's own Generation profile. The LoRAs and speed mode come from that profile too.SetLatentNoiseMaskwith a 0SolidMask.rendition.refine_seed, V29).via = 'promotion'. While it is queued, rendering or finishing, the Take's status is still its ready draft, or the final being replaced. The Promotion shows beside the Take asTakeView.promotion(status,refine_seed,replacing), and the wall, table and details show a Promoting… / Re-promoting… badge with progress.retry_take) runs the same job again with the same refine seed.JobClass::Final, so Hold finals applies, and they are labelled1A-3 promotion.takes::build_graphis shared by drafts, Single-pass finals and Promotion.Tests
tests/promotion.rsdrives everything throughProjectSessionagainst the fake ComfyUI. It covers the graph, landing, re-promotion while blocked, failure and retry, refusals, batch, and seen on a post-step retry.research/h3-latent-reuse. That job is copied intotests/fixtures/research-promotion.json. The test checks the scheduler, sampler, upscaler and sparse-attention settings, and the latent → upscaler → concat → sampler wiring. It also checks that the conditioning matches the draft's prompt and references.src/lib/dailies/promotion.test.tscovers the pure UI rules.Not here, or worth a look
megapixelsmode. The round trip measured 2.1 MP, which turned a 1376×768 draft into a 1984×1120 final, and I scale that number by the final's area.target dimensionsmode, but I couldn't confirm that mode's input names without a real ComfyUI.playableRenditionalready does.cargo test --workspace --all-featurespasses except twoffmpeg::testsproxy tests. They fail on this machine because its ffmpeg has nolibopenh264encoder.bun test srcandbun run checkare clean.Screenshots
The wall: 1A-1 is re-promoting and still shows its earlier final (F). 1A-3 is circled with a landed final. 1A-4 and 1B are drafts.
Details of 1A-1 while it re-promotes with refine seed 424242. The final it replaces (refine 7876…) keeps playing.
A failed re-promotion of 1A-2: the reason, Retry, and the old final still in place.
The table after Promote on two ticked drafts.
Screening mode after P on 1B-1.
The clips come from a stand-in ComfyUI that serves ffmpeg test clips.