VRGDG YuE2 Installer + Settings
One node, two virtualenvs, a pile of weights
- yue2_config
- sheetsage2_config
- status
- report_path
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
mainzip, not agit clone), creates a.venvwith Python 3.12/3.11/3.10 in that order, installs CUDA-enabled PyTorch 2.10.0 + cu130, thenpip install --upgrade .so theyue2package is importable. Then it pullsm-a-p/YuE2-3Bandm-a-p/YuE2-Vaethroughhuggingface_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, plusmir_eval,pretty_midi,mido- and them-a-p/SheetSage2andm-a-p/MERT-v2-FullSongsnapshots.
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_onlydefaults totruehere andfalseon the standalone settings node - opposite defaults for the same concept. If a first run fails on a missing snapshot, that's usually why.verify_hashesis 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/.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| target_root | STRING | Dedicated installation folder. Install buttons create/reuse the YuE2 source, environments, models, cache, and report under this root. | |
| runtime_mode | COMBO | isolated_process | Isolated process is recommended and prevents YuE2 dependency conflicts with ComfyUI. In-process mode ignores yue2_python and requires compatible packages inside ComfyUI. |
| yue2_python | STRING | Optional YuE2 Python override. Leave blank to use the isolated environment created under target_root. | |
| model | STRING | Optional YuE2-3B model folder or Hugging Face repository override. Leave blank for the model downloaded by this installer. | |
| vae | STRING | Optional YuE2 VAE decoder folder or repository override. YuE2-Vae is the recommended listening decoder. | |
| cache_dir | STRING | Hugging Face download/module cache. Leave blank to keep the cache inside target_root. | |
| device | COMBO | cuda | Generation device. CUDA is required for practical full-song generation; auto selects CUDA when available; CPU is primarily for diagnostics. |
| memory_budget_gib | FLOAT | 24.04–128 | Total 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. |
| backend | COMBO | torch | torch uses fast CUDA graphs and is recommended. torch-eager avoids graph capture for troubleshooting but is substantially slower. |
| quantization | COMBO | none | Model-weight precision. none uses the validated BF16 path. FP8 is experimental and can change quality, compatibility, and speed. |
| offload_ar | BOOLEAN | false | Moves unused autoregressive modules to system RAM during acoustic synthesis to reduce VRAM pressure. It can prevent OOM errors but adds transfer time. |
| local_files_only | BOOLEAN | true | When enabled, workers never contact Hugging Face and require complete local model folders. Disable only when intentionally allowing model downloads at runtime. |
| unload_comfy_models | BOOLEAN | true | Asks ComfyUI to unload its currently loaded models before starting YuE2 or SheetSage2, freeing VRAM for music generation. |
| verify_hashes | BOOLEAN | false | Re-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_python | STRING | Optional SheetSage2 Python override. Keep it separate from YuE2 because their Torch, Transformers, and NumPy requirements differ. | |
| sheetsage2_model | STRING | Optional SheetSage2 model folder override. SheetSage2 converts source audio into the ABC score used by the cover workflow. | |
| mert_model | STRING | Optional MERT-v2-FullSong parent-model override used internally by SheetSage2 transcription. | |
| sheetsage2_device | COMBO | cuda | Device used only for source-song transcription. CUDA is faster; CPU avoids transcription VRAM use but is much slower. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| yue2_config | VRGDG_YUE2_CONFIG | — |
| sheetsage2_config | VRGDG_SHEETSAGE2_CONFIG | — |
| status | STRING | — |
| report_path | STRING | — |