# DumasNodes `DumasNodes` is a ComfyUI custom-node pack for generic utility workflows under the Dumas brand. ## Included Nodes - `Dumas JSON String to Object` - Input: `json_string` - Output: parsed `JSON` - Use it to turn raw JSON text into a structured object. - `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. - `Dumas JSON Get Value` - Inputs: `json_object`, `path` - Output: `JSON` - Reads a nested value using dot paths like `user.profile.name` or `items.0.id`. - `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. - `Dumas JSON Has Key` - Inputs: `json_object`, `path` - Output: `BOOLEAN` - Checks whether a nested path exists. - `Dumas JSON Remove Key` - Inputs: `json_object`, `path` - Output: updated `JSON` - Removes a nested key or array item by path. - `Dumas JSON Pick Fields` - Inputs: `json_object`, `paths` - Output: filtered `JSON` - Builds a new object from newline-separated paths that exist in the input. - `Dumas JSON Merge Objects` - Inputs: `base_object`, `overlay_object` - Output: merged `JSON` - Deep-merges dictionaries so overlay values replace or extend the base object. - `Dumas JSON Keys` - Input: `json_object` - Outputs: `keys` as JSON array, `count` as integer - Lists the top-level keys of an object and reports how many there are. - `Dumas JSON Array Length` - Input: `json_array` - Output: `INT` - Returns the length of a JSON array. - `Dumas JSON Array Append` - Inputs: `json_array`, `value_json` - Output: updated `JSON` - Appends a parsed JSON value to the end of an array. - `Dumas JSON Array Slice` - Inputs: `json_array`, `start`, `end`, `step` - Output: sliced `JSON` - Returns an array slice. `end=0` means "slice to the end". - `Dumas JSON Array Iterator` - Inputs: `json_input`, `index`, `mode` - Outputs: `item`, `current_index`, `total_items` - Returns the current array item and position, with `mode` set to `fixed`, `incr`, or `decr`. - `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 `mode` set to `fixed`, `incr`, or `decr`. - `Dumas JSON Flatten` - Input: `json_input` - Output: flat `JSON` - Flattens nested objects and arrays into dot-path keys. - `Dumas JSON Unflatten` - Input: `flat_json_object` - Output: nested `JSON` - Rebuilds nested JSON from a flat dot-path object. All nodes live in the `Dumas/JSON` category. ## Installation 1. Change into your ComfyUI custom nodes directory: ```bash cd /path/to/ComfyUI/custom_nodes ``` 2. Clone this repository: ```bash git clone https://git.dumas.ddns.net/chris.dumas/DumasNodes.git ``` 3. Restart ComfyUI. ## Usage Use dot paths for nested access: ```text 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: ```json "Dumas" ``` ```json {"enabled": true, "retries": 3} ``` `Dumas JSON Pick Fields` expects one path per line: ```text 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: ```text 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. ## 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.