Exclusive llama-server load/unload on the 5080, queued Describe UI with resultText, Copy, and Use as prompt.
Co-authored-by: Cursor <cursoragent@cursor.com>
abenzerps Q8_0 ships 1D RMSNorms as packed Q8 (136 vs 128), which breaks
Comfy rms_rope; tagger now dequantizes small tensors and the graph uses
TextEncodeQwenImage21's 64-ch latent plus AuraFlow shift.
Co-authored-by: Cursor <cursoragent@cursor.com>
needsFit only compared aspect ratio, so a same-aspect-but-larger still
(e.g. a 4032x2268 phone photo against a 1344x768 canvas) would skip
fitting and hand MiniMaxH3AddGuide a still that does not match the
job's own latent size. Require an exact width+height match instead;
anything else (including unreadable dimensions) still fits.
Also guard the video save path: an empty Comfy download, an empty
stitched assembly, or a stitched result with no readable duration now
fails the job with a clear error instead of silently saving/attaching
a broken zero-length clip.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Iterate runs a series of prompts as generate (no still), edit (still A), or compose (A+B), saves each output under one library collection like video extensions, and defaults to iterating from the original still.
A cache merge that preferred the longer list was keeping removed files forever. Fresh Comfy lists now replace the cache, including shrinks, and xiagen- typos stay off AIGen like xaigen-.
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>
A failed held shot-batch no longer blocks waiting work, ghost Comfy pending no longer freezes Start now, and Start now force-starts when the GPU is idle.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keeps the same overwrite behavior as video/image Comfy uploads so prompt jobs do not leave unique copies in Shared input.
Co-authored-by: Cursor <cursoragent@cursor.com>
Name uploads by content hash so the same still overwrites itself, enable stale input sweeps on purge, and remove the pile already on the desktop Shared input folder.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prefer clip anchor PNGs for handoffs, optionally run Bilateral+Flux cleanup before I2V, and save decoded last-frame anchors so sequential extensions accumulate less compression damage.
Co-authored-by: Cursor <cursoragent@cursor.com>
Repair all owners before the busy check, stop treating orphan running/held rows as GPU locks, and settle finished Comfy ghosts so waiting items actually start.
Co-authored-by: Cursor <cursoragent@cursor.com>
Purge was skipping Beast input copies and never sending image names to the host agent, so studio temps piled up on the desktop. Also sweep stale hex-/aigen-prefixed inputs.
Co-authored-by: Cursor <cursoragent@cursor.com>