Nodes/YuE2 Music T8/YuE2 加载 RVC 音色
ComfyUI Node

YuE2 加载 RVC 音色

No model loads here, and that's the trick

By T8mars·Created 23 days ago·Updated 2 days ago· 83
YuE2 加载 RVC 音色
    • voice
    • metadata
    ◄voice▾►
    ◄speaker_id0►

    This is a two-input node that doesn't generate anything, doesn't load a checkpoint into VRAM, and exists purely to hand YuE2 RVC 翻唱 a voice. If you're coming from the image side, it looks like a CheckpointLoaderSimple and it isn't one. Think of it as a pointer, plus the validation that saves you from a twenty-minute render against the wrong speaker.

    Why it's a separate node at all

    Because the heavy lifting is somewhere else. This whole pack runs its real work in an isolated Python 3.12.10 worker listening on 127.0.0.1:8189, and all the state - trained voices, imported .pth + .index pairs, projects, training runs - lives in the standalone studio's library. That structure is deliberate: custom nodes normally install into the same interpreter, where dependency conflicts are the default failure mode. This pack refuses to participate, so its nodes are thin clients and their dropdowns are just names the client asks the service for.

    Which means the loader is how the studio's voice library gets into your graph. Train a voice once (in the workbench, or with the pack's training node) and then reuse it across as many ComfyUI workflows as you like.

    Inputs and outputs

    Two inputs, both required, neither exotic:

    • voice - a combo built live from the service's voice list. Each entry is the display name plus the record's 32-character ID in brackets, which is how every other selector in this pack works too. The list is read when the graph loads or the page refreshes.
    • speaker_id (INT, 0–109, default 0) - because RVC models can carry multiple speakers. A single-singer voice has exactly one, at ID 0, and you can leave this alone. The pack's own training path can produce multi-speaker voices, and imported models may too.

    The node checks two things before it returns anything. First, that the worker reports RVC inference as installed at all; if not, you get RVC 推理组件或底模尚未安装完整. Second, that the voice still exists in the library and that the speaker ID you picked is really one of that voice's speakers. Get that wrong and it doesn't guess - it fails with 该音色没有说话人 N and lists every speaker the model has. That's a much better error than a mangled render.

    voice (type YUE2_RVC_VOICE) is the handle: voice ID, speaker ID, display name. It's the same type YuE2 训练 RVC 音色 emits, so either one wires into the cover node. metadata is a STRING dump of the library record - speakers, index files, and training stats for voices trained here. You won't need it for generation; it's there when you want to know precisely which speaker and which index a job used, which matters the moment you have two versions of the "same" voice in the library.

    Installing

    The node comes with the pack, so it's the pack install plus the runtime - nothing extra for this one:

    cd ComfyUI/custom_nodes
    git clone https://github.com/T8mars/Comfyui-YuE2-T8.git
    

    Then run install_runtime.bat once from the node directory (Windows + NVIDIA; it fetches the shared runtime, Torch CUDA 12.8, FFmpeg, the YuE2 models and the RVC base models - HuBERT, RMVPE, the v1/v2 pretrained networks), and restart ComfyUI. Manager users can search the pack title instead. The pack expects the full twelve-subdirectory model layout under <node-dir>/models; if you relocate it, keep the subdirectories and manifests together.

    Where it goes wrong

    The dropdown shows 没有已训练或导入的 RVC 音色 and nothing else. Either the library is genuinely empty - you haven't trained or imported anything yet - or the worker isn't reachable. The node tries to start it for you by launching runtime/python.exe -m app.yue2_app.service, so if that fails, the reason is in <node-dir>/logs/service.stderr.log, and a missing runtime/python.exe means install_runtime.bat hasn't been run.

    You just trained a voice and it's not in the list. ComfyUI builds that combo when the graph loads. Refresh the page - same after renaming or deleting a voice in the workbench.

    RVC 音色已被移动或删除,请刷新 ComfyUI 页面 - the workflow JSON remembers the ID, not the math. If the voice was deleted, or you moved the library directory via the workbench's storage migration, the old entry is a dangling pointer.

    A version-mismatch error naming two different numbers. The node pack and the worker must be the same version; the client refuses to talk to a service built from different code and tells you to stop the service first (stop_service.bat) and retry. It shows up after a partial update - the WebUI updater keeps them in step, hand-copying files over an old install does not.

    Port 8189 already in use by another installation. Two copies of this pack (one portable, one in custom_nodes, say) both want the same port, and the client verifies that the service's root directory matches the node directory it's running from. It'll tell you which install answered. Stop the other one, or set YUE2_SERVICE if you genuinely mean to point at it.

    One last thing to know: an imported third-party model may carry no training metadata, so the range statistics the workbench shows for locally trained voices simply won't exist for it. The node still works - you just lose that information when picking a pitch shift.

    CategoryYuE2 音乐/RVC

    Inputs (2)

    NameTypeDefaultDescription
    voiceCOMBO1 options: 没有已训练或导入的 RVC 音色
    speaker_idINT00–109—

    Outputs (2)

    NameTypeDescription
    voiceYUE2_RVC_VOICE—
    metadataSTRING—