YuE2 ABC Score Input
The Simplest Node in the Pack, and You Still Need It
- abc
ABC Score Input is a multiline text box that outputs a string. That's it. One input, one output, no models, no devices, no runtime. If this were the only node in a pack you'd wonder why anyone shipped it.
It exists because of a genuinely annoying design detail elsewhere: Text Encode's abc input is forceInput. ComfyUI won't give you a text field for it, only a socket. Without this node you'd have no place to paste hand-written notation into the graph - you'd be stuck either transcribing a real recording or accepting whatever the model planned for you.
So this is the paste box. Unglamorous, load-bearing.
Why you'd want to write ABC by hand
YuE2's distinguishing feature over the rest of the open music stack is that it plans symbolically before it makes sound. A score, supplied as ABC text, conditions a new performance. That gives you a control axis nothing else in local music generation really offers: write the notes you want, hear them performed.
Two ways in. Transcription from an existing recording (SheetSage2 Transcribe), or notation you write or edit yourself. This node is the second path, and the pack's emphasis that you should edit deliberately is well placed - change pitches, durations, harmony or tempo and you'll hear each one; mash random edits and you'll hear noise and blame the model.
example_workflows/03-edited-abc-score.json contains a short hand-written demonstration composition in this node. Open it, look at the structure, then start editing. It's the least intimidating introduction to the format available.
The notation, briefly
YuE2 wants native two-voice ABC: a Vocal part and an Ins part, as described in the upstream ABC editing guide. This is not "any ABC file from the internet". A tune you grab from an ABC archive will usually need its voices relabelled and its headers cleaned up before the model does anything useful with it.
Also worth knowing before you spend an evening on a score: supplied ABC requires the planning mode to be full or melody in Text Encode. Leave cot on off and your carefully written notation is silently ignored while the model generates something entirely unrelated.
Wiring
abc (STRING) → Text Encode's abc input → then Generate Music, or the staged chain. That's the whole graph fragment.
One subtlety: if you've just generated a plan and you like it, don't take Generate ABC's readable abc output, paste it here, and re-submit. That retokenizes the text and produces a different composition. To hold a plan exactly, wire the plan output straight into Semantic Tokens instead. This node is for when you actually intend to change the notes.
Install
It comes with the pack, so:
cd ComfyUI/custom_nodes
git clone https://github.com/jeankassio/ComfyUI_YuE2
cd ComfyUI_YuE2 && sh setup-runtime.sh && sh scripts/download-models.sh && sh convert-models.sh
Restart ComfyUI; it appears under audio/YuE2 Official. This node itself has no dependencies at all - you can add it to a canvas and type into it before the runtime is installed. It just won't do anything until the stage nodes downstream can launch.
Common problems
The failure mode is always indirect. Nothing errors here; it errors two nodes later. Empty abc means the request goes out without a score, which is legal and produces a normal generation - so a "my score did nothing" complaint is usually an empty box, a cot=off, or notation the parser quietly skipped.
If you're pulling a score from a transcription and just want a different arrangement rather than a rewrite, you don't need this node at all - wire Transcribe's abc output directly into Text Encode.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| abc | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| abc | STRING | — |