154 lines
3.9 KiB
Markdown
154 lines
3.9 KiB
Markdown
# 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.
|