Commit Graph
100 Commits
Author SHA1 Message Date
TowstyandCursor e0292c8d2a Add Qwen 2.1 PE-only Comfy graphs for prompt enhance.
Keep PE CLIP separate from DiT so the 16 GB card can run rewrite then generate without loading both at once.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-26 10:25:44 -05:00
TowstyandCursor bb27af506e Restore Studio 2 Load hydrate, sticky negatives, and strip actions.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 12:23:20 -05:00
TowstyandCursor df5ef0949e Make Library Reveal all / Hide all cover the whole grid.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 12:09:26 -05:00
TowstyandCursor 206984b6ec Add Reveal all / Hide all to Studio 2 input picker.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 21:04:55 -05:00
TowstyandCursor 52a01e0adc Enable Qwen 2.1 on Edit: wire picker, runner, and source-still validation.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 18:13:07 -05:00
TowstyandCursor 8609ba24a4 Add Qwen 2.1 Image Edit Comfy graph (GGUF + TextEncode + int8 cache).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 18:10:50 -05:00
TowstyandCursor 776d585345 Fix xAIGen LoRA picker to use isXaigenStudio like the server.
Bench was checking only public.studio === 'xaigen', so when the instance
is branded xAIGen via instanceName the client stripped xaigen-* LoRAs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 17:34:53 -05:00
TowstyandCursor 608f7d8d47 Fix Qwen 2.1 GGUF load: promote Q8 norms to F32 and wire TextEncode latent.
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>
2026-09-20 16:58:00 -05:00
TowstyandCursor 68731916ca Wire Qwen 2.1 as Generate-only engine with 25/1 sampler defaults.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 16:58:00 -05:00
TowstyandCursor 08d507c491 Add studio2_qwen21_t2i Comfy graph for GGUF Qwen Image 2.1 T2I.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 16:57:04 -05:00
TowstyandCursor d65420f34a Add Qwen 2.1 host setup script and document Shared model paths.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 16:57:04 -05:00
TowstyandCursor d733e80881 Add a viewer-first mobile shell that swaps in under 768px without restyling desktop Bench.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-19 08:19:36 -05:00
TowstyandCursor dccfafa08b Scale viewer stills and clips to fill the stage with contain.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:31:15 -05:00
TowstyandCursor 589791cdb8 Replace LoRA Thumbwheel spectrograms with range and numeric strengths.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 19:15:12 -05:00
TowstyandCursor c0289afa0e Rebuild Bench as the three-column cinematic layout with Generate CTA.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 13:36:09 -05:00
TowstyandCursor a9799e4920 Lock display tokens and slot sizes to the cinematic pixel grid.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 13:36:04 -05:00
TowstyandCursor 52bd6cf4a8 Align Studio display chrome to the Classic | Studio reference mock.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 13:22:18 -05:00
TowstyandCursor eba701a82c Tune Studio display tokens for rails, radius, and amber CTA.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 13:12:05 -05:00
TowstyandCursor bdc1ab6c2d Restyle Studio task rail and bind Classic task to the same mode ref.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 13:10:44 -05:00
TowstyandCursor d9743dd8c9 Bind Classic model select and Studio engine rail to the same engine ref.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 13:10:13 -05:00
TowstyandCursor 1b29452455 Move Studio locks to slots and Classic hide to header checkboxes.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 13:09:29 -05:00
TowstyandCursor 292d53a20e Add Classic | Studio displayMode preference and Settings cards.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 13:07:13 -05:00
TowstyandCursor b194b3cefa Always live-scan Studio 2 LoRAs on load and Refresh like Settings.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 12:59:06 -05:00
TowstyandCursor 7221b6a8cf Refresh Studio 2 LoRAs from live Comfy object_info on fresh=1.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 12:45:48 -05:00
TowstyandCursor 36d24feb9c Allow Studio 2 MiniMax text-to-video with empty start when locks are off.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 14:56:16 -05:00
TowstyandCursor 5694104226 Keep YuE2 jobs live on the bench and wire target length to semantic tokens.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 20:53:07 -05:00
TowstyandCursor 2ebc3066e6 Reject instrumental music edits and force YuE2 on queued track patches.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 18:20:11 -05:00
TowstyandCursor c868605d8a Drop ACE and YuEGP defaults from studio music queue and library labels.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 18:19:46 -05:00
TowstyandCursor 1db62e9187 Make Studio 2 the home bench with YuE2 music, LTX, and per-preview hide.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 18:19:34 -05:00
TowstyandCursor a216afc4ce Remove YuEGP handlers from the Comfy host agent.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 18:17:59 -05:00
TowstyandCursor cce1faa9b1 Route all music jobs through YuE2 only.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 18:16:45 -05:00
TowstyandCursor c50bde723f Accept only YuE2 in the music generate API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 18:16:45 -05:00
TowstyandCursor 17cc07e3bc Accept only YuE2 as the music engine type.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 18:16:44 -05:00
TowstyandCursor df885d5732 Replace stale host agent on boot and document one-click Startup install.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 18:15:19 -05:00
TowstyandCursor 840440d7ef Remove YuE2 process memory fraction cap on the 5080.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 20:14:44 -05:00
TowstyandCursor ee84a99035 Tighten YuE2 VRAM use on the 5080 and empty GPU before launch.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 20:01:06 -05:00
TowstyandCursor 62671d05da Allow multi-section YuE2 lyrics and force non-flash attention on Windows.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 19:28:43 -05:00
TowstyandCursor fae3b23e37 Finish YuE2 host setup, weight download paths, and v1 cleanup.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 18:46:35 -05:00
TowstyandCursor d1ff05089f Document YuE2 install, weight cleanup, and regression tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 18:46:35 -05:00
TowstyandCursor 71a61b1765 Add YuE2 to the music engine picker and generate API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 18:46:35 -05:00
TowstyandCursor ec5791c595 Mount YuE2 on the host agent and share GPU ownership.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 18:46:35 -05:00
TowstyandCursor 5f68205f01 Route engine yue2 through a standalone job helper.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 18:45:57 -05:00
TowstyandCursor 85ef087364 Add YuE2 host, worker, and setup scripts.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 18:45:57 -05:00
Towsty 064f1db933 Read production LoRA names in Studio 2 2026-09-12 21:05:11 -05:00
Towsty fb87a50a39 Show each LoRA dropdown label once 2026-09-12 20:45:19 -05:00
Towsty 401e6c26a2 Remember Studio 2 LoRA stacks for each engine 2026-09-12 20:17:58 -05:00
Towsty 6a6931f04e Filter LoRA picker options by engine tokens 2026-09-12 20:17:58 -05:00
Towsty e190496eb4 Restore Klein empty-latent reference sampling 2026-09-12 12:18:14 -05:00
Towsty 7bb4b16c1e Sample Klein hero identity from image latents 2026-09-12 11:46:56 -05:00
Towsty 3da3656140 Show pending Studio 2 jobs and freeze finished timers 2026-09-12 10:39:33 -05:00
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 ec0b6f10ab Bind the selected output when restoring complete input settings 2026-09-11 19:06:17 -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 8fe69272c3 Use desktop width and protect the Studio 2 prompt column 2026-09-11 09:33:05 -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 5c69650ffa Restore Studio 2 controls and automatic extension binding 2026-09-10 23:48:25 -05:00
Towsty 3b071436a3 Model camera beats and independent hero identity locks 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 8c464f283d Add the Studio 2 bench and restore saved prompt sections 2026-09-10 20:56:37 -05:00
Towsty 70c17695e4 Restrict Studio 2 host cleanup to exact preview paths 2026-09-10 20:56:37 -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 d4f2b86587 Document isolated Studio 2 PR preview settings 2026-09-10 20:10:16 -05:00
Towsty 7e4b69677f Add output navigation preserving viewer visibility 2026-09-10 07:09:52 -05:00
Towsty 9b1d8ae798 Clarify output image actions and preserve user VRAM policy 2026-09-09 16:38:48 -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 4c97980646 Avoid YuEGP pinned-memory exhaustion on 32GB Windows hosts 2026-09-08 07:04:13 -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 174d40a7dc Simplify generation controls with task navigation and settings drawer 2026-09-07 08:36:33 -05:00
Towsty 7a2069462e Add output action to use image as Flux reference 2026-09-07 00:15:10 -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 bb91b4fd3f Choose generation mode automatically from starting image 2026-09-06 17:42:53 -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 d4b49df05a Let text-to-video generate without a still: Still/Text lives on the Video card, and Text mode skips the required input image.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 07:35:42 -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
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