Use /runpod-volume mount point for RunPod network volumes
All checks were successful
Build and Push Docker Image / build (push) Successful in 3m47s
All checks were successful
Build and Push Docker Image / build (push) Successful in 3m47s
RunPod mounts network volumes at /runpod-volume, not /userdata. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -11,7 +11,7 @@ ComfyUI-based image-to-video generation service deployed on RunPod Serverless. A
|
|||||||
```
|
```
|
||||||
RunPod API Request → handler.py → ComfyUI Server (port 8188) → GPU Inference → Response
|
RunPod API Request → handler.py → ComfyUI Server (port 8188) → GPU Inference → Response
|
||||||
↓
|
↓
|
||||||
Network Volume (/userdata) for models
|
Network Volume (/runpod-volume) for models
|
||||||
```
|
```
|
||||||
|
|
||||||
**Key flow in handler.py:**
|
**Key flow in handler.py:**
|
||||||
@@ -38,7 +38,7 @@ CI/CD via Gitea Actions triggers on push to `main` branch.
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run --gpus all -p 8188:8188 \
|
docker run --gpus all -p 8188:8188 \
|
||||||
-v /path/to/models:/userdata/models \
|
-v /path/to/models:/runpod-volume/models \
|
||||||
comfyui-runpod:latest
|
comfyui-runpod:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ docker run --gpus all -p 8188:8188 \
|
|||||||
|
|
||||||
## Key Considerations
|
## Key Considerations
|
||||||
|
|
||||||
- Models stored on RunPod Network Volume at `/userdata/models/`
|
- Models stored on RunPod Network Volume at `/runpod-volume/models/`
|
||||||
- Cold start ~30-60s for ComfyUI initialization
|
- Cold start ~30-60s for ComfyUI initialization
|
||||||
- Large outputs (>10MB) returned as file paths, not base64
|
- Large outputs (>10MB) returned as file paths, not base64
|
||||||
- Workflow files in `workflows/` directory (API format)
|
- Workflow files in `workflows/` directory (API format)
|
||||||
|
|||||||
31
Dockerfile
31
Dockerfile
@@ -104,26 +104,27 @@ RUN (cd ComfyUI-KJNodes && pip install -r requirements.txt || true) && \
|
|||||||
rm -rf /root/.cache/pip /tmp/*
|
rm -rf /root/.cache/pip /tmp/*
|
||||||
|
|
||||||
# Create directories and symlinks to network volume
|
# Create directories and symlinks to network volume
|
||||||
|
# RunPod mounts network volumes at /runpod-volume
|
||||||
WORKDIR /workspace/ComfyUI
|
WORKDIR /workspace/ComfyUI
|
||||||
RUN mkdir -p /userdata/models/checkpoints \
|
RUN mkdir -p /runpod-volume/models/checkpoints \
|
||||||
/userdata/models/loras \
|
/runpod-volume/models/loras \
|
||||||
/userdata/models/vae \
|
/runpod-volume/models/vae \
|
||||||
/userdata/models/controlnet \
|
/runpod-volume/models/controlnet \
|
||||||
/userdata/models/clip \
|
/runpod-volume/models/clip \
|
||||||
/userdata/models/upscale_models \
|
/runpod-volume/models/upscale_models \
|
||||||
/userdata/.cache/huggingface \
|
/runpod-volume/.cache/huggingface \
|
||||||
/workspace/.cache
|
/workspace/.cache
|
||||||
|
|
||||||
# Symlink model directories to /userdata
|
# Symlink model directories to /runpod-volume
|
||||||
RUN rm -rf models/checkpoints && ln -s /userdata/models/checkpoints models/checkpoints && \
|
RUN rm -rf models/checkpoints && ln -s /runpod-volume/models/checkpoints models/checkpoints && \
|
||||||
rm -rf models/loras && ln -s /userdata/models/loras models/loras && \
|
rm -rf models/loras && ln -s /runpod-volume/models/loras models/loras && \
|
||||||
rm -rf models/vae && ln -s /userdata/models/vae models/vae && \
|
rm -rf models/vae && ln -s /runpod-volume/models/vae models/vae && \
|
||||||
rm -rf models/controlnet && ln -s /userdata/models/controlnet models/controlnet && \
|
rm -rf models/controlnet && ln -s /runpod-volume/models/controlnet models/controlnet && \
|
||||||
rm -rf models/clip && ln -s /userdata/models/clip models/clip && \
|
rm -rf models/clip && ln -s /runpod-volume/models/clip models/clip && \
|
||||||
rm -rf models/upscale_models && ln -s /userdata/models/upscale_models models/upscale_models
|
rm -rf models/upscale_models && ln -s /runpod-volume/models/upscale_models models/upscale_models
|
||||||
|
|
||||||
# Symlink HuggingFace cache
|
# Symlink HuggingFace cache
|
||||||
RUN ln -s /userdata/.cache/huggingface /workspace/.cache/huggingface
|
RUN ln -s /runpod-volume/.cache/huggingface /workspace/.cache/huggingface
|
||||||
|
|
||||||
# Copy handler and workflows
|
# Copy handler and workflows
|
||||||
WORKDIR /workspace
|
WORKDIR /workspace
|
||||||
|
|||||||
@@ -454,7 +454,7 @@ def handler(job: dict) -> dict:
|
|||||||
# Check size for video files
|
# Check size for video files
|
||||||
if output_info["type"] == "video" and len(data) > 10 * 1024 * 1024:
|
if output_info["type"] == "video" and len(data) > 10 * 1024 * 1024:
|
||||||
# For large videos, save to network volume and return path
|
# For large videos, save to network volume and return path
|
||||||
output_path = Path("/userdata/outputs") / output_info["filename"]
|
output_path = Path("/runpod-volume/outputs") / output_info["filename"]
|
||||||
output_path.parent.mkdir(parents=True, exist_ok=True)
|
output_path.parent.mkdir(parents=True, exist_ok=True)
|
||||||
output_path.write_bytes(data)
|
output_path.write_bytes(data)
|
||||||
results.append({
|
results.append({
|
||||||
|
|||||||
Reference in New Issue
Block a user