Nodes/VRGameDevGirl Video Enhancement Nodes/VRGDG_LoadAudioSplitUpload
ComfyUI Node

VRGDG_LoadAudioSplitUpload

Slice an Audio Track Into Scene-Sized Chunks, Right in the Graph

By vrgamegirl19·Created about a year ago·Updated about 7 hours ago· 718
VRGDG_LoadAudioSplitUpload
  • audio
  • 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
offset_seconds0.00
scene_count1
using_infinite_talkfalse
duration_13.88
duration_23.88
duration_33.88
duration_43.88
duration_53.88
duration_63.88
duration_73.88
duration_83.88
duration_93.88
duration_103.88
duration_113.88
duration_123.88
duration_133.88
duration_143.88
duration_153.88
duration_163.88
duration_173.88
duration_183.88
duration_193.88
duration_203.88
duration_213.88
duration_223.88
duration_233.88
duration_243.88
duration_253.88
duration_263.88
duration_273.88
duration_283.88
duration_293.88
duration_303.88
duration_313.88
duration_323.88
duration_333.88
duration_343.88
duration_353.88
duration_363.88
duration_373.88
duration_383.88
duration_393.88
duration_403.88
duration_413.88
duration_423.88
duration_433.88
duration_443.88
duration_453.88
duration_463.88
duration_473.88
duration_483.88
duration_493.88
duration_503.88

The music-video pattern is scene-by-scene: you slice a song into chunks, generate a video per chunk, then stitch. VRGDG_LoadAudioSplitUpload is the slicing node - it takes an AUDIO tensor, splits it into up to 50 chunks, and hands you each chunk plus a meta dict describing the split. If you've used the pack's older splitter, this is the upload-friendly version: the audio comes in through the audio input rather than from a file path on disk, which means it plays nice with any audio source in your graph.

The mechanism is simple and honest: you tell it how many scenes (scene_count) and how long each chunk is (duration_1 through duration_N), and it cuts the waveform at those boundaries. It also has an infinite-talk mode (via using_infinite_talk) that pads chunks to a fixed internal length - useful for the pack's talking-head workflows where every scene must be exactly the same duration. The meta output and total_duration let downstream nodes (like VRGDG_CombinevideosV3) know how long each scene is, which is how the final stitch stays in sync with the music.

The inputs that matter

  • audio - your AUDIO tensor.
  • scene_count - how many chunks (1 to 50). This also drives the node's dynamic outputs: it shows exactly audio_1..audio_N.
  • offset_seconds - skip this many seconds into the audio before the first cut (0 default).
  • duration_1..duration_N - per-scene durations, default 3.88 seconds each. You set as many as you have scenes; each unused one just stays at default. For a fixed-timing talking-head pipeline, leave them equal. For music, set them to match the actual scene lengths (which you can get from your transcription/lyrics timestamps).
  • using_infinite_talk - "false" or "true". True pads chunks so every scene is the same length.

Outputs: meta (DICT with the durations), total_duration (FLOAT), and audio_1..audio_N (AUDIO) - one per scene, ready to feed per-scene video generation.

Install

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

Or search vrgamedev in ComfyUI Manager. No extra dependencies beyond torch/librosa, which the pack requirements cover.

Common issues

  • Chunks cut in the middle of words: the split is duration-based, not silence-based. If you need clean phrase boundaries, transcribe first and set each duration_N to match the lyric timing.
  • audio_N outputs don't match scene_count: remember the outputs are dynamic - they adapt to scene_count on the node, but some graphs don't re-render the node's ports until you reconnect them. If you change scene_count, drag a new connection.
  • Everything is 3.88 seconds even though your song isn't: that's the default. You have to set per-scene durations - the node can't guess your song's timing.

Honest take: it's a utility, not a marvel - you're still doing the timing work yourself. But it's the correct building block for the scene-by-scene music-video pattern, and the meta output is what makes the downstream combine node able to keep everything in sync. In the pack's ecosystem, it's the start of every music-video graph.

CategoryVRGDG

Inputs (54)

NameTypeDefaultDescription
audioAUDIO
offset_secondsFLOAT0.00
scene_countINT11–50
using_infinite_talkCOMBOfalse2 options: false, true
duration_1optFLOAT3.88
duration_2optFLOAT3.88
duration_3optFLOAT3.88
duration_4optFLOAT3.88
duration_5optFLOAT3.88
duration_6optFLOAT3.88
duration_7optFLOAT3.88
duration_8optFLOAT3.88
duration_9optFLOAT3.88
duration_10optFLOAT3.88
duration_11optFLOAT3.88
duration_12optFLOAT3.88
duration_13optFLOAT3.88
duration_14optFLOAT3.88
duration_15optFLOAT3.88
duration_16optFLOAT3.88
duration_17optFLOAT3.88
duration_18optFLOAT3.88
duration_19optFLOAT3.88
duration_20optFLOAT3.88
duration_21optFLOAT3.88
duration_22optFLOAT3.88
duration_23optFLOAT3.88
duration_24optFLOAT3.88
duration_25optFLOAT3.88
duration_26optFLOAT3.88
duration_27optFLOAT3.88
duration_28optFLOAT3.88
duration_29optFLOAT3.88
duration_30optFLOAT3.88
duration_31optFLOAT3.88
duration_32optFLOAT3.88
duration_33optFLOAT3.88
duration_34optFLOAT3.88
duration_35optFLOAT3.88
duration_36optFLOAT3.88
duration_37optFLOAT3.88
duration_38optFLOAT3.88
duration_39optFLOAT3.88
duration_40optFLOAT3.88
duration_41optFLOAT3.88
duration_42optFLOAT3.88
duration_43optFLOAT3.88
duration_44optFLOAT3.88
duration_45optFLOAT3.88
duration_46optFLOAT3.88
duration_47optFLOAT3.88
duration_48optFLOAT3.88
duration_49optFLOAT3.88
duration_50optFLOAT3.88

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