169 lines
5.0 KiB
Markdown
169 lines
5.0 KiB
Markdown
# 🤝 DW Preprocessor Compatibility Guide
|
|
|
|
## 🚨 Issue: Conflicts with DWPose/DW Preprocessors
|
|
|
|
**Problem**: Users report conflicts when using MiniMax-Remover alongside DWPose or other DW preprocessor nodes in ComfyUI.
|
|
|
|
**Root Causes**:
|
|
1. **PyTorch Version Conflicts**: Exact version pins vs. DW preprocessor requirements
|
|
2. **Segment Anything Model Conflicts**: Multiple SAM model loading attempts
|
|
3. **ONNX Runtime Conflicts**: Different runtime providers and versions
|
|
4. **CUDA Memory Issues**: Both nodes are memory-intensive
|
|
|
|
## ✅ **Fixes Applied**
|
|
|
|
### **1. PyTorch Version Compatibility**
|
|
|
|
**Updated Requirements:**
|
|
- **Before**: `torch==2.6` (exact pin causing conflicts)
|
|
- **After**: `torch>=2.0.0,<2.5.0` (compatible range)
|
|
|
|
**Compatible with:**
|
|
- DWPose preprocessors requiring `torch>=1.13.0,<2.4`
|
|
- Most ComfyUI ControlNet preprocessors
|
|
- ONNX runtime requirements
|
|
|
|
### **2. Memory Management**
|
|
|
|
**Add to your workflow:**
|
|
- Use only one pose estimation node at a time
|
|
- Clear CUDA cache between different preprocessors
|
|
- Consider using CPU fallback for one of the nodes
|
|
|
|
## 🛠️ **Troubleshooting Steps**
|
|
|
|
### **If DW Preprocessor Fails After Installing MiniMax-Remover**
|
|
|
|
1. **Check PyTorch Compatibility:**
|
|
```bash
|
|
python -c "import torch; print(f'PyTorch: {torch.__version__}')"
|
|
# Should show 2.0.x - 2.4.x range
|
|
```
|
|
|
|
2. **Clear Model Cache:**
|
|
```bash
|
|
# In ComfyUI directory
|
|
rm -rf models/preprocessors/*dwpose*
|
|
# Let DW preprocessor re-download models
|
|
```
|
|
|
|
3. **Restart ComfyUI Completely:**
|
|
- Close ComfyUI
|
|
- Clear CUDA cache
|
|
- Restart ComfyUI
|
|
|
|
### **If Both Nodes Load But Fail During Processing**
|
|
|
|
**Error**: `CUDA out of memory` or `cannot unpack non-iterable NoneType object`
|
|
|
|
**Solutions:**
|
|
|
|
1. **Use Nodes Sequentially (Not Simultaneously):**
|
|
```
|
|
Image → DW Preprocessor → [Clear Cache] → MiniMax-Remover
|
|
```
|
|
|
|
2. **Enable CPU Fallback for DW Preprocessor:**
|
|
- Set DW preprocessor to use CPU mode if available
|
|
- This reduces CUDA memory pressure
|
|
|
|
3. **Reduce Batch Sizes:**
|
|
- Process single images instead of batches
|
|
- Use lower resolution settings
|
|
|
|
### **Memory Management Workflow**
|
|
|
|
```python
|
|
# Example workflow order:
|
|
1. Load Image
|
|
2. Run DW Preprocessor (pose estimation)
|
|
3. Clear CUDA cache: torch.cuda.empty_cache()
|
|
4. Run MiniMax-Remover (object removal)
|
|
5. Clear CUDA cache again
|
|
```
|
|
|
|
## 🔧 **Advanced Compatibility Settings**
|
|
|
|
### **1. Environment Variables**
|
|
|
|
Add to your ComfyUI startup:
|
|
```bash
|
|
export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
|
|
export CUDA_LAUNCH_BLOCKING=1
|
|
```
|
|
|
|
### **2. Model Loading Strategy**
|
|
|
|
**For DW Preprocessor:**
|
|
- Use ONNX models instead of TorchScript when possible
|
|
- Enable FP16 precision to reduce memory usage
|
|
|
|
**For MiniMax-Remover:**
|
|
- Use `torch.float16` for VAE operations
|
|
- Enable gradient checkpointing if available
|
|
|
|
### **3. Installation Order**
|
|
|
|
**Recommended installation sequence:**
|
|
|
|
1. Install DW Preprocessor first
|
|
2. Test DW Preprocessor functionality
|
|
3. Install MiniMax-Remover (with updated requirements)
|
|
4. Restart ComfyUI
|
|
5. Test both nodes separately, then together
|
|
|
|
## 📊 **Compatibility Matrix**
|
|
|
|
| DW Preprocessor Version | MiniMax-Remover | PyTorch Range | Status |
|
|
|------------------------|-----------------|---------------|---------|
|
|
| DWPose (latest) | v1.0+ (fixed) | 2.0.0-2.4.9 | ✅ Compatible |
|
|
| OpenPose preprocessor | v1.0+ (fixed) | 2.0.0-2.4.9 | ✅ Compatible |
|
|
| DWPose TensorRT | v1.0+ (fixed) | 2.0.0-2.4.9 | ⚠️ Test needed |
|
|
|
|
## 🆘 **Common Error Solutions**
|
|
|
|
### **Error**: `TypeError: cannot unpack non-iterable NoneType object`
|
|
**Cause**: Segment Anything model loading conflict
|
|
**Solution**:
|
|
```bash
|
|
# Remove conflicting SAM models
|
|
rm ComfyUI/models/sam/*
|
|
# Restart ComfyUI and let each node download its own SAM model
|
|
```
|
|
|
|
### **Error**: `CUDA error: out of memory`
|
|
**Cause**: Both nodes trying to use GPU simultaneously
|
|
**Solutions**:
|
|
1. Use CPU mode for DW preprocessor
|
|
2. Process sequentially with cache clearing
|
|
3. Reduce image resolution
|
|
|
|
### **Error**: `ModuleNotFoundError: No module named 'onnxruntime'`
|
|
**Cause**: ONNX runtime version mismatch
|
|
**Solution**:
|
|
```bash
|
|
pip install onnxruntime-gpu==1.15.1 --force-reinstall
|
|
```
|
|
|
|
## 🎯 **Best Practices**
|
|
|
|
1. **Test Separately First**: Verify each node works independently
|
|
2. **Sequential Processing**: Don't run both nodes simultaneously on the same image
|
|
3. **Memory Management**: Clear CUDA cache between intensive operations
|
|
4. **Version Pinning**: Use the updated requirements files with compatible ranges
|
|
5. **Model Isolation**: Let each node manage its own model downloads
|
|
|
|
## 📝 **Reporting Issues**
|
|
|
|
If you still experience conflicts after following this guide:
|
|
|
|
1. **Include PyTorch version**: `python -c "import torch; print(torch.__version__)"`
|
|
2. **Include CUDA version**: `nvidia-smi`
|
|
3. **Include exact error message** and traceback
|
|
4. **Specify DW preprocessor variant** (DWPose, OpenPose, etc.)
|
|
5. **Hardware specs** (GPU model, VRAM amount)
|
|
|
|
---
|
|
|
|
**Note**: These fixes ensure MiniMax-Remover works alongside DW preprocessors without breaking existing functionality.
|