Nodes/comfyui-AGSoft/🔊✂️AGSoft Audio Split Plus
ComfyUI Node

🔊✂️AGSoft Audio Split Plus

Audio Split, but with fades, loudness matching, reverse, and looping

By Art-xmaster·Created about a year ago·Updated a day ago· 24
🔊✂️AGSoft Audio Split Plus
  • audio
  • audio_path
  • audio
  • duration_seconds
  • duration_timecode
  • file_size_mb
  • sample_rate
  • channels
output_nameaudio_split_plus.mp3
output_path
audio_path
start_time0.0
end_time0.0
cut_modefast
formatsource
bitrate192k
fade_in0.00
fade_out0.00
reverseoff
loudnormoff
loop1

🔊✂️AGSoft Audio Split Plus is what you grab when a plain cut isn't enough. It does everything the regular Audio Split does - cut a fragment by start_time / end_time, with fast (stream copy) or precise (re-encode) modes - and then layers on the stuff that turns a raw cut into something usable: fade in/out that kill the click at the cut points, loudness normalization, reverse, and loop.

The practical use case that sells it: cutting a tight loop out of a music track or a TTS phrase, de-clicking the edges so the loop doesn't pop, and repeating it N times. That's three nodes' worth of work in most packs, and here it's one node.

What's new over the plain split

  • fade_in / fade_out (0–60s) - ramps at the start and end of the fragment. The tooltip's honest about why: they remove the clicks you'd otherwise hear at hard cut points. 0 = off.
  • loudnorm - normalizes the fragment to EBU R128 (integrated −16 LUFS). Useful when you're slicing samples out of different sources and want them to sit at the same level.
  • reverse - plays the fragment backwards. One flag, instant psychedelia.
  • loop (1–100) - repeats the fragment N times. 1 = no looping.

One mechanism detail worth knowing: when any effect is on, re-encoding is unavoidable - you can't stream-copy a reversed fragment. If format is source in that situation, the node re-encodes with the codec that matches the source extension, so you keep the same file type rather than defaulting to something random. Loop is also done as a two-pass operation: cut to a lossless temp file first, then loop and encode - which avoids the quality spiral you'd get looping a lossy encode repeatedly.

The same source gotcha, still true

Everything from the plain version carries over: if audio comes in through the audio AUDIO socket (rather than audio_path), it's already decoded PCM, so format=source yields a WAV - not your original MP3. And stream copy only really happens when the file is connected via audio_path and no effects are used. Any effect flips you into a re-encode, so don't expect the fast mode to stay lossless once you touch the fades.

Outputs

Same generous set as the plain split: audio_path (STRING, where it landed), audio (AUDIO, for chaining), plus duration_seconds, duration_timecode, file_size_mb, sample_rate, and channels.

Install

Part of the comfyui-AGSoft pack. ComfyUI Manager → search "comfyui-AGSoft" → Install → restart, or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/Art-xmaster/comfyui-AGSoft

Restart and go. No models to download; it drives the bundled FFmpeg binary (or a system ffmpeg on PATH).

If you only ever need a clean, lossless, instant cut - no effects - the plain Audio Split is the lighter choice. The moment you want edges that don't pop, reversed audio, or a seamless loop, Plus earns its name.

CategoryAGSoft/Audio

Inputs (14)

NameTypeDefaultDescription
output_nameSTRINGaudio_split_plus.mp3Output filename. The extension is set by the effective output format. --- Имя итогового файла. Расширение задаётся итоговым форматом.
output_pathSTRINGOutput directory. If empty, ComfyUI/output is used. --- Папка сохранения. Если пусто, используется ComfyUI/output.
audio_pathSTRINGPath to the source audio file. Used only if audio input is not connected. TIP: for a true lossless stream copy (fast mode, format=source, no effects), connect the file here via audio_path rather than the AUDIO socket - the socket always delivers already-decoded PCM (WAV). --- Путь к исходному аудиофайлу. Используется, только если вход audio не подключен. СОВЕТ: для настоящего stream copy без потерь (режим fast, format=source, без эффектов) подключайте файл сюда через audio_path, а не через сокет AUDIO - сокет всегда передаёт уже декодированный PCM (WAV).
start_timeFLOAT0.00–86400Fragment start (seconds). 0 = from the beginning. --- Начало фрагмента (в секундах). 0 = с начала.
end_timeFLOAT0.00–86400Fragment end (seconds). 0 = to the end of the audio. --- Конец фрагмента (в секундах). 0 = до конца аудио.
cut_modeCOMBOfastfast = stream copy (no re-encode, quick) when no effects and format=source. precise = re-encode (sample-accurate cut). Effects always force re-encode. --- fast = stream copy (без перекодировки, быстро), если нет эффектов и format=source. precise = перекодирование (точность до сэмпла). Эффекты всегда требуют перекодирования.
formatCOMBOsourceOutput format. source = keep the source format. mp3/wav/flac/ogg/m4a = convert. If effects are used, source format is re-encoded with the matching codec. NOTE: if the source is connected via the AUDIO socket (not audio_path), the audio is already decoded to PCM, so the 'source' format is WAV. To get MP3 etc., choose it explicitly or connect the file via audio_path for a true stream copy. --- Формат выхода. source = сохранить формат источника. mp3/wav/flac/ogg/m4a = конвертировать. При использовании эффектов формат источника перекодируется соответствующим кодеком. ВАЖНО: если источник подключён через сокет AUDIO (а не audio_path), аудио уже декодировано в PCM, поэтому форматом 'source' будет WAV. Чтобы получить MP3 и т.д., выберите его явно либо подключите файл через audio_path для настоящего stream copy.
bitrateCOMBO192kBitrate for lossy formats (mp3/ogg/m4a). Ignored for wav/flac. --- Битрейт для lossy-форматов (mp3/ogg/m4a). Игнорируется для wav/flac.
fade_inFLOAT0.000–60Fade-in duration (seconds) at the fragment start. Removes clicks. 0 = off. --- Длительность нарастания (в секундах) в начале фрагмента. Убирает щелчки. 0 = выкл.
fade_outFLOAT0.000–60Fade-out duration (seconds) at the fragment end. Removes clicks. 0 = off. --- Длительность затухания (в секундах) в конце фрагмента. Убирает щелчки. 0 = выкл.
reverseCOMBOoffReverse the fragment (play backwards). --- Реверс фрагмента (воспроизведение задом наперёд).
loudnormCOMBOoffNormalize loudness to EBU R128 standard (I=-16 LUFS). --- Нормализация громкости по стандарту EBU R128 (I=-16 LUFS).
loopINT11–100Repeat the fragment N times. 1 = no loop. Uses a two-pass approach. --- Повторить фрагмент N раз. 1 = без loop. Использует двухпроходный подход.
audiooptAUDIOOptional source audio from ComfyUI. Has priority over audio_path. NOTE: audio via this socket is already decoded to PCM (WAV), so format=source will produce WAV. For a true lossless stream copy use audio_path instead. --- Опциональный исходный звук из ComfyUI. Имеет приоритет над audio_path. ВАЖНО: аудио через этот сокет уже декодировано в PCM (WAV), поэтому format=source даст WAV. Для настоящего stream copy без потерь используйте audio_path.

Outputs (7)

NameTypeDescription
audio_pathSTRING
audioAUDIO
duration_secondsFLOAT
duration_timecodeSTRING
file_size_mbFLOAT
sample_rateINT
channelsINT