ComfyUI Extension: Nilor Nodes by Nilor Corp

Authored by nilor-corp

Created

Updated

2 stars

Custom utility nodes for ComfyUI by Nilor Corp. Probably not useful for most people, but contains stuff for working with lists, filenames, image batches, etc in a very specifc way.

README

Nilor Nodes Documentation 👺

A collection of utility nodes for ComfyUI focusing on list manipulation, batch operations, and advanced I/O functionality.

🏭 Generators

<details> <summary><b>Interpolated Float List</b></summary>

Generates a list of interpolated float values based on sections.

| Input | Type | Description | |-------|------|-------------| | number_of_floats | INT | Total number of float values to generate | | number_of_sections | INT | Number of sections to divide into | | section_number | INT | Current section being processed | | interpolation_type | ["slinear", "quadratic", "cubic"] | Type of interpolation |

| Output | Type | Description | |--------|------|-------------| | floats | FLOAT | List of interpolated float values |

Notes: Creates smooth transitions between values using scipy's interpolation.

</details> <details> <summary><b>One Minus Float List</b></summary>

Creates an inverted list of float values (1 - x).

| Input | Type | Description | |-------|------|-------------| | list_of_floats | FLOAT | Input float list |

| Output | Type | Description | |--------|------|-------------| | floats | FLOAT | Inverted float values |

Notes: Simple inversion operation, useful for creating complementary values.

</details> <details> <summary><b>Remap Float List</b></summary>

Remaps a list of float values from one range to another.

| Input | Type | Description | |-------|------|-------------| | list_of_floats | FLOAT | Input float list | | min_input | FLOAT | Minimum input value (default: 0.0) | | max_input | FLOAT | Maximum input value (default: 1.0) | | min_output | FLOAT | Minimum output value (default: 0.0) | | max_output | FLOAT | Maximum output value (default: 1.0) |

| Output | Type | Description | |--------|------|-------------| | remapped_floats | FLOAT | Remapped float values |

Notes: Useful for scaling values between different ranges while preserving relationships.

</details> <details> <summary><b>Inverse Map Float List</b></summary>

Creates a mirror mapping of float values around their midpoint.

| Input | Type | Description | |-------|------|-------------| | list_of_floats | FLOAT | Input float list |

| Output | Type | Description | |--------|------|-------------| | floats | FLOAT | Inverse mapped values |

Notes: Automatically determines min/max from input list.

</details>

🛠️ Utilities

<details> <summary><b>Int To List Of Bools</b></summary>

Converts an integer into a list of boolean values.

| Input | Type | Description | |-------|------|-------------| | number_of_images | INT | Number to convert |

| Output | Type | Description | |--------|------|-------------| | booleans | BOOLEAN | List of boolean values |

Notes: Creates a list where first N values are True, rest are False.

</details> <details> <summary><b>List of Ints</b></summary>

Generates a sequential or shuffled list of integers.

| Input | Type | Description | |-------|------|-------------| | min | INT | Starting integer (default: 0) | | max | INT | Ending integer (default: 9) | | shuffle | BOOLEAN | Whether to randomize order |

| Output | Type | Description | |--------|------|-------------| | ints | INT | List of integers |

Notes: Output is always a list, even for single values.

</details> <details> <summary><b>Select Index From List</b></summary>

Extracts a single item from a list at the specified index.

| Input | Type | Description | |-------|------|-------------| | list_of_any | any | Input list of any type | | index | INT | Index to select (default: 0) |

| Output | Type | Description | |--------|------|-------------| | any | any | Selected item |

Notes: Uses custom AnyType to accept any input type. Handles tensor unpacking automatically.

</details> <details> <summary><b>Shuffle Image Batch</b></summary>

Randomly reorders images in a batch.

| Input | Type | Description | |-------|------|-------------| | images | IMAGE | Batch of images | | seed | INT | Random seed for shuffling |

| Output | Type | Description | |--------|------|-------------| | images | IMAGE | Shuffled image batch |

Notes: Maintains batch dimensions while randomizing order.

</details>

💾 I/O Operations

<details> <summary><b>Save Image To HF Dataset</b></summary>

Uploads images to a HuggingFace dataset.

| Input | Type | Description | |-------|------|-------------| | image | IMAGE | Image to upload | | repository_id | STRING | HuggingFace dataset repository | | hf_auth_token | STRING | HuggingFace authentication token | | filename_prefix | STRING | Prefix for saved files |

Notes: Requires HuggingFace authentication token and repository access.

</details> <details> <summary><b>Save EXR Arbitrary</b></summary>

Saves multi-channel data as an OpenEXR file.

| Input | Type | Description | |-------|------|-------------| | channels | any | List of tensor channels | | filename_prefix | STRING | Output filename prefix |

Notes: Supports arbitrary number of channels. Each channel must have same dimensions.

</details> <details> <summary><b>Save Video To HF Dataset</b></summary>

Uploads video files to a HuggingFace dataset.

| Input | Type | Description | |-------|------|-------------| | filenames | VHS_FILENAMES | List of video files | | repository_id | STRING | HuggingFace dataset repository | | hf_auth_token | STRING | HuggingFace authentication token | | filename_prefix | STRING | Prefix for saved files |

Notes: Handles batch upload of multiple video files.

</details>