ComfyUI Extension: ComfyUI Latent Color Tools
Advanced color manipulation and image adjustments directly in ComfyUI's latent space
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)
- Install ComfyUI Manager
- Search for "Latent Color Tools" in the manager
- Install and restart ComfyUI
Method 2: Manual Installation
-
Navigate to your ComfyUI custom nodes directory:
cd ComfyUI/custom_nodes/
-
Clone this repository:
git clone https://github.com/yourusername/ComfyUI-Latent-Color-Tools.git
-
Install dependencies:
cd ComfyUI-Latent-Color-Tools pip install -r requirements.txt
-
Restart ComfyUI
🎯 Usage
Latent Color Match
- Add the "🎨 Latent Color Match" node to your workflow
- Connect your source and reference latents
- 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
- Adjust the factor (0.0-3.0) to control the effect strength
Latent Image Adjust
- Add the "🎛️ Latent Image Adjust" node to your workflow
- Connect your latent input
- 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:
- Check the Issues page
- Create a new issue with detailed description
- Include your ComfyUI version and error logs
Made with ❤️ for the ComfyUI community