ComfyUI Node

Cover Brief

Pick the New Style, Keep the Melody, and Actually Decide What Happens to the Vocals

By jplenio·Created a day ago·Updated about 13 hours ago· 2
Cover Brief
    • brief
    • brief_text
    • use_source_lyrics
    • instrumental
    ◄templatenone►
    ◄description►
    ◄genre►
    ◄mood►
    ◄vocals▾►
    ◄harmonynew accompaniment►
    ◄title►

    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 optional lead_instrument.
    • original lyrics - keep the source's words; nested language (auto-detects from the singing) and voice.
    • new lyrics - new words written to the source's phrasing; nested language, voice, theme and a phrasing_reference switch 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_reference and make sure harmony matches your intent - re-harmonising under new words changes the shape of the song more than people expect.
    CategoryPlenio/Song

    Inputs (7)

    NameTypeDefaultDescription
    templateCOMBOnoneOptional target style. Style fields you leave empty are taken from the template.
    descriptionSTRINGHow the cover should sound.
    genreSTRINGTarget genre, e.g. 'acoustic folk'.
    moodSTRINGMood words, e.g. 'warm, intimate'.
    vocalsCOMBOInstrumental (default), the original lyrics of the source, or new lyrics on its melody.
    harmonyCOMBOnew accompanimentnew accompaniment: the source's chords are removed and YuE2 re-harmonises (melody mode). keep original chords: the chords stay (full mode).
    titleSTRINGOptional fixed title, e.g. 'Original Title (Jazz Cover)'. Empty: the writer proposes one.

    Outputs (4)

    NameTypeDescription
    briefPLENIO_BRIEFThe cover brief.
    brief_textSTRINGThe brief as readable text.
    use_source_lyricsBOOLEANTrue for original-lyrics covers (lyrics from the ASR).
    instrumentalBOOLEANTrue for instrumental covers.