YuE2 渲染乐谱计划
The checkbox that quietly ignores your edits
- model
- plan
- audio
- result
- metadata
YuE2RenderPlan turns a plan from YuE2 生成乐谱计划 into audio. Two inputs, one boolean, and one behaviour that has probably cost more people more time than anything else in this pack: leaving exact_original_plan on makes the edit box next to it do nothing at all.
The mechanism, because this is the whole article
The node only attaches your text to the request when you uncheck the box. Internally the worker computes exact = exact_original_plan AND no abc supplied, so:
- exact_original_plan = true (default) - replay the saved plan. The worker reloads the stored plan tokens and prefix and regenerates from that exact structure, using the plan's original request and seed. Your typed text never enters the request. This is the "give me that song again" button.
- exact_original_plan = false - a fresh generation. Your edited_abc becomes the score; if you left it empty, it falls back to the plan's own ABC. Candidate count is forced to one. This is the "I fixed the melody, sing it" button.
The pack's own guide says it plainly: with exact restore checked, the text box does not override the saved plan. So if you paste new chords, queue, and get an identical song, you didn't hit a caching bug. Check the box's state.
One more thing it does before either path: verify the plan's hash manifest against the plan file, the token array and the prefix. Edit files inside the job folder by hand and this node refuses rather than quietly producing a song that doesn't match the plan you think you're rendering. Your edits belong in the text field.
Inputs and outputs
Required: model (from YuE2 模型服务), plan (from YuE2 生成乐谱计划, a YUE2_PLAN handle), exact_original_plan, edited_abc. That's it - no seed, no cfg, no candidate count, because all of those are baked into the plan or the re-render path.
Outputs: audio (48 kHz stereo → Preview/Save Audio), result (for YuE2 导出工件), metadata (job JSON, including the truncation flag and stage timings).
Why split plan and render at all
Because plan-and-render is a two-pass workflow with a checkpoint in the middle. Generate five plans cheaply, listen to none of them, compare the ABC as text, keep the one whose chorus modulation you liked, and render only that. The other article in the shipped workflow set - 02_先计划再渲染.json - is precisely this pair, so load it and watch it before you extend anything.
It's also the honest answer to the "the song was almost right" problem. Re-rendering from a plan with a tweaked section costs one acoustic pass, not another creative roll of the dice.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-YuE2-T8.git
Run install_runtime.bat once from the node directory, restart ComfyUI, and run YuE2 模型服务 first - the render node needs the generation capability live. Registry: comfy node install yue2-t8. Windows + NVIDIA, 24 GB VRAM and ~60 GB disk recommended; the render pass is the same full pipeline as generating a song, so it costs about what a song costs.
Gotchas worth knowing up front
An edited ABC is a new song. Unchecking the box doesn't patch the existing render; it rebuilds from the score, plan included, and it does so with one candidate. Expect a different performance even if the notes are identical.
Truncated plans stay truncated. Re-rendering from a plan that was already flagged as cut off at the context ceiling reproduces the cut-off ending. Go back a step and shorten the source lyrics.
Cancellation is cooperative. Interrupting during the acoustic stage can take a moment to land - and if the decode stage is running, longer. That's the worker finishing its current unit of work, not a freeze.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | YUE2_MODEL | — | |
| plan | YUE2_PLAN | — | |
| exact_original_plan | BOOLEAN | true | — |
| edited_abc | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| result | YUE2_RESULT | — |
| metadata | STRING | — |