Nodes/comfyui-fvmtools/Music · Verlaengern 6 · Zusammenfuegen
ComfyUI Node

Music · Verlaengern 6 · Zusammenfuegen

Rebuild the song from its parts, any order you like

By ping1979ping·Created 7 months ago·Updated a day ago· 2
Music · Verlaengern 6 · Zusammenfuegen
    • audio
    • report
    • saved_path
    ◄session_json—►
    ◄arrangementalle►
    ◄crossfade_ms120►
    ◄end_fade_seconds2.0►
    ◄save_finalfalse►

    Step 6 of 6 (Zusammenfuegen), the one that hands you an actual song. Its job is to take the parts you accumulated and join them - and the way it does that is the reason the whole chain is worth using instead of a single long render.

    Nothing here is destructive. The merge runs fresh from the FLAC files in the session folder every time, applying each part's stored gain curve, crossfading the joins, fading the end, and peak-limiting at 0.999. Re-merge twenty times after reordering and you haven't touched the source material once. That's what makes "letzten Teil entfernen" and re-append cost only render time.

    The settings

    arrangement is where the fun is. alle means parts 0, 1, 2, 3 … in order - and part 0 is the source song, so alle gives you the original followed by everything appended. You can also write your own sequence: 0,1,2,2,3 plays part 2 twice, 0-2,2x3 takes the range and then repeats part 2 three times. This is a cheap, real arrangement tool: you rendered three sections in a fixed order, and now you decide the running order. Pull the bridge earlier, drop a chorus in twice, cut the second verse.

    crossfade_ms (120 by default, up to 2000) is the blend at each join. The parts were already cut at a matched point, so this is mostly about hiding the last few milliseconds of phase mismatch. Long fades smear a beat; short ones can leave a tick. 120 ms is a sane starting point. If you can hear where parts meet, try 200–300.

    end_fade_seconds (2 by default) fades the very end. This matters more than it looks: YuE2 stops on its last note when you append a part, so an extended song built only from appended material ends abruptly. The tooltip gives the real fix - append a section labelled outro last, so the renderer writes you an actual ending - and the fade is the band-aid for everything else. Set it to 0 if you've done the outro properly and want it bit-exact.

    save_final writes the result as a 24-bit FLAC to output/audio/music/extended/, named after the title with a part count and timestamp, and reports the full path in saved_path. Off by default, which is right: the audio output is the point, and you may want a different master afterwards.

    Outputs and install

    Three outputs: audio (wire it to a Save Audio or preview node), report, and saved_path. The report gives you the running order, the total duration, and a line per segment - which part, its labels, its length, and the gain applied - which is the fastest way to confirm the arrangement did what you meant. It's an output node, so it executes whether or not you consume the audio.

    Install through ComfyUI Manager (search comfyui-fvmtools) or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ping1979ping/comfyui-FVMtools
    

    Restart, then Add Node → FVMtools/music/extend. No extra dependencies - numpy, and ComfyUI's own soundfile for the FLAC write.

    Common issues

    The song ends mid-phrase. You didn't append an outro. The render fade covers a couple of seconds of abruptness; a rest-bar section labelled outro fixes it properly. Add it as the final append before merging.

    saved_path is empty. save_final is off, or the write failed - check the console. It saves into ComfyUI's output directory under audio/music/extended.

    A part appears twice, or not at all. Read the arrangement string carefully: it's 0-based, part 0 is the source, ranges are inclusive (0-2 is three parts). A part number that doesn't exist raises a real error naming what's available, so a silent misread means the string parsed fine and your intent was the typo. The report's first line echoes the resolved order back at you - check it there rather than in the audio file.

    The merge is quieter than the last part you rendered. That's the per-label loudness matching doing its job across the whole song rather than tracking the loudest part. If you'd rather have it raw, render with loudness_match off on the Commit node so the parts are joined at their natural levels.

    You reordered and it sounds worse, not different. Crossfades at moved joins land on musical material that was never adjacent. Rearranging works best between sections with clean bar-line boundaries; glue-ing a verse tail onto a chorus head is audible.

    CategoryFVMtools/music/extend

    Inputs (5)

    NameTypeDefaultDescription
    session_jsonSTRING—
    arrangementSTRINGallealle = 0,1,2,... in Reihenfolge. Eigene Folge z. B. 0,1,2,2,3 oder 0-2,2x3 (Teil 2 dreimal). Teil 0 ist der Ausgangs-Song.
    crossfade_msFLOAT1200–2000—
    end_fade_secondsFLOAT2.00–30Ausblenden am Songende. YuE2 hoert bei angehaengten Teilen am letzten Ton auf; fuer ein echtes Ende zuletzt einen Abschnitt mit Label outro anhaengen.
    save_finalBOOLEANfalseErgebnis als FLAC nach output/audio/music/extended speichern.

    Outputs (3)

    NameTypeDescription
    audioAUDIO—
    reportSTRING—
    saved_pathSTRING—