FL YuE2 · Audio to Audio
Run the adapter you trained, without the dataset
- audio
- adapter
- AUDIO
This is the node the whole paired-adapter detour exists for: feed it a recording, get back a recording that's been pushed toward what your adapter learned. Low-pass to bright, dry to wet, one stem to a fuller mix - whatever pairing you tortured your GPU with. FL YuE2 · Audio to Audio sits in the plain FL YuE2 category next to the inference nodes, not in /Audio Training, because that's exactly what it is: inference. No dataset, no optimizer state, no resume.pt. Just a source file and a package.
If you've only used this pack for text-to-song, the mental model to carry over is that YuE2 is two models glued together - an autoregressive planner that writes structure and an acoustic decoder that renders audio. The adapter path conditions that decoder on continuous audio from your source instead of scoring a song from lyrics and style. Which is why the style prompt matters here too: this is a generative model with a caption, not a filter with a knob.
What it does
You give it audio (one finite mono or stereo recording), and it writes that waveform to a temporary 48 kHz FLAC, hands it to a worker subprocess, and reads back a freshly generated FLAC as an ordinary ComfyUI AUDIO dict. Before generating, the worker verifies the base model and the package hashes against the adapter's manifest.json, then runs from the original source recording plus your style/lyrics. It does not need the training data, and it does not download anything - if the base YuE2 assets aren't already in your model folders, inference fails rather than fetching them.
The output is AUDIO, so it wires into anything in core ComfyUI: Preview Audio to listen, Save Audio to keep the file.
Inputs that matter
adapter_file is a dropdown that the node builds by scanning models/loras/YuE2_audio/**/step-*/manifest.json at load time, plus a literal none entry. The optional adapter input, when connected straight from the trainer, takes precedence over the dropdown - that's your "train and immediately audition in one queue" path. Without either, you get an error, so copy the whole step folder, not one .safetensors.
style is the target description and defaults to instrumental electronic music. The trainer tooltip's advice is the good kind of boring: for your first comparison, use the exact caption the pair was trained with, so you're looking at the adapter and not at prompt drift. lyrics is optional and usually blank for instrumental work.
seed and sampling_steps (default 32, range 4–100) control the acoustic synthesis. Fix the seed if you want to A/B two checkpoints; nothing else about the result will be comparable if you don't.
condition_scale is the interesting one, and it only applies to adapters trained in conditioned mode. 1 uses the trained source conditioning directly - that's the training baseline, start there. 0 removes the source latent signal entirely (semantic tokens still come from your source, so it doesn't go silent). Anything in between blends zero-source and conditioned velocities and requires two decoder passes, meaning roughly twice the time for one slider nudge.
Install
Same pack, same steps. Manager → search ComfyUI-FL-YuE2; or:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI-FL-YuE2.git
cd ComfyUI-FL-YuE2
python -m pip install -r requirements.txt
requirements.txt is genuinely light (tiktoken, safetensors, filelock) - the training extras are not needed for inference, but the YuE2 base weights are. Queue a Load Models node once to pull ~7.8 GB into ComfyUI/models/yue2/YuE2-3B/ and YuE2-Vae/. Needs a BF16-capable NVIDIA GPU and a recent ComfyUI.
Where people get burned
The dropdown is stale. adapter_file is enumerated when the node class loads, so a package you copied in from another machine isn't in the list until you restart ComfyUI (or at least refresh node definitions). Same for the trainer output if you moved folders around.
Batching a source. The node rejects anything that isn't a single mono/stereo recording with finite samples. Sleepy upstream batches of 4 are a hard no here.
Expecting an effect pedal. The author is unusually blunt about this in the docs: MERT and the token compression throw away detail, the validation showed the intended high-frequency band getting suppressed without the amplitude and fine spectrum matching the target, and previews must be judged by ear. If you need sample-exact processing, use an audio filter. If you need "sounds like the thing I trained on", this is the node.
Ignoring the license. The pack's code is Apache 2.0, but YuE2's weights are CC BY-NC 4.0 - non-commercial, separately from the source. Fine for testing and personal work; read it before anything paid.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| adapter_file | COMBO | Paired adapter package under models/loras/YuE2_audio. A connected trainer package takes precedence. | |
| style | STRING | instrumental electronic music | Desired target style; use the training caption style for the first comparison. |
| lyrics | STRING | Optional target lyrics. | |
| seed | INT | 420–4294967295 | Acoustic noise seed. |
| sampling_steps | INT | 324–100 | Acoustic synthesis steps. |
| adapteropt | YUE2_AUDIO_ADAPTER | — | |
| condition_scaleopt | FLOAT | 1.00–5 | Source latent guidance for conditioned adapters. 1 is the training baseline; values other than 1 require two decoder passes. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AUDIO | AUDIO | — |