Nodes/comfyui-minimax-h3-prompt-enhancer-T8/MiniMax Music 3 Prompt & Lyrics Enhancer (T8)
ComfyUI Node

MiniMax Music 3 Prompt & Lyrics Enhancer (T8)

Lyrics, an official Music 3 caption, and the JSON payload — one text-only node

By T8mars·Created 22 days ago·Updated about 18 hours ago· 180
MiniMax Music 3 Prompt & Lyrics Enhancer (T8)
  • provider_config
  • lyrics
  • music_caption
  • music3_payload_json
  • enhancement_report_json
music_idea
lyrics_modeAUTO(有词保留,无词按意图)
lyrics
lyrics_languageAUTO(按用户输入)
target_duration_seconds0
rewrite_modebalanced
quality_mode官方完整(2–4次请求,推荐)
structure_presetAUTO(按风格与时长)
fixed_bpm0
meterAUTO
caption_languageEnglish(官方默认)
caption_target_words0
api_mode贞贞平价小屋(推荐)
ai_workshop_modelgemini-3.5-flash
seed0
lyrics_edit_scopeAUTO(从润色要求识别)
lyrics_edit_sectionVerse(主歌)
lyrics_edit_occurrence0
semantic_profile_mode隐私隔离(不发送歌词给Caption阶段)
stage_cache开启(内存10分钟,推荐)
custom_structure
lyrics_edit_request
constraints_and_exclusions
custom_lyrics_language
key_scale
custom_meter
api_key
custom_model
openai_base_url
manual_lyrics_profile
local_modelQwen3.8-27B-Q4_K_M.gguf
local_context_size32768
local_max_tokens4096
local_think_mode关闭(推荐,速度优先)
local_reasoning_effortmedium
local_unload_policy执行后卸载(推荐)
local_comfy_memory_policyAUTO(显存不足时释放)

MiniMax Music 3 doesn't want a vibe description. It wants a three-part caption - Global Metadata, Vocal Details, Arrangement - written to an official spec, plus your lyrics fed to a separate input. Get that contract wrong and the track comes back generic, or with the wrong sections. This node does the paperwork: it takes one line of musical intent and produces the lyrics, the official caption, and a ready-to-paste JSON payload, in a single pass.

It's the third node in T8mars' pack that shares the "cloud or local LLM" plumbing with the H3 and Seedance enhancers, but it's deliberately narrower. It has no IMAGE, VIDEO or AUDIO inputs - it reads text, thinks about text, and outputs text. It does not generate audio, it does not listen to reference tracks, and if you run it locally it loads the text GGUF only, never the vision projector. That's a feature, not a limitation: the whole job is prompt preparation.

How it works

The node embeds MiniMax's official music-caption-rewriter skill, frozen at a fixed commit - 18 genre indexes and 1000 templates that live in the repo and get hash-verified before any paid request. The quality_mode decides how deep it goes: "official full" runs a router that picks at most 2 genre indexes and at most 3 templates, disclosed in stages (so it never dumps the whole library into one request), which typically means 2–4 LLM calls. The "fast core" mode skips the template layer and just executes the core three-section contract in 1–2 calls.

Lyrics handling is where the node earns its keep. lyrics_mode offers AUTO, generate new, strictly preserve, polish-to-spec, or instrumental. "Strictly preserve" passes your existing lyrics through verbatim, locally, with zero LLM touching them. Polish mode can target a single section - "only fix verse 2" - and if it can't confirm what you meant it stops before you're billed, rather than guessing and charging you. And by default the caption stage never even sees your lyrics text: semantic_profile_mode defaults to "privacy isolation," so the node sends mood, narrative intensity and energy arc instead of your actual lines. The one light aside I'll allow myself: that's more privacy discipline than most music tools shipping today.

The inputs and outputs that matter

You fill music_idea (the only required field - genre, theme, mood, instruments, intent) and pick lyrics_mode. target_duration_seconds, fixed_bpm, meter and structure_preset are soft constraints, all optional; Music 3 doesn't guarantee exact timing anyway. Wire existing lyrics in via the lyrics STRING input if you have them.

The four outputs are the whole story:

  • lyrics → Music 3's input
  • music_caption → Music 3's instructions
  • music3_payload_json → a ready-made {"input": lyrics, "instructions": music_caption} if you're scripting
  • enhancement_report_json → stage timings, request counts, cache hits and warning codes, deliberately stripped of your lyrics, key and template content

Install

Same pack as the H3 enhancer - Manager search "MiniMax H3 / Seedance 2.0 / Music 3 Prompt Enhancer (T8)", or:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-prompt-enhancer-T8.git

Restart, Ctrl+F5. Cloud mode needs nothing extra; local mode runs the same python install_local_qwen.py installer and wants a hefty GPU for reasonable speed (24 GB recommended).

