Cover Brief
Pick the New Style, Keep the Melody, and Actually Decide What Happens to the Vocals
- brief
- brief_text
- use_source_lyrics
- instrumental
What it is
Cover Brief is the intent document for making a recording into a new version of itself. Melody, form and tempo come from the source - this node decides everything else: the target style, what happens to the vocals, and what happens to the harmony.
The single most useful thing about it is that it makes you commit. Most "cover" tools hand you a vague creativity slider and let you guess what it did. Here you pick instrumental, original lyrics or new lyrics on the melody, and new accompaniment or keep original chords, and then you can watch those choices play out in the transcribed score before anything renders. Which lyrics text is used in the end is settled in the Song Sheet, not here - this is the request, the sheet is the record.
How it works
Style first. template gives you the same ~240-entry genre library Song Brief uses, and it only fills fields you leave empty - so you can take "bossa nova" and override just the mood. description is the free-form "how it should sound" line and it goes to the writer; genre and mood are the short fields. title is optional and advanced: fill it in for something like "Original Title (Jazz Cover)", leave it blank and the writer proposes one.
Then the decision the whole node exists for - vocals:
- instrumental (the default) - nested options for
melody(an instrument plays the vocal melody, or accompaniment only) and an optionallead_instrument. - original lyrics - keep the source's words; nested
language(auto-detects from the singing) andvoice. - new lyrics - new words written to the source's phrasing; nested
language,voice,themeand aphrasing_referenceswitch that shows the writer the source's transcribed lyrics so syllable counts line up.
harmony is the other real choice, and it's worth understanding rather than defaulting: new accompaniment strips the source's chords and lets YuE2 re-harmonise (melody mode), while keep original chords leaves them in place (full mode). Wanting a jazz version of a folk song means the first; wanting a different production of the same progression means the second.
Outputs: brief (into Compose Writing Prompt, the Song Sheet, and Check Vocals), brief_text (readable), and two booleans - use_source_lyrics (true for original-lyrics covers, i.e. lyrics from the ASR) and instrumental. Those booleans are the cheap way to branch a graph: gate the ASR, or route to a different mastering chain, without parsing the brief downstream.
Install
# ComfyUI Manager → search "Plenio Music Production System" → Install → restart
# or:
cd ComfyUI/custom_nodes
git clone https://github.com/jplenio/Plenio-Music-Production-System
Requires ComfyUI 0.37.0+. The cover path needs more weights than the song path: sheetsage2_bf16.safetensors (1.4 GB, into models/audio_encoders) for score transcription and vocal checks, the YuE2 int8 checkpoint (4.0 GB), the Gemma 4 writer, and - for original or new lyrics - faster-whisper, the one optional pip install the pack will tell you about when you need it:
python -m pip install faster-whisper
Note the licence situation if this is going anywhere commercial: YuE2, the YuE2 VAE, SheetSage2 and the instrumental adapter are CC BY-NC 4.0 - non-commercial. The release record names the licences of the models a song was made with, so it's auditable after the fact.
Common issues
- The source is too long. SheetSage2 reads a 300-second window at a time, and on a 16 GB card a second pass doesn't fit - the node tells you so and asks you to trim. Use Trim Audio Duration and do the cover in parts.
- Nobody sang, but the lyrics look invented. The ASR mishears. The Song Sheet highlights unsure words so you can correct them before rendering.
- A voice appeared in your instrumental. Instrumental is a strong request, not a guarantee. That's why the template wires Check Vocals, which measures takes and keeps the cleanest one. N takes cost N renders; nothing is retried for you.
- The new lyrics fight the melody. Turn on
phrasing_referenceand make sureharmonymatches your intent - re-harmonising under new words changes the shape of the song more than people expect.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| template | COMBO | none | Optional target style. Style fields you leave empty are taken from the template. |
| description | STRING | How the cover should sound. | |
| genre | STRING | Target genre, e.g. 'acoustic folk'. | |
| mood | STRING | Mood words, e.g. 'warm, intimate'. | |
| vocals | COMBO | Instrumental (default), the original lyrics of the source, or new lyrics on its melody. | |
| harmony | COMBO | new accompaniment | new accompaniment: the source's chords are removed and YuE2 re-harmonises (melody mode). keep original chords: the chords stay (full mode). |
| title | STRING | Optional fixed title, e.g. 'Original Title (Jazz Cover)'. Empty: the writer proposes one. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| brief | PLENIO_BRIEF | The cover brief. |
| brief_text | STRING | The brief as readable text. |
| use_source_lyrics | BOOLEAN | True for original-lyrics covers (lyrics from the ASR). |
| instrumental | BOOLEAN | True for instrumental covers. |