MD: Scene Genius Autocreator
An ACE-Step prompt farm with an optional LLM brain
- GENRE
- LYRICS
- DURATION
- STEPS
- GLIDE_POWER
- MASTER_STR
- LEGACY
- ADG_ANGLE
- VOCALS
- SEED
- STATUS
"Scene Genius" sounds like an image-storyboarding tool. It isn't - this is a creative brief generator for ACE-Step audio workflows, and knowing that up front saves you five minutes of confusion. You feed it a concept ("Cyberpunk neon lights rain" is the default), it hands you a complete, coherent package: genre, vocals, lyrics, duration, step count, and a handful of technical ADG parameters the ACE-Step pipeline wants. One node in, everything the rest of the audio graph needs, out.
The three modes
execution_mode is the whole design:
- Fast (No LLM) - instant, picks from the node's internal dictionary libraries. No network, no latency. Use it for drafts.
- Hybrid (Smart LLM) - the LLM selects and combines curated options from the libraries. Best balance; the author recommends it for production runs.
- Full AI (Creative LLM) - the LLM writes completely new content. 5–30 seconds of API latency, and it needs a local LLM server running.
That LLM is either Ollama (http://localhost:11434, default model llama3:8b-instruct-q8_0) or LM Studio (http://localhost:1234). No cloud keys - it's all local, which is the right call for this crowd.
How the outputs get made
Behind the scenes it blends three sources: internal genre/vocal/lyrics libraries, your own .txt files dropped into the node's wildcards/genre, wildcards/vocal, and wildcards/lyrics folders (selected via load_genre_file, load_vocal_file, load_lyrics_file), and wildcard {A|B} expansion. quality_preset sets steps from Draft (60) all the way to Monster (2000) and syncs the technical ADG parameters to match. force_instrumental zeroes out the vocals and writes [Instrumental] into lyrics.
The override hierarchy is clean: genre_input, vocal_input, and lyrics_input beat everything - files, LLM, Fast mode - so you can hard-force a value while still letting the node generate the rest.
The outputs
You get GENRE, LYRICS, VOCALS (strings), DURATION (float), STEPS (int), GLIDE_POWER, MASTER_STR, ADG_ANGLE (floats), LEGACY (boolean), SEED (int), and STATUS - an IMAGE dashboard that summarizes the run. The natural wiring: feed these into MD_WorkflowContextBus to bundle them, or run GENRE/LYRICS/VOCALS straight into your ACE-Step text encoding and STEPS into the sampler.
The honest take
The default concept is very audio-culture, the library files are genre-flavored (dnb.txt, lofi_chill.txt, industrial_hard.txt), and the whole node is clearly built by someone deep in the ACE-Step music scene - which is exactly what it's good at. It is not a general-purpose scene/storyboard generator for images. If you're an audio person on ACE-Step, this is one of the best "type a vibe, get a full production brief" nodes out there. If you're not, the same pack's UniversalWildcardOrchestrator is the more neutral tool. Keep it in Fast mode until you've confirmed Ollama actually responds - nothing wastes time like a 30-second timeout on a run that used to be instant.
Installing it
cd path/to/ComfyUI/custom_nodes
git clone https://github.com/MDMAchine/ComfyUI_MD_Nodes.git
cd ComfyUI_MD_Nodes
pip install -r requirements.txt
Or search MD_Nodes in ComfyUI Manager and restart.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| execution_mode | COMBO | Fast (No LLM) | EXECUTION MODE • Purpose: Controls generation logic intensity. • Options: - Fast: Instant, uses internal dictionary libraries only. - Hybrid: LLM selects curated combinations from libraries. - Full AI: LLM generates completely new creative content. • Trade-offs: Fast is instant; Full AI introduces API latency (5-30s). ⭐ Recommended: Fast for drafts, Hybrid for production runs. |
| initial_concept_prompt | STRING | Cyberpunk neon lights rain | CONCEPT PROMPT • Purpose: The core thematic idea driving the entire generation. • Usage: Used by LLM modes to infer appropriate genre, mood, and lyrics. • Support: {wildcard|syntax} expansion is fully supported here. ⭐ Recommended: Be descriptive (e.g., 'Dark ambient forest, heavy rain, isolation'). |
| quality_preset | COMBO | Basic (180) | QUALITY PRESET • Purpose: Automatically sets step count and syncs technical ADG parameters. • Draft (60): Fast testing. • Basic (180): Standard balanced speed/quality. • Production (220): High fidelity standard. • Monster (2000): Ultra-long experimental runs. ⭐ Recommended: Start with Basic (180). |
| randomize_seed | BOOLEAN | true | RANDOMIZE SEED • Purpose: Toggle automatic seed rotation. • True: Generates a new variation/wildcard selection every run. • False: Locks the seed to continuously refine a specific output. |
| debug_mode | COMBO | 0 - Silent | LOGGING VERBOSITY • Purpose: Controls console output detail level. • Options: - 0: Minimal output (Production). - 1: Performance/Latency report. - 2: Step-by-step logic tracing. ⭐ Recommended: Use '1 - Info' when testing LLM latency. |
| enable_profiling | BOOLEAN | false | ENABLE PROFILING • Purpose: Measure timing of text generation and API calls. • Note: Automatically enabled if debug_mode >= 1. |
| seedopt | INT | 00–9007199254740991 | MANUAL SEED • Purpose: Control wildcard/randomization state. • Range: 0 to 9 quadrillion (JS-safe precision limit). • Note: Ignored if 'randomize_seed' is True. |
| manual_stepsopt | INT | 1801–10000 | MANUAL STEPS • Purpose: Custom step count override. • Requirement: 'quality_preset' MUST be set to 'Manual'. |
| force_instrumentalopt | BOOLEAN | false | FORCE INSTRUMENTAL • Purpose: Disable vocal generation entirely. • Result: Overrides LLM to output empty vocals and '[Instrumental]' lyrics. |
| load_genre_fileopt | COMBO | None | LOAD GENRE FILE • Purpose: Inject an external .txt file as the genre source. • Location: Must be in the node's /wildcards/genre/ folder. • Priority: Takes precedence over LLM/Fast generation. |
| load_vocal_fileopt | COMBO | None | LOAD VOCAL FILE • Purpose: Inject an external .txt file as the vocal source. • Location: Must be in the node's /wildcards/vocal/ folder. |
| load_lyrics_fileopt | COMBO | None | LOAD LYRICS FILE • Purpose: Inject an external .txt file as the lyrics source. • Location: Must be in the node's /wildcards/lyrics/ folder. |
| genre_inputopt | STRING | GENRE OVERRIDE • Purpose: Manually force a specific string into the Genre output. • Priority: Overrides EVERYTHING (LLM, files, Fast Mode). • Support: {wildcards} work here. | |
| vocal_inputopt | STRING | VOCAL OVERRIDE • Purpose: Manually force a specific string into the Vocal output. | |
| lyrics_inputopt | STRING | LYRICS OVERRIDE • Purpose: Manually force a specific string into the Lyrics output. | |
| llm_backendopt | COMBO | ollama | LLM BACKEND • Purpose: Select the local API server to use for Hybrid/Full AI modes. |
| ollama_api_base_urlopt | STRING | http://localhost:11434 | OLLAMA URL • Default: http://localhost:11434 |
| ollama_model_nameopt | COMBO | llama3:8b-instruct-q8_0 | OLLAMA MODEL • Purpose: Select which installed Ollama model to prompt. |
| lm_studio_api_base_urlopt | STRING | http://localhost:1234 | LM STUDIO URL • Default: http://localhost:1234 |
| lm_studio_model_nameopt | COMBO | local-model | LM STUDIO MODEL • Purpose: Select which loaded LM Studio model to prompt. |
| enable_previewopt | BOOLEAN | true | ENABLE PREVIEW • Purpose: Generate a visual status dashboard image. • Output: IMAGE tensor summarizing the generated parameters. |
Outputs (11)
| Name | Type | Description |
|---|---|---|
| GENRE | STRING | — |
| LYRICS | STRING | — |
| DURATION | FLOAT | — |
| STEPS | INT | — |
| GLIDE_POWER | FLOAT | — |
| MASTER_STR | FLOAT | — |
| LEGACY | BOOLEAN | — |
| ADG_ANGLE | FLOAT | — |
| VOCALS | STRING | — |
| SEED | INT | — |
| STATUS | IMAGE | — |