Nodes/ComfyUI_RH_VoxCPM/RunningHub VoxCPM Dataset Entry
ComfyUI Node

RunningHub VoxCPM Dataset Entry

VoxCPM Dataset Entry

By RH-RunningHub·Created 4 months ago·Updated 2 months ago· 0
RunningHub VoxCPM Dataset Entry
  • audio
  • ref_audio
  • entry
  • text
text
dataset_id0

RunningHub VoxCPM Dataset Entry is the smallest unit of the training side of this pack: you feed it one audio clip, it wraps that clip into a single training sample, and hands it to Dataset Build, which collects samples into the train.jsonl manifest that Train LoRA actually trains on. Think of it as the captioning step of a LoRA training pipeline, except the "caption" is a transcript and the subject is a voice.

The input side is almost aggressively minimal: audio (the clip), text (optional transcript), dataset_id (default 0, for mixing multiple datasets in one training run), and ref_audio (optional style reference). The two outputs are entry (the VOXCPM_DATA_ENTRY object you wire forward) and text - the transcript actually used, which you can preview or route into a text node to sanity-check before training.

The one behavior that matters: auto-transcription

If you leave text blank, the node runs FunASR SenseVoiceSmall on the clip and fills in the transcript for you. That's a genuinely useful timesaver, but it comes with a real dependency: the SenseVoiceSmall model has to be on disk at ComfyUI/models/SenseVoice/SenseVoiceSmall or the node raises a "model not found" error. Download it with:

pip install modelscope
modelscope download --model iic/SenseVoiceSmall --local_dir ComfyUI/models/SenseVoice/SenseVoiceSmall

FunASR also gets loaded fresh per call and flushed afterward (the code explicitly frees it and empties the CUDA cache), so it doesn't pin VRAM between steps - but the first ASR call on any clip has a noticeable delay while it spins up.

The training nodes, it's worth knowing, deliberately do not silently trust auto-ASR at generation time - the Generate node will refuse to guess a transcript for ultimate cloning. But for building a training set, guessed transcripts are fine, and this is where the pack chooses convenience. Just review what it wrote before you burn training hours on it, because ASR mistakes become the model's pronunciation mistakes. If SenseVoiceSmall mangles a word, type the text yourself.

ref_audio - the newer input

The optional ref_audio slot writes a ref_audio field into the manifest record so the training pipeline can use it for voice conditioning. The catch is in the docs: it requires a VoxCPM build from after 2026-04, so if you're on an older voxcpm pip package, this input silently does nothing. Upgrade the package before building datasets that depend on it.

Setup

The pack is a standard clone:

cd ComfyUI/custom_nodes
git clone https://github.com/RH-RunningHub/ComfyUI_RH_VoxCPM.git
cd ComfyUI_RH_VoxCPM && pip install -r requirements.txt

Restart ComfyUI. The base VoxCPM model isn't needed for this node alone - it's pure data prep - but you'll want it before the training node runs. One honest note on scope: for a real voice you need a lot of samples, and one-at-a-time entry gets tedious fast. That's what Dataset Build (Batch) is for - it consumes a whole list of clips in one pass. Use this node when you're curating a small, high-quality set, like the two-clip demo in the README's LoRA training workflow.

CategoryRunningHub/VoxCPM/Train

Inputs (4)

NameTypeDefaultDescription
audioAUDIO
textoptSTRING
dataset_idoptINT00–1024
ref_audiooptAUDIO

Outputs (2)

NameTypeDescription
entryVOXCPM_DATA_ENTRY
textSTRING