Nodes/Comfyui-PixNodes/JSON List Pluck (PixNodes)
ComfyUI Node

JSON List Pluck (PixNodes)

Transpose a list of objects into per-field lists

By pixixai·Created 8 months ago·Updated 6 months ago· 24
JSON List Pluck (PixNodes)
  • json_list
  • plucked_list_1
  • plucked_list_2
  • plucked_list_3
  • plucked_list_4
  • plucked_list_5
  • plucked_list_6
  • plucked_list_7
  • plucked_list_8
  • plucked_list_9
  • plucked_list_10
  • plucked_list_11
  • plucked_list_12
  • plucked_list_13
  • plucked_list_14
  • plucked_list_15
  • plucked_list_16
  • plucked_list_17
  • plucked_list_18
  • plucked_list_19
  • plucked_list_20
  • plucked_list_21
  • plucked_list_22
  • plucked_list_23
  • plucked_list_24
  • plucked_list_25
  • plucked_list_26
  • plucked_list_27
  • plucked_list_28
  • plucked_list_29
  • plucked_list_30
  • plucked_list_31
  • plucked_list_32
  • plucked_list_33
  • plucked_list_34
  • plucked_list_35
  • plucked_list_36
  • plucked_list_37
  • plucked_list_38
  • plucked_list_39
  • plucked_list_40
  • plucked_list_41
  • plucked_list_42
  • plucked_list_43
  • plucked_list_44
  • plucked_list_45
  • plucked_list_46
  • plucked_list_47
  • plucked_list_48
  • plucked_list_49
  • plucked_list_50
  • plucked_list_51
  • plucked_list_52
  • plucked_list_53
  • plucked_list_54
  • plucked_list_55
  • plucked_list_56
  • plucked_list_57
  • plucked_list_58
  • plucked_list_59
  • plucked_list_60
  • plucked_list_61
  • plucked_list_62
  • plucked_list_63
  • plucked_list_64
  • plucked_list_65
  • plucked_list_66
  • plucked_list_67
  • plucked_list_68
  • plucked_list_69
  • plucked_list_70
  • plucked_list_71
  • plucked_list_72
  • plucked_list_73
  • plucked_list_74
  • plucked_list_75
  • plucked_list_76
  • plucked_list_77
  • plucked_list_78
  • plucked_list_79
  • plucked_list_80
  • plucked_list_81
  • plucked_list_82
  • plucked_list_83
  • plucked_list_84
  • plucked_list_85
  • plucked_list_86
  • plucked_list_87
  • plucked_list_88
  • plucked_list_89
  • plucked_list_90
  • plucked_list_91
  • plucked_list_92
  • plucked_list_93
  • plucked_list_94
  • plucked_list_95
  • plucked_list_96
  • plucked_list_97
  • plucked_list_98
  • plucked_list_99
  • plucked_list_100
filter_keyslist
merge_outputfalse

Imagine you've got a JSON list of shot objects, each with prompt, image, and duration fields, and you want a list of just the prompts. JSON List Pluck is the node for that: it pulls one field out of every object in a list and gives you a per-field list out of a dedicated port. It's a transpose - column extraction from a table-shaped list.

The input is a list of dictionaries (or a JSON string that parses into one). You type the field names you care about into filter_keys, one per line, and each one becomes its own output: plucked_list_1, plucked_list_2, and so on, up to 100 of them. The order of your keys maps to the output ports in order, so the node doubles as a way to fan one JSON list out into several parallel lists.

The matching is fuzzier than you'd expect

The nice surprise is how tolerant the field matching is. Type shot_prompt and it will find shotPrompt, shot_prompts, or even shots_prompts - the node normalizes keys (strips spaces/underscores/hyphens, lowercases), does stem matching (strips trailing s), and falls back on common variants. That's genuinely useful when you're feeding it JSON from an LLM that can't be trusted to name fields consistently. It'll also try to repair slightly-broken JSON text (single quotes, trailing commas, None/True literals) before giving up.

