Files
DebugPadawan-DebugPadawans-…/README.md
T

402 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div align="center">
# 🎯 DebugPadawan's ComfyUI Essentials
*Essential custom nodes for ComfyUI workflows*
[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://python.org)
[![ComfyUI](https://img.shields.io/badge/ComfyUI-Compatible-green.svg)](https://github.com/comfyanonymous/ComfyUI)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![GitHub Stars](https://img.shields.io/github/stars/DebugPadawan/DebugPadawans-ComfyUI-Essentials.svg)](https://github.com/DebugPadawan/DebugPadawans-ComfyUI-Essentials/stargazers)
</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>🔧 Utilities</b></td>
<td>Essential helpers for workflow optimization</td>
</tr>
</table>
---
## 🚀 Installation
```bash
# 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 strings
- `count` *(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 join
- `delimiter` *(String)*: Character(s) to join with (default: `", "`)
- `prefix` *(String, optional)*: Text to add at the beginning
- `suffix` *(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 process
- `find` *(String)*: The substring to search for
- `replace` *(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>
---
### 📦 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>
---
### 🐛 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 delay
- `delay_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 pixels
- `height` *(Integer)*: Image height in pixels
- `batch_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>
---
### 🧮 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 calculate
- `operation` *(List)*: The type of mathematical operation
**📤 Outputs:**
- `result` *(Int/Float)*: The calculated value (returns both Int and Float variations)
</details>
<details>
<summary><b>🎲 Random Generator</b> - Seed-based random values</summary>
**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 generator
- `min_val`, `max_val` *(Float/Integer)*: The range bounds
- `mode` *(List)*: Whether to generate a float or an int
**📤 Outputs:**
- `val` *(Float/Integer)*: The random value (returns both Int and Float formats)
</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 elements
- `first_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 evaluate
- `true_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>
---
## 🎨 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 manipulation and processing |
| **DebugPadawan/JSON** | TextToJSON | 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 | Conditional operations |
| **DebugPadawan/Image** | Image Info | Image tensor analysis |
| **DebugPadawan/Math** | Int Math Operation, Float Math Operation, Random Generator | Basic arithmetic and random number generation |
---
## 🤝 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](LICENSE).
---
<div align="center">
**Made with ❤️ by [DebugPadawan](https://github.com/DebugPadawan)**
</div>