AceStepGemini_Lyrics
The Budget Songwriter in the Pack
- lyrics
This is the lyrics node to start with if you don't want to spend money on your first ACE-Step experiments. AceStepGemini_Lyrics hits Google's generativelanguage.googleapis.com API with a free-tier-eligible key, and Google's free tier is still generous enough that you can generate hundreds of lyric sheets before hitting a wall. You can be running it five minutes after creating a key at aistudio.google.com.
How it differs from the other lyrics nodes
Small but worth knowing: its primary input is called style, not text - the placeholder reads "Music style or style prompt (e.g., Synthwave with female vocals)". Same idea, slightly different framing, and it plays nicely with the pack's AceStepPromptGen output if you want to paste a full style template in. Everything else is the standard family contract: api_key, model, max_tokens (1024 default), seed, instrumentality_balance, and a lyrics STRING output formatted with production tags ACE-Step understands.
Under the hood it's the same urllib call the rest use, but with Gemini's generateContent endpoint and temperature: 0.9, top_p: 0.95, top_k: 40 baked in. It also runs the output through a cleanup pass that normalizes stray parentheses/brackets and strips markdown fences - a small nicety the other nodes don't bother with.
Model choices
The dropdown lists 10 models, all Gemini 2.5/2.0-era (the node's list is a snapshot; it changes when the pack updates). gemini-2.5-flash is the sensible default - fast, capable, and it's the one that keeps your free tier from evaporating. gemini-2.5-pro is the quality pick when you're making something you actually care about. The -lite variants are for churning out lots of drafts; gemini-1.5-* are legacy and not worth reaching for.
Gotchas
- The free tier rate-limits aggressively during peak times - a burst of queueing is normal, not a broken node.
- Like every node in the family, the API key is a node input, so it rides along in saved workflow JSON. Watch what you share.
- Errors and empty responses come back as the lyrics string (e.g.
[Gemini] Empty response.), so glance at the node output before blaming your workflow.
Install: ComfyUI Manager (search "JK AceStep Nodes"), or
cd ComfyUI/custom_nodes
git clone https://github.com/jeankassio/JK-AceStep-Nodes.git
restart, done. The output wires into your ACE-Step text conditioning exactly like the paid providers' nodes - and for zero dollars, that's a very good deal when you're still figuring out what makes the model sing.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| style | STRING | — | |
| api_key | STRING | — | |
| model | COMBO | 10 options: gemini-2.5-flash, gemini-2.5-flash-latest, gemini-2.5-flash-lite, gemini-2.5-flash-lite-latest, gemini-2.5-pro, gemini-2.5-pro-latest, +4 | |
| max_tokens | INT | 1024256–4096 | — |
| seed | INT | 00–18446744073709550000 | — |
| instrumentality_balance | COMBO | Balanced | 5 options: Pure Instrumental, Very Instrumental, Balanced, Vocal Focused, Vocals Only |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| lyrics | STRING | — |