Nodes/ComfyUI_FL-SongGen/FL Song Gen Lyrics Formatter
ComfyUI Node

FL Song Gen Lyrics Formatter

Lyrics that actually parse — FL SongGen Lyrics Formatter

By filliptm·Created 8 months ago·Updated 4 months ago· 62
FL Song Gen Lyrics Formatter
    • formatted_lyrics
    intro_typeintro-short
    outro_typeoutro-short
    verse_1
    chorus_1
    instrumental_1none
    verse_2
    chorus_2
    bridge
    instrumental_2none
    verse_3
    chorus_3
    raw_lyrics

    SongGen doesn't take freeform lyrics. It wants a specific format: sections tagged like [verse] and [chorus], separated by ; (space-semicolon-space), with each phrase separated by a period. Write that by hand a few times and you'll eventually stick a comma where it wants a period, or drop a space around a separator, and get a song where the structure falls apart. This node exists so you don't have to think about any of that.

    How it works

    It's a pure text assembler - no model, no GPU. You fill in the section boxes, and it concatenates them into the exact format the model expects, cleaning as it goes:

    • Structure - intro_type and outro_type (required) pick the instrumental bookends: none, -short, -medium, or -long. Optional instrumental_1 and instrumental_2 slots insert instrumental breaks after the first chorus and after the bridge.
    • Sections - verse_1 through verse_3, chorus_1 through chorus_3, and a bridge. Each text box is multiline, and every line becomes a phrase, joined with a period. Write four lines in the verse box and you get four periods.
    • Cleaning - the node strips punctuation the model's training data doesn't have: commas, apostrophes, quotes go away. Your "don't" becomes "dont" - which sounds wrong to you and completely normal to the model.
    • raw_lyrics - the escape hatch, same pattern as the Description Builder: fill it in and it overrides all the section fields, passed through verbatim. Paste a complete pre-formatted lyric string here and skip the boxes.

    The output is one STRING, formatted_lyrics, which wires into the lyrics input on FL SongGen Generate, Style Transfer, or Auto Style.

    The format it's hiding from you

    The grammar underneath is worth knowing anyway, because raw_lyrics exists and you'll eventually paste into it: sections joined by ;, phrases joined by periods, and instrumental tags like [intro-short] / [inst-short] / [outro-short] that take no lyrics at all. The cardinal rule, straight from the README: don't put words on an instrumental tag. [inst-short] Some guitar solo is the kind of thing the model quietly chokes on.

    A complete song built this way looks like:

    [intro-short] ; [verse] First line. Second line. Third line ; [chorus] Hook line one. Hook line two ; [outro-short]
    

    The README ships a full worked example - verses, repeated chorus, an [inst-short] break, outro - and it's a good template for your first song.

    Install

    ComfyUI Manager (search "FL Song Gen"), or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/filliptm/ComfyUI_FL-SongGen.git
    cd ComfyUI_FL-SongGen
    pip install -r requirements.txt
    

    Restart ComfyUI. Like its sibling Description Builder, the node itself is dependency-free - but the generation nodes it feeds pull in the pack's heavy stack, so install it all and don't skip the requirements step.

    Troubleshooting

    • The song ignores my structure - check the box contents. If a section box is empty it's skipped entirely, so a "missing" verse is usually a blank verse_2.
    • I already have lyrics in the right format - drop them in raw_lyrics and everything else is ignored.
    • Sections run together - make sure each verse/chorus is its own box; the separator logic only fires between boxes, not inside one.
    • Punctuation mysteriously vanished - that's the cleaner working as intended. If you need an apostrophe, raw_lyrics is the way around it.
    CategoryFL Song Gen

    Inputs (12)

    NameTypeDefaultDescription
    intro_typeCOMBOintro-shortInstrumental intro duration
    outro_typeCOMBOoutro-shortInstrumental outro duration
    verse_1optSTRINGFirst verse lyrics. Each line becomes a phrase.
    chorus_1optSTRINGFirst chorus lyrics.
    instrumental_1optCOMBOnoneInstrumental break after first chorus
    verse_2optSTRINGSecond verse lyrics.
    chorus_2optSTRINGSecond chorus lyrics.
    bridgeoptSTRINGBridge section lyrics.
    instrumental_2optCOMBOnoneInstrumental break after bridge
    verse_3optSTRINGThird verse lyrics (optional).
    chorus_3optSTRINGFinal chorus lyrics.
    raw_lyricsoptSTRINGOR: Provide pre-formatted lyrics directly (overrides above fields)

    Outputs (1)

    NameTypeDescription
    formatted_lyricsSTRING