From 279ac72049783b7f989c52d5b0856d49927f1b57 Mon Sep 17 00:00:00 2001 From: Ian Date: Fri, 4 Sep 2026 22:29:57 -0500 Subject: [PATCH] Move engine pickers into the Video / Image / Music cards. Flux/Krea, MiniMax/LTX, and ACE/YuE sit on the top kind cards so you choose the engine before the prompt form. --- components/StudioKindCards.vue | 188 ++++++++++++++++++++++++++------- pages/index.vue | 117 +++++++------------- pages/music.vue | 50 +++------ 3 files changed, 204 insertions(+), 151 deletions(-) diff --git a/components/StudioKindCards.vue b/components/StudioKindCards.vue index 57f9e0e..dabe601 100644 --- a/components/StudioKindCards.vue +++ b/components/StudioKindCards.vue @@ -1,54 +1,164 @@ diff --git a/pages/index.vue b/pages/index.vue index 3f25abf..48f54c7 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -8,7 +8,15 @@ />
- +
@@ -27,89 +35,44 @@
-
-
- - -
-
- Source still - -
-
- -

Still loaded · preview hidden

-

Toggle Hide input still off to show it

- -
-
-

{{ studioMode === 'edit' || studioMode === 'editv2' ? (studioMode === 'editv2' ? (v2Mode === 'refine' ? 'Still A · canvas' : 'Still A') : 'Image 1') : (textToVideo ? 'Start still · optional' : 'Choose an image') }}

-

{{ textToVideo ? 'Text-to-video does not need a still. Shot 2+ will still extend from the last frame.' : 'Browse the library or upload a new PNG, JPG, or WEBP' }}

-
+
+ +
-
- Still A is loaded for Edit / Compose / Refine. Generate ignores it and uses the prompt only. +
+ Source still +
-
- - +
+ +

Still loaded · preview hidden

+

Toggle Hide input still off to show it

+
-
- - +
+

{{ studioMode === 'edit' || studioMode === 'editv2' ? (studioMode === 'editv2' ? (v2Mode === 'refine' ? 'Still A · canvas' : 'Still A') : 'Image 1') : (textToVideo ? 'Start still · optional' : 'Choose an image') }}

+

{{ textToVideo ? 'Text-to-video does not need a still. Shot 2+ will still extend from the last frame.' : 'Browse the library or upload a new PNG, JPG, or WEBP' }}

+
+ Still A is loaded for Edit / Compose / Refine. Generate ignores it and uses the prompt only. +
- +
-
-
-

Music Generator

-

- Tags describe style and voice. Lyrics use structure chips. Instrumental skips the vocal line. -

-
-
- - -
+
+

Music Generator

+

+ Tags describe style and voice. Lyrics use structure chips. Instrumental skips the vocal line. +

@@ -746,12 +723,15 @@ function applyPreset() { onMounted(async () => { await loadLibrary() await loadMusicPresets() + const route = useRoute() + const engineQ = String(route.query.engine || '').toLowerCase() + if (engineQ === 'yue' || engineQ === 'ace') selectEngineFamily(engineQ) applyIncomingMusic() await resumeActiveMusic() await refreshStudioQueue() stopQueuePoll() queuePoll = setInterval(() => { void refreshStudioQueue() }, 8000) - const query = useRoute().query + const query = route.query if (typeof query.track === 'string' && query.track) { audioUrl.value = `/api/library/tracks/${query.track}/audio` trackId.value = query.track