Nodes/ComfyUI_DiffRhythm_MW/MultiLine Lyrics
ComfyUI Node

MultiLine Lyrics

The Boring Lyrics Node That Makes DiffRhythm Usable

By billwuhao·Created about a year ago·Updated about a year ago· 154
MultiLine Lyrics
    • lyrics
    lyrics[00:12.56]后来 [00:14.58]我总算学会了 [00:17.81]如何去爱 [00:19.37]可惜你 早已远去 [00:22.21]消失在人海 [00:25.42]Through tears I understood too late [00:32.11]Some souls slip away beyond fate's gate [00:39.86]White petals of gardenia [00:46.32]Drift onto my blue pleated skirt [00:51.95]I love you your whisper fell [00:58.96]I bowed my head [01:00.97]Breathing your lingering scent [01:05.40]That eternal summer night [01:09.35]Seventeen years young [01:12.20]When your lips found mine [01:18.23]Now through passing years [01:21.79]Each wistful sigh [01:24.91]Recalls starlight in your eyes [01:30.91]Why did young love's promise

    Let's be honest about what this node does: it takes a string, strips the whitespace off it, and hands it back. That's the entire mechanism - MultiLineLyricsDR is a pass-through with zero math in it. It's also the difference between DiffRhythm being fun and DiffRhythm being a pain in the ass, because it's the part that gives you a proper place to edit the lyrics that DiffRhythmRun will sing.

    Why a pass-through node exists

    DiffRhythmRun accepts lyrics through an input literally named lyrics_or_edit_lyrics - a plain text field buried inside a node that's already carrying a style prompt, a model dropdown, and a dozen sampler settings. Your lyrics are the thing you'll edit ten times per song, and there's a good chance they're twenty lines long. Cramming that into a packed node is how you get a graph nobody can read.

    This node gives the lyrics a home on the canvas: a big multiline box you can expand, a STRING output that wires straight into DiffRhythmRun's lyrics input, and - the useful trick - a spot you can swap out when you want to A/B two versions of a verse without touching the rest of the workflow.

    The format is the whole game

    The reason this pack even ships a dedicated lyrics node is that DiffRhythm doesn't read plain text. It reads LRC: every line starts with a timestamp, like the default example's [00:12.56]后来. The parser inside the pack reads that time, converts it to seconds, and tells the model when in the song that line starts. Get the format right and the vocals land on the beat; get it wrong and you get lyrics that drift, or worse, lyrics that vanish.

    Three rules that matter, straight from how the parser works:

    • Every line needs its [mm:ss.xx] prefix. Lines without a parseable timestamp are silently skipped - no error, your line just never gets sung. Don't leave plain text in the box.
    • Timestamps must be ascending and fit inside the song. The 95-second models drop any line starting after their max length, and trim the final line regardless.
    • Keep each line to a line. Multi-line lyrics per timestamp confuse the alignment.

    It handles mixed Chinese and English fine - that's a genuine strength of the DiffRhythm pipeline, whose tokenizer was built for exactly that.

    Setting it up

    There's nothing separate to install. The node ships in the same ComfyUI_DiffRhythm pack as DiffRhythmRun, so if you got that working, this one's already there. Clone the pack or grab it from ComfyUI Manager (search "DiffRhythm"), and add the node from the 🎤MW/MW-DiffRhythm category. Wire its lyrics output into DiffRhythmRun's lyrics_or_edit_lyrics input and you're done - no model files involved, since this node never touches a model.

    What it won't do

    It won't write lyrics for you. The pack expects you to show up with text already in hand - that's why the field defaults to a full example song. If you're starting from nothing, grab an LLM to draft something with timestamps, or write the timestamps yourself and let the model fill in the singing. And don't expect it to force timestamps onto raw text you paste in; paste plain lyrics into a workaround node that adds [00:00.00]-style times, or just add them manually.

    It's not the node you'll brag about. It's the node that makes the node you brag about usable - which, in a 10,000-part ecosystem where half your time goes to plumbing, is a perfectly respectable job.

    Category🎤MW/MW-DiffRhythm

    Inputs (1)

    NameTypeDefaultDescription
    lyricsSTRING[00:12.56]后来 [00:14.58]我总算学会了 [00:17.81]如何去爱 [00:19.37]可惜你 早已远去 [00:22.21]消失在人海 [00:25.42]Through tears I understood too late [00:32.11]Some souls slip away beyond fate's gate [00:39.86]White petals of gardenia [00:46.32]Drift onto my blue pleated skirt [00:51.95]I love you your whisper fell [00:58.96]I bowed my head [01:00.97]Breathing your lingering scent [01:05.40]That eternal summer night [01:09.35]Seventeen years young [01:12.20]When your lips found mine [01:18.23]Now through passing years [01:21.79]Each wistful sigh [01:24.91]Recalls starlight in your eyes [01:30.91]Why did young love's promise

    Outputs (1)

    NameTypeDescription
    lyricsSTRING