Nodes/ComfyUI-FL-YuE2/FL YuE2 · Training Models
ComfyUI Node

FL YuE2 · Training Models

Two dropdowns with one option each, and why that's fine

By filliptm·Created 6 days ago·Updated about 14 hours ago· 96
FL YuE2 · Training Models
    • YUE2_TRAINING_ASSETS
    tokenizer_head
    regularizer
    download_missingtrue

    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-3B and models/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.

    CategoryFL YuE2/Training

    Inputs (3)

    NameTypeDefaultDescription
    tokenizer_headCOMBOEncoder head used to convert MERT audio features into AR training tokens. Saved under models/yue2/training_assets.
    regularizerCOMBOPrecomputed generated-music examples mixed with your recordings to help preserve the base model.
    download_missingBOOLEANtrueDownload missing training models into ComfyUI model folders when queued. Disable for offline loading.

    Outputs (1)

    NameTypeDescription
    YUE2_TRAINING_ASSETSYUE2_TRAINING_ASSETS