DebugPadawan's ComfyUI Essentials
Essential custom nodes for ComfyUI workflows
Nodes (52)
The dead-simple way to pull a color palette out of any image
An if/else for text — the prompt-switch you'll forget to install until you need it
The honest console.log for ComfyUI
Two numbers in, a result out, zero ceremony
Rounding, but you get to pick which kind
Pull one thing out of a list (and it doesn't even need to be a list)
Grab one frame, or a run of frames, out of an image batch
Read an image's width, height and batch size right off the tensor
Integer math without the float surprises
The one-liner that unblocks float-only inputs
Build a list by plugging in up to eight things
Kill duplicate tags and keep the order
Filter a list by what its strings contain
Count, first, last — the three things you'll want to know about a list
Two lists in, three ways to combine them
Deterministic shuffle — same seed, same order, every time
The list version of 'give me items 3 through 7'
AND, OR, NOT, XOR — actual boolean logic on the canvas
One expression instead of a tower of math nodes
A search box for the node you know the name of but can't find
Absolute value without the maths degree
Keep your numbers between the lines
The if-statement your workflow was missing
Smooth transitions, one slider at a time
A Python range() for your graph
Move a number from one scale to another without thinking
Stop tripping over floating point noise
Negative, zero, or positive — tell in one node
Numbers as text, without the 0.30000000000000004
Reproducible randomness — a weirder phrase than it should be
Roll the dice on your prompt styles
Eight one-number transforms in a single dropdown
Parsing 'yes' / 'no' / 'true' / 'false' like a champ
When text says '3.5' but you need the number 3.5
Turn '42' into 42 (and even '3.14' into 3)
UPPERCASE, lowercase, Title Case — for your prompts
Snake_case, camelCase, kebab-case — for filenames and code
Branch your workflow on what the text says
Load a .txt straight into your graph
Turn a list of tags into one comma-separated prompt
The boring node that saves you from silently truncated prompts
Assembling prompts without the ugly spacing bugs
Find, rewrite, and extract with real patterns
Same regex engine, older name
Turning a comma string into a list you can actually use
Prompt assembly with placeholder slots
When a string of JSON needs to become data
Getting the whitespace off the ends
The whitespace janitor with the right modes
The glue that keeps ComfyUI's strict typing happy
Pretty-print a JSON object for humans or string nodes
Named placeholders, no regex required
🎯 DebugPadawan's ComfyUI Essentials
Essential custom nodes for ComfyUI workflows
</div>✨ Features
<table> <tr> <td><b>🔤 Text Processing</b></td> <td>Split, join, and manipulate text strings with precision</td> </tr> <tr> <td><b>📦 Data Conversion</b></td> <td>Convert between text and JSON formats easily</td> </tr> <tr> <td><b>🐛 Debug Tools</b></td> <td>Print and inspect values during workflow execution</td> </tr> <tr> <td><b>⏱️ Timing Control</b></td> <td>Add delays and timing control to your workflows</td> </tr> <tr> <td><b>🔀 Logic & Math</b></td> <td>Boolean logic gates and mathematical operations</td> </tr> <tr> <td><b>🔧 Utilities</b></td> <td>Essential helpers for workflow optimization and list management</td> </tr> </table>🚀 Installation
# Navigate to your ComfyUI custom nodes directory
cd ComfyUI/custom_nodes
# Clone the repository
git clone https://github.com/DebugPadawan/DebugPadawans-ComfyUI-Essentials.git
# Restart ComfyUI
📦 Available Nodes
🔤 Text Processing
<details> <summary><b>📝 Text Splitter</b> - Split text strings by delimiter</summary>Category: DebugPadawan/Text
Splits a text string at a specified delimiter and returns a list of strings.
📥 Inputs:
text(String): The text to split (supports multiline input)delimiter(String): The character(s) to split by (default:",")strip_whitespace(Boolean, optional): Remove leading/trailing whitespace (default:True)remove_empty(Boolean, optional): Remove empty strings from result (default:True)
📤 Outputs:
text_list(List): The split list of stringscount(Integer): Number of elements in the list
💡 Example:
Input: "apple, banana, orange"
Delimiter: ","
Output: ["apple", "banana", "orange"] and 3
Process CSV-like data, split tag lists, separate coordinates, create filename lists, parse prompt components.
</details> <details> <summary><b>🔗 Text Joiner</b> - Combine strings with custom delimiters</summary>Category: DebugPadawan/Text
Combines a list of strings into a single text string with a customizable delimiter.
📥 Inputs:
text_list(List): List of strings to joindelimiter(String): Character(s) to join with (default:", ")prefix(String, optional): Text to add at the beginningsuffix(String, optional): Text to add at the end
📤 Outputs:
joined_text(String): The combined text string
💡 Example:
Input: ["red", "green", "blue"]
Delimiter: " | "
Prefix: "Colors: "
Suffix: " - end"
Output: "Colors: red | green | blue - end"
Combine prompt parts, convert lists to readable text, create metadata tags, build filenames, format output strings.
</details> <details> <summary><b>🔄 Text Replace</b> - Replace specific text in a string</summary>Category: DebugPadawan/Text
Replaces all occurrences of a specific substring within a text string.
📥 Inputs:
text(String): The text to processfind(String): The substring to search forreplace(String): The string to replace it with
📤 Outputs:
text(String): The modified text string
💡 Example:
Input: "A beautiful sunset over the ocean"
Find: "sunset"
Replace: "sunrise"
Output: "A beautiful sunrise over the ocean"
Useful for dynamically adjusting prompts, modifying paths, and cleaning up generated text.
</details> <details> <summary><b>🔍 Text Regex (Search & Replace)</b> - Pattern-based text manipulation</summary>Category: DebugPadawan/Text
Searches for patterns using Regular Expressions and optionally replaces them.
📥 Inputs:
text(String): The text to processpattern(String): The regex pattern to search forreplace(String): The string to replace matches with
📤 Outputs:
text(String): The modified text stringmatches(List): All strings that matched the patternfound(Boolean): True if at least one match was found
Extract numbers, redact sensitive info, complex pattern replacement.
</details> <details> <summary><b>💬 String Formatter</b> - Create custom strings with placeholders</summary>Category: DebugPadawan/Text
Formats a string using f-string-like syntax with up to 5 input strings.
📥 Inputs:
format_string(String): The template string with placeholders (e.g., "Hello {input1}, your number is {input2}").input1-input5(String, optional): Up to five input strings to replace placeholders in theformat_string.
📤 Outputs:
formatted_string(String): The resulting formatted string.
💡 Example:
Format String: "The result of {input1} plus {input2} is {input3}"
Input1: "2"
Input2: "3"
Input3: "5"
Output: "The result of 2 plus 3 is 5"
Useful for constructing dynamic prompts, filenames, messages, or URLs from multiple pieces of data.
</details> <details> <summary><b>🔍 Text Compare</b> - Compare two strings with various modes</summary>Category: DebugPadawan/Text
Compares two text strings and returns a boolean result based on the comparison mode.
📥 Inputs:
text_a(String): First text to comparetext_b(String): Second text to comparemode(List): Comparison mode - equals, not equals, contains, starts with, ends withcase_sensitive(Boolean, optional): Whether comparison is case sensitive (default:True)
📤 Outputs:
result(Boolean): True if comparison matchesresult_text(String): "True" or "False" as string
💡 Example:
Text A: "Hello World"
Text B: "hello"
Mode: "contains"
Case Sensitive: False
Output: True
Useful for conditional workflow branching based on text content.
</details> <details> <summary><b>📏 Text Length</b> - Get string length in characters, words, or lines</summary>Category: DebugPadawan/Text
Measures the length of a text string in different units.
📥 Inputs:
text(String): The text to measurecount_mode(List): What to count - characters, words, lines (default:characters)
📤 Outputs:
length(Integer): The countlength_text(String): The count as a string
💡 Example:
Text: "Hello World"
Mode: "words"
Output: 2
Useful for validating prompt lengths, counting words, or checking character limits.
</details> <details> <summary><b>🔤 Text Case</b> - Transform text case</summary>Category: DebugPadawan/Text
Transforms the case of text strings.
📥 Inputs:
text(String): The text to transformmode(List): Case mode - uppercase, lowercase, capitalize, title case, swap case
📤 Outputs:
result(String): The transformed text
💡 Example:
Input: "hello world"
Mode: "title case"
Output: "Hello World"
Useful for normalizing prompts, formatting titles, or preparing text for processing.
</details> <details> <summary><b>✂️ Text Trim</b> - Remove whitespace from text</summary>Category: DebugPadawan/Text
Removes whitespace from text strings.
📥 Inputs:
text(String): The text to trimmode(List): Where to trim - both, left, right, all (default:both)
📤 Outputs:
result(String): The trimmed text
💡 Example:
Input: " Hello World "
Mode: "both"
Output: "Hello World"
The "all" mode removes all whitespace and collapses multiple spaces into single spaces.
</details> <details> <summary><b>🔤 Text Case Converter</b> - Transform text case styles</summary>Category: DebugPadawan/Text
Converts text to different case styles for formatting prompts, filenames, and display text.
📥 Inputs:
text(String): The text to convertcase_mode(List): Case style - UPPER, lower, Title Case, Sentence case, snake_case, kebab-case, camelCase, PascalCase
📤 Outputs:
converted_text(String): The converted text
💡 Example:
Input: "hello world"
Mode: "Title Case"
Output: "Hello World"
Input: "Hello World"
Mode: "snake_case"
Output: "hello_world"
Input: "hello world"
Mode: "PascalCase"
Output: "HelloWorld"
Normalize prompts, format filenames, convert naming conventions between different systems.
</details> <details> <summary><b>✂️ Text Trimmer</b> - Advanced text trimming options</summary>Category: DebugPadawan/Text
Trims text with various whitespace removal options.
📥 Inputs:
text(String): The text to trimmode(List): Trim mode - both, start, end, all_whitespace, collapse_spaces
📤 Outputs:
trimmed_text(String): The trimmed text
💡 Example:
Input: " Hello World "
Mode: "collapse_spaces"
Output: "Hello World"
Mode: "all_whitespace"
Output: "HelloWorld"
Clean up prompt formatting, remove extra spaces, prepare text for further processing.
</details> <details> <summary><b>📎 Text Prefix Suffix</b> - Add prefix and/or suffix to text</summary>Category: DebugPadawan/Text
Adds prefix and/or suffix to text with optional spacing.
📥 Inputs:
text(String): The base textprefix(String, optional): Text to add at the beginningsuffix(String, optional): Text to add at the endadd_space(Boolean): Add space between parts (default: True)
📤 Outputs:
result_text(String): The modified text
💡 Example:
Text: "beautiful"
Prefix: "a"
Suffix: "sunset"
Output: "a beautiful sunset"
Build complex prompts from components, wrap text with markers, add modifiers to prompts.
</details>📦 Data Conversion
<details> <summary><b>🗃️ TextToJSON</b> - Convert text to JSON</summary>Category: DebugPadawan/JSON
Converts a valid JSON string into a JSON object, enabling further data processing or integration with other nodes.
📥 Inputs:
text(String): The text to parse as JSON
📤 Outputs:
json(JSON/Object): The parsed JSON object
💡 Example:
Input: '{"name": "Alice", "age": 30}'
Output: { "name": "Alice", "age": 30 }
Use this node to quickly transform JSON-formatted text into a usable data structure for your ComfyUI workflows.
</details> <details> <summary><b>💬 JSONToText</b> - Convert JSON to text</summary>Category: DebugPadawan/JSON
Converts a JSON object back into a formatted JSON string.
📥 Inputs:
json_data(JSON/Object): The JSON object to convert.indent(Integer, optional): Number of spaces for indentation (0 for no indentation, default:0).
📤 Outputs:
text(String): The JSON object as a string.
💡 Example:
Input: { "name": "Alice", "age": 30 }
Indent: 2
Output:
{
"name": "Alice",
"age": 30
}
Use this node to convert JSON data into a readable string for display, logging, or integration with nodes that expect string input.
</details>🐛 Debug Tools
<details> <summary><b>🖨️ Debug Print</b> - Console output for debugging</summary>Category: DebugPadawan/Debug
Prints values to the console without interrupting the workflow. Perfect for debugging and monitoring data values during execution.
📥 Inputs:
value(Any): Any value to print to console (supports all data types)label(String, optional): Label for the debug output (default:"Debug")
📤 Outputs:
passthrough(Any): The same value passed through unchanged
💻 Console Output:
[MyLabel] list: ['Element1', 'Element2', 'Element3']
[Debug] str: Hello World
[Checkpoint] int: 42
[Data Flow] dict: {'key': 'value', 'count': 5}
[Boolean Test] bool: True
[Float Value] float: 3.14159
Monitor values during execution, debug complex workflows, verify data types, set checkpoints, troubleshoot unexpected results.
</details>⏱️ Timing Control
<details> <summary><b>⏳ Wait</b> - Add delays to workflow execution</summary>Category: DebugPadawan/Timing
Pauses workflow execution for a specified duration. Useful for rate limiting, timing control, or debugging workflow sequences.
📥 Inputs:
value(Any): Any value to pass through after the delaydelay_seconds(Float): Duration to wait in seconds (default:1.0)label(String, optional): Label for console output (default:"Wait")
📤 Outputs:
passthrough(Any): The same value passed through after delay
💻 Console Output:
[Wait] Waiting for 2.5 seconds...
[Wait] Wait completed.
[Custom Timer] Waiting for 5.0 seconds...
[Custom Timer] Wait completed.
Rate limit API calls, debug timing issues, control workflow execution speed, add pauses between operations, synchronize parallel processes.
⚠️ Note: Use with caution in production workflows as it will genuinely pause execution.
</details>🖼️ Image Utilities
<details> <summary><b>📐 Image Info</b> - Extract image tensor dimensions</summary>Category: DebugPadawan/Image
Extracts the width, height, and batch size from a ComfyUI Image tensor.
📥 Inputs:
image(Image): The image tensor to analyze
📤 Outputs:
width(Integer): Image width in pixelsheight(Integer): Image height in pixelsbatch_size(Integer): Number of images in the batch
Useful for dynamic resizing, conditional logic based on aspect ratio, or passing dimensions to other nodes.
</details> <details> <summary><b>🎨 Color Palette Extractor</b> - Get dominant colors from an image</summary>Category: DebugPadawan/Image
Analyzes an image and extracts the most dominant colors as hex strings and a visual palette.
📥 Inputs:
image(Image): The image to analyze.color_count(Integer): Number of colors to extract (default: 5, max: 20).
📤 Outputs:
hex_list(String): Comma-separated list of top hex colors.dominant_color(String): The most frequent hex color.palette_image(Image): A generated image showing the extracted color palette.
Maintain consistent styles, extract themes from reference images, or use colors for conditional prompting.
</details>🧮 Math & Random
<details> <summary><b>➕ Int/Float Math Operation</b> - Perform basic arithmetic</summary>Category: DebugPadawan/Math
Performs simple math operations (add, subtract, multiply, divide, modulo, power) on integers or floats.
📥 Inputs:
a,b(Int/Float): The values to calculateoperation(List): The type of mathematical operation
📤 Outputs:
result(Int/Float): The calculated value (returns both Int and Float variations)
Category: DebugPadawan/Math
Generates a random float or integer between a min and max value, driven by a specific seed for reproducibility.
📥 Inputs:
seed(Integer): Seed for the random generatormin_val,max_val(Float/Integer): The range boundsmode(List): Whether to generate a float or an int
📤 Outputs:
val(Float/Integer): The random value (returns both Int and Float formats)
📝 List Manipulation
<details> <summary><b>📝 Get List Item</b> - Retrieve an item from a list by index</summary>Category: DebugPadawan/List
Retrieves a specific item from a list based on its index. Supports converting some iterable types to lists.
📥 Inputs:
input_list(Any, List force input): The input list or iterable.index(Integer): The zero-based index of the item to retrieve.
📤 Outputs:
item(Any): The item at the specified index.
💡 Example:
Input List: ["apple", "banana", "orange"]
Index: 1
Output: "banana"
Useful for extracting specific elements from lists, such as getting a particular image from a batch, a specific tag from a list, or individual components from a parsed string list.
</details> <details> <summary><b>✂️ List Slicer</b> - Extract a range of items from a list</summary>Category: DebugPadawan/List
Extracts a sub-list from a larger list using start and end indices.
📥 Inputs:
input_list(List): The input list.start(Integer): Starting index (inclusive).end(Integer): Ending index (exclusive, use 0 for "to the end").
📤 Outputs:
list_slice(List): The sub-list.count(Integer): Number of elements in the slice.
Get the first N images of a batch, skip the first item, or take a specific range of values.
</details> <details> <summary><b>🎲 Random List Selector</b> - Pick random items from a list</summary>Category: DebugPadawan/List
Randomly selects one or more items from a list with seed-based reproducibility.
📥 Inputs:
input_list(List): The input list.seed(Integer): Seed for reproducible random selection.count(Integer): Number of items to select (default: 1).allow_duplicates(Boolean): Allow selecting the same item multiple times.
📤 Outputs:
selected_items(List): The randomly selected items.count(Integer): Number of items selected.first_item(Any): The first selected item (convenient for single selections).
💡 Example:
Input List: ["style1", "style2", "style3", "style4", "style5"]
Seed: 42
Count: 2
Output: ["style3", "style1"]
Perfect for randomizing prompt styles, selecting random seeds, or picking random colors/tags from lists.
</details> <details> <summary><b>🔀 List Shuffler</b> - Shuffle list order deterministically</summary>Category: DebugPadawan/List
Shuffles a list into random order using a seed for reproducibility.
📥 Inputs:
input_list(List): The input list.seed(Integer): Seed for reproducible shuffling.
📤 Outputs:
shuffled_list(List): The shuffled list.count(Integer): Number of items.
💡 Example:
Input: ["a", "b", "c", "d"]
Seed: 123
Output: ["c", "a", "d", "b"]
Randomize processing order, shuffle prompt components, or reorder batch elements.
</details> <details> <summary><b>🔗 List Merger</b> - Combine multiple lists</summary>Category: DebugPadawan/List
Merges two lists together with different modes.
📥 Inputs:
list_a(List): First list.list_b(List): Second list.mode(List): Merge mode - "concatenate" or "interleave".
📤 Outputs:
merged_list(List): The merged list.count(Integer): Number of items.
💡 Example:
List A: [1, 2, 3]
List B: ["a", "b", "c"]
Mode: "interleave"
Output: [1, "a", 2, "b", 3, "c"]
Combine tag lists, merge processing pipelines, or interleave prompt components.
</details> <details> <summary><b>🧹 List Deduplicator</b> - Remove duplicates from a list</summary>Category: DebugPadawan/List
Removes duplicate items from a list while preserving order.
📥 Inputs:
input_list(List): The input list.
📤 Outputs:
deduplicated_list(List): List with duplicates removed.count(Integer): Number of unique items.removed_count(Integer): Number of duplicates removed.
💡 Example:
Input: ["apple", "banana", "apple", "orange", "banana"]
Output: ["apple", "banana", "orange"], count: 3, removed: 2
Clean up tag lists, remove redundant prompts, or filter unique values.
</details>🔄 Type Conversion
<details> <summary><b>🔀 Type Converter</b> - Universal type conversion</summary>Category: DebugPadawan/Conversion
Converts between different data types: string, int, float, and boolean.
📥 Inputs:
value(Any): The value to convertoutput_type(List): Target type - string, int, float, boolean
📤 Outputs:
converted(Any): The converted value
💡 Example:
Input: 42 (int)
Type: "string"
Output: "42"
Input: "3.14" (string)
Type: "float"
Output: 3.14
Convert any value to any type, workflow data type compatibility, normalize inputs for nodes that require specific types.
</details> <details> <summary><b>🔢 Int to Float</b> - Convert integer to float</summary>Category: DebugPadawan/Conversion
Converts an integer to a floating-point number.
📥 Inputs:
value(Integer): The integer to convert
📤 Outputs:
float_value(Float): The converted float
Useful for nodes that only accept float inputs.
</details> <details> <summary><b>📐 Float to Int</b> - Convert float to integer</summary>Category: DebugPadawan/Conversion
Converts a float to an integer with rounding mode control.
📥 Inputs:
value(Float): The float to convertmode(List): Rounding mode - round, floor, ceil
📤 Outputs:
int_value(Integer): The converted integer
💡 Example:
Input: 3.7
Mode: "floor"
Output: 3
Input: 3.2
Mode: "ceil"
Output: 4
</details>
<details>
<summary><b>🔤 String to Int</b> - Parse string as integer</summary>
Category: DebugPadawan/Conversion
Converts a string to an integer.
📥 Inputs:
value(String): The string to parse
📤 Outputs:
int_value(Integer): The parsed integer
Handles strings like "42" or "3.14" (converts via float first).
</details> <details> <summary><b>🔤 String to Float</b> - Parse string as float</summary>Category: DebugPadawan/Conversion
Converts a string to a floating-point number.
📥 Inputs:
value(String): The string to parse
📤 Outputs:
float_value(Float): The parsed float
💡 Example:
Input: "3.14159"
Output: 3.14159
</details>
<details>
<summary><b>🔤 String to Boolean</b> - Parse string as boolean</summary>
Category: DebugPadawan/Conversion
Converts a string to a boolean value.
📥 Inputs:
value(String): The string to parse
📤 Outputs:
bool_value(Boolean): The parsed boolean
💡 Example:
Input: "true" → Output: True
Input: "yes" → Output: True
Input: "false" → Output: False
Input: "0" → Output: False
Recognizes: true/false, yes/no, 1/0, on/off (case insensitive).
</details> <details> <summary><b>🔢 Number to String</b> - Format number as string</summary>Category: DebugPadawan/Conversion
Converts a number to a string with decimal precision control.
📥 Inputs:
value(Float): The number to convertdecimal_places(Integer): Number of decimal places (0-10)
📤 Outputs:
string_value(String): The formatted string
💡 Example:
Input: 3.14159
Decimal Places: 2
Output: "3.14"
Input: 3.14159
Decimal Places: 0
Output: "3"
</details>
🔢 Number Utilities
<details> <summary><b>📏 Number Clamp</b> - Clamp value between min and max</summary>Category: DebugPadawan/Number
Clamps a number to stay within a specified range.
📥 Inputs:
value(Float): The value to clampmin_val(Float): Minimum allowed value (default: 0.0)max_val(Float): Maximum allowed value (default: 1.0)
📤 Outputs:
clamped(Float): The clamped value
💡 Example:
Input: 1.5, min: 0.0, max: 1.0
Output: 1.0
Input: -0.5, min: 0.0, max: 1.0
Output: 0.0
Useful for ensuring values stay within valid ranges, like RGB values or percentages.
</details> <details> <summary><b>🔢 Number Round</b> - Round with precision control</summary>Category: DebugPadawan/Number
Rounds a number to a specified number of decimal places.
📥 Inputs:
value(Float): The value to rounddecimal_places(Integer): Number of decimal places (0-10)
📤 Outputs:
rounded(Float): The rounded valuerounded_string(String): The rounded value as a formatted string
💡 Example:
Input: 3.14159
Decimal Places: 2
Output: 3.14, "3.14"
</details>
<details>
<summary><b>📊 Number Range</b> - Generate number sequence</summary>
Category: DebugPadawan/Number
Generates a list of numbers from start to end with a step.
📥 Inputs:
start(Integer): Starting valueend(Integer): Ending value (exclusive)step(Integer): Step increment
📤 Outputs:
range_list(List): List of integerscount(Integer): Number of items
💡 Example:
Start: 0, End: 10, Step: 2
Output: [0, 2, 4, 6, 8], 5
</details>
<details>
<summary><b>⚖️ Number Compare</b> - Compare two numbers</summary>
Category: DebugPadawan/Number
Compares two numbers and returns a boolean result.
📥 Inputs:
a(Float): First valueb(Float): Second valuecomparison(List): Comparison type - equal, not equal, greater, less, greater or equal, less or equal
📤 Outputs:
result(Boolean): Comparison resultresult_text(String): Result as text ("True"/"False")
Useful for conditional workflow branching based on numeric values.
</details> <details> <summary><b>📏 Number Absolute</b> - Get absolute value</summary>Category: DebugPadawan/Number
Returns the absolute (positive) value of a number.
📥 Inputs:
value(Float): The value
📤 Outputs:
absolute(Float): The absolute value
💡 Example:
Input: -5.3
Output: 5.3
</details>
<details>
<summary><b>➖ Number Sign</b> - Get sign of a number</summary>
Category: DebugPadawan/Number
Returns the sign of a number (-1, 0, or 1).
📥 Inputs:
value(Float): The value
📤 Outputs:
sign(Integer): -1 (negative), 0 (zero), or 1 (positive)sign_text(String): "negative", "zero", or "positive"
💡 Example:
Input: 42 → Output: 1, "positive"
Input: -3.5 → Output: -1, "negative"
Input: 0 → Output: 0, "zero"
</details>
<details>
<summary><b>🔄 Number Remap</b> - Remap value between ranges</summary>
Category: DebugPadawan/Number
Remaps a value from one range to another (linear interpolation).
📥 Inputs:
value(Float): The value to remapfrom_min(Float): Source range minimumfrom_max(Float): Source range maximumto_min(Float): Target range minimumto_max(Float): Target range maximum
📤 Outputs:
remapped(Float): The remapped value
💡 Example:
Input: 0.5, from: [0, 1], to: [0, 100]
Output: 50.0
Input: 25, from: [0, 100], to: [0, 1]
Output: 0.25
Perfect for normalizing values or converting between different scales.
</details> <details> <summary><b>📊 Number Lerp</b> - Linear interpolation</summary>Category: DebugPadawan/Number
Performs linear interpolation between two values.
📥 Inputs:
a(Float): Start valueb(Float): End valuet(Float): Interpolation factor (0.0 to 1.0)
📤 Outputs:
lerped(Float): The interpolated value
💡 Example:
a: 0, b: 100, t: 0.5
Output: 50.0
a: 10, b: 20, t: 0.25
Output: 12.5
Useful for smooth transitions and blending values.
</details>🔧 Utility Nodes
<details> <summary><b>📊 List Info</b> - Analyze list properties</summary>Category: DebugPadawan/Utilities
Analyzes a list and returns useful information about it.
📥 Inputs:
input_list(List): The list to analyze
📤 Outputs:
count(Integer): Number of elementsfirst_item(String): First element (as string)last_item(String): Last element (as string)
Validate list processing results, get quick statistics, check if lists are empty, extract boundary values.
</details> <details> <summary><b>🔀 Conditional String</b> - Boolean-based string selection</summary>Category: DebugPadawan/Logic
Returns one of two strings based on a boolean condition.
📥 Inputs:
condition(Boolean): The condition to evaluatetrue_string(String): String to return if True (default:"True")false_string(String): String to return if False (default:"False")
📤 Outputs:
result(String): The selected string
Conditional prompt modification, dynamic filename generation, workflow branching, status message generation.
</details> <details> <summary><b>🔌 Logic Gate</b> - Boolean operations</summary>Category: DebugPadawan/Logic
Performs AND, OR, NOT, or XOR operations on boolean inputs.
📥 Inputs:
a,b(Boolean): Boolean values.operation(List): AND, OR, NOT (A), XOR.
📤 Outputs:
result(Boolean): The resulting boolean value.
Complex workflow branching and conditional logic.
</details>🎨 Quick Start Examples
Basic Text Processing
"apple,banana,orange" → Text Splitter → ["apple", "banana", "orange"]
↓
["apple", "banana", "orange"] → Text Joiner → "apple | banana | orange"
Text to JSON Conversion
'{"foo": "bar"}' → TextToJSON → { "foo": "bar" }
Debug Workflow
Input Data → Debug Print ("Input") → Processing Node → Debug Print ("Output") → Result
Timed Processing
Data → Wait (2.0s) → Processing → Wait (1.0s) → Output
📋 Node Categories
| Category | Nodes | Purpose | |----------|-------|---------| | DebugPadawan/Text | Text Splitter, Text Joiner, Text Replace, Text Regex, String Formatter, Text Compare, Text Length, Text Case, Text Trim, Text Case Converter, Text Trimmer, Text Prefix Suffix | Text manipulation and processing | | DebugPadawan/JSON | TextToJSON, JSONToText | Text to JSON conversion | | DebugPadawan/Debug | Debug Print | Debugging and monitoring | | DebugPadawan/Timing | Wait | Timing control and delays | | DebugPadawan/Utilities | List Info | Data analysis helpers | | DebugPadawan/Logic | Conditional String, Logic Gate | Conditional operations | | DebugPadawan/Image | Image Info, Color Palette Extractor | Image tensor analysis and color extraction | | DebugPadawan/Math | Int/Float Math Operation, Random Generator | Basic arithmetic and random number generation | | DebugPadawan/List | Get List Item, List Slicer, Random List Selector, List Shuffler, List Merger, List Deduplicator | List manipulation | | DebugPadawan/Conversion | Type Converter, Int to Float, Float to Int, String to Int, String to Float, String to Boolean, Number to String | Type conversion utilities | | DebugPadawan/Number | Number Clamp, Number Round, Number Range, Number Compare, Number Absolute, Number Sign, Number Remap, Number Lerp | Number formatting and utilities |
🤝 Contributing
We welcome contributions! Feel free to:
- 🐛 Report bugs
- 💡 Suggest new features
- 🔧 Submit pull requests
- 📖 Improve documentation
📄 License
This project is licensed under the MIT License.
<div align="center">
Made with ❤️ by DebugPadawan
</div>