mirror of
https://git.datalinker.icu/comfyanonymous/ComfyUI
synced 2025-12-21 20:14:41 +08:00
Add comprehensive PR description for preinstall enhancements
This commit is contained in:
parent
52d13ef3a8
commit
1a56b1dcea
194
PR_DESCRIPTION.md
Normal file
194
PR_DESCRIPTION.md
Normal file
@ -0,0 +1,194 @@
|
||||
# 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!
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user