From bb91b4fd3febb3b177ad349fc1722de4d000a3ee Mon Sep 17 00:00:00 2001 From: Towsty Date: Sun, 6 Sep 2026 17:42:53 -0500 Subject: [PATCH] Choose generation mode automatically from starting image --- components/StudioKindCards.vue | 27 +----------------- pages/index.vue | 50 +++++++++++---------------------- tests/generation-input.test.mjs | 31 ++++++++++++++++++++ utils/generationInput.ts | 11 ++++++++ 4 files changed, 60 insertions(+), 59 deletions(-) create mode 100644 tests/generation-input.test.mjs create mode 100644 utils/generationInput.ts diff --git a/components/StudioKindCards.vue b/components/StudioKindCards.vue index ff2a823..3f3d8c5 100644 --- a/components/StudioKindCards.vue +++ b/components/StudioKindCards.vue @@ -38,26 +38,7 @@

MiniMax H3

-
- - -
+

{{ videoStart === 'still' ? 'Image to video' : 'Text to video' }} · automatic

() @@ -172,11 +152,6 @@ function pickVideo(engine: 'minimax' | 'ltx') { if (props.current !== 'video') emit('select', 'video') } -function pickStart(start: 'still' | 'text') { - emit('video-start', start) - if (props.current !== 'video') emit('select', 'video') -} - function pickImage(engine: 'flux' | 'krea') { emit('image-engine', engine) if (props.current !== 'image') emit('select', 'image') diff --git a/pages/index.vue b/pages/index.vue index f7aa2fc..f18e942 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -16,7 +16,6 @@ :image-engine="v2Engine" @select="selectStudioKind" @video-engine="selectVideoEngine" - @video-start="selectVideoStart" @image-engine="setV2Engine" />
@@ -25,7 +24,7 @@

Input

{{ studioMode === 'editv2' ? (v2Mode === 'generate' - ? 'Generate: no reference image. Prompt only.' + ? 'Text-to-image: describe what you want. Add a starting image to switch to image-to-image.' : v2Mode === 'iterate' ? (file ? (editRefFile @@ -41,7 +40,7 @@ ? 'Drop the still to edit. An optional second still applies image 2 onto image 1. Files leave the desktop after save.' : (textToVideo ? 'Text-to-video: write a prompt and generate. No start still required. Shot 2+ still continues from the last frame.' - : 'Drop a still, describe the motion, then send the job. Switch the Video card to Text for text-to-video.') }}

+ : 'Describe the motion and generate. Add a starting image for image-to-video; remove it for text-to-video.') }}

Text-to-video does not need one. Shot 2+ still extends from the last frame.
- Still A is loaded for Edit / Compose / Refine / Iterate. Generate ignores it and uses the prompt only. + + No image: text-to-image. Add an image to edit it instead.
- Edit + Image -