FL YuE2 · Training Models
Two dropdowns with one option each, and why that's fine
- YUE2_TRAINING_ASSETS
What it is and why you'd reach for it
Training Models is the least interesting node in the pack and the one you can't skip. Its job is to make sure all the weights the training pipeline needs are actually on your disk, at the revisions the pack was validated against, before anything expensive starts.
If you've done image LoRA training, you know the shape: a config that points at a base checkpoint, a VAE, an encoder, plus whatever extra you need. Here that's a single node that resolves all of it and hands downstream nodes a bundle:
Training Models → Prepare Dataset (assets)
→ LoRA Trainer (assets)
Queue it once and the downloads happen. Place it and don't queue it and nothing happens at all - no downloads occur at ComfyUI startup, and none occur while you're just looking at the graph.
The dropdowns, and the joke
Both tokenizer_head and regularizer are enums with exactly one entry each: tokenizer_head_joint_v4.pt and minted_regularizer_pack.pt. Yes, a dropdown with one choice looks silly. It's a versioning decision: the pack pins specific artifacts, and the enum makes the choice explicit and future-proof rather than hardcoding a filename you can't change later. Choosing anything the code doesn't know raises "Unknown AR training asset selection" rather than silently loading something else.
download_missing is the only real control, default true. Set it to false for a strictly offline setup - that turns a missing asset into a clear Missing …; enable download_missing failure instead of a stalled transfer over hotel wifi.
Output is YUE2_TRAINING_ASSETS, which carries paths for the base model, the MERT encoder, the tokenizer head, the regularizer pack and the pretrained acoustic companion. Wire it into both Prepare Dataset and the LoRA Trainer.
What it actually fetches
When queued with downloads enabled, this node resolves:
models/yue2/YuE2-3Bandmodels/yue2/YuE2-Vae- the pinned public base weights (the same ~7.8 GB the inference side needs, plus the decoder).models/yue2/MERT-v2-FullSong- the frozen music encoder that Prepare Dataset listens through.models/yue2/training_assets/tokenizer_head_joint_v4.pt- the v4 head that turns MERT features into training tokens.models/yue2/training_assets/minted_regularizer_pack.pt- the precomputed pack of generated music used as regularizer examples.models/loras/YuE2/pretrained/nar_lora_joint_v4.safetensors- not a download into a model folder so much as a conversion. The tokenizer ships with a pretrained acoustic companion LoRA; the pack downloads the upstream file, verifies every tensor shape against your base weights, and rewrites it into FL YuE2's own safetensors format. It's used to render audio and is never trained by these nodes.
Every transfer resumes from a partial file and is checksum-verified. Existing valid files are used as-is, and the pack's validation includes resolving the assets with networking disabled - so once it's all there, offline training is a supported path, not a hope.
The alignment weights for optional lyric alignment are the exception: they're fetched by Prepare Dataset, only when you switch align_lyrics on.
Install
Install the pack (Manager, search ComfyUI-FL-YuE2, or clone), then install the training requirements - the downloads are only half of what training needs:
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
python -m pip install -r requirements-training.txt
Restart ComfyUI with the same interpreter. Then queue a run that includes this node with download_missing enabled - that's the trigger. Plan for bandwidth: base weights plus decoder plus MERT is a multi-gigabyte pull, and it happens once.
Nothing here needs a GPU. The GPU requirement (NVIDIA, BF16, a current ComfyUI build) bites when you actually prepare or train.
Where people get burned
"I placed the node and nothing downloaded." Downloads fire on queue, not on graph load. Run the graph.
Corrupt asset errors are literal. The message names a file - delete exactly that file, keep download_missing on, queue again. Partial transfers are kept deliberately so the retry resumes rather than restarting from zero.
An external model root needs registering. If your models live on another drive, add a yue2 entry to extra_model_paths.yaml. Already-installed models are searched before anything is downloaded, so a correctly registered root means no redundant multi-gigabyte transfer - but a wrongly registered one means the pack cheerfully downloads a second copy into the default location.
Don't mix revisions. The pack pins base weights to specific commits, and the tokenizer head to a specific v4 revision. If you swap in a tokenizer from an older YuE2 experiment, Prepare Dataset will produce tokens for a model you aren't training. Saved runs from before v4 aren't retokenized automatically either - they keep working, they just aren't the same thing.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| tokenizer_head | COMBO | Encoder head used to convert MERT audio features into AR training tokens. Saved under models/yue2/training_assets. | |
| regularizer | COMBO | Precomputed generated-music examples mixed with your recordings to help preserve the base model. | |
| download_missing | BOOLEAN | true | Download missing training models into ComfyUI model folders when queued. Disable for offline loading. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| YUE2_TRAINING_ASSETS | YUE2_TRAINING_ASSETS | — |