DumasNodes
DumasNodes is a ComfyUI custom-node pack for generic utility workflows under the Dumas brand.
Included Nodes
-
Dumas Image Compare- Inputs: optional
image1, optionalimage2 - Outputs:
new image - Saves preview images for the built-in compare UI and passes through the second image when present, otherwise the first.
- Bundles a
js/frontend extension so the compare viewer renders inside both classic ComfyUI and Nodes 2.0.
- Inputs: optional
-
Save Image Dumas- Inputs:
images,folder,pattern,format,quality,embed_workflow,save_on_run, optionalname, optionalname_2 - Output: none
- Saves images to any folder, not just ComfyUI's output directory.
- Supports filename tokens including
%input%,%input2%,%date:yyyy-MM-dd%,%counter%,%width%,%height%, and%batch_num%.
- Inputs:
-
Dumas JSON String to Object- Input:
json_string - Output: parsed
JSON - Use it to turn raw JSON text into a structured object.
- Input:
-
Dumas JSON Object to String- Inputs:
json_object,pretty,sort_keys - Output: serialized
STRING - Use it to compact or pretty-print JSON for prompts, logs, or file output.
- Inputs:
-
Dumas Strip Iteration Suffix- Input:
filename - Output: cleaned
STRING - Removes a trailing
_<digits>iteration suffix before the file extension, for exampleasset_003.png -> asset.png.
- Input:
-
Dumas Slugify String- Input:
text - Output: slug
STRING - Converts text into a lowercase URL/file-safe slug, for example
Crème brûlée 2026 -> creme-brulee-2026.
- Input:
-
Dumas JSON Get Value- Inputs:
json_object,path - Output:
JSON - Reads a nested value using dot paths like
user.profile.nameoritems.0.id.
- Inputs:
-
Dumas JSON Set Value- Inputs:
json_object,path,value_json - Output: updated
JSON - Writes a parsed JSON value into a nested path without mutating the original object.
- Inputs:
-
Dumas JSON Has Key- Inputs:
json_object,path - Output:
BOOLEAN - Checks whether a nested path exists.
- Inputs:
-
Dumas JSON Remove Key- Inputs:
json_object,path - Output: updated
JSON - Removes a nested key or array item by path.
- Inputs:
-
Dumas JSON Pick Fields- Inputs:
json_object,paths - Output: filtered
JSON - Builds a new object from newline-separated paths that exist in the input.
- Inputs:
-
Dumas JSON Merge Objects- Inputs:
base_object,overlay_object - Output: merged
JSON - Deep-merges dictionaries so overlay values replace or extend the base object.
- Inputs:
-
Dumas JSON Keys- Input:
json_object - Outputs:
keysas JSON array,countas integer - Lists the top-level keys of an object and reports how many there are.
- Input:
-
Dumas JSON Array Length- Input:
json_array - Output:
INT - Returns the length of a JSON array.
- Input:
-
Dumas JSON Array Append- Inputs:
json_array,value_json - Output: updated
JSON - Appends a parsed JSON value to the end of an array.
- Inputs:
-
Dumas JSON Array Slice- Inputs:
json_array,start,end,step - Output: sliced
JSON - Returns an array slice.
end=0means "slice to the end".
- Inputs:
-
Dumas JSON Array Iterator- Inputs:
json_input,index,mode - Outputs:
item,current_index,total_items - Returns the current array item and position, with
modeset tofixed,incr, ordecr.
- Inputs:
-
Dumas JSON Object Iterator- Inputs:
json_input,index,mode - Outputs:
key,value,current_index,total_items - Returns the current object entry in insertion order, with
modeset tofixed,incr, ordecr.
- Inputs:
-
Dumas JSON Flatten- Input:
json_input - Output: flat
JSON - Flattens nested objects and arrays into dot-path keys.
- Input:
-
Dumas JSON Unflatten- Input:
flat_json_object - Output: nested
JSON - Rebuilds nested JSON from a flat dot-path object.
- Input:
All nodes live in the Dumas/JSON category.
Installation
-
Change into your ComfyUI custom nodes directory:
cd /path/to/ComfyUI/custom_nodes -
Clone this repository:
git clone https://git.dumas.ddns.net/chris.dumas/DumasNodes.git -
Restart ComfyUI.
Usage
Use dot paths for nested access:
user.profile.name
items.0.id
settings.render.width
Dumas JSON Set Value expects value_json to be valid JSON, so strings should be quoted:
"Dumas"
{"enabled": true, "retries": 3}
Dumas JSON Pick Fields expects one path per line:
user.name
meta.active
items.0.id
Dumas JSON Array Slice treats end=0 as "use the rest of the array".
Dumas JSON Array Iterator clamps to valid bounds:
fixed -> use index as-is
incr -> use index + 1
decr -> use index - 1
Dumas JSON Object Iterator uses the same index rules and iterates object entries in their existing key order.
Dumas JSON Flatten and Dumas JSON Unflatten use the same dot-path format as the other path-based nodes.
Dumas Image Compare accepts one or two images. The new image socket forwards image2 when connected so you can keep the "after" image moving through the workflow, and falls back to image1 if only one input is present.
Save Image Dumas leaves folder empty to use ComfyUI's output directory. name feeds %input% and name_2 feeds %input2%, so a pattern like project/%input%_%input2%_%counter% can combine two upstream strings into the saved filename.
Dumas Strip Iteration Suffix only strips a final numeric suffix. Names like my_asset_final.png are left untouched, while my_asset_012.png becomes my_asset.png.
Dumas Slugify String lowercases text, strips accents, replaces non-alphanumeric runs with -, and trims leading or trailing dashes.
Roadmap
This repo is intended to grow into a broader set of Dumas-branded generic utility nodes, including JSON helpers and adjacent data-manipulation tools.
License
MIT.