Files
Comfyui-JSON-Manager/docs/plans/2026-04-04-binary-index-decoder-design.md
2026-04-04 00:00:56 +02:00

1.6 KiB
Raw Permalink Blame History

BinaryIndexDecoder Node — Design

Summary

A standalone ComfyUI utility node that converts an integer index into 3 boolean outputs using binary (bit-field) encoding. Intended for use with loop counters to gate multiple processing branches simultaneously.

Node Spec

Field Value
Class name BinaryIndexDecoder
Display name Binary Index Decoder
Category JSON Manager/utils
Function decode

Inputs

Name Type Default Range
index INT 0 07

Outputs

Name Type
flag_0 BOOLEAN
flag_1 BOOLEAN
flag_2 BOOLEAN

Logic

flag_0 = bool((index >> 0) & 1)
flag_1 = bool((index >> 1) & 1)
flag_2 = bool((index >> 2) & 1)

Truth table

index flag_0 flag_1 flag_2
0 F F F
1 T F F
2 F T F
3 T T F
4 F F T
5 T F T
6 F T T
7 T T T

Implementation Notes

  • Lives in project_loader.py alongside other project nodes
  • Added to PROJECT_NODE_CLASS_MAPPINGS and PROJECT_NODE_DISPLAY_NAME_MAPPINGS
  • No JavaScript extension needed (no source sync, no dynamic widgets)
  • No NiceGUI UI changes needed
  • IS_CHANGED not needed (output is deterministic from input)

Testing

9 tests in tests/test_project_loader.py::TestBinaryIndexDecoder:

  • Input types include index as INT
  • All 8 index values (07) produce correct boolean tuple
  • Out-of-range index (e.g. 8) clamps to 07 or wraps gracefully
  • NodeMappings test updated: 5 nodes, mappings length == 5