Demux

This function block splits a single grouped input into multiple separate outputs. Use it when you have a list or batch of items and want to access each element individually as separate outputs.

πŸ“₯ Inputs

In Accepts a grouped input (list/batch) on a single socket. The socket accepts multiple items.

πŸ“€ Outputs

Out 1, Out 2 ... Each output socket provides one element of the input list. The number of outputs can be changed to match the size of the input list you want to split into.

πŸ•ΉοΈ Controls

Output size Choose how many outputs the block should provide. The dropdown adjusts the visible output sockets dynamically.

🎨 Features

  • Dynamic output count: change how many outputs are available without replacing the block.

  • Preserves input order: items are forwarded to outputs in the same sequence they arrive.

  • Supports generic data: works with images, numbers, shapes, or any other generic values provided by previous blocks.

πŸ“ Usage Instructions

  1. Provide a grouped list or batch to the In socket.

  2. Set Output size to the number of elements you expect to split into.

  3. Use the separate outputs to feed downstream blocks that need individual items.

πŸ“Š Evaluation

When the block runs, it reads the grouped input and places each element onto a corresponding output socket. If the input is shorter or longer than the configured output count, handle the mismatch with downstream logic or adjust the Output size accordingly.

πŸ’‘ Tips and Tricks

  • To recombine split items back into a single flow, pair this block with the Mux block.

  • To access a single element from a list before or after demultiplexing, use the Get Element block.

  • Use Batch Processing before demultiplexing when processing large lists to reduce memory usage.

  • After processing individual items you can merge them back using Batch Concatenation.

  • If you need to iterate over each item and break them back out of a batch, consider combining with Debatch.

  • Store or freeze intermediate results with Data Memory when you need stable outputs for downstream steps.

(hint: pick only blocks from the available list when combining β€” e.g., Mux, Get Element, Batch Processing, Debatch, Batch Concatenation, Data Memory.)

πŸ› οΈ Troubleshooting

  • No outputs populated: ensure a valid grouped input is connected to In and that Output size is set to the expected number.

  • Missing or extra elements: confirm the input length matches the configured Output size or add logic downstream to handle variable lengths (for example with Get Element or Replace None).

  • Unexpected data types: verify upstream blocks produce the data type you expect; use type-conversion or validation blocks if necessary.

Last updated

Was this helpful?