Input
{{ studioMode === 'edit' ? 'Drop a still and describe the edit. This relays to the sidecar Qwen Comfy box once the workflow is mapped.' : 'Drop a still, describe the motion, then relay the job to the local desktop.' }}
Still loaded · preview hidden
Toggle Hide input still off to show it
Choose an image
Browse the library or upload a new PNG, JPG, or WEBP
Paste a block. Text before the first marker is shot 1. Write shot 2, shot 3, and so on to queue extensions. Every shot uses the duration slider.
Add a first shot, then shot 2 for an extension.
{{ index === 0 ? 'Initial' : `Extension ${index}` }} · shot {{ shot.n }} · {{ formatClipDuration(duration) }}
{{ shot.prompt }}
Extension #{{ index + 1 }}
Save to library
Output preview hides library thumbs and autoplay. Click the player to reveal; click anywhere else on the page to hide it again. Folder default applies to output preview when you pick a new still.
MiniMax graph
Extra stills lock people and objects. The first-frame still above stays the opening frame. Identity refs are not reused on queued extensions.
Generation settings
Aspect ratio / resolution
Output {{ outputSize.width }} × {{ outputSize.height }}{{ aspect === 'auto' ? ' · matching the still' : '' }}
Steps
{{ turbo ? 'Default 1.5 with Turbo LoRA' : 'Default 4.0 with High-Fidelity' }}
Sampler & scheduler
Image edit settings
Sidecar: {{ imageComfyHost || 'not configured' }} · Qwen Image Edit Lightning (4-step LoRA)
Lower denoise keeps more of the original still. Lightning is tuned for 4 steps, CFG 1, denoise around 0.75.
Held jobs
Comfy was still busy after 3 minutes. Click one to restore the still, prompt, and settings.
Output
{{ elapsedLabel }} · chain {{ chainStep }}/{{ chainTotal }} · step {{ step }}/{{ maxStep || (turbo ? 8 : 20) }}
Step {{ chainStep }}/{{ chainTotal }}{{ chainLabel ? `: ${chainLabel}` : '' }} · {{ overallProgress }}% overall
- {{ part.label }} {{ part.prompt }} {{ formatClipDuration(part.duration) }}
Extend this clip
Continue from the last frame with a new motion prompt, then stitch the segments together.{{ extendSaveName ? ` Saves as “${extendSaveName}”.` : '' }}
{{ lastFrameLoading ? 'Reading last frame…' : 'Last frame preview unavailable' }}
Library
Nothing in this folder yet. Generate into it from the left.
-
{{ group.head.name || group.head.prompt }}
{{ group.head.prompt }}{{ clipMetaLine(group.head) }}
-
{{ item.name || item.prompt }}
{{ clipMetaLine(item) }}
-