Media Splitter
Untangling the daz config nodes' one fat media wire
- extended_media
- image_1
- image_2
- image_3
- image_4
- image_5
- video_1
- video_2
- audio_1
- audio_2
The daz-tools pack's big Workflow Config nodes - WAN2.2, LTX2.3/2.5, MiniMax H3 - let one "take" carry a whole pile of reference media: up to five images, two video clips, and two audio files, all named and numbered. Rather than hang a dozen sockets off an already crowded node, they pack every slot onto a single extended_media link of a custom type. Media Splitter is the node that unwraps that bundle and hands you one socket per slot. It's the least glamorous node in the pack, and it's the one you reach for the moment a workflow needs more than one reference frame.
Standing alone it does nothing useful - there's exactly one input and no settings to tweak. It earns its place inside daz workflows, where it's the difference between wiring from one fat custom-type wire or fishing around the config node for what you need.
What it does
Media Splitter takes one extended_media input (type DX_EXTENDED_MEDIA, required - the only input it has) and fans it out into nine outputs:
image_1…image_5(IMAGE)video_1,video_2(IMAGE - a video slot comes out as an image batch of its decoded frames, not a VIDEO type)audio_1,audio_2(AUDIO)
Slot numbers are fixed positions, matching what the config node's editor shows you. image_3 is always the take's image slot 3, whatever the other slots hold - filling or clearing one never shifts its neighbours. A slot the take left empty outputs None. Note that image_1 and audio_1 are the take's own reference image and audio - the same ones the Workflow Config node already puts on its image and audio outputs. They're handed along, not loaded twice, so grabbing them here costs you nothing and lets you take every slot off this one node.
Mechanically it's dumb on purpose: the config node does all the decoding (including the 600-frame / 4 GB ceiling per video slot), and split() just reads the bundle dict by slot number and re-emits each payload. That's a one-directional version of the context-bus pattern the wider ecosystem uses - rgthree's Context and friends bundle many values onto one wire to keep graphs readable; daz does it for media, and this node is the "explode" half. If you've used one of those, the trade-off will feel familiar: tidy graphs on the config side, but a socket can hand you None, so whatever you wire into has to tolerate an empty input.
Where it sits in a workflow
You'll only ever feed it from one of the four video Workflow Config nodes - WAN2.2, LTX2.3, LTX2.5, or MiniMax H3, the ones that support extended media. The still-image Workflow Config node has no extended_media output, so don't bother looking for this node there.
The point is multi-reference set-ups: REF2VA on MiniMax H3, MSR on LTX2.3/2.5, first-frame/last-frame or multi-frame pipelines anywhere. Take a look at what each slot is for and wire the IMAGE outputs into your conditioning/VAE-encode stages and the AUDIO outputs into whatever muxes sound back into your rendered video (the pack's own Sound Mixer and Null Audio Checker speak the same AUDIO convention VideoHelperSuite uses).
Install
It ships inside the whole pack, so you get it however you install daz-tools:
cd ComfyUI/custom_nodes
git clone https://github.com/denyazzolin/comfyui-daz-tools
…then restart ComfyUI. Easier still, use ComfyUI Manager and search for comfyui-daz-tools. There's no requirements.txt and no model download - the pack is pure custom-node code. The Workflow Config nodes can load GGUF quantized models, but only if you also have ComfyUI-GGUF installed; that's a config-node concern, not something the splitter itself cares about.
Gotchas
The trap that catches people: video_1 isn't a video. It's an IMAGE batch of decoded frames, so wire it into frame consumers (VAE encode, frame-to-frame conditioning), not into something expecting a single VIDEO tensor. Second: empty slots really are None. If your workflow tolerates a take with no reference audio, put a null-guard in front of whatever consumes audio_1 - the pack ships Check Null and Null Audio Checker precisely for that. And if you load a shared workflow and this node shows up with its input dangling, remember it's a dead end without a daz Workflow Config node upstream - install the pack and rebuild that side.
For a pack this young and this niche, it's worth noting the docs are unusually thorough - the README spells out exactly which slot number means which editor position, so when in doubt, read that before guessing.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| extended_media | DX_EXTENDED_MEDIA | — |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| image_1 | IMAGE | — |
| image_2 | IMAGE | — |
| image_3 | IMAGE | — |
| image_4 | IMAGE | — |
| image_5 | IMAGE | — |
| video_1 | IMAGE | — |
| video_2 | IMAGE | — |
| audio_1 | AUDIO | — |
| audio_2 | AUDIO | — |