Nodes/TTS Audio Suite/๐ŸŽ›๏ธ RVC Training Config
ComfyUI Node

๐ŸŽ›๏ธ RVC Training Config

Train your own voice model inside ComfyUI

By diodiogodยทCreated about a year agoยทUpdated 22 days agoยท 1,098
๐ŸŽ›๏ธ RVC Training Config
    • training_config
    • config_info
    โ—„epochs100โ–บ
    โ—„batch_size4โ–บ
    โ—„learning_rate0โ–บ
    โ—„gpu_idsโ–บ
    โ—„num_workers0โ–บ
    โ—„fp16_runtrueโ–บ
    โ—„save_every_epoch5โ–บ
    โ—„cache_data_in_gputrueโ–บ
    โ—„max_checkpoints1โ–บ
    โ—„save_every_weightsfalseโ–บ
    โ—„train_indextrueโ–บ
    โ—„save_best_modeltrueโ–บ
    โ—„best_model_threshold30โ–บ
    โ—„log_every_epoch1.0โ–บ
    โ—„pretrained_generatorautoโ–บ
    โ—„pretrained_discriminatorautoโ–บ
    โ—„c_adv1.0โ–บ
    โ—„c_mel45.0โ–บ
    โ—„c_kl1.0โ–บ
    โ—„c_fm2.0โ–บ
    โ—„c_tefs0.0โ–บ
    โ—„c_hd0.0โ–บ
    โ—„c_tsi0.0โ–บ
    โ—„c_gp0.0โ–บ
    โ—„use_multiscalefalseโ–บ
    โ—„use_balancerfalseโ–บ
    โ—„use_paretofalseโ–บ
    โ—„fast_modefalseโ–บ

    Most people use RVC models other people trained. This node is for making your own. ๐ŸŽ›๏ธ RVC Training Config holds the training hyperparameters - epochs, batch size, learning rate, checkpointing - and outputs a TRAINING_CONFIG that feeds the suite's unified ๐ŸŽ“ Model Training node. It's part of a genuinely nice feature: RVC training that lives inside ComfyUI, using the same node style as the rest of the suite, instead of the usual detached web-UI-and-scripts dance that scares people off training their own voices.

    The pack's own framing is worth repeating: this node exposes "practical training controls with tooltip guidance instead of raw upstream garbage." RVC's original training configs are notoriously cryptic; this cleans them up.

    How it works

    RVC training fine-tunes a pretrained generator/discriminator pair (the pretrained_v2 checkpoints) on your dataset of a target speaker until the model can reproduce that voice. This node doesn't do the training - it describes it. You set the schedule and loss weights here, wire the training_config output into ๐ŸŽ“ Model Training alongside a prepared dataset (from ๐Ÿ“ฆ RVC Dataset Prep) and an โš™๏ธ RVC Engine, and Model Training runs the loop with a live in-node dashboard for epoch progress, ETA, and loss trend. Required init checkpoints (HuBERT, RMVPE, pretrained_v2) auto-download.

    The inputs and outputs that matter

    The handful a beginner should actually set:

    • epochs (1โ€“20000, default 100) - how long to train. For a clean, decently-sized dataset, somewhere in the low hundreds is typical; more isn't automatically better and can overfit.
    • batch_size (1โ€“64, default 4) - bump it up if you have VRAM headroom for faster training, down if you OOM. This is the main memory dial.
    • learning_rate (default 0.0001) - leave it. The default is sensible; changing it blindly is how training diverges.
    • save_every_epoch (default 5) and max_checkpoints (default 1) - how often to snapshot and how many to keep. Raise max_checkpoints if you want to compare epochs later.
    • save_best_model (default true) with best_model_threshold (default 30) - auto-keeps a low-loss candidate. Heed the README's warning, though: "save_best_model is only a low-loss inference candidate, not a magical quality oracle. You still need to listen." Low loss โ‰  good voice.

    Everything else - fp16_run, num_workers, cache_data_in_gpu, the pretrained generator/discriminator pickers, and the whole family of loss-weight coefficients (c_adv, c_mel, c_kl, c_fm, and the experimental use_multiscale/use_balancer/use_pareto switches) - are advanced. Leave them on auto/default unless you know exactly what you're tuning. Outputs are training_config (to Model Training) and config_info (a readable summary).

    Installing it

    Ships with TTS Audio Suite. Easiest: ComfyUI Manager โ†’ search TTS Audio Suite โ†’ install โ†’ restart, which runs the pack's install.py to handle the RVC and training dependencies plus the usual conflicts (NumPy, librosa, s3tokenizer) and Python 3.13. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/diodiogod/TTS-Audio-Suite.git, then python install.py from inside the folder with your ComfyUI venv active - run the script, not a bare requirements install. Linux: portaudio19-dev libsamplerate0-dev first. There's an "RVC ๐ŸŽ“ Model Training" example workflow in the repo - start there rather than wiring the training graph from scratch. Training logs and resumable checkpoints go to ComfyUI/output/tts_audio_suite_training/rvc/; finished .pth and .index files land in ComfyUI/models/TTS/RVC/.

    Common issues

    • This node alone does nothing. It only produces a config. You need ๐Ÿ“ฆ RVC Dataset Prep, an โš™๏ธ RVC Engine, and the ๐ŸŽ“ Model Training node for anything to actually train.
    • Out-of-memory during training. Lower batch_size, keep fp16_run on, and consider turning off cache_data_in_gpu if the dataset is large.
    • "Best" model sounds worse than a later epoch. Exactly the trap the README calls out - low loss isn't quality. Save multiple checkpoints (max_checkpoints up, save_every_weights on) and audition them by ear.
    • Garbage in, garbage out. No hyperparameter rescues a noisy or tiny dataset. Clean, consistent source audio matters more than any setting here.
    • Interrupting training. ComfyUI's interrupt saves resumable state at a safe boundary when it can, so you can resume rather than restart - but don't count on it mid-step; let it reach a checkpoint.
    CategoryTTS Audio Suite/๐ŸŽ“ Training

    Inputs (28)

    NameTypeDefaultDescription
    epochsINT1001โ€“20000Actual RVC epoch count. Around 20 is a smoke test, 50-100 is a first real pass, and 100+ is where cleaner datasets usually become worth judging. Loss helps spot trends, but listening tests still decide quality.
    batch_sizeINT41โ€“64Use the largest stable batch that fits VRAM. Bigger is usually faster and a bit smoother; lower it first if you hit OOM or instability.
    learning_rateFLOAT01e-8โ€“11e-4 is the normal safe default. Lower it if training gets spiky or noisy; raising it is one of the fastest ways to make adversarial training worse.
    gpu_idsSTRINGCUDA device ids in the odd RVC format, for example '0' or '0-1'. Leave blank unless you deliberately want multi-GPU behavior.
    num_workersINT00โ€“16PyTorch dataloader workers. Keep this at 0 on Windows; worker processes there can respawn ComfyUI internals and break training.
    fp16_runoptBOOLEANtrueKeep this on for normal CUDA training. Turn it off only if you see NaNs, weird instability, or hardware/driver-specific fp16 issues.
    save_every_epochoptINT50โ€“1000Checkpoint cadence. Save a resumable training checkpoint every N epochs. 5 is a good default, 1 is safest, and 0 disables periodic resume checkpoints entirely.
    cache_data_in_gpuoptBOOLEANtrueCache batches in VRAM for speed. Usually worth it if you have room; turn it off if VRAM pressure becomes the real bottleneck.
    max_checkpointsoptINT11โ€“999Checkpoint retention policy. Keep the newest N checkpoint pairs and delete older ones. 1 means keep only the latest resumable checkpoint, 3 means keep the latest three, and so on.
    save_every_weightsoptBOOLEANfalseExport extra standalone weight files at each save interval. Mostly useful for inspection or experiments; normal training does not need this.
    train_indexoptBOOLEANtrueBuild the matched FAISS index after training. Usually keep this on; normal RVC inference often sounds worse without the proper index.
    save_best_modeloptBOOLEANtrueTrack generator loss and save the lowest-loss model as an extra inference checkpoint candidate. Useful for listening tests, but lowest loss is not guaranteed to be the best sounding model.
    best_model_thresholdoptINT301โ€“100Initial gate for first 'best model' capture. Leave this alone unless you are debugging why low-loss checkpoint saving triggers too early or too often.
    log_every_epochoptFLOAT1.00.1โ€“2Logging cadence within an epoch. This affects dashboard/log granularity, not training quality. 1.0 is about once per epoch, 0.5 is about twice.
    pretrained_generatoroptCOMBOautoGenerator initialization checkpoint. Keep this on auto unless you know exactly why you want a different base; training from scratch on a small dataset is usually a bad idea.
    pretrained_discriminatoroptCOMBOautoDiscriminator initialization checkpoint. Auto is the sane default and should stay matched to the generator/sample-rate setup.
    c_advoptFLOAT1.00โ€“100Adversarial loss weight. Advanced knob. Do not touch this unless you are intentionally rebalancing training and understand the side effects.
    c_meloptFLOAT45.00โ€“100Mel reconstruction weight. One of the main terms keeping speech recognizable. Usually leave it at default unless you are doing real loss tuning.
    c_kloptFLOAT1.00โ€“100KL regularization weight. Changing this can absolutely destabilize training, so leave it alone unless you know the tradeoff you want.
    c_fmoptFLOAT2.00โ€“100Feature-matching weight. Usually helps texture/stability. Leave it at default unless you are deliberately rebalancing losses.
    c_tefsoptFLOAT0.00โ€“100Experimental TEFS auxiliary loss. Keep this at 0 unless you are explicitly experimenting with that feature.
    c_hdoptFLOAT0.00โ€“100Experimental harmonic-detail auxiliary loss. Keep this at 0 for normal training.
    c_tsioptFLOAT0.00โ€“100Experimental TSI auxiliary loss. Keep this at 0 unless you are intentionally testing it.
    c_gpoptFLOAT0.00โ€“100Gradient-penalty weight. This is mostly a stabilization/debug knob, not a normal training control. Leave it at 0 unless adversarial loss is misbehaving.
    use_multiscaleoptBOOLEANfalseUse experimental multiscale mel loss. Heavier and not needed for a normal first pass.
    use_balanceroptBOOLEANfalseEnable dynamic loss balancing. Advanced only. If you do not already know why you want this, you do not want this.
    use_paretooptBOOLEANfalsePareto-style balancing on top of the dynamic balancer. Ignore this unless you are already deliberately using the balancer.
    fast_modeoptBOOLEANfalseSpeed tweak for the advanced balancer path. It does nothing useful unless you already enabled those advanced balancing options.

    Outputs (2)

    NameTypeDescription
    training_configTRAINING_CONFIGโ€”
    config_infoSTRINGโ€”