Commit Graph
185 Commits
Author SHA1 Message Date
Towsty 3e90d2ff45 Show clear GPU status and move upscale progress into the queue 2026-09-12 10:17:03 -05:00
Towsty a9551911f2 Encode Unicode video titles in playback response headers 2026-09-12 10:17:02 -05:00
TowstyandCursor d8f42ecc68 Tighten needsFit to exact canvas size, guard against empty renders
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>
2026-09-11 23:11:02 -05:00
TowstyandCursor 65c69b779a Stop resampling the extend start frame every hop
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>
2026-09-11 21:12:24 -05:00
Towsty ad135ae19c Simplify Studio 2 sources and persist private previews and LoRA lists 2026-09-11 19:04:03 -05:00
Towsty 86ffa9ba04 Compile image style chips and restore complete input metadata 2026-09-11 19:04:03 -05:00
Towsty b5a4882a9c Keep Studio 2 family tiles tied to existing library files 2026-09-11 19:04:03 -05:00
Towsty b1ffcd6975 Retry confirmed Studio 2 host cleanup after failures 2026-09-11 18:43:25 -05:00
Towsty 28b919ecee Sample Klein edits from source and bind Studio 2 extensions correctly 2026-09-11 12:23:34 -05:00
Towsty c719e12709 Select and confirm uploaded Studio 2 source and hero stills 2026-09-11 09:28:00 -05:00
Towsty bf58732690 Separate Studio 2 source and canvas and apply size and seed choices 2026-09-11 07:07:26 -05:00
Towsty 09c96c0ae7 Fit Studio 2 inputs and report live generation progress 2026-09-10 23:48:25 -05:00
Towsty f312cff477 Return preview users to Studio 2 after login 2026-09-10 21:33:41 -05:00
Towsty fd9522ae19 Enable the isolated xAIGen Studio 2 preview 2026-09-10 21:31:43 -05:00
Towsty 70b6b70fcd Queue durable Studio 2 jobs with sticky identity and saved metadata 2026-09-10 20:56:37 -05:00
Towsty bd82f5bd5f Add native H3 identity graph and Studio 2 prompt contracts 2026-09-10 20:13:53 -05:00
Towsty badf59d914 Restore automatic video batch continuation and prepare stable Comfy loading 2026-09-09 06:58:35 -05:00
Towsty 4bf992210d Increase extractLastFrame timeout to 15s and backoff start to 200ms to reduce HostBuffer.read_file_slice errors 2026-09-08 21:11:42 -05:00
Towsty da8d0e4c38 Add retry logic with timeout to extractLastFrame to handle temporary file access issues in shot scripts 2026-09-08 20:07:19 -05:00
Towsty 1e0cff9dea Add local queued video upscale with Real-ESRGAN and RIFE 2026-09-08 17:55:02 -05:00
Towsty 7665285a0d Preserve extension quality with original segments and reliable refinement 2026-09-08 06:25:40 -05:00
Towsty c2b6032e49 Replace Comfy YuE with standalone YuEGP profile 1 2026-09-07 20:24:47 -05:00
Towsty eeff12cdab Add manual image groups to the library 2026-09-07 20:16:01 -05:00
Towsty 5f96807496 Improve music activity reporting and preserve Comfy host fixes 2026-09-06 23:05:46 -05:00
Towsty 53bb58bbd5 Add optional reference photo conditioning to Flux generation 2026-09-06 23:05:36 -05:00
Towsty 666c922f40 Add per-image iteration settings and steps/CFG sweeps 2026-09-06 17:02:42 -05:00
Towsty 0c6a035d04 Coordinate shared GPU access across studio instances 2026-09-06 16:32:18 -05:00
Towsty 911ddeab55 Fix queue dispatch deadlocks and stale completion recovery 2026-09-06 16:08:50 -05:00
TowstyandCursor 069108ae44 Fix MiniMax text-to-video: use ImageToVideo with no first frame instead of a node Comfy does not install.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 07:42:47 -05:00
TowstyandCursor 4dccaac6d3 Fix shot auto-run: do not settle or honor stale paused mid-chain, and keep Run remaining from dying after one shot.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 19:52:29 -05:00
TowstyandCursor 8ebbc0fc6e Clear Generating as soon as a job saves: settle the studio row on persist and repair finished orphans so the next waiting job can start.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 12:38:30 -05:00
TowstyandCursor e1bad72405 Fix queue race: keep the running studio slot until settle finishes, then start the next waiting job.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 11:47:10 -05:00
TowstyandCursor 279fabfb7b Stop killing live videos mid-save: never fake-complete or age-out jobs just because Comfy is briefly idle.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 09:49:00 -05:00
TowstyandCursor 34c39bf85d Fix studio queue stuck after GPU sleep: clear ghost live ownership so Start now and wake can actually dispatch.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 23:15:19 -05:00
towsty 2435167a41 Add Image Iterate: nested multi-prompt still families.
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.
2026-09-04 22:46:19 -05:00
TowstyandCursor b481c4e3ad Stop deleted LoRAs from sticking in the picker.
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>
2026-09-04 21:45:31 -05:00
TowstyandCursor d50719e1a7 Declare inflightFresh used by fresh LoRA cache loads.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 15:53:09 -05:00
TowstyandCursor 06e40793db Fix LoRA folder drops not appearing without weakening engine filters.
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>
2026-09-04 15:52:31 -05:00
TowstyandCursor 41ba5e3aab Kick the studio dispatcher when the UI polls a stalled waiting queue.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 14:14:26 -05:00
TowstyandCursor 91855a0103 Unstick studio queue when Ready but waiting jobs will not start.
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>
2026-09-04 14:14:17 -05:00
TowstyandCursor 5ffb65706f Use content-hash names for Qwen VL still uploads too.
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>
2026-09-04 08:21:06 -05:00
TowstyandCursor c043890ac0 Stop Comfy input folder filling with duplicate still uploads.
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>
2026-09-04 08:20:39 -05:00
TowstyandCursor f41ac7a826 Add extension-frame refine and lossless anchor options.
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>
2026-09-04 07:55:46 -05:00
TowstyandCursor 5917d5bb37 Fix studio queue stalling after image jobs finish.
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>
2026-09-04 00:16:26 -05:00
TowstyandCursor a9c2c01b35 Delete Comfy input stills after library save, not only outputs.
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>
2026-09-03 23:27:14 -05:00
TowstyandCursor 780b407b3c Add Force clear for stuck queues including running YuE jobs.
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>
2026-09-03 23:03:05 -05:00
TowstyandCursor 5df9e2d8ac Add Force reset to clear stuck jobs and kill a wedged Comfy.
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>
2026-09-03 21:24:10 -05:00
TowstyandCursor ec887a320a Retry library pulls after Comfy finishes and fall back to disk.
Long jobs were succeeding on Beast then failing the save step when /view briefly dropped; retries plus host-agent file serving keep finished MP4s from being orphaned.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 21:06:15 -05:00
TowstyandCursor 17d4d4ffdc Tighten YuE lyrics validation and Comfy music workflow wiring.
Require section tags before queueing YuE and keep the ACE/YuE path changes that were already in progress.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 20:32:41 -05:00
TowstyandCursor 86e23499a9 Add default video length setting and inherit duration when extending.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 19:44:28 -05:00