diff --git a/ComfyUI-master/Dockerfile b/ComfyUI-master/Dockerfile index 696351bd8..624ecdf5f 100644 --- a/ComfyUI-master/Dockerfile +++ b/ComfyUI-master/Dockerfile @@ -47,19 +47,17 @@ RUN pip install --no-cache-dir \ # Install ComfyUI requirements if exists RUN if [ -f requirements.txt ]; then pip install --no-cache-dir -r requirements.txt; fi -# Create necessary directories -RUN mkdir -p /workspace/ComfyUI/models/checkpoints \ - /workspace/ComfyUI/models/vae \ - /workspace/ComfyUI/models/loras \ - /workspace/ComfyUI/models/controlnet \ - /workspace/ComfyUI/models/clip_vision \ - /workspace/ComfyUI/models/upscale_models \ - /workspace/ComfyUI/input \ +# Create necessary directories for temp files +RUN mkdir -p /workspace/ComfyUI/input \ /workspace/ComfyUI/output \ /tmp/inputs \ /tmp/outputs \ /tmp/comfyui +# Create symlinks to network storage for models +RUN mkdir -p /runpod-volume && \ + ln -sf /runpod-volume/models /workspace/ComfyUI/models + # Set environment variables ENV PYTHONPATH="/workspace/ComfyUI:${PYTHONPATH}" ENV COMFYUI_SERVERLESS=true diff --git a/ComfyUI-master/runpod_handler.py b/ComfyUI-master/runpod_handler.py index aa4f45a0a..21f01eabd 100644 --- a/ComfyUI-master/runpod_handler.py +++ b/ComfyUI-master/runpod_handler.py @@ -39,14 +39,33 @@ class ComfyUIServerlessHandler: """Start ComfyUI server in background""" try: logger.info("Starting ComfyUI server...") + + # Check if main.py exists + if not os.path.exists("/workspace/ComfyUI/main.py"): + logger.error("main.py not found in /workspace/ComfyUI") + raise FileNotFoundError("ComfyUI main.py not found") + + # Check if models directory exists (network storage) + if not os.path.exists("/workspace/ComfyUI/models"): + logger.warning("Models directory not found, creating symlink to network storage") + if os.path.exists("/runpod-volume/models"): + os.symlink("/runpod-volume/models", "/workspace/ComfyUI/models") + else: + logger.error("Network storage models not found at /runpod-volume/models") + + # Start ComfyUI self.comfyui_process = subprocess.Popen([ "python3", "main.py", "--listen", "0.0.0.0", "--port", "8000", "--dont-print-server", "--disable-auto-launch" - ], cwd="/workspace/ComfyUI") + ], cwd="/workspace/ComfyUI", + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + logger.info("ComfyUI server started") + except Exception as e: logger.error(f"Failed to start ComfyUI: {str(e)}") raise