SongBloom Lyric Generator
The node that writes your lyrics (DeepSeek or templates), pre-formatted for SongBloom
- generated_lyrics
Most people don't want to hand-write SongBloom's tag format - they want to describe a song and have the lyrics appear. That's this node. You give it a prompt ("write a nostalgic song about youth"), a style, a mood, a language, and it returns ready-to-sing lyrics with all the [verse] / [chorus] / [intro] structure already in place.
The interesting bit is that it has two entirely different brains, and you should know which one you're using. By default use_deepseek is on: it builds a system prompt from your style/mood/language choices and sends the request to DeepSeek's API, then runs the result through format cleanup and validation. That's the quality path - a real LLM writing real lyrics. But it needs an API key, which is where people stall. Flip use_deepseek off and it falls back to a built-in template assembler: it picks section-by-section fill-in lines from a local library keyed to your language and style. No network, no key, no cost - and the lyrics are predictable and generic, because that's what template generators are.
Inputs that matter
The required row is all vibe-setting:
- text_prompt - what the song is about.
- style - 12 options (pop, rock, ballad, folk, electronic, jazz, classical, hip-hop, country, blues, r&b, reggae).
- mood - 12 options (happy, sad, nostalgic, energetic, peaceful, romantic, melancholic, angry, hopeful, mysterious, dramatic, playful).
- language - chinese, english, mixed, japanese, korean, spanish, french.
- structure - simple / standard / complex / custom.
- length - short → very_long.
- format_style - traditional / modern / minimal / detailed (author's tooltip: "lyric format style").
The optional row is where the DeepSeek config lives - use_deepseek, deepseek_api_key, deepseek_model (only DeepSeek-V3, internally mapped to deepseek-chat), deepseek_system_prompt (the default is a full Chinese prompt instructing strict format output - you can override it), plus custom_tags, theme_keywords, user_requirements, rhyme_scheme, line_length, repetition_style, emotional_intensity, and target_audience. The tooltips on those are the author's own descriptions - rhyme patterns like aabb/abab, target audience, etc. The extra tuning fields mostly matter when DeepSeek is on, since they get folded into the context.
Output is a single generated_lyrics (STRING) - ready for SongBloomLyricProcessor or straight into the generator.
The API key question
DeepSeek keys are resolved in a priority order: node input → DEEPSEEK_API_KEY env var → DeepseekAP-config.json in the pack root → deepseek.api_key in config.yaml. If no key is found anywhere, the DeepSeek path returns the raw prompt with a message saying so. For $5-ish you'll get a long way on DeepSeek-chat, but note the obvious: this is a paid external API bolted onto a local-generation pack, so it inherits every downside - you need network, you're sending lyrics to a third party, and a 400/401 usually means a bad key.
Install
Same pack install: search "SongBloom_ComfyUI" in Manager, or
cd ComfyUI/custom_nodes
git clone https://github.com/xuchenxu168/SongBloom_ComfyUI
cd SongBloom_ComfyUI
pip install -r requirements.txt
Restart, and the node is under SongBloom/Lyrics. If your songs keep coming out garbled, remember the English-vs-Chinese bias in the model itself - the lyrics this node writes may be flawless while SongBloom still sings them wrong.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| text_prompt | STRING | 写一首关于青春回忆的歌曲,包含对过去美好时光的怀念和对未来的憧憬 | — |
| style | COMBO | pop | 12 options: pop, rock, ballad, folk, electronic, jazz, +6 |
| mood | COMBO | nostalgic | 12 options: happy, sad, nostalgic, energetic, peaceful, romantic, +6 |
| language | COMBO | chinese | 7 options: chinese, english, mixed, japanese, korean, spanish, +1 |
| structure | COMBO | standard | 4 options: simple, standard, complex, custom |
| length | COMBO | medium | 4 options: short, medium, long, very_long |
| format_style | COMBO | traditional | 歌词格式风格:traditional/modern/minimal/detailed |
| use_deepseekopt | BOOLEAN | true | — |
| deepseek_api_keyopt | STRING | — | |
| deepseek_modelopt | COMBO | DeepSeek-V3 | 1 options: DeepSeek-V3 |
| deepseek_system_promptopt | STRING | ## 角色设定 (System Role): 你是一名专业的歌词专家。你的任务是根据提示词,谱写一首非常专业的精湛的歌词,歌词要丰富多彩,情真意切。 ## 任务说明 (User Instruction): 请仔细观察提供的歌词提示内容,并谱写一段详细、具体、富有创造性的符合歌词格式的高质量歌词, ## 输出要求 (Output Requirements): ** **语言**: 严格使用中文。 ** **格式**: 严格按照下面示例格式谱写歌词,严格按照格式,不要分段。 ## 只生成歌词,无任何其它的词 歌词严格按照下面的格式: [intro] [intro] [intro] [intro] [intro] [intro] [intro] [intro] [intro] [intro] , [verse] 高质量音频生成测试. 使用优化参数设置. CFG系数提高到三点零. 步数增加到一百步 , [chorus] 清晰的音质表现. 丰富的音乐细节. 每个音符都精准. 高保真音频体验 , [inst] [inst] [inst] [inst] [inst] [inst] [inst] [inst] [inst] [inst] [inst] [inst] , [verse] 降低随机性参数. 提高生成稳定性. 更长的推理时间. 换来更好的质量 , [bridge] 当音乐响起的时候. 每一个细节都清晰. 从低音到高音频段. 都有完美的表现 , [chorus] 清晰的音质表现. 丰富的音乐细节. 每个音符都精准. 高保真音频体验 , [outro] [outro] [outro] [outro] [outro] [outro] [outro] [outro] [outro] [outro] [outro] | — |
| custom_tagsopt | STRING | 自定义标签,用逗号分隔,如:intro,verse,chorus,bridge,outro | |
| theme_keywordsopt | STRING | 主题关键词,用逗号分隔 | |
| user_requirementsopt | STRING | 用户特殊要求,如:每行字数限制/押韵要求/特定词汇等 | |
| rhyme_schemeopt | COMBO | none | 押韵模式 |
| line_lengthopt | COMBO | medium | 每行长度 |
| repetition_styleopt | COMBO | moderate | 重复风格 |
| emotional_intensityopt | COMBO | medium | 情感强度 |
| target_audienceopt | COMBO | general | 目标受众 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| generated_lyrics | STRING | — |