Nodes/VRGameDevGirl Video Enhancement Nodes/VRGDG YuE2 Installer + Settings
ComfyUI Node

VRGDG YuE2 Installer + Settings

One node, two virtualenvs, a pile of weights

By vrgamegirl19·Created about a year ago·Updated about 7 hours ago· 718
VRGDG YuE2 Installer + Settings
    • yue2_config
    • sheetsage2_config
    • status
    • report_path
    target_root
    runtime_modeisolated_process
    yue2_python
    model
    vae
    cache_dir
    devicecuda
    memory_budget_gib24.0
    backendtorch
    quantizationnone
    offload_arfalse
    local_files_onlytrue
    unload_comfy_modelstrue
    verify_hashesfalse
    sheetsage2_python
    sheetsage2_model
    mert_model
    sheetsage2_devicecuda

    ComfyUI's install story for anything audio is bad, and it's bad for a structural reason: music and voice models pin their own Torch and Transformers versions, and ComfyUI pins its own, so dropping yue2 into your ComfyUI environment is a coin flip on breaking your image workflow. This node is the honest answer to that. It's an installer with buttons that builds two separate Python environments outside ComfyUI, downloads the model weights, then quietly turns into a settings node for the rest of your project's life.

    Every other node in this set assumes the work this one does. It's the least interesting node here and the one you're most likely to fight.

    What it actually installs

    Clicking Install Everything does more than pip installing a pack, so it's worth knowing the steps because that's where it fails:

    • Generation side. Downloads the official YuE source (the GitHub main zip, not a git clone), creates a .venv with Python 3.12/3.11/3.10 in that order, installs CUDA-enabled PyTorch 2.10.0 + cu130, then pip install --upgrade . so the yue2 package is importable. Then it pulls m-a-p/YuE2-3B and m-a-p/YuE2-Vae through huggingface_hub.snapshot_download.
    • Cover side. A second virtualenv, SheetSage2-venv, on Python 3.10 or 3.11, with a deliberately older stack - torch 2.8.0 + torchaudio 2.8.0 (cu129), transformers 4.45.2, numpy 1.24.3, plus mir_eval, pretty_midi, mido - and the m-a-p/SheetSage2 and m-a-p/MERT-v2-FullSong snapshots.

    That version split is the whole design. YuE2 and SheetSage2 cannot share one environment, which is why the node keeps two Python paths separate and warns you not to merge them.

    The other buttons are Install Generation + Models, Install Cover Tools + Models (text-to-song only vs. covers too - a good way to skip a several-GB download you don't need), and Verify Existing Installation, which re-checks imports, CUDA, BF16 support and that .safetensors files exist in all four model folders without changing anything. It also checks ffmpeg on PATH and only warns if it's missing.

    Inputs that matter, and the one that isn't an input

    target_root is the one you type: a dedicated folder like D:\Yue2 that holds the source, both venvs, models/, hf-cache/, and the install report. The node refuses drive roots and your home directory, which is a nice touch - it will happily write a lot of gigabytes, so give it a folder it can own.

    Then the settings block that carries through to everything else: runtime_mode (isolated_process unless you enjoy adventure), device, memory_budget_gib, backend, quantization, offload_ar, local_files_only, unload_comfy_models, verify_hashes, plus optional overrides for every path (yue2_python, model, vae, cache_dir, sheetsage2_python, sheetsage2_model, mert_model, sheetsage2_device). Leave all the path overrides blank and they resolve relative to target_root for you. Only fill them in if you have a pre-existing install elsewhere.

    Outputs: yue2_config and sheetsage2_config (the two typed bundles that plug into the generation and transcription nodes), status, and report_path pointing at vrgdg_yue2_install_report.json inside target_root.

    One thing to internalize: installation only happens when you click a button. Queueing the workflow does nothing, which is correct - but it means a workflow that fails with "YuE2 Python executable was not found" is telling you that you never pressed anything.

    Install

    The pack itself goes in the normal way - ComfyUI Manager, search vrgamedev, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl.git
    

    Install the pack requirements with the Python that runs ComfyUI, restart, hard-refresh the browser so the installer's JavaScript shows up, then add VRGDG YuE2 Installer + Settings and use it from inside ComfyUI. The buttons POST to a route the pack registers, which is why they can take ten minutes and still stream progress into the ComfyUI console.

    Prerequisite people trip on: the cover environment needs system Python 3.10 or 3.11 (with the py launcher registered on Windows). The node installs virtualenvs and packages; it does not install system Python, and ComfyUI's bundled Python doesn't count.

    Where it goes wrong

    • Progress lands in the console, not the graph. Long CUDA torch downloads with no UI feedback look like a hang. Watch the terminal.
    • local_files_only defaults to true here and false on the standalone settings node - opposite defaults for the same concept. If a first run fails on a missing snapshot, that's usually why.
    • verify_hashes is off by default and should stay off. Re-hashing every weight before every run costs minutes on slow drives; the installer already verified once.
    • Disk and bandwidth are the real barrier. The pack ships no weights; both model repos come from Hugging Face on first install. That's also the license touchpoint nobody reads: YuE's code is Apache-2.0 but its weights are CC BY-NC 4.0, and SheetSage2/MERT are non-commercial too. Local experimentation, yes; shipping a commercial product, not without reading the terms.

    The pack's own top-level README doesn't mention these nodes at all - the real documentation is Yue2/README.md in the repo and the three workflows under Workflows/Yue2/.

    CategoryVRGDG/Audio/YuE2

    Inputs (18)

    NameTypeDefaultDescription
    target_rootSTRINGDedicated installation folder. Install buttons create/reuse the YuE2 source, environments, models, cache, and report under this root.
    runtime_modeCOMBOisolated_processIsolated process is recommended and prevents YuE2 dependency conflicts with ComfyUI. In-process mode ignores yue2_python and requires compatible packages inside ComfyUI.
    yue2_pythonSTRINGOptional YuE2 Python override. Leave blank to use the isolated environment created under target_root.
    modelSTRINGOptional YuE2-3B model folder or Hugging Face repository override. Leave blank for the model downloaded by this installer.
    vaeSTRINGOptional YuE2 VAE decoder folder or repository override. YuE2-Vae is the recommended listening decoder.
    cache_dirSTRINGHugging Face download/module cache. Leave blank to keep the cache inside target_root.
    deviceCOMBOcudaGeneration device. CUDA is required for practical full-song generation; auto selects CUDA when available; CPU is primarily for diagnostics.
    memory_budget_gibFLOAT24.04–128Total YuE2 memory budget in GiB. YuE2 keeps a 2 GiB reserve. Try 30 on a 32 GiB GPU for long covers; reduce it when sharing the GPU.
    backendCOMBOtorchtorch uses fast CUDA graphs and is recommended. torch-eager avoids graph capture for troubleshooting but is substantially slower.
    quantizationCOMBOnoneModel-weight precision. none uses the validated BF16 path. FP8 is experimental and can change quality, compatibility, and speed.
    offload_arBOOLEANfalseMoves unused autoregressive modules to system RAM during acoustic synthesis to reduce VRAM pressure. It can prevent OOM errors but adds transfer time.
    local_files_onlyBOOLEANtrueWhen enabled, workers never contact Hugging Face and require complete local model folders. Disable only when intentionally allowing model downloads at runtime.
    unload_comfy_modelsBOOLEANtrueAsks ComfyUI to unload its currently loaded models before starting YuE2 or SheetSage2, freeing VRAM for music generation.
    verify_hashesBOOLEANfalseRe-hashes every YuE2 model weight before each run. This improves integrity checking but can add minutes on slower drives; the installer already verifies required files.
    sheetsage2_pythonSTRINGOptional SheetSage2 Python override. Keep it separate from YuE2 because their Torch, Transformers, and NumPy requirements differ.
    sheetsage2_modelSTRINGOptional SheetSage2 model folder override. SheetSage2 converts source audio into the ABC score used by the cover workflow.
    mert_modelSTRINGOptional MERT-v2-FullSong parent-model override used internally by SheetSage2 transcription.
    sheetsage2_deviceCOMBOcudaDevice used only for source-song transcription. CUDA is faster; CPU avoids transcription VRAM use but is much slower.

    Outputs (4)

    NameTypeDescription
    yue2_configVRGDG_YUE2_CONFIG
    sheetsage2_configVRGDG_SHEETSAGE2_CONFIG
    statusSTRING
    report_pathSTRING