Where people get burned

  • The API key is for the caption/lyrics LLM (the author's seedance.nz or t8star gateways, or your own OpenAI-compatible endpoint), not for the Music 3 audio generation API.
  • "Generate new lyrics" and "polish" are T8's own extensions, clearly labeled unofficial - don't expect the official skill to rewrite your words; the strict-preserve mode is the one that guarantees verbatim.
  • The 10-minute stage cache is in-memory only and keyed per credential - it saves you from re-paying for upstream stages after a crash, but it dies with the ComfyUI process.
  • Instrumental mode sets [Instrumental] and tells the caption not to introduce a singer; if your result still has vocals, that's upstream, not the node lying about it.
CategoryT8/MiniMax Music 3

Inputs (38)

NameTypeDefaultDescription
music_ideaSTRING描述流派、主题、情绪、用途、听感、乐器或编曲意图;这是唯一必填创作文本。
lyrics_modeCOMBOAUTO(有词保留,无词按意图)5 options: AUTO(有词保留,无词按意图), 生成新歌词(T8非官方), 严格保留歌词, 按要求润色(T8非官方), 纯器乐
lyricsSTRING严格保留模式会由本地原样直通,不让 LLM 重新誊写。
lyrics_languageCOMBOAUTO(按用户输入)6 options: AUTO(按用户输入), 中文, English, 日本語, 한국어, Custom(自定义)
target_duration_secondsINT00–300只用于规划歌词密度与段落规模;Music 3 最终音频时长不作精确保证。
rewrite_modeCOMBObalanced3 options: strict, balanced, creative
quality_modeCOMBO官方完整(2–4次请求,推荐)官方完整模式会按官方 Skill 逐级选择最多两个索引、三个模板,并产生 2–4 次 LLM 请求。
structure_presetCOMBOAUTO(按风格与时长)4 options: AUTO(按风格与时长), Verse → Chorus, Verse → Pre-Chorus → Chorus → Bridge, Custom(自定义)
fixed_bpmINT00–300
meterCOMBOAUTO5 options: AUTO, 4/4, 3/4, 6/8, Custom(自定义)
caption_languageCOMBOEnglish(官方默认)2 options: English(官方默认), 中文
caption_target_wordsINT00–1000
api_modeCOMBO贞贞平价小屋(推荐)4 options: 贞贞平价小屋(推荐), 贞贞的AI工坊(文本 LLM), OpenAI兼容接口(备用), 本地 GGUF(llama.cpp / Qwen,离线)
ai_workshop_modelCOMBOgemini-3.5-flash2 options: gemini-3.5-flash, Custom(自定义)
seedINT00–18446744073709550000作为提示词变体标识;供应商 Chat Completions 不保证确定性复现。
lyrics_edit_scopeCOMBOAUTO(从润色要求识别)AUTO 会识别“只改主歌”等自然语言;无法确认范围时会在付费前停止。
lyrics_edit_sectionCOMBOVerse(主歌)9 options: Intro(前奏), Verse(主歌), Pre-Chorus(预副歌), Chorus(副歌), Post-Chorus(后副歌), Bridge(桥段), +3
lyrics_edit_occurrenceINT00–99
semantic_profile_modeCOMBO隐私隔离(不发送歌词给Caption阶段)默认不把歌词正文送到 Caption 阶段;LLM 分析模式会增加隐私暴露并可能增加一次付费请求。
stage_cacheCOMBO开启(内存10分钟,推荐)仅在当前 ComfyUI 进程内保存成功阶段最多10分钟,不落盘;后段失败重跑可避免重复付费。
custom_structureoptSTRING仅在 Custom 结构中使用;填写官方标签,例如 [Intro] [Verse] [Chorus] [Bridge] [Outro]。
lyrics_edit_requestoptSTRING仅润色模式使用。可写 [Verse] 等目标段落;未点名段落由本地保护。
constraints_and_exclusionsoptSTRING
custom_lyrics_languageoptSTRING
key_scaleoptSTRING
custom_meteroptSTRING
api_keyoptSTRING支持外部 STRING;接线值优先。也可使用节点底部的掩码输入。
custom_modeloptSTRING
openai_base_urloptSTRING
manual_lyrics_profileoptSTRING只写宽泛情绪、强度与能量弧,不要粘贴歌词原句。
local_modeloptCOMBOQwen3.8-27B-Q4_K_M.ggufMusic 3 只加载文字 GGUF,不加载 mmproj;递归扫描 ComfyUI/models/LLM 及其任意子目录。
local_context_sizeoptINT327688192–65536
local_max_tokensoptINT4096256–8192
local_think_modeoptCOMBO关闭(推荐,速度优先)2 options: 关闭(推荐,速度优先), 开启(质量优先)
local_reasoning_effortoptCOMBOmedium3 options: low, medium, xhigh
local_unload_policyoptCOMBO执行后卸载(推荐)3 options: 执行后卸载(推荐), 保持驻留, 空闲10分钟后卸载
local_comfy_memory_policyoptCOMBOAUTO(显存不足时释放)2 options: AUTO(显存不足时释放), 不主动释放 ComfyUI 模型
provider_configoptT8_LLM_PROVIDER_CONFIG不连接时完全使用本节点原有字段;连接后使用共享配置,断开即恢复。

Outputs (4)

NameTypeDescription
lyricsSTRING
music_captionSTRING
music3_payload_jsonSTRING
enhancement_report_jsonSTRING