Song Brief
Nine Fields Between 'Indie Pop' and a Song You'll Actually Keep
- brief
- brief_text
- max_seconds
- instrumental
- song_seed
What it is
Song Brief is where a new song starts: what it's about, what genre, what mood, how long, and whether anybody sings. Nothing here makes sound. It's the intent document the rest of the graph reads, and in Plenio's design it's also the only place that decides two things - sung versus instrumental, and the target length. Everything downstream takes those as given, which is why you can't accidentally end up with an instrumental brief and vocal lyrics.
If you've used a text-to-music service, this is the form you filled in there. The difference is that here it's a node, so the fields are inspectable, reusable, and one wire away from a dozen downstream decisions.
How it works
The template combo is the fast path: around 240 genre templates (pop, jazz, hip hop, cinematic, seasonal, regional - the pack's own library, carried over from the author's earlier Music Production Toolkit and re-checked). A template only fills the text fields you leave empty. Type your own description and the template's description gets out of the way; leave genre blank and you inherit the template's. That precedence is the whole trick - you can start from "indie pop" and override exactly the one field you care about.
The fields that actually shape output:
description- multiline, and the one that goes to the writing model verbatim. Write what the song is about, not a keyword salad.length- ten options from very short (about 1:00) to very long (about 6:00), defaulting to standard (about 3:00). It does two jobs: it steers the writer's section plan and line count, and it sets render headroom. MiniMax Music 3 tops out at 6:00; YuE2's context budget is checked at the sheet.vocals- a two-branch picker. Sung revealslanguage,voiceandtheme; instrumental hides all of that and revealsmelody(an instrument plays the lead, or accompaniment only) and an optionallead_instrument.
genre, mood and tempo are plain strings and free-form on purpose - "88 BPM" and "midtempo" both work. key and meter sit in the advanced drawer because score-driven models take the key from the score, not from here.
Outputs: brief (the structured object Song Brief feeds to Compose Writing Prompt, Score Tools and the Song Sheet), brief_text (a readable dump - good for a note node when you're debugging a series that all sounds the same), max_seconds (render headroom for the chosen length) and instrumental (a boolean you can branch on).
Install
# ComfyUI Manager → Custom Nodes Manager → search "Plenio Music Production System"
# or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/jplenio/Plenio-Music-Production-System
Restart, then open 1 · YuE2 · Song or 3 · MiniMax · Song from the template browser and let ComfyUI's missing-model dialog fetch what you don't have. Requires ComfyUI 0.37.0+. No Python packages are installed by the pack; the music models themselves are the heavy part, and the YuE2 and SheetSage2 weights are CC BY-NC 4.0 - non-commercial.
Common issues
- A length value from somewhere else. Reusing an old job's parameters (App mode does this) can push in something like
2-3 minutes. The node rounds it to the nearest option and tells you; pick a length again to clear the note. - Your instrumental grew a vocal. Instrumental conditioning is guaranteed - silent score voice, no voice words in the style, the right lyrics tag. Instrumental audio is not: YuE2 can hum. That's what Check Vocals is for in the song templates.
- Every song in a batch sounds the same. One brief, one genre. The variation changes title, story and hook, not the style. Different genre, different brief.
- Long songs that stop early. Hitting the length ceiling isn't the same as finishing. Render another take; the packing's own docs are blunt that YuE2 sometimes stops mid-phrase.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | new song every run | new song every run: each run writes and renders a different song from this brief (with its own draft and plan seeds) - set the batch count next to Run for a whole series. A Song Sheet set to 'stop for review' stops each new song; after Approve the next run renders that song, the run after it writes the next one. one song, stop to review: the Song Sheets stop so you can check and edit the documents before rendering; later runs keep them and render new takes. |
| template | COMBO | none | Optional starting point. Text fields you leave empty are taken from the template. |
| description | STRING | What the song is about and how it should sound. Sent to the writing model. | |
| genre | STRING | Genre and sub-genre, e.g. 'indie pop'. | |
| mood | STRING | Mood words, e.g. 'warm, hopeful'. | |
| tempo | STRING | Tempo, e.g. '88 BPM' or 'midtempo'. | |
| length | COMBO | standard (about 3:00) | Target length. Guides the writing and, without a score, the render ceiling. |
| vocals | COMBO | Sung song or instrumental. Instrumental hides all vocal settings. | |
| key | STRING | Optional key, e.g. 'G major'. Music models that use a score take the key from the score; the DAW template's empty score is built in it. | |
| meter | STRING | Optional meter, e.g. '3/4' or '6/8'. Music models that use a score take the meter from the score; the DAW template's empty score is built in it. | |
| arrangementopt | COMBO | off | off: no arrangement - the music model plans melody, chords and instruments by itself. standard: Genre-typical - calm verses, fuller choruses, the last chorus the strongest; everything well placed, nothing unusual. sterile: Clean, sparse and steady - plain chords, long notes or silence, low even energy, no surprises. unplugged: Intimate and acoustic - guitar or piano, fingerpicked broken chords and soft pads, low energy, warm and close. varied: Every section sounds different - the instrument line changes from section to section, contrasting energy, fresh chords in the bridge. call and response: The instruments answer the melody - a short reply in the gaps between its phrases, like a band talking back to the singer. signature motif: One short melodic figure becomes the song's signature - it opens the song, returns in every chorus and closes it. hypnotic: A steady repeating pattern drives the song - riffs and broken chords over few chords, changing only little by little (trance, minimal, krautrock). breakdown: Full sections with a breakdown in the middle - everything drops back to almost nothing, then builds again into a big final section. dramatic: One long arc - from a quiet start, section by section, to a big climax in the final chorus. many instruments: A full ensemble - an instrument line in every section, riffs, countermelodies and a solo. jazz colours: Rich jazz harmony - seventh chords throughout, passing chords before a section changes, a mellow countermelody and a solo. fantasy: Imaginative and surprising - colourful chords, unusual instrument lines, a returning motif, a touch of film music. key change: Standard arrangement with one key change - the final chorus lifted a half or whole step, prepared by leading chords. A creative mode (above, or your own file in user/plenio/arrangement) adds its hints to the writing prompt and, in YuE2 Song, lets the writer model plan every section of YuE2's score: chords, what the instrument line plays, energy. Plenio writes the notes itself and checks the result; a plan it cannot use leaves YuE2's score as it was (the Song Sheet says so). Planning works with every writer model - GGUF files, LM Studio and Ollama keep to the format exactly. Experimental: creative modes can give unexpected results - they are meant for experimenting: try a mode, listen, keep what you like or run again with another arrangement seed. off is the dependable choice. |
| genre_closenessopt | INT | 700–100 | Creative modes only (off ignores it; experimental): how close the song stays to its genre - 100 strictly typical, 70 typical with personal touches, 40 free within the genre, 0 borrow from any style. It shapes the style words and the section plan. |
| lines_under_singingopt | BOOLEAN | false | Creative modes only (experimental): off (default) - the instrument line plays where the voice rests (intros, interludes, gaps between phrases), as in YuE2's own scores, where the second voice is the instrumental melody. On - it also sounds under the singing: calm, below the voice and never a minor second against it. More accompaniment, but further from what YuE2 knows. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| brief | PLENIO_BRIEF | The brief for Write Song, Score Tools and the Song Sheet. |
| brief_text | STRING | The brief as readable text. |
| max_seconds | FLOAT | Render headroom for the target length. |
| instrumental | BOOLEAN | True for instrumental songs. |
| song_seed | INT | Added to the draft and plan seeds: every song of a series gets its own (kept while it waits for review); 0 for one song. |