# Chye ComfyUI Toolset A comprehensive collection of ComfyUI custom nodes organized by category for enhanced workflow productivity. ## 🎯 Features ### 🔹 Latent Tools - **Model-Specific Aspect Ratios**: Optimized presets for Flux, Qwen Image, and SDXL models - **Phone Screen Sizes**: Common mobile device resolutions including modern tall screens - **Video Formats**: Standard video resolutions from 480p to 4K including cinema formats - **Social Media Formats**: Optimized sizes for Instagram, TikTok, YouTube, Facebook, and Twitter - **Smart Orientation Control**: Automatic Portrait/Landscape switching - **Precision Scaling**: Multiplier with automatic rounding to multiples of 32 - **Batch Generation**: Support for multiple latents at once ### 🔸 Post Process Tools - **Realistic Film Grain**: Apply photographic film grain simulation with ISO control - **ARRI Halation Effect**: Simulate film bloom around highlights with comprehensive color grading controls - **Global Color Grading**: Apply comprehensive color grading to entire images (temperature, saturation, tint, gamma, exposure, contrast) - **Chromatic Aberration**: Lens color fringing simulation with barrel distortion - **Spatially Correlated Noise**: Advanced noise generation using scipy for realistic grain patterns - **Color Channel Control**: Option for monochrome or colored grain effects ### 🔤 Prompt Tools - **Multi-Provider LLM Integration**: DeepSeek, OpenAI, Anthropic, and custom providers - **Dual Template Systems**: File-based templates AND editable text input options - **Secure API Key Management**: File-based storage with gitignore protection - **Automatic Setup**: Dedicated setup node creates folder structure with examples - **Professional Templates**: Photography, cinematic, and high-detail enhancement templates - **Error Handling**: Graceful degradation with comprehensive error reporting - **Wildcard Generation**: Randomize prompts with {option1|option2|option3} syntax for models without native wildcard support ### 📁 File Tools - **📁 CYH File | Folder Filename Builder** - Construct file paths with project name, subfolder, and filename - **📄 CYH File | Text File Loader** - Load text content from .txt files with trigger button and editable text box - **📄 CYH File | Text File Editor** - Editable text widget with action modes for controlling output behavior (use_input/use_edit_mute_input) - **🎬 CYH File | Video Loader** - Load video files from text paths for ComfyUI video processing ### 🔧 Utility Tools *(Coming Soon)* - Workflow helpers - Data conversion utilities - Debug and analysis tools ## 📦 Installation ### Method 1: Git Clone (Recommended) ```bash cd custom_nodes git clone https://github.com/chyer/Chye-ComfyUI-Toolset.git cd Chye-ComfyUI-Toolset echo "Chye-ComfyUI-Toolset" > .git/.cnr-id # Install dependencies pip install -r requirements.txt ``` ### Method 2: Manual Copy 1. Copy the `Chye-ComfyUI-Toolset` folder to your ComfyUI `custom_nodes` directory 2. **Important**: Create a file named `.cnr-id` in the `.git` folder with content `Chye-ComfyUI-Toolset` to avoid workflow errors ```bash echo "Chye-ComfyUI-Toolset" > .git/.cnr-id ``` 3. Install dependencies: ```bash cd Chye-ComfyUI-Toolset pip install -r requirements.txt ``` 4. Restart ComfyUI ## 🚀 Usage ### Latent Tools Find the nodes under the **latent** category: #### Model-Specific Nodes - **🔹 CYH Latent | Flux Aspect Ratio** - Flux-optimized latent generation - **🔹 CYH Latent | Qwen Aspect Ratio** - Qwen Image-optimized latent generation - **🔹 CYH Latent | SDXL Aspect Ratio** - SDXL-optimized latent generation #### Phone Screen Nodes - **🔹 CYH Latent | Phone Aspect Ratio** - Common mobile device resolutions #### Video Format Nodes - **🔹 CYH Latent | Video Aspect Ratio** - Standard video resolutions and formats #### Social Media Nodes - **🔹 CYH Latent | Social Media Aspect Ratio** - Optimized sizes for social platforms #### Configuration Options: - **Aspect Ratio**: Choose from category-specific presets - **Orientation**: Portrait or Landscape (with smart defaults based on media type) - **Multiplier**: Scale resolution (0.1-10.0) - **Batch Size**: Number of latents to generate (1-64) #### Example Workflow: ``` [🔹 CYH Latent | Flux Aspect Ratio] → [KSampler] → [VAE Decode] ``` #### Multiplier Example: ``` Model: SDXL Aspect: 16:9 Orientation: Landscape Multiplier: 1.5 → Output: 1536×864 latent ``` ## 🎬 Post Process Tools Find the nodes under the **post_process** category: - **🎬 CYH Post Process | Film Grain** - Apply realistic film grain simulation - **Strength**: Overall grain intensity (0.0 to 1.0) - **ISO**: Simulated film sensitivity (100-6400) - **Grain Size**: Particle size control (1.0-10.0) - **Colored**: Toggle between monochrome or colored grain - **🎬 CYH Post Process | ARRI Halation** - Apply ARRI-style film bloom effect with comprehensive color grading - **Threshold**: Highlight detection threshold (0-255) - **Blur Size**: Glow effect size (1-101, odd numbers) - **Intensity**: Halation strength (0.0 to 1.0) - **Temperature**: Color temperature in Kelvin (1000-40000K) - warm to cool colors - **Saturation**: Color intensity (0.0-2.0) - desaturated to oversaturated - **Tint**: Green-magenta shift (-1.0 to 1.0) - green tint to magenta tint - **Gamma**: Gamma correction (0.5-2.5) - flat to contrasty - **Exposure**: Exposure adjustment in EV stops (-4.0 to 4.0) - dark to bright - **Contrast**: Contrast adjustment (0.5-2.0) - low to high contrast - **🎨 CYH Post Process | Global Color Grading** - Apply comprehensive color grading to entire images - **Temperature**: Color temperature in Kelvin (1000-40000K) - warm to cool colors - **Saturation**: Color intensity (0.0-2.0) - desaturated to oversaturated - **Tint**: Green-magenta shift (-1.0 to 1.0) - green tint to magenta tint - **Gamma**: Gamma correction (0.5-2.5) - flat to contrasty - **Exposure**: Exposure adjustment in EV stops (-4.0 to 4.0) - dark to bright - **Contrast**: Contrast adjustment (0.5-2.0) - low to high contrast - **🌈 CYH Post Process | Chromatic Aberration** - Apply lens color fringing effect - **Preset**: Quick configurations (None, Vintage, Modern, Extreme, Custom) - **Intensity**: Master effect strength multiplier (0.0-2.0) - **Center**: Adjustable distortion center point (0.0-1.0) - **Quality**: Fast (bilinear) or High (bicubic) interpolation - **Advanced Controls**: Individual RGB channel distortion coefficients (k1, k2, k3) #### Preset Details: - **None**: No chromatic aberration - **Vintage**: Classic lens look with red/blue separation - **Modern**: Subtle modern lens character - **Extreme**: Strong artistic effect with complex distortion #### Example Workflows: ``` [KSampler] → [VAE Decode] → [🎬 CYH Post Process | Film Grain] ``` ``` [KSampler] → [VAE Decode] → [🎬 CYH Post Process | ARRI Halation] ``` ``` [KSampler] → [VAE Decode] → [🌈 CYH Post Process | Chromatic Aberration] ``` ``` [KSampler] → [VAE Decode] → [🎨 CYH Post Process | Global Color Grading] ## 🔤 Prompt Tools Find the nodes under the **prompt_tools** category: - **🔤 CYH Prompt Tools | Setup** - Creates folder structure and example templates - **Force Recreate**: Overwrite existing files (True/False) - **Output**: Status message with setup results - **🔤 CYH Prompt Tools | Enhancer** - Uses LLM APIs to refine and enhance prompts - **Prompt**: Input prompt to enhance (multiline text) - **Template Path**: Path to template file (e.g., "providers/deepseek/professional_photo.txt") - **Provider**: LLM provider (DeepSeek, OpenAI, Anthropic, Custom) - **API Key Override**: Optional API key override (skips file lookup) - **Temperature**: Creativity control (0.0-1.0) - **Max Tokens**: Response length limit (100-4000) - **🔤 CYH Prompt Tools | Enhancer (Editable)** - Alternative version with editable preprompt template - **Prompt**: Input prompt to enhance (multiline text) - **Preprompt Template**: Editable template text (must include {prompt} placeholder) - **Provider**: LLM provider (DeepSeek, OpenAI, Anthropic, Custom) - **API Key Override**: Optional API key override (skips file lookup) - **Temperature**: Creativity control (0.0-1.0) - **Max Tokens**: Response length limit (100-4000) ### Setup Instructions: 1. **Run Setup Node First**: Use "🔤 CYH Prompt Tools | Setup" to create folder structure 2. **Configure API Keys**: Edit files in `Presets/api_keys/` with your actual API keys 3. **Customize Templates**: Modify or create templates in `Presets/Preprompts/` subdirectories 4. **Use Enhancer**: Connect prompts to "🔤 CYH Prompt Tools | Enhancer" for refinement ### Example Templates: - **Professional Photography**: Camera settings, lighting, composition techniques - **Cinematic Style**: Film terminology, director styles, visual storytelling - **High Detail**: Ultra-realistic textures, technical precision, intricate patterns ### Supported Providers: - **DeepSeek**: Fast and cost-effective Chinese LLM - **OpenAI**: GPT-4 Turbo for high-quality enhancements - **Anthropic**: Claude models for nuanced prompt refinement - **Custom**: Template-only mode without API calls ### Example Workflows: ``` [Text Input] → [🔤 CYH Prompt Tools | Enhancer] → [KSampler] ``` ``` [🔤 CYH Prompt Tools | Setup] → [Configure API Keys] → [🔤 CYH Prompt Tools | Enhancer] ``` ``` [Text Input] → [🔤 CYH Prompt Tools | Enhancer (Editable)] → [KSampler] ``` ### When to Use Each Version: - **File-based Enhancer**: Use when you want to maintain reusable templates across workflows - **Editable Enhancer**: Use when you want to quickly modify or experiment with preprompt text directly in the node - **Both versions support the same API providers and configuration options** ### Wildcard Generator - **🔤 CYH Prompt Tools | Wildcard Generator** - Generate randomized prompts using wildcard syntax {option1|option2|option3} - **Prompt**: Input text with wildcard expressions - **Seed**: Random seed for reproducible results (0 for random) - **Output**: Randomized prompt with wildcards replaced #### Wildcard Examples: - Input: "A {beautiful|stunning|gorgeous} {landscape|cityscape|seascape}" - Possible outputs: "A beautiful landscape", "A stunning cityscape", "A gorgeous seascape" #### Example Workflows: ``` [Text Input] → [🔤 CYH Prompt Tools | Wildcard Generator] → [KSampler] ``` ``` [🔤 CYH Prompt Tools | Wildcard Generator] → [🔤 CYH Prompt Tools | Enhancer] → [KSampler] ``` ### Folder Structure: ``` Presets/ ├── api_keys/ # API key files (gitignored) │ ├── deepseek_api_key.txt │ ├── openai_api_key.txt │ └── anthropic_api_key.txt ├── Preprompts/ # Template files (.txt) │ ├── professional_photo.txt │ ├── cinematic.txt │ ├── high_detail.txt │ └── custom/ # User-defined templates ``` ``` ## 📁 File Tools Find the nodes under the **file** category: - **📁 CYH File | Folder Filename Builder** - Construct file paths with project name, subfolder, and filename - **Project Name**: Base project identifier - **Filename**: Output filename (without extension) - **Use Subfolders**: Enable/disable subfolder organization - **Delimiter**: Path separator (/ or \ or _ or -) - **Subfolder**: Optional subfolder name - **📄 CYH File | Text File Loader** - Load text content from .txt files with trigger button and editable text box - **File Path**: Path to .txt file (supports drag & drop) - **Trigger**: Load File button to load content - **Editable Text**: Loaded text content (editable) - **Encoding**: Text encoding (utf-8, utf-16, ascii, latin-1) - **Auto Load**: Automatically reload when file changes - **📄 CYH File | Text File Editor** - Editable text widget with action modes for controlling output behavior - **Action**: Control output behavior (use_input/use_edit_mute_input) - **Editable Text Widget**: Editable text content - **Input Text**: Optional upstream text input - **🎬 CYH File | Video Loader** - Load video files from text paths for ComfyUI video processing - **File Path**: Path to video file (supports drag & drop) ### Action Modes: - **use_input**: Outputs connected text and updates widget display - **use_edit_mute_input**: Outputs widget text and mutes upstream input ### Example Workflows: ``` [📄 CYH File | Text File Loader] → [📄 CYH File | Text File Editor] → [KSampler] ``` ``` [Text Input] → [📄 CYH File | Text File Editor] → [KSampler] ``` ``` [🎬 CYH File | Video Loader] → [Get Video Components] (for extracting frames and audio) ``` ``` [Video Generator] → [🎬 CYH File | Video Loader] (for loading generated videos) ``` ``` [File Path] → [🎬 CYH File | Video Loader] → [Video Processing Nodes] (for video processing workflows) ``` ### When to Use Each Version: - **Text File Loader**: Use when you want to load text from .txt files - **Text File Editor**: Use when you want editable text with action modes and upstream muting - **Video Loader**: Use when you want to load video files from text paths for ComfyUI video processing - **Combined**: Use Text File Loader → Text File Editor for file loading with advanced editing features ## 📱 Phone Screen Resolutions | Aspect Ratio | Resolution | Description | |-------------|------------|-------------| | 16:9 | 1080×1920 | Standard phone screens | | 19.5:9 | 1080×2340 | Modern tall phones | | 20:9 | 1080×2400 | Ultra tall phones | | 18:9 | 1080×2160 | Tall phones | **Default Orientation**: Portrait (optimized for mobile viewing) ## 🎬 Video Format Resolutions | Aspect Ratio | Resolution | Description | |-------------|------------|-------------| | 16:9 | 1920×1080 | Standard video (Full HD) | | 21:9 | 1920×810 | Cinema format | | 4:3 | 1024×768 | Traditional video | | 9:16 | 1080×1920 | Portrait video | **Default Orientation**: Landscape (except 9:16 which defaults to Portrait) ## 📱 Social Media Resolutions | Platform | Format | Resolution | Aspect Ratio | |----------|--------|------------|-------------| | Instagram | Square | 1080×1080 | 1:1 | | Instagram | Portrait | 1080×1350 | 4:5 | | Instagram | Landscape | 1080×608 | 1.91:1 | | Instagram | Stories/Reels | 1080×1920 | 9:16 | | TikTok | Standard | 1080×1920 | 9:16 | | TikTok | Wide | 1920×1080 | 16:9 | | YouTube | Standard | 1920×1080 | 16:9 | | YouTube | Shorts | 1080×1920 | 9:16 | | Facebook | Feed | 1200×630 | 1.91:1 | | Facebook | Stories | 1080×1920 | 9:16 | | Twitter | Tweet | 1200×675 | 16:9 | | Twitter | Header | 1500×500 | 3:1 | **Default Orientation**: Platform-specific (Portrait for Instagram Stories/TikTok, Landscape for YouTube Standard, etc.) ## 📐 Resolution Reference | Model | 1:1 | 4:3 | 3:2 | 16:9 | 21:9 | |------------|----------|----------|----------|----------|----------| | **Flux** | 1024×1024| 1280×960 | 1152×768 | 1344×768 | 1792×768 | | **Qwen** | 1328×1328| 1472×1140| 1536×1024| 1664×928 | 1984×864 | | **SDXL** | 1024×1024| 1024×768 | 1152×768 | 1024×576 | 1344×576 | ## 🏗️ Project Structure ``` Chye-ComfyUI-Toolset/ ├── categories/ │ ├── latent_tools.py # Aspect ratio latent generators │ ├── post_process.py # Image post-processing tools (film grain, etc.) │ ├── prompt_tools.py # LLM-based prompt enhancement tools │ ├── image_tools.py # Interactive painting and image processing tools │ ├── file_tools.py # File handling tools (text, video, etc.) │ ├── video_tools.py # Video loading tools for text path input │ ├── utility_tools.py # (Future) Workflow utilities │ └── __init__.py ├── shared/ │ ├── constants.py # Common configuration data │ ├── validators.py # Input validation utilities │ ├── helpers.py # Shared utility functions │ └── __init__.py ├── Presets/ # Prompt enhancement templates and API keys │ ├── api_keys/ # API key files (gitignored) │ └── Preprompts/ # Template files (.txt) ├── __init__.py # Main entry point ├── pyproject.toml # Project metadata └── README.md # This file ``` ``` ## 📝 Notes - All dimensions are automatically rounded to multiples of 32 for ComfyUI compatibility - Portrait orientation swaps width/height when the base resolution is landscape-oriented - Multiplier scales base resolution before rounding - Modular design allows for easy expansion with new tool categories - Phone screen nodes default to Portrait orientation for optimal mobile viewing - Video format nodes have smart defaults based on the aspect ratio (Landscape for most, Portrait for 9:16) - Social media nodes have platform-specific default orientations for optimal results ## 🔄 Version History - **v2.10.0**: Added Wildcard Generator node for randomized prompts using {option1|option2|option3} syntax - **v2.9.0**: Added Video Loader node for loading videos from text paths - **v2.8.0**: Added Text File Editor node with action modes (use_input/use_edit_mute_input) and UI widget updating - **v2.7.0**: Added Interactive Painter node with freehand brush drawing - **v2.6.0**: Added Global Color Grading node with comprehensive color controls - **v2.5.0**: Enhanced ARRI Halation node with comprehensive color grading controls - **v2.4.0**: Added PromptEnhancerEditable node with editable preprompt templates - **v2.3.0**: Added Prompt Enhancement tools with multi-provider LLM integration - **v2.2.0**: Added Chromatic Aberration node with realistic lens simulation - **v2.1.0**: Added Phone, Video, and Social Media aspect ratio nodes - **v2.0.0**: Complete restructure into modular toolset with shared utilities - **v1.x.x**: Individual aspect ratio nodes ## 🤝 Contributing This toolset is designed for extensibility. New categories and tools can be easily added following the established patterns in the `categories/` and `shared/` directories. --- **Happy Creating! 🎨**