Nodes/FireRedAudio · T8star-Aix/FireRedAudio 定位证据片段/剪辑清单 · T8star-Aix
ComfyUI Node

FireRedAudio 定位证据片段/剪辑清单 · T8star-Aix

47' into listenable clips

By T8mars·Created 19 days ago·Updated 15 days ago· 21
FireRedAudio 定位证据片段/剪辑清单 · T8star-Aix
  • source_audio
  • 首个证据片段
  • 证据片段批次
  • 剪辑清单 JSON
  • Manifest 路径
structured_json
project_nameevidence-project
subfolderfireredaudio/evidence
padding_seconds0.25
default_clip_seconds8.0
max_clips20

LongLocator is great at telling you where things are in a two-hour recording - timestamps, a timeline, structured ranges. But a timestamp is not something you can audition, and it's certainly not something you can edit. T8_FireRedAudio_EvidenceClips is the bridge: it takes that locator JSON and actually cuts the source audio at those times, giving you listenable evidence clips, a cut list, and an AudioBatch you can keep building on.

What it does

You give it the original source_audio and the structured_json from a LongLocator run. It parses the ranges, cuts clips out of the source WAV (with padding_seconds of lead/trail around each range, default 0.25s), and writes them into ComfyUI/output/<subfolder>/<project_name>/ with a manifest. If the locator only gave you timestamps rather than full ranges, default_clip_seconds (8s) supplies the length. max_clips (20) caps the batch so you don't accidentally materialize 400 cuts.

Outputs: the first clip as native AUDIO (so you can preview immediately), the full evidence_batch, a cut_list_json describing every range, and the manifest path.

The key detail: the evidence batch is a real T8_FIREREDAUDIO_AUDIO_BATCH, which means it flows into the same downstream nodes as a dubbing batch. You can AudioBatchSelect a clip, audition it, wire it into TimelineRender, or feed it into a repair chain. The README calls out the intended loop: long recording → locate → cut evidence → audition → continue production. This node is the "cut evidence" step.

Why non-destructive matters here

Cutting clips here never modifies the source - it renders new WAVs from the ranges. That matters more than it sounds: evidence clips are exactly the kind of thing you'll want to re-cut with different padding later, and if the node had touched the source you'd have a second problem on top of the first. The manifest records the source path and ranges, so a re-run with different padding_seconds is cheap.

Inputs and outputs that matter

  • source_audio and structured_json - both required. The JSON is the structured_json output of LongLocator, though the parser is tolerant of any list/object with start/end times.
  • padding_seconds, default_clip_seconds, max_clips - the three knobs you'll tune.
  • project_name/subfolder - output location.
  • Outputs: first_clip, evidence_batch, cut_list_json, manifest_path.

Install

Part of the comfyui-fireredaudio-T8 pack:

cd ComfyUI\custom_nodes
git clone https://github.com/T8mars/comfyui-fireredaudio-T8.git
cd comfyui-fireredaudio-T8
python scripts\setup_runtime.py

No model needed - cutting is pure file work. You only need the model for the upstream LongLocator that produces the JSON.

Gotchas

If the locator JSON has no recognizable start/end times, the node raises a clear error - check that you connected the right output (it wants the structured JSON, not the free-text answer). And a warning about expectations: evidence clips carry the source's original sample rate and channel count, and the timestamps are as good as the locator's segmentation - the pack is upfront that long-audio subtitles and ranges are segment-level approximations, not word-level forced alignment. For quick verification of what happened at 12:47, they're plenty. For frame-perfect edits, cut manually.

CategoryT8star-Aix/Audio/FireRedAudio

Inputs (7)

NameTypeDefaultDescription
source_audioAUDIO
structured_jsonSTRING
project_nameSTRINGevidence-project
subfolderSTRINGfireredaudio/evidence
padding_secondsFLOAT0.250–10
default_clip_secondsFLOAT8.00.5–120
max_clipsINT201–100

Outputs (4)

NameTypeDescription
首个证据片段AUDIO
证据片段批次T8_FIREREDAUDIO_AUDIO_BATCH
剪辑清单 JSONSTRING
Manifest 路径STRING