Nodes/VRGameDevGirl Video Enhancement Nodes/VRGDG_LoadAudioSplitDynamic
ComfyUI Node

VRGDG_LoadAudioSplitDynamic

Split audio by hand-tuned scene lengths, not a fixed grid

By vrgamegirl19·Created about a year ago·Updated a day ago· 742
VRGDG_LoadAudioSplitDynamic
    • meta
    • total_duration
    • audio_1
    • audio_2
    • audio_3
    • audio_4
    • audio_5
    • audio_6
    • audio_7
    • audio_8
    • audio_9
    • audio_10
    • audio_11
    • audio_12
    • audio_13
    • audio_14
    • audio_15
    • audio_16
    • audio_17
    • audio_18
    • audio_19
    • audio_20
    • audio_21
    • audio_22
    • audio_23
    • audio_24
    • audio_25
    • audio_26
    • audio_27
    • audio_28
    • audio_29
    • audio_30
    • audio_31
    • audio_32
    • audio_33
    • audio_34
    • audio_35
    • audio_36
    • audio_37
    • audio_38
    • audio_39
    • audio_40
    • audio_41
    • audio_42
    • audio_43
    • audio_44
    • audio_45
    • audio_46
    • audio_47
    • audio_48
    • audio_49
    • audio_50
    ◄path./audio.mp3►
    ◄offset_seconds0.00►
    ◄scene_count1►
    ◄using_infinite_talkfalse►
    ◄duration_13.00►
    ◄duration_23.00►
    ◄duration_33.00►
    ◄duration_43.00►
    ◄duration_53.00►
    ◄duration_63.00►
    ◄duration_73.00►
    ◄duration_83.00►
    ◄duration_93.00►
    ◄duration_103.00►
    ◄duration_113.00►
    ◄duration_123.00►
    ◄duration_133.00►
    ◄duration_143.00►
    ◄duration_153.00►
    ◄duration_163.00►
    ◄duration_173.00►
    ◄duration_183.00►
    ◄duration_193.00►
    ◄duration_203.00►
    ◄duration_213.00►
    ◄duration_223.00►
    ◄duration_233.00►
    ◄duration_243.00►
    ◄duration_253.00►
    ◄duration_263.00►
    ◄duration_273.00►
    ◄duration_283.00►
    ◄duration_293.00►
    ◄duration_303.00►
    ◄duration_313.00►
    ◄duration_323.00►
    ◄duration_333.00►
    ◄duration_343.00►
    ◄duration_353.00►
    ◄duration_363.00►
    ◄duration_373.00►
    ◄duration_383.00►
    ◄duration_393.00►
    ◄duration_403.00►
    ◄duration_413.00►
    ◄duration_423.00►
    ◄duration_433.00►
    ◄duration_443.00►
    ◄duration_453.00►
    ◄duration_463.00►
    ◄duration_473.00►
    ◄duration_483.00►
    ◄duration_493.00►
    ◄duration_503.00►

    Most audio splitters work on a grid: "every scene is N seconds." VRGDG_LoadAudioSplitDynamic is the version that lets you play director instead. You pick how many scenes you want, then set each scene's duration individually - scene 1 is 8 seconds, scene 2 is 12, scene 3 is 5 - because real songs don't have uniform verses, and you shouldn't have to pretend they do.

    This is one of the pack's audio-to-scene nodes, and it's built around the idea that each scene clip feeds an audio-driven video model. The workflow family here covers two targets: HUMO (ByteDance's human-centric video model, which drives motion from the audio) and talking-head style pipelines. The using_infinite_talk dropdown exists precisely because the splitter was written with one of those in mind first - its own tooltip says "If using HUMO, change this to false." That tooltip is the author telling you which mode is which.

    What it does

    The inputs that matter:

    • path (STRING, default ./audio.mp3) - where the audio lives. This node loads from a path rather than taking an AUDIO input, which is the key difference from the sibling splitters.
    • offset_seconds (FLOAT, default 0) - skip the first N seconds before splitting. Handy for trimming intros with no vocals.
    • scene_count (INT, 1–50, default 1) - how many scene clips you want out.
    • using_infinite_talk (enum false/true) - set to false if you're on the HUMO workflow, per the tooltip.
    • duration_1 .. duration_50 (FLOAT, default 3 each) - the per-scene lengths, in seconds. These are your creative control: set scene_count to however many scenes you have, then dial each duration to match the music.

    Outputs:

    • meta (DICT) - the scene metadata (counts, offsets), ready for VRGDG_Json2String if you want to hand it to an LLM.
    • total_duration (FLOAT) - how long the summed scene clips come to; a sanity check that your durations roughly match the track.
    • audio_1 .. audio_50 (AUDIO) - the individual scene clips. Wire each into whatever generates video from a scene.

    How to use it like a human

    Load the track, set scene_count, and start with the verse-chorus-verse structure you actually hear. Intro 4s, verse 8s, chorus 12s, verse 8s, chorus 12s, outro 6s - that's a six-scene split with six different durations. The defaults are all 3 seconds, which is a fine placeholder, but the whole point of this node is that you replace them with real timings. Check total_duration against the track length after you're done.

    Installing it

    Part of the comfyui-vrgamedevgirl pack. ComfyUI Manager: search "vrgamedev", install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl
    

    then install the README's requirements - this node is why librosa is on the list:

    pip install -r custom_nodes/comfyui-vrgamedevgirl/requirements.txt
    

    If it's not working

    • Sum of durations doesn't match the track - that's on you, not the node; the last scene will just be shorter (or the split overlaps the track end). Verify against total_duration.
    • Wrong target workflow - if your clips come out mistimed for the video side, re-check using_infinite_talk. The tooltip is explicit: HUMO wants false.
    • Path issues - it's a raw path string, so relative paths resolve against ComfyUI's working directory. If the node can't find the file, give it an absolute path.
    CategoryVRGDG

    Inputs (54)

    NameTypeDefaultDescription
    pathSTRING./audio.mp3—
    offset_secondsFLOAT0.00—
    scene_countINT11–50—
    using_infinite_talkCOMBOfalseIf using HUMO, change this to false.
    duration_1optFLOAT3.00—
    duration_2optFLOAT3.00—
    duration_3optFLOAT3.00—
    duration_4optFLOAT3.00—
    duration_5optFLOAT3.00—
    duration_6optFLOAT3.00—
    duration_7optFLOAT3.00—
    duration_8optFLOAT3.00—
    duration_9optFLOAT3.00—
    duration_10optFLOAT3.00—
    duration_11optFLOAT3.00—
    duration_12optFLOAT3.00—
    duration_13optFLOAT3.00—
    duration_14optFLOAT3.00—
    duration_15optFLOAT3.00—
    duration_16optFLOAT3.00—
    duration_17optFLOAT3.00—
    duration_18optFLOAT3.00—
    duration_19optFLOAT3.00—
    duration_20optFLOAT3.00—
    duration_21optFLOAT3.00—
    duration_22optFLOAT3.00—
    duration_23optFLOAT3.00—
    duration_24optFLOAT3.00—
    duration_25optFLOAT3.00—
    duration_26optFLOAT3.00—
    duration_27optFLOAT3.00—
    duration_28optFLOAT3.00—
    duration_29optFLOAT3.00—
    duration_30optFLOAT3.00—
    duration_31optFLOAT3.00—
    duration_32optFLOAT3.00—
    duration_33optFLOAT3.00—
    duration_34optFLOAT3.00—
    duration_35optFLOAT3.00—
    duration_36optFLOAT3.00—
    duration_37optFLOAT3.00—
    duration_38optFLOAT3.00—
    duration_39optFLOAT3.00—
    duration_40optFLOAT3.00—
    duration_41optFLOAT3.00—
    duration_42optFLOAT3.00—
    duration_43optFLOAT3.00—
    duration_44optFLOAT3.00—
    duration_45optFLOAT3.00—
    duration_46optFLOAT3.00—
    duration_47optFLOAT3.00—
    duration_48optFLOAT3.00—
    duration_49optFLOAT3.00—
    duration_50optFLOAT3.00—

    Outputs (52)

    NameTypeDescription
    metaDICT—
    total_durationFLOAT—
    audio_1AUDIO—
    audio_2AUDIO—
    audio_3AUDIO—
    audio_4AUDIO—
    audio_5AUDIO—
    audio_6AUDIO—
    audio_7AUDIO—
    audio_8AUDIO—
    audio_9AUDIO—
    audio_10AUDIO—
    audio_11AUDIO—
    audio_12AUDIO—
    audio_13AUDIO—
    audio_14AUDIO—
    audio_15AUDIO—
    audio_16AUDIO—
    audio_17AUDIO—
    audio_18AUDIO—
    audio_19AUDIO—
    audio_20AUDIO—
    audio_21AUDIO—
    audio_22AUDIO—
    audio_23AUDIO—
    audio_24AUDIO—
    audio_25AUDIO—
    audio_26AUDIO—
    audio_27AUDIO—
    audio_28AUDIO—
    audio_29AUDIO—
    audio_30AUDIO—
    audio_31AUDIO—
    audio_32AUDIO—
    audio_33AUDIO—
    audio_34AUDIO—
    audio_35AUDIO—
    audio_36AUDIO—
    audio_37AUDIO—
    audio_38AUDIO—
    audio_39AUDIO—
    audio_40AUDIO—
    audio_41AUDIO—
    audio_42AUDIO—
    audio_43AUDIO—
    audio_44AUDIO—
    audio_45AUDIO—
    audio_46AUDIO—
    audio_47AUDIO—
    audio_48AUDIO—
    audio_49AUDIO—
    audio_50AUDIO—