upload() ran fitStill (ffmpeg scale+pad) on every image except hero,
including the start/handoff still. Four chained extends resampled the
anchor frame four times and destroyed identity even with the hero
reference and lock text intact.
- upload(): only fit when the still's aspect truly differs from the
job canvas (needsFit); never fit hero or start regardless.
- Track handoffSource (anchor|extract) and whether the start frame was
fitted; surface both in job metadata and Details.
- extendSelected(): re-binding an already-selected clip on task switch
must not stomp the user's overridden locks/settings back to the
clip's saved values (regression introduced by the last hotfix push).
- Add tests/studio2-extend-fit.test.mjs: two extends at identical
width/height reach Comfy with the anchor PNG byte-identical, no
ffmpeg fit.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop empty Comfy blips from freezing the LoRA cache timestamp, and refresh the picker list from Comfy on each poll. Engine tagging (flux/krea) and xaigen platform filtering stay as they were.
Co-authored-by: Cursor <cursoragent@cursor.com>
Loading a library still as input now only fills the start-still slot and stays on Video. Video/Image cards switch mode directly instead of relying on fragile query links.
Co-authored-by: Cursor <cursoragent@cursor.com>
Queue page and Music get a nuclear clear that cancels studio/live work, wipes shot batches, and force-stops Comfy so images/video/other music can run again.
Co-authored-by: Cursor <cursoragent@cursor.com>
Settings and the header menu can cancel invisible queue/pending work and force-stop Beast when Sleep is blocked.
Co-authored-by: Cursor <cursoragent@cursor.com>
Lead rows with Start/pN labels and fork headers, collapse hidden frame strips to one glow, and stop Library part thumbs from leaking or cloning the Start frame.
Co-authored-by: Cursor <cursoragent@cursor.com>
The info popover was clipped to the card, so the prompt sat inside the thumbnail frame instead of over the page.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the how-to copy under duration and CFG, keep only the CFG default, and label megapixels so that wheel sits on the same row as steps.
Co-authored-by: Cursor <cursoragent@cursor.com>
Duration now matches CFG as one wheel; tap the digits to type a length. Touch drags move at a quarter of the desktop rate.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep wrappers off the library mid-prompt so Use as input and Extend restore the same split, send stills to xAIGen as hidden inputs, and stop the two-column library from growing with the list.
Co-authored-by: Cursor <cursoragent@cursor.com>