Synthesize singing voice from MIDI JSON and a reference audio using SoulX-Singer. The MIDI JSON provides the TARGET lyrics, phonemes, duration, pitch, and F0 data. The prompt audio provides the target voice timbre.
Prompt Metadata (optional but recommended): metadata describing the prompt audio's real acoustic content. For best results and to avoid re-running preprocessing every time, run 'MIDI Transcribe Audio' on the prompt (reference) audio and connect its midi_json output here. When left empty, the node preprocesses the prompt audio internally to obtain matching metadata.
Control mode: 'melody' uses the F0 contour (default, matches upstream), 'score' uses MIDI note pitches. Control strategy: choose 'melody' when the target has a real vocal F0 (e.g. lyrics edited from a vocal source) for a timbre closer to the prompt; choose 'score' when the target is a score / instrumental without a reliable F0, for clearer diction.
FP16: OFF/FP32 (default) matches the reference implementation and is safest for quality; ON/FP16 enables autocast mixed precision on GPU for speed.
cfg (default 3): classifier-free guidance scale. Raise toward 4-5 in melody mode if diction is muddy (stronger adherence to lyrics/phonemes); too high may cause over-saturation / artifacts.
n_steps (default 32): flow-matching reverse-diffusion steps. Higher slightly improves quality at the cost of speed. (rescale_cfg is not exposed — upstream SoulXSinger.infer does not accept it.)
By ahkimkoo·Created 2 months ago·Updated 2 months ago· 3