ComfyUI Extension: ComfyUI-KikoTools
ComfyUI-KikoTools provides carefully crafted, production-ready nodes grouped under the 'ComfyAssets' category. Each tool is designed with clean interfaces, comprehensive testing, and optimized performance for SDXL and FLUX workflows.
Custom Nodes (0)
README
ComfyUI-KikoTools
A modular collection of essential custom ComfyUI nodes missing from the standard release.
ComfyUI-KikoTools provides carefully crafted, production-ready nodes grouped under the "ComfyAssets" category. Each tool is designed with clean interfaces, comprehensive testing, and optimized performance for SDXL and FLUX workflows.
š Features
⨠Current Tools
š Resolution Calculator
Calculate upscaled dimensions from image or latent inputs with precision.
- Smart Input Handling: Works with both IMAGE and LATENT tensors
- Model Optimized: Specific optimizations for SDXL (~1MP) and FLUX (0.2-2MP) models
- Constraint Enforcement: Automatically ensures dimensions divisible by 8
- Flexible Scaling: Supports scale factors from 1.0x to 8.0x with 0.1 precision
- Aspect Ratio Preservation: Maintains original proportions during scaling
Use Cases:
- Calculate target dimensions for upscaler nodes
- Plan memory usage for large generations
- Ensure ComfyUI tensor compatibility
- Optimize batch processing workflows
š Width Height Selector
Advanced preset-based dimension selection with visual swap button.
- 26 Curated Presets: SDXL, FLUX, and Ultra-Wide optimized resolutions
- Smart Categories: Organized by model type and aspect ratio
- Visual Swap Button: Modern blue button for quick orientation changes
- Intelligent Swapping: Preset-aware orientation switching
- Custom Support: Manual dimension input with validation
Use Cases:
- Quick dimension selection for different models
- Consistent aspect ratios across workflows
- Mobile and ultra-wide format support
- Integration with upscaling pipelines
š² Seed History
Advanced seed tracking with interactive history management and UI.
- Automatic Tracking: Monitors all seed changes with timestamps
- Interactive History: Click any historical seed to reload instantly
- Smart Deduplication: 500ms window prevents duplicate rapid additions
- Persistent Storage: History survives browser sessions and ComfyUI restarts
- Auto-Hide UI: Clean interface that hides after 2.5 seconds of inactivity
- Visual Feedback: Toast notifications and selection highlighting
Use Cases:
- Track promising seeds during creative exploration
- Quickly return to successful generation parameters
- Maintain reproducibility across sessions
- Compare results from different seeds efficiently
āļø Sampler Combo
Unified sampling configuration interface combining sampler, scheduler, steps, and CFG.
- All-in-One Interface: Single node for complete sampling configuration
- Smart Recommendations: Optimal settings suggestions per sampler type
- Compatibility Validation: Ensures sampler/scheduler combinations work well
- Intelligent Defaults: Context-aware parameter recommendations
- Range Validation: Prevents invalid parameter combinations
- Comprehensive Tooltips: Detailed guidance for each parameter
Use Cases:
- Simplify complex sampling workflows
- Ensure optimal sampler/scheduler combinations
- Reduce node clutter in workflows
- Quick sampling parameter experimentation
š§ Architecture Highlights
- Modular Design: Each tool is self-contained and independently testable
- Test-Driven Development: 100% test coverage with comprehensive unit tests
- Clean Interfaces: Standardized input/output patterns across all tools
- Separation of Concerns: Clear distinction between logic, UI, and integration layers
- SOLID Principles: Extensible architecture following software engineering best practices
š¦ Installation
ComfyUI Manager (Recommended)
- Open ComfyUI Manager
- Search for "ComfyUI-KikoTools"
- Click Install
- Restart ComfyUI
Manual Installation
cd ComfyUI/custom_nodes/
git clone https://github.com/ComfyAssets/ComfyUI-KikoTools.git
cd ComfyUI-KikoTools
pip install -r requirements-dev.txt
Restart ComfyUI and look for ComfyAssets nodes in the node browser.
šÆ Quick Start
Resolution Calculator Example
Image Loader ā Resolution Calculator ā Upscaler
ā scale_factor: 1.5 ā
Input: 832Ć1216 (SDXL portrait format)
Scale: 1.5x
Output: 1248Ć1824 (ready for upscaling)
Width Height Selector Example
Width Height Selector ā EmptyLatentImage ā Model
preset: "1920Ć1080" ā 1920Ć1080 ā
[swap button]
Preset: FLUX HD (1920Ć1080)
Output: 1920Ć1080 (16:9 cinematic)
Swap Button: Click to get 1080Ć1920 (9:16 portrait)
Seed History Example
Seed History ā KSampler ā VAE Decode ā Save Image
š² 12345 ā seed ā
[History UI: 54321, 99999, 11111...]
Current Seed: 12345
History: Auto-tracked previous seeds with timestamps
Interaction: Click any historical seed to reload instantly
Sampler Combo Example
Sampler Combo ā KSampler ā VAE Decode ā Save Image
āļø All Settings ā sampler/scheduler/steps/cfg ā
Configuration: euler, normal, 20 steps, CFG 7.0
Output: Complete sampling configuration in one node
Smart Features: Recommendations and compatibility validation
Common Workflows
<details> <summary><b>SDXL Portrait Upscaling</b></summary>{
"workflow": "Load SDXL portrait ā Calculate 1.5x dimensions ā Feed to upscaler",
"input_resolution": "832Ć1216",
"scale_factor": 1.5,
"output_resolution": "1248Ć1824",
"memory_efficient": true
}
</details>
<details>
<summary><b>FLUX Batch Processing</b></summary>
{
"workflow": "Generate latents ā Calculate target size ā Batch upscale",
"input_resolution": "1024Ć1024",
"scale_factor": 2.0,
"output_resolution": "2048Ć2048",
"batch_optimized": true
}
</details>
š Documentation
Available Tools
| Tool | Description | Status | Documentation | |------|-------------|--------|---------------| | Resolution Calculator | Calculate upscaled dimensions with model optimization | ā Complete | Docs | | Width Height Selector | Preset-based dimension selection with 26 curated options | ā Complete | Docs | | Seed History | Advanced seed tracking with interactive history management | ā Complete | Docs | | Sampler Combo | Unified sampling configuration with smart recommendations | ā Complete | Docs | | Batch Image Processor | Process multiple images with consistent settings | š§ Planned | Coming Soon | | Advanced Prompt Utilities | Enhanced prompt manipulation and generation | š§ Planned | Coming Soon |
Technical Specifications
Resolution Calculator
Inputs:
scale_factor
(FLOAT): 1.0-8.0, default 2.0image
(IMAGE, optional): Input image tensorlatent
(LATENT, optional): Input latent tensor
Outputs:
width
(INT): Calculated target widthheight
(INT): Calculated target height
Constraints:
- All outputs divisible by 8 (ComfyUI requirement)
- Preserves aspect ratio
- Validates input tensors
- Graceful error handling
Width Height Selector
Inputs:
preset
(DROPDOWN): 26 preset options + customwidth
(INT): 64-8192, step 8, default 1024height
(INT): 64-8192, step 8, default 1024
Outputs:
width
(INT): Selected or calculated widthheight
(INT): Selected or calculated height
UI Features:
- Visual blue swap button in bottom-right corner
- Intelligent preset switching when swapping
- Modern hover effects and cursor feedback
Preset Categories:
- SDXL Presets (9): 1024Ć1024 to 1536Ć640 (~1MP optimized)
- FLUX Presets (8): 1920Ć1080 to 1152Ć1728 (high resolution)
- Ultra-Wide (8): 2560Ć1080 to 768Ć2304 (modern ratios)
Seed History
Inputs:
seed
(INT): 0 to 18,446,744,073,709,551,615, default 12345
Outputs:
seed
(INT): Validated and processed seed value
UI Features:
- Interactive history display with timestamps
- Generate random seed button (š² Generate)
- Clear history button (šļø Clear)
- Auto-hide after 2.5 seconds of inactivity
- Click-to-restore hidden history
History Management:
- Maximum 10 entries for optimal performance
- Smart deduplication with 500ms window
- Persistent localStorage storage
- Newest entries displayed first
- Human-readable time formatting (5m ago, 2h ago)
Sampler Combo
Inputs:
sampler_name
(DROPDOWN): Available ComfyUI samplers (euler, dpmpp_2m, etc.)scheduler
(DROPDOWN): Available schedulers (normal, karras, exponential, etc.)steps
(INT): 1-1000, default 20cfg
(FLOAT): 0.0-30.0, default 7.0
Outputs:
sampler_name
(STRING): Selected sampler algorithmscheduler
(STRING): Selected scheduler algorithmsteps
(INT): Validated step countcfg
(FLOAT): Validated CFG scale
Features:
- Smart parameter validation and sanitization
- Sampler-specific recommendations for optimal settings
- Compatibility checking between samplers and schedulers
- Graceful error handling with safe defaults
- Comprehensive tooltips for user guidance
š ļø Development
Prerequisites
- Python 3.8+
- ComfyUI installation
- PyTorch 2.0+
Development Setup
# Clone the repository
git clone https://github.com/ComfyAssets/ComfyUI-KikoTools.git
cd ComfyUI-KikoTools
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
python -c "
import sys, os
sys.path.insert(0, os.getcwd())
from kikotools.tools.resolution_calculator.node import ResolutionCalculatorNode
import torch
# Quick test
node = ResolutionCalculatorNode()
result = node.calculate_resolution(2.0, image=torch.randn(1, 512, 512, 3))
print(f'ā
Development setup successful! Test result: {result[0]}x{result[1]}')
"
Code Quality
We maintain high code quality standards:
# Format code
black .
# Lint code
flake8 .
# Type checking
mypy .
# Run all quality checks
make quality-check # If Makefile exists
Testing Philosophy
Following Test-Driven Development (TDD):
- Write Tests First: Define expected behavior before implementation
- Red-Green-Refactor: Fail ā Pass ā Improve cycle
- Comprehensive Coverage: Unit, integration, and scenario testing
- Real-World Validation: Test with actual ComfyUI workflows
# Test structure
tests/
āāā unit/ # Individual component tests
āāā integration/ # ComfyUI workflow tests
āāā fixtures/ # Test data and workflows
Adding New Tools
- Plan: Define tool purpose, inputs, outputs in
plan.md
- Test: Write comprehensive tests following TDD
- Implement: Build tool logic with proper validation
- Integrate: Create ComfyUI node interface
- Document: Add usage examples and workflows
- Validate: Test in real ComfyUI environment
See our Contributing Guide for detailed instructions.
š¤ Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Development Principles
- KISS: Keep It Simple, Stupid
- Separation of Concerns: Clear module boundaries
- DRY: Don't Repeat Yourself
- SOLID: Object-oriented design principles
- TDD: Test-driven development
Reporting Issues
Please use GitHub Issues with:
- ComfyUI version
- Tool/node name
- Expected vs actual behavior
- Minimal reproduction steps
- Error logs if applicable
š License
MIT License - see LICENSE file for details.
š·ļø Tags
comfyui
custom-nodes
image-processing
ai-tools
sdxl
flux
upscaling
resolution
batch-processing
python
pytorch
š Links
- ComfyUI: https://github.com/comfyanonymous/ComfyUI
- Documentation: examples/documentation/
- Example Workflows: examples/workflows/
- Issue Tracker: GitHub Issues
š Stats
- Nodes: 4 (Resolution Calculator, Width Height Selector, Seed History, Sampler Combo)
- Presets: 26 curated resolution presets
- Interactive Features: 2 (Swap Button, History UI)
- Test Coverage: 100% (180+ comprehensive tests)
- Python Version: 3.8+
- ComfyUI Compatibility: Latest
- Dependencies: Minimal (PyTorch, NumPy)
<div align="center">
Made with ā¤ļø for the ComfyUI community
ā Star this repo ⢠š Report Bug ⢠š” Request Feature
</div>