SceneGen - MusicVideo
Feed it a song, get a finished AI music video — and a bill
- audio
- reference_images
- Environment Images
- Asset Images
- Actor Images
- Scene Start Frames
- Analysis (S1)
- Style (S2)
- Palette (S3)
- Assets (S4)
- Montage (S5)
- Prompts (S6)
- Start Frames Info (S7)
- Motion Refinement (S8)
- Timeline Data (S9)
- Generation Status (S10)
- Stitching Info (S11)
- Cost Data (JSON)
- Final Video Path
This node does the thing you've daydreamed about while scrubbing Wan clips: drop a song in, get a finished, beat-synced music video out the other end. Not a workflow you stitch together - a whole production pipeline in one node, from lyric analysis to the final .mp4. It's the most ambitious API-wrapper node I've seen in ComfyUI, and the most expensive one you'll ever queue.
Scene Gen is the work of an independent dev, Paul Lazniak, and it's a small, obscure pack with almost no community chatter - read this before you hit queue. Everything below applies to its twin, SceneGen - Movies, too.
What it actually is
SceneGenMusicVideoNode is a pure cloud pipeline in a node. Google's Gemini 3 Pro does the "thinking" - it listens to your audio, writes the visual plan, designs assets, and generates start frames. Replicate runs the actual video models: Wan 2.5, Kling v2.5 Turbo, Hailuo 2.3, Veo 3.1, and OmniHuman. You need two API keys, one for each service. No models download to your machine.
The framing from the external-api-nodes playbook: the "model isn't on your machine" move, every one of these video models a closed, pay-per-call service. The cost is real, and it's what people underestimate most.
How the 11-stage pipeline works
When you queue it, the node walks stages S1–S11, watchable live in the HTML report (open_report, on by default). The shape:
- S1–S5 (analysis): the raw audio goes to Gemini as WAV bytes, which analyzes genre, mood, lyrics, and structure, then produces a style, a color palette, and a montage cut to the song's timing.
- S4 (assets): Gemini's image model generates consistent environments, props, and character sheets before "filming" starts.
- S7 (start frames): each shot gets an AI-generated first frame to animate from.
- S9–S11 (production): every shot goes to Replicate, comes back, gets trimmed to the timeline, and is stitched and muxed with your original audio. Optionally you get a CMX 3600
.edlfor Premiere or DaVinci Resolve.
That EDL export is the sleeper feature - rare in a ComfyUI node, and it means the result isn't a dead end.
The inputs that matter
Most of the 40+ inputs have sane defaults. These change the result:
audio- connect a standardLoad Audionode. WAV or MP3 both work.gemini_api_key/replicate_api_token- paste your keys here. The placeholder literally readsYour_Api_key_Here; if you leave it, the run dies on the first auth call.prompt_instruction- your one-line art direction ("a neon cyberpunk chase", "a calm nature documentary"). Withenable_prompt_expansionon (default), Gemini turns it into full shot prompts.creativity,dynamicity,word_influence- the three creative sliders.word_influenceis the fun one: 1.0 visualizes lyrics literally ("fire" shows fire), −1.0 ignores words for pure vibe.render_mode- the cost control.Full Renderspends Replicate money.Prompt Moderuns to the start frames, skips Replicate, and makes a slideshow instead - your free way to test a track.- The
use_*model toggles - here's a trap: onlyuse_hailuo_fastis on by default. Wan, Kling, Veo, OmniHuman are all off until you flip them. Want Veo 3.1? Enable it yourself.
Outputs
The four image outputs - Environment Images, Asset Images, Actor Images, Scene Start Frames - are the art direction as previewable tensors. The S1–S11 strings are the audit trail, JSON explaining every decision. The two that matter downstream: Timeline Data (S9) feeds the pack's Scene Gen Data Extractor (the free local-render trick), and Final Video Path points at your finished .mp4. Watch Cost Data (JSON), too.
Install
ComfyUI Manager → search "Scene Gen", or the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/lazniak/scene_gen.git
cd scene_gen
pip install -r requirements.txt
Then restart ComfyUI. Dependencies are light - google-generativeai, numpy, scipy, replicate, requests - and there are no model files to fetch. Get the Gemini key from Google AI Studio and the Replicate token from your account settings.
Where people get burned
- The bill. Every shot is a separate Replicate job, and
aggressive_edit(on by default) may generate extra footage to hit the beats - a 3-minute song can mean dozens of paid clips. Veo and Kling are the priciest. Test inPrompt Modefirst. - The coffee tab.
open_coffee_link(on by default) opens the author's Buy Me a Coffee page after every run. Turn it off. - Timeouts.
api_timeoutdefaults to 280 seconds; long analyses can exceed it on slow connections. Bump it before blaming the node. - It's a phone-home node. It holds your keys and sends your audio and prompts to Google and Replicate by design - same posture as every API wrapper, and this category has shipped malware before. Install from the official repo.
- License. It's custom and non-commercial, so don't sell the output.
Inputs (42)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | The input audio file (WAV/MP3) to analyze and generate video for. | |
| gemini_api_key | STRING | Your_Api_key_Here | Your Google Gemini API Key. Required for analysis and prompt generation. |
| replicate_api_token | STRING | Your_Api_key_Here | Your Replicate API Token. Required for video generation models. |
| prompt_instruction | STRING | Describe a scene matching the music. | Main instruction for the AI. Describe the desired mood, style, story, or specific visual elements. |
| filename_prefix | STRING | scene_gen | Prefix for all generated files (video, images, logs). |
| fps | FLOAT | 24.01–120 | Frame rate of the final output video. |
| render_mode | COMBO | Full Render | Full Render: Generates video using Replicate. Prompt Mode: Generates prompts and assets, then creates a slideshow from start frames (skips Replicate). |
| model_text | STRING | gemini-3-pro-preview | Gemini model used for text analysis, scripting, and prompting. |
| model_image | STRING | gemini-3-pro-image-preview | Gemini model used for generating start frames and assets. |
| creativity | FLOAT | 0.80–1 | 0.0 = Strict adherence to prompt. 1.0 = High hallucination/creative freedom. |
| dynamicity | FLOAT | 0.70–1 | 0.0 = Slow, static, contemplative shots. 1.0 = Fast cuts, high movement, intense action. |
| video_quality | COMBO | Medium | Controls resolution and quality settings for video models. High = 1080p (where available), Medium = 720p/768p, Low = 480p. |
| aspect_ratio | COMBO | 16:9 | Aspect ratio of the generated video. |
| resolution_multiplier | FLOAT | 1.00.5–2 | Scales the resolution of generated start frames. |
| enable_prompt_expansion | BOOLEAN | true | If True, the AI will expand your simple instructions into highly detailed visual prompts. |
| save_segments | BOOLEAN | true | If True, saves every individual video clip generated by Replicate to the output folder. |
| save_images | BOOLEAN | true | If True, saves the start frame images generated by Gemini. |
| save_assets | BOOLEAN | true | If True, saves the generated asset images (characters, props, environments). |
| gemini_concurrency | INT | 101–50 | Max parallel requests to Gemini API. |
| replicate_concurrency | INT | 151–50 | Max parallel video generation jobs on Replicate. |
| use_wan_fast | BOOLEAN | false | Enable Wan 2.5 Fast model. |
| use_wan_2_5 | BOOLEAN | false | Enable Wan 2.5 Standard model. |
| use_kling_turbo | BOOLEAN | false | Enable Kling v2.5 Turbo model. |
| use_omni_human | BOOLEAN | false | Enable OmniHuman model (good for realistic human movement). |
| use_hailuo | BOOLEAN | false | Enable Hailuo 2.3 model. |
| use_hailuo_fast | BOOLEAN | true | Enable Hailuo 2.3 Fast model. |
| use_veo_3_1 | BOOLEAN | false | Enable Google Veo 3.1 model. |
| use_veo_3_1_fast | BOOLEAN | false | Enable Google Veo 3.1 Fast model. |
| aggressive_edit | BOOLEAN | true | If True, forces fast-paced editing with cuts strictly on beat. Generates full clips but trims them aggressively. |
| word_influence | FLOAT | 0.7-1–1 | 1.0 = Literal visualization of lyrics. -1.0 = Ignore lyrics, focus on vibe/atmosphere. 0.0 = Balanced. |
| save_edl | BOOLEAN | true | If True, exports a CMX 3600 .edl file for importing the timeline into Premiere Pro/DaVinci Resolve. |
| open_coffee_link | BOOLEAN | true | Support the creator! Opens Buy Me a Coffee page after generation. |
| dialogues_gen | BOOLEAN | false | Enable dialogue generation for supported models (Veo3, Wan 2.5). Prevents trimming of dialogue shots. |
| open_report | BOOLEAN | true | Opens a live HTML report that updates in real-time during generation. |
| mix_native_audio | BOOLEAN | false | If True, mixes the audio generated by the video models (if any) with the input audio. |
| audio_volume | FLOAT | 1.00–2 | Volume level for the user input audio (1.0 = 100%). |
| video_volume | FLOAT | 1.00–2 | Volume level for the generated video audio (1.0 = 100%). |
| normalize_audio | BOOLEAN | false | If True, applies loudness normalization to the final mixed audio. |
| use_raw_references | BOOLEAN | false | If True, only generates assets that are NOT present in the provided reference images. |
| verification_iterations | INT | 00–3 | Number of verification passes to refine start frames against references. 0 = disabled, 1-3 = iterative improvement. |
| api_timeout | INT | 28060–600 | Timeout in seconds for all Gemini API calls across all stages. Default: 280 seconds (4.5 minutes). |
| reference_imagesopt | IMAGE | Optional images to use as references for style, characters, or environments. |
Outputs (17)
| Name | Type | Description |
|---|---|---|
| Environment Images | IMAGE | — |
| Asset Images | IMAGE | — |
| Actor Images | IMAGE | — |
| Scene Start Frames | IMAGE | — |
| Analysis (S1) | STRING | — |
| Style (S2) | STRING | — |
| Palette (S3) | STRING | — |
| Assets (S4) | STRING | — |
| Montage (S5) | STRING | — |
| Prompts (S6) | STRING | — |
| Start Frames Info (S7) | STRING | — |
| Motion Refinement (S8) | STRING | — |
| Timeline Data (S9) | STRING | — |
| Generation Status (S10) | STRING | — |
| Stitching Info (S11) | STRING | — |
| Cost Data (JSON) | STRING | — |
| Final Video Path | STRING | — |