Two inputs do the configuring: json_list (wildcard) is the data, filter_keys (multiline string) is your field list, and merge_output (boolean, default off) flips the behavior - instead of separate per-field ports, everything gets merged into one list of objects.

The catch: 100 output ports

The node always exposes all 100 plucked_list_N outputs, and unused ones come back as None. That's a lot of visual noise on the canvas, and ComfyUI forces you to leave them all visible even if you only use two. It's the pack's "one node, maximum flexibility" design, and it's fine once you know to ignore the grayed-out sockets.

Install

Part of Comfyui-PixNodes. ComfyUI Manager → search "PixNodes" → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/pixixai/Comfyui-PixNodes

then restart. (The README's manual-install line points at the wrong repo, ComfyUI-AlignLayout - use the URL above.)

Where it fits

This is a workhorse for storyboard and batch-generation data: pull all the prompts out of a shot list to feed a prompt-iteration loop, pull the image references out to feed a video loader. Pair it with JSON Slicer or List from Loop on the downstream side and you've got a clean data pipeline out of a single JSON blob. Just remember the JSON ports carry Python objects, not strings - if you need text out of here, route through the pack's JSON Unpacker.

CategoryPixNodes/JSON

Inputs (3)

NameTypeDefaultDescription
json_list*
filter_keysSTRINGlist
merge_outputBOOLEANfalse

Outputs (100)

NameTypeDescription
plucked_list_1JSON
plucked_list_2JSON
plucked_list_3JSON
plucked_list_4JSON
plucked_list_5JSON
plucked_list_6JSON
plucked_list_7JSON
plucked_list_8JSON
plucked_list_9JSON
plucked_list_10JSON
plucked_list_11JSON
plucked_list_12JSON
plucked_list_13JSON
plucked_list_14JSON
plucked_list_15JSON
plucked_list_16JSON
plucked_list_17JSON
plucked_list_18JSON
plucked_list_19JSON
plucked_list_20JSON
plucked_list_21JSON
plucked_list_22JSON
plucked_list_23JSON
plucked_list_24JSON
plucked_list_25JSON
plucked_list_26JSON
plucked_list_27JSON
plucked_list_28JSON
plucked_list_29JSON
plucked_list_30JSON
plucked_list_31JSON
plucked_list_32JSON
plucked_list_33JSON
plucked_list_34JSON
plucked_list_35JSON
plucked_list_36JSON
plucked_list_37JSON
plucked_list_38JSON
plucked_list_39JSON
plucked_list_40JSON
plucked_list_41JSON
plucked_list_42JSON
plucked_list_43JSON
plucked_list_44JSON
plucked_list_45JSON
plucked_list_46JSON
plucked_list_47JSON
plucked_list_48JSON
plucked_list_49JSON
plucked_list_50JSON
plucked_list_51JSON
plucked_list_52JSON
plucked_list_53JSON
plucked_list_54JSON
plucked_list_55JSON
plucked_list_56JSON
plucked_list_57JSON
plucked_list_58JSON
plucked_list_59JSON
plucked_list_60JSON
plucked_list_61JSON
plucked_list_62JSON
plucked_list_63JSON
plucked_list_64JSON
plucked_list_65JSON
plucked_list_66JSON
plucked_list_67JSON
plucked_list_68JSON
plucked_list_69JSON
plucked_list_70JSON
plucked_list_71JSON
plucked_list_72JSON
plucked_list_73JSON
plucked_list_74JSON
plucked_list_75JSON
plucked_list_76JSON
plucked_list_77JSON
plucked_list_78JSON
plucked_list_79JSON
plucked_list_80JSON
plucked_list_81JSON
plucked_list_82JSON
plucked_list_83JSON
plucked_list_84JSON
plucked_list_85JSON
plucked_list_86JSON
plucked_list_87JSON
plucked_list_88JSON
plucked_list_89JSON
plucked_list_90JSON
plucked_list_91JSON
plucked_list_92JSON
plucked_list_93JSON
plucked_list_94JSON
plucked_list_95JSON
plucked_list_96JSON
plucked_list_97JSON
plucked_list_98JSON
plucked_list_99JSON
plucked_list_100JSON