ComfyUI Extension: ComfyUI-KikoTools

Authored by ComfyAssets

Created

Updated

0 stars

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

    License Python ComfyUI Tests Code Quality

    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)

    1. Open ComfyUI Manager
    2. Search for "ComfyUI-KikoTools"
    3. Click Install
    4. 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.0
    • image (IMAGE, optional): Input image tensor
    • latent (LATENT, optional): Input latent tensor

    Outputs:

    • width (INT): Calculated target width
    • height (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 + custom
    • width (INT): 64-8192, step 8, default 1024
    • height (INT): 64-8192, step 8, default 1024

    Outputs:

    • width (INT): Selected or calculated width
    • height (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 20
    • cfg (FLOAT): 0.0-30.0, default 7.0

    Outputs:

    • sampler_name (STRING): Selected sampler algorithm
    • scheduler (STRING): Selected scheduler algorithm
    • steps (INT): Validated step count
    • cfg (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):

    1. Write Tests First: Define expected behavior before implementation
    2. Red-Green-Refactor: Fail → Pass → Improve cycle
    3. Comprehensive Coverage: Unit, integration, and scenario testing
    4. 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

    1. Plan: Define tool purpose, inputs, outputs in plan.md
    2. Test: Write comprehensive tests following TDD
    3. Implement: Build tool logic with proper validation
    4. Integrate: Create ComfyUI node interface
    5. Document: Add usage examples and workflows
    6. 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

    šŸ“ˆ 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>