# Enhanced run_comfyui.bat with Automated Dependency Checking and CUDA PyTorch Installation ## Author's Note **Important**: I am not a professional coder and have relied heavily on Cursor AI for the development of this script. While I have done my best to ensure its functionality and safety, I kindly request a thorough review by experienced developers before merging. Please pay special attention to: - Batch file logic and error handling - Python command-line invocations - Virtual environment detection logic - Dependency checking implementation - User interaction flow ## Overview This PR enhances the `run_comfyui.bat` startup script for Windows users, significantly improving the user experience by automatically checking dependencies, detecting virtual environments, and offering intelligent installation options. The script now provides a polished, user-friendly interface with clear error messages and troubleshooting guidance. ## Key Features ### 1. **Automated Dependency Checking** - Checks all critical Python dependencies before launching ComfyUI - Separates critical vs. optional dependencies - Provides clear prompts for missing packages - Offers installation options: Install All, Critical Only, or Cancel ### 2. **CUDA PyTorch Auto-Installation** - Automatically detects CPU-only PyTorch installations - Offers to automatically uninstall CPU version and install CUDA-enabled version - Shows progress bars during installation (`--progress-bar on`) - Verifies installation before proceeding - Provides clear warnings about NVIDIA GPU requirements ### 3. **Virtual Environment Awareness** - Detects if running in a virtual environment - Provides appropriate warnings about installation impacts - Offers guidance on creating virtual environments for safer package management ### 4. **Enhanced User Experience** - UTF-8 encoding support for proper Unicode character display - ASCII art banner with "Comfy" text - Progress bars for all pip installations - User-friendly error messages with actionable troubleshooting steps - Clear, informative prompts throughout the installation process ### 5. **Comprehensive Error Handling** - Detailed error messages for common issues: - Python not found - Installation failures - CUDA out of memory errors - Module not found errors - Provides specific troubleshooting steps for each error type ## Files Changed - **`run_comfyui.bat`** (408 lines, +347 insertions, -61 deletions) - Enhanced startup script with all new features - UTF-8 encoding support - Comprehensive dependency checking - CUDA PyTorch detection and auto-installation - Virtual environment detection - Progress bars for installations - User-friendly error messages - **`create_shortcut.ps1`** (1 line addition) - PowerShell script for creating desktop shortcuts - Helper utility for easier access ## Screenshots ### ASCII Art Banner The script displays a polished ASCII art banner with "Comfy" text: ``` ╔═══════════════════════════════════════════════════════════╗ ║ ║ ║ ██████╗ ██████╗ ███╗ ███╗███████╗██╗ ██╗ ║ ║ ██╔════╝██╔═══██╗████╗ ████║██╔════╝╚██╗ ██╔╝ ║ ║ ██║ ██║ ██║██╔████╔██║█████╗ ╚████╔╝ ║ ║ ██║ ██║ ██║██║╚██╔╝██║██╔══╝ ╚██╔╝ ║ ║ ╚██████╗╚██████╔╝██║ ╚═╝ ██║██║ ██║ ║ ║ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ║ ║ ║ ║ The most powerful open source node-based ║ ║ application for generative AI ║ ║ ║ ╚═══════════════════════════════════════════════════════════╝ ``` ### Key User Interactions **Dependency Checking Prompt:** ``` ╔═══════════════════════════════════════════════════════════╗ ║ Missing Required Packages ║ ╚═══════════════════════════════════════════════════════════╝ ▓ ComfyUI needs some additional software to run. The following critical packages are missing: yaml, torch, numpy ▓ [Heads Up] You're using your main Python installation. Installing packages here might affect other programs that use Python. ▓ Installation Options: [I] Install all missing packages (recommended) [C] Install only critical packages [N] Cancel and exit ``` **CUDA PyTorch Detection:** ``` ╔═══════════════════════════════════════════════════════════╗ ║ CPU-Only PyTorch Detected - CUDA Version Required ║ ╚═══════════════════════════════════════════════════════════╝ ▓ Your PyTorch installation doesn't support GPU acceleration. ComfyUI requires CUDA-enabled PyTorch to run properly. ▓ We can automatically install the CUDA-enabled version for you. This will: 1. Remove the current CPU-only version 2. Install the CUDA-enabled version (this will take several minutes) 3. Continue to launch ComfyUI automatically Would you like to install CUDA-enabled PyTorch now? (Y/N): ``` ## Testing Recommendations To thoroughly test this PR, please verify the following scenarios: 1. **Clean Environment**: Run the script in an environment with no Python or ComfyUI dependencies installed 2. **Missing Critical Dependencies**: Manually uninstall one or more critical dependencies (e.g., `pyyaml`) and verify the script correctly identifies them 3. **Missing Optional Dependencies**: Uninstall an optional dependency and verify the script offers to install it or skip 4. **CPU-Only PyTorch**: Install a CPU-only version of PyTorch and verify the script detects it and offers to install the CUDA version 5. **CUDA-Enabled PyTorch**: Ensure a CUDA-enabled PyTorch is installed and verify the script proceeds directly to launching ComfyUI 6. **Virtual Environment**: Test running the script within an activated virtual environment 7. **System Python**: Test running the script with system Python (not in a virtual environment) 8. **Error Handling**: Verify that all error messages are clear, informative, and provide helpful troubleshooting steps 9. **Progress Bars**: Verify that progress bars display correctly during pip installations 10. **ASCII Art**: Confirm the ASCII art banner renders correctly in a standard Windows command prompt ## Technical Details ### UTF-8 Encoding - Uses `chcp 65001` to enable UTF-8 encoding for proper Unicode character display - Ensures ASCII art and box-drawing characters render correctly ### Dependency Checking - Uses `importlib.util.find_spec()` to check for module availability - Separates critical dependencies (required for ComfyUI to run) from optional dependencies - Provides user with clear installation options ### CUDA PyTorch Detection - Checks PyTorch version string for "+cpu" indicator - Verifies CUDA availability using `torch.cuda.is_available()` - Automatically updates CUDA availability variables after installation - Continues to launch ComfyUI after successful installation ### Progress Bars - Uses `--progress-bar on` flag for all pip installations - Provides visual feedback during long installations (especially PyTorch) ## Backward Compatibility - ✅ All changes are backward compatible - ✅ No breaking changes to existing functionality - ✅ Works with both system Python and virtual environments - ✅ Existing users can continue using the script as before ## Benefits 1. **Improved User Experience**: Users get clear guidance on what's missing and how to fix it 2. **Reduced Support Burden**: Common issues are caught and resolved automatically 3. **Better Error Messages**: Users understand what went wrong and how to fix it 4. **Professional Appearance**: Polished interface with ASCII art and clear formatting 5. **GPU Support**: Automatically ensures users have CUDA-enabled PyTorch for optimal performance ## Additional Notes - The script maintains all original functionality while adding new features - All user prompts are optional - users can cancel at any time - Installation commands use `python -m pip` for consistency - Error handling provides actionable troubleshooting steps - The script is designed to be safe and non-destructive ## Request for Review Given my limited coding experience, I would greatly appreciate: - Code review focusing on batch file best practices - Verification of Python command invocations - Testing in various Windows environments - Feedback on error handling and user prompts - Suggestions for improvements Thank you for your time and consideration!