ComfyUI Extension: ComfyUI Latent Color Tools

Authored by DenRakEiw

Created

Updated

41 stars

Run ComfyUI workflows without the setup

No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.

Advanced color manipulation and image adjustments directly in ComfyUI's latent space

Looking for a different extension?

Custom Nodes (0)

    README

    ComfyUI Latent Color Tools

    A collection of powerful nodes for color manipulation and image adjustments directly in the latent space, providing faster and more efficient processing compared to traditional image-based operations.

    🚀 Features

    🎨 Latent Color Match

    Advanced color matching between latents using multiple algorithms:

    • Cubiq-based methods with kornia color space conversions (LAB, YCbCr, LUV, YUV, XYZ, RGB)
    • Advanced algorithms using color-matcher library (hm-mkl-hm, mkl, hm, reinhard, mvgd, hm-mvgd-hm)
    • Real-time processing directly in latent space
    • Batch processing support for efficiency

    🎛️ Latent Image Adjust

    Complete image adjustment suite working in latent space:

    • Brightness (-1.0 to 1.0) - Additive brightness adjustment
    • Contrast (0.0 to 3.0) - Multiplicative contrast around mean
    • Hue (-180° to 180°) - Color tone shifting with HSV conversion
    • Saturation (0.0 to 3.0) - Color intensity adjustment
    • Sharpness (0.0 to 3.0) - Unsharp masking and blur effects

    📦 Installation

    Method 1: ComfyUI Manager (Recommended)

    1. Install ComfyUI Manager
    2. Search for "Latent Color Tools" in the manager
    3. Install and restart ComfyUI

    Method 2: Manual Installation

    1. Navigate to your ComfyUI custom nodes directory:

      cd ComfyUI/custom_nodes/
      
    2. Clone this repository:

      git clone https://github.com/yourusername/ComfyUI-Latent-Color-Tools.git
      
    3. Install dependencies:

      cd ComfyUI-Latent-Color-Tools
      pip install -r requirements.txt
      
    4. Restart ComfyUI

    🎯 Usage

    Latent Color Match

    1. Add the "🎨 Latent Color Match" node to your workflow
    2. Connect your source and reference latents
    3. Choose a color matching method:
      • LAB: Best for natural color matching
      • hm-mkl-hm: Highest quality (requires color-matcher)
      • YCbCr: Good for skin tones
      • RGB: Direct channel matching
    4. Adjust the factor (0.0-3.0) to control the effect strength

    Latent Image Adjust

    1. Add the "🎛️ Latent Image Adjust" node to your workflow
    2. Connect your latent input
    3. Adjust parameters as needed:
      • Brightness: Negative values darken, positive brighten
      • Contrast: Values < 1.0 reduce contrast, > 1.0 increase
      • Hue: Shift color tone in degrees
      • Saturation: 0.0 = grayscale, > 1.0 = more vibrant
      • Sharpness: < 1.0 = blur, > 1.0 = sharpen

    🔧 Technical Details

    Dependencies

    • kornia (>= 0.6.0) - For advanced color space conversions
    • color-matcher (>= 0.2.0) - For professional color matching algorithms
    • torch - PyTorch (included with ComfyUI)
    • numpy - Numerical operations (included with ComfyUI)

    Performance Benefits

    • No VAE encoding/decoding - Works directly with latents
    • GPU accelerated - Full CUDA support
    • Batch processing - Efficient handling of multiple samples
    • Memory efficient - Lower VRAM usage compared to image operations

    Supported Tensor Shapes

    • 4D tensors: [batch, channels, height, width]
    • 5D tensors: [batch, channels, 1, height, width] (automatically handled)
    • Any number of channels (RGB-like processing for first 3 channels)

    📊 Comparison with Image-based Methods

    | Feature | Latent Space | Image Space | |---------|-------------|-------------| | Speed | ⚡ Fast | 🐌 Slow | | Memory Usage | 💾 Low | 📈 High | | Quality Loss | ✅ None | ❌ VAE artifacts | | Integration | 🔄 Seamless | 🔀 Requires conversion |

    🎨 Color Matching Methods

    Cubiq-based (with kornia)

    • LAB: Perceptually uniform color space, best for natural images
    • YCbCr: Separates luminance from chrominance, good for skin tones
    • LUV: Alternative perceptual color space
    • YUV: Broadcast standard color space
    • XYZ: CIE standard color space
    • RGB: Direct RGB channel matching

    Advanced (with color-matcher)

    • hm-mkl-hm: Histogram + Monge-Kantorovich + Histogram (highest quality)
    • mkl: Monge-Kantorovich Linearization
    • hm: Classical Histogram Matching
    • reinhard: Reinhard et al. method
    • mvgd: Multi-Variate Gaussian Distribution
    • hm-mvgd-hm: HM + MVGD + HM compound

    🐛 Troubleshooting

    Common Issues

    "Kornia not available" warning

    pip install kornia>=0.6.0
    

    "Color-matcher not available" warning

    pip install color-matcher>=0.2.0
    

    Tensor shape errors

    • The nodes automatically handle 4D and 5D tensors
    • If you encounter shape issues, check your latent source

    Weak effects

    • Increase the factor parameter (try 1.5-3.0)
    • Some methods work better with specific content types

    📝 Changelog

    v1.0.0

    • Initial release
    • Latent Color Match with multiple algorithms
    • Latent Image Adjust with 5 adjustment types
    • Full kornia and color-matcher integration
    • Automatic tensor shape handling

    🤝 Contributing

    Contributions are welcome! Please feel free to submit a Pull Request.

    📄 License

    This project is licensed under the MIT License - see the LICENSE file for details.

    🙏 Acknowledgments

    • cubiq for the original ImageColorMatch implementation
    • kornia team for excellent computer vision library
    • color-matcher for professional color matching algorithms
    • ComfyUI community for the amazing platform

    📞 Support

    If you encounter any issues or have questions:

    1. Check the Issues page
    2. Create a new issue with detailed description
    3. Include your ComfyUI version and error logs

    Made with ❤️ for the ComfyUI community

    Run ComfyUI workflows without the setup

    No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.

    Learn more