VRGDG_LyricsEmotionMerger
Giving Every Lyric Line a Mood Before It Hits the Model
- lyrics_with_emotions
VRGDG_LyricsEmotionMerger is the node that decides how a lyric line is performed. It takes two strings - the lyrics themselves and a description of the emotional tone - and merges them into a single text output that carries both.
The name tells you most of the story: lyrics_text in, emotion_text in, lyrics_with_emotions out. What it does internally is essentially a structured join - it pairs each lyric segment with the emotional framing you supplied, so the result reads something like a scene direction sheet rather than raw words. That output is what you feed downstream into the prompt creator and, eventually, the video sampler, so the model doesn't just know the character says "I'm falling" - it knows the feeling is desperate, whispered, tearful rather than joyful, shouted.
The one input that matters
There are only two inputs and neither has a default, which tells you this node expects to be fed by something earlier in the graph rather than hand-typed every run:
lyrics_text- the transcribed lyric lines, typically the output of an extractor likeVRGDG_ManualLyricsExtractoror a cleaned lyric segment.emotion_text- the emotional arc for those lines. In this pack's workflow this often comes from an LLM pass that analyzed the song, or fromVRGDG_LyricsEmotionMerger's siblings that tag per-line moods.
Output is the single merged lyrics_with_emotions string.
Why it earns its place
Video models are famously bad at reading between the lines of a prompt, and music-video generation is where that bites hardest: a sad lyric and a happy lyric in the same song will otherwise get nearly identical visual treatment, because the model has no signal for the difference. By making the emotion part of the text that reaches the sampler, you give the visual model a lever it can actually use - lighting goes cold and dim for the melancholy line, warm and open for the release. It's cheap, deterministic text surgery that changes the output more than a dozen extra prompt adjectives would.
Install
It ships in comfyui-vrgamedevgirl:
cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl
Restart ComfyUI; you'll find it under the VRGDG category. ComfyUI Manager works too - search vrgamedev. No extra model files are needed for this node; the pack's requirements (kornia, librosa, imageio) exist for the audio and video processing nodes around it.
Honest note
The merge itself is simple string work - don't expect fancy sentiment analysis here. The intelligence lives upstream, in whatever produced your emotion_text. Feed it a flat string like "neutral" for everything and the output will be flat; feed it a real emotional arc and the difference shows up in the generated frames. Also worth knowing: the README for this pack is thin and doesn't document most of the lyric nodes, so treat the tooltips as the source of truth and experiment with the format of emotion_text until the output reads the way your prompt creator expects.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| lyrics_text | STRING | — | |
| emotion_text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| lyrics_with_emotions | STRING | — |