runpod

Cloud GPU processing via RunPod serverless. Use when setting up RunPod endpoints, deploying Docker images, managing GPU resources, troubleshooting endpoint issues, or understanding costs. Covers all 5 toolkit images (qwen-edit, realesrgan, propainter, sadtalker, qwen3-tts).

By digitalsamba · 692 installs

npx skills add digitalsamba/claude-code-video-toolkit --skill runpod

Source repository · Upstream listing

RunPod Cloud GPU Run open source AI models on cloud GPUs via RunPod serverless. Pay per second, no minimums. Setup Each setup command: 1. Creates a RunPod template from the Docker image 2. Creates a serverless endpoint with appropriate GPU 3. Saves the endpoint ID to .env (e.g. RUNPOD QWEN EDIT ENDPOINT ID ) Available Images All images are public on GHCR — no authentication needed. Tool Docker Image GPU VRAM Typical Cost image edit ghcr.io/conalmullan/video toolkit qwen edit:latest A6000/L40S 48GB+ ~$0.05 0.15/job upscale ghcr.io/conalmullan/video toolkit realesrgan:latest RTX 3090/4090 24GB ~$0.01 0.05/job dewatermark ghcr.io/conalmullan/video toolkit propainter:latest RTX 3090/4090 24GB ~$0.05 0.30/job sadtalker ghcr.io/conalmullan/video toolkit sadtalker:latest RTX 4090 24GB ~$0.05 0.15/job qwen3 tts ghcr.io/conalmullan/video toolkit qwen3 tts:latest ADA 24GB 24GB ~$0.01 0.05/job Total monthly cost: Rarely exceeds $10 even with heavy use. How It Works All tools follow the same pattern: 1. File transfer: Tools use Cloudflare R2 when configured ( R2 ACCOUNT ID , R2 ACCESS KEY ID , R2 SECRET ACCESS KEY , R2 BUCKET NAME ), falling back to free upload services 2. RunPod API: Tools call the /run endpoint, then poll /status/{job id} until complete 3. Cold vs warm start: First request after idle spins up a worker (~30 90s). Subsequent requests are fast (~5 15s) Endpoint Management Workers Across all endpoints, you share a total worker pool based on your RunPod plan. If you hit limits, reduce workersMax on endpoints you're not actively using. Checking Endpoint Status Each tool stores its endpoint ID in .env : Tool Env Var image edit RUNPOD QWEN EDIT ENDPOINT ID upscale RUNPOD UPSCALE ENDPOINT ID dewatermark RUNPOD DEWATERMARK ENDPOINT ID sadtalker RUNPOD SADTALKER ENDPOINT ID qwen3 tts RUNPOD QWEN3 TTS ENDPOINT ID Disabling an Endpoint To free worker slots without deleting the endpoint, set workersMax=0 via the RunPod dashboard or GraphQL API. RunPod API Reference Use these to query and manage endpoints programmatically. RunPod disables GraphQL introspection, so these field names are verified and must be exact. Authentication All API calls require Authorization: Bearer $RUNPOD API KEY . GraphQL: POST https://api.runpod.io/graphql REST (Serverless): https://api.runpod.ai/v2/{endpoint id}/... GraphQL Queries List all endpoints: Current spend rate: List pods: Common mistakes: Field names are camelCase with full words — localStoragePerHour not localStoragePerHr . Endpoints are endpoints not serverlessWorkers . spending is not a field — use currentSpendPerHr and spendDetails . GraphQL Mutations Update endpoint GPU or config: saveEndpoint requires name and templateId even for updates — query first to get current values. REST API (Serverless) Action Method URL Submit job POST /v2/{id}/run Check status GET /v2/{id}/status/{job id} Cancel job POST /v2/{id}/cancel/{job id} List pending GET /v2/{id}/requests Health/stats GET /v2/{id}/health Health response includes job counts and worker state: Note: /requests only returns pending/queued jobs. Completed job history is not available via the API — check the RunPod web console for logs. GPU Type IDs ID GPU VRAM Typical Cost AMPERE 24 RTX 3090 24GB ~$0.34/hr ADA 24 RTX 4090 24GB ~$0.69/hr AMPERE 48 A6000 48GB ~$0.76/hr AMPERE 80 A100 80GB ~$1.99/hr Availability note: ADA 24 (4090) is frequently throttled/unavailable on RunPod. Always configure endpoints with multiple fallback GPU types (comma separated) to avoid jobs getting stuck in queue indefinitely: All toolkit tools also enforce a 5 minute queue timeout — if no GPU is available within 300 seconds, the job is automatically cancelled to prevent runaway billing from failed initialization cycles. Cloudflare R2 via AWS CLI R2 uses the S3 compatible API but requires region auto : Common mistake: Omitting region auto causes InvalidRegionName error. R2 valid regions: wnam , enam , weur , eeur , apac , oc , auto . Troubleshooting Force Image Pull When you push a new Docker image version, RunPod may still use the cached old one. To force a pull: 1. Update the template's imageName to use @sha256:DIGEST notation 2. Wait for the worker to restart 3. Revert to :latest tag after confirming Cold Start Too Slow qwen3 tts: ~70s cold start, ~7s warm sadtalker: ~60s cold start, ~10s warm image edit: ~90s cold start, ~15s warm If cold starts are a problem, set workersMin: 1 (costs money when idle). Job Fails with OOM The model needs more VRAM than the GPU provides. Options: Use a larger GPU tier For dewatermark: reduce resize ratio (default 0.5 for safety) For image edit: reduce steps "No workers available" You've hit your plan's concurrent worker limit. Either: Wait for a running job to finish Set workersMax=0 on endpoints you're not using Upgrade your RunPod plan Docker Images All Dockerfiles live in docker/runpod / . Images use runpod/pytorch as the base to share layers across tools. Building for RunPod (from Apple Silicon Mac): GHCR packages default to private — you must manually make them public for RunPod to pull them. Go to GitHub Packages Package Settings Change Visibility. Cost Optimization Keep workersMin: 0 on all endpoints (scale to zero) Only deploy endpoints you actively need Use workersMax=0 to disable idle endpoints without deleting them Qwen3 TTS is significantly cheaper than ElevenLabs for voiceovers Check the RunPod dashboard for usage and billing