New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Cloud GPU processing via RunPod serverless

RunPod Cloud GPU

by digitalsamba · MIT license · ★ 2,114 on GitHub · updated Sep 21

RunPod Cloud GPU cover

Cloud GPU processing via RunPod serverless. Use when setting up RunPod endpoints, deploying Docker images, managing GPU resources, troubleshooting endpoint issues, or understanding costs.

---
name: runpod
description: 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).
---

# RunPod Cloud GPU

Run open-source AI models on cloud GPUs via RunPod serverless. Pay-per-second, no minimums.

## Setup

```bash
# 1. Create account at https://runpod.io
# 2. Add API key to .env
echo "RUNPOD_API_KEY=your_key_here" >> .env

# 3. Deploy any tool with --setup
uv run tools/image_edit.py --setup

Overview

Run open-source AI models on cloud GPUs via RunPod serverless. Pay-per-second, no minimums.

Manual install (npx, ZIP)
Claude Codenpx skills add digitalsamba/claude-code-video-toolkit --skill runpod -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/digitalsamba/claude-code-video-toolkit/tar.gz/225c80a1c3a5 \ | tar -xz -C ~/.claude/skills --strip-components=3 claude-code-video-toolkit-225c80a1c3a5/.claude/skills/runpod
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/4a53cfd88c18a4ba2648/runpod.zip" -OutFile "$env:TEMP\runpod.zip"; Expand-Archive "$env:TEMP\runpod.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md8.2 KB
Read the files here
digitalsamba/225c80a1 file
Shared references5SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text233 lines

RunPod Cloud GPU

Run open-source AI models on cloud GPUs via RunPod serverless. Pay-per-second, no minimums.

Setup

# 1. Create account at https://runpod.io
# 2. Add API key to .env
echo "RUNPOD_API_KEY=your_key_here" >> .env

# 3. Deploy any tool with --setup
uv run tools/image_edit.py --setup
uv run tools/upscale.py --setup
uv run tools/dewatermark.py --setup
uv run tools/sadtalker.py --setup
uv run tools/qwen3_tts.py --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:

Local CLI → Upload input to cloud storage → RunPod API → Poll for result → Download output
  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
workersMin: 0    — Scale to zero when idle (no cost)
workersMax: 1    — Max concurrent jobs (increase for throughput)
idleTimeout: 5   — Seconds before worker scales down

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:

query { myself { endpoints { id name gpuIds templateId workersMax workersMin } } }

Current spend rate:

query { myself { currentSpendPerHr spendDetails { localStoragePerHour networkStoragePerHour gpuComputePerHour } } }

List pods:

query { myself { pods { id name runtime { uptimeInSeconds } machine { gpuDisplayName } desiredStatus } } }

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:

mutation { saveEndpoint(input: {
  id: "endpoint_id",
  name: "endpoint-name",
  templateId: "template_id",
  gpuIds: "AMPERE_24",
  workersMin: 0,
  workersMax: 1
}) { id gpuIds } }

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:

{
  "jobs": { "completed": 16, "failed": 1, "inProgress": 0, "inQueue": 2, "retried": 0 },
  "workers": { "idle": 0, "initializing": 1, "ready": 0, "running": 0, "throttled": 0 }
}

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:

gpuIds: "AMPERE_24,ADA_24"   # Try 3090 first, fall back to 4090

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:

AWS_ACCESS_KEY_ID="$R2_ACCESS_KEY_ID" \
AWS_SECRET_ACCESS_KEY="$R2_SECRET_ACCESS_KEY" \
aws s3api list-objects-v2 \
  --bucket "$R2_BUCKET_NAME" \
  --endpoint-url "https://${R2_ACCOUNT_ID}.r2.cloudflarestorage.com" \
  --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):

docker buildx build --platform linux/amd64 -t ghcr.io/conalmullan/video-toolkit-<name>:latest docker/runpod-<name>/
docker push ghcr.io/conalmullan/video-toolkit-<name>:latest

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
1---
2name: runpod
3description: 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).
4---
5 
6# RunPod Cloud GPU
7 
8Run open-source AI models on cloud GPUs via RunPod serverless. Pay-per-second, no minimums.
9 
10## Setup
11 
12```bash
13# 1. Create account at https://runpod.io
14# 2. Add API key to .env
15echo "RUNPOD_API_KEY=your_key_here" >> .env
16 
17# 3. Deploy any tool with --setup
18uv run tools/image_edit.py --setup
19uv run tools/upscale.py --setup
20uv run tools/dewatermark.py --setup
21uv run tools/sadtalker.py --setup
22uv run tools/qwen3_tts.py --setup
23```
24 
25Each `--setup` command:
261. Creates a RunPod **template** from the Docker image
272. Creates a serverless **endpoint** with appropriate GPU
283. Saves the endpoint ID to `.env` (e.g. `RUNPOD_QWEN_EDIT_ENDPOINT_ID`)
29 
30## Available Images
31 
32All images are public on GHCR — no authentication needed.
33 
34| Tool | Docker Image | GPU | VRAM | Typical Cost |
35|------|-------------|-----|------|-------------|
36| image_edit | `ghcr.io/conalmullan/video-toolkit-qwen-edit:latest` | A6000/L40S | 48GB+ | ~$0.05-0.15/job |
37| upscale | `ghcr.io/conalmullan/video-toolkit-realesrgan:latest` | RTX 3090/4090 | 24GB | ~$0.01-0.05/job |
38| dewatermark | `ghcr.io/conalmullan/video-toolkit-propainter:latest` | RTX 3090/4090 | 24GB | ~$0.05-0.30/job |
39| sadtalker | `ghcr.io/conalmullan/video-toolkit-sadtalker:latest` | RTX 4090 | 24GB | ~$0.05-0.15/job |
40| qwen3_tts | `ghcr.io/conalmullan/video-toolkit-qwen3-tts:latest` | ADA 24GB | 24GB | ~$0.01-0.05/job |
41 
42**Total monthly cost:** Rarely exceeds $10 even with heavy use.
43 
44## How It Works
45 
46All tools follow the same pattern:
47 
48```
49Local CLI → Upload input to cloud storage → RunPod API → Poll for result → Download output
50```
51 
521. **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
532. **RunPod API:** Tools call the `/run` endpoint, then poll `/status/{job_id}` until complete
543. **Cold vs warm start:** First request after idle spins up a worker (~30-90s). Subsequent requests are fast (~5-15s)
55 
56## Endpoint Management
57 
58### Workers
59 
60```
61workersMin: 0 — Scale to zero when idle (no cost)
62workersMax: 1 — Max concurrent jobs (increase for throughput)
63idleTimeout: 5 — Seconds before worker scales down
64```
65 
66Across 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.
67 
68### Checking Endpoint Status
69 
70Each tool stores its endpoint ID in `.env`:
71 
72| Tool | Env Var |
73|------|---------|
74| image_edit | `RUNPOD_QWEN_EDIT_ENDPOINT_ID` |
75| upscale | `RUNPOD_UPSCALE_ENDPOINT_ID` |
76| dewatermark | `RUNPOD_DEWATERMARK_ENDPOINT_ID` |
77| sadtalker | `RUNPOD_SADTALKER_ENDPOINT_ID` |
78| qwen3_tts | `RUNPOD_QWEN3_TTS_ENDPOINT_ID` |
79 
80### Disabling an Endpoint
81 
82To free worker slots without deleting the endpoint, set `workersMax=0` via the RunPod dashboard or GraphQL API.
83 
84## RunPod API Reference
85 
86Use these to query and manage endpoints programmatically. RunPod disables GraphQL introspection, so these field names are verified and must be exact.
87 
88### Authentication
89 
90All API calls require `Authorization: Bearer $RUNPOD_API_KEY`.
91 
92- **GraphQL:** `POST https://api.runpod.io/graphql`
93- **REST (Serverless):** `https://api.runpod.ai/v2/{endpoint_id}/...`
94 
95### GraphQL Queries
96 
97**List all endpoints:**
98```graphql
99query { myself { endpoints { id name gpuIds templateId workersMax workersMin } } }
100```
101 
102**Current spend rate:**
103```graphql
104query { myself { currentSpendPerHr spendDetails { localStoragePerHour networkStoragePerHour gpuComputePerHour } } }
105```
106 
107**List pods:**
108```graphql
109query { myself { pods { id name runtime { uptimeInSeconds } machine { gpuDisplayName } desiredStatus } } }
110```
111 
112> **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`.
113 
114### GraphQL Mutations
115 
116**Update endpoint GPU or config:**
117```graphql
118mutation { saveEndpoint(input: {
119 id: "endpoint_id",
120 name: "endpoint-name",
121 templateId: "template_id",
122 gpuIds: "AMPERE_24",
123 workersMin: 0,
124 workersMax: 1
125}) { id gpuIds } }
126```
127 
128`saveEndpoint` requires `name` and `templateId` even for updates — query first to get current values.
129 
130### REST API (Serverless)
131 
132| Action | Method | URL |
133|--------|--------|-----|
134| Submit job | POST | `/v2/{id}/run` |
135| Check status | GET | `/v2/{id}/status/{job_id}` |
136| Cancel job | POST | `/v2/{id}/cancel/{job_id}` |
137| List pending | GET | `/v2/{id}/requests` |
138| Health/stats | GET | `/v2/{id}/health` |
139 
140**Health response** includes job counts and worker state:
141```json
142{
143 "jobs": { "completed": 16, "failed": 1, "inProgress": 0, "inQueue": 2, "retried": 0 },
144 "workers": { "idle": 0, "initializing": 1, "ready": 0, "running": 0, "throttled": 0 }
145}
146```
147 
148> **Note:** `/requests` only returns pending/queued jobs. Completed job history is not available via the API — check the RunPod web console for logs.
149 
150### GPU Type IDs
151 
152| ID | GPU | VRAM | Typical Cost |
153|----|-----|------|-------------|
154| `AMPERE_24` | RTX 3090 | 24GB | ~$0.34/hr |
155| `ADA_24` | RTX 4090 | 24GB | ~$0.69/hr |
156| `AMPERE_48` | A6000 | 48GB | ~$0.76/hr |
157| `AMPERE_80` | A100 | 80GB | ~$1.99/hr |
158 
159**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:
160 
161```graphql
162gpuIds: "AMPERE_24,ADA_24" # Try 3090 first, fall back to 4090
163```
164 
165All 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.
166 
167### Cloudflare R2 via AWS CLI
168 
169R2 uses the S3-compatible API but requires `--region auto`:
170 
171```bash
172AWS_ACCESS_KEY_ID="$R2_ACCESS_KEY_ID" \
173AWS_SECRET_ACCESS_KEY="$R2_SECRET_ACCESS_KEY" \
174aws s3api list-objects-v2 \
175 --bucket "$R2_BUCKET_NAME" \
176 --endpoint-url "https://${R2_ACCOUNT_ID}.r2.cloudflarestorage.com" \
177 --region auto
178```
179 
180> **Common mistake:** Omitting `--region auto` causes `InvalidRegionName` error. R2 valid regions: `wnam`, `enam`, `weur`, `eeur`, `apac`, `oc`, `auto`.
181 
182## Troubleshooting
183 
184### Force Image Pull
185 
186When you push a new Docker image version, RunPod may still use the cached old one. To force a pull:
187 
1881. Update the template's `imageName` to use `@sha256:DIGEST` notation
1892. Wait for the worker to restart
1903. Revert to `:latest` tag after confirming
191 
192### Cold Start Too Slow
193 
194- **qwen3-tts:** ~70s cold start, ~7s warm
195- **sadtalker:** ~60s cold start, ~10s warm
196- **image_edit:** ~90s cold start, ~15s warm
197 
198If cold starts are a problem, set `workersMin: 1` (costs money when idle).
199 
200### Job Fails with OOM
201 
202The model needs more VRAM than the GPU provides. Options:
203- Use a larger GPU tier
204- For dewatermark: reduce `--resize-ratio` (default 0.5 for safety)
205- For image_edit: reduce `--steps`
206 
207### "No workers available"
208 
209You've hit your plan's concurrent worker limit. Either:
210- Wait for a running job to finish
211- Set `workersMax=0` on endpoints you're not using
212- Upgrade your RunPod plan
213 
214## Docker Images
215 
216All Dockerfiles live in `docker/runpod-*/`. Images use `runpod/pytorch` as the base to share layers across tools.
217 
218Building for RunPod (from Apple Silicon Mac):
219```bash
220docker buildx build --platform linux/amd64 -t ghcr.io/conalmullan/video-toolkit-<name>:latest docker/runpod-<name>/
221docker push ghcr.io/conalmullan/video-toolkit-<name>:latest
222```
223 
224GHCR packages default to **private** — you must manually make them public for RunPod to pull them. Go to GitHub > Packages > Package Settings > Change Visibility.
225 
226## Cost Optimization
227 
228- Keep `workersMin: 0` on all endpoints (scale to zero)
229- Only deploy endpoints you actively need
230- Use `workersMax=0` to disable idle endpoints without deleting them
231- Qwen3-TTS is significantly cheaper than ElevenLabs for voiceovers
232- Check the RunPod dashboard for usage and billing
233 
View all files on GitHub →

Details

Updated
Sep 21, 2026
License
MIT
Stars on the repo
★ 2,114
Checked
Source
digitalsamba/claude-code-video-toolkit ↗
Creator
digitalsamba · 11 listings
View creator

Similar skills

See all →
SkillFrom a business idea, app ideaAzure app onboardmicrosoft/skills · by microsoftEnd-to-end orchestrator: from a business idea, app idea, or existing app to running Azure deployment with cost estimates and pre-deploy approval. Analyzes your app, auto-detects the right Azure services, scaffolds infrastructure code, and deploys — tailored to your app, not a template. Handles moving existing apps to Azure without rewriting or with minimal changes. WHEN: bring your app to Azure, plan my app, cost to run, is my code ready to deploy, deploy my app to the cloud, deploy all my services, what Azure services do I need, plan my Azure deployment, deploy my new app to Azure, one-click deploy, I have an app and want it on Azure, migrate my app to Azure, help me get started, build an app, no code yet, starter project. DO NOT USE FOR: use azd for deployment(use azure-deploy), optimizing existing costs (use cost-optimization), code readiness checks only (use azure-app-onboard-prereq).★ 3.1k GitHub starsSkillAssess whether source code is ready to deploy to AzureAzure App Onboard Prereq — Repository Evaluationmicrosoft/skills · by microsoftAssess whether source code is ready to deploy to Azure — the check BEFORE infrastructure work. Evaluates build health, app completeness, dependencies and local services, stack compatibility, and deployment feasibility. Answers questions about what your app needs before it can be deployed — frameworks, dependencies, and configuration. Checks whether dependencies are compatible and identifies deployment blockers and unsupported frameworks. WHEN: "evaluate my repo", "is my app ready to deploy", "what does my app need to deploy", "what do I need before deploying", "does my app need", "can I ship this to Azure", "scan my repo for issues", "is this app deployable", "check if my app is ready for Azure", "do I need a Dockerfile", "what's blocking my deployment", "are there any blockers", "are my dependencies compatible", "does Azure support my framework", "what needs to change before deploying", "check my app configuration".★ 3.1k GitHub starsSkillConfigure Azure API Management as an AI Gateway for AIAzure aigatewaymicrosoft/azure-skills · by microsoftConfigure Azure API Management as an AI Gateway for AI models, MCP tools, and agents. WHEN: semantic caching, token limit, content safety, load balancing, AI model governance, MCP rate limiting, jailbreak detection, add Azure OpenAI backend, add AI Foundry model, test AI gateway, LLM policies, configure AI backend, token metrics, AI cost control, convert API to MCP, import OpenAPI to gateway.★ 1.6k GitHub starsSkillQuery and analyze data in Azure Data Explorer using KQLAzure Data Explorer (Kusto) Query & Analyticsmicrosoft/azure-skills · by microsoftQuery and analyze data in Azure Data Explorer (Kusto/ADX) using KQL for log analytics, telemetry, and time series analysis. WHEN: KQL queries, Kusto database queries, Azure Data Explorer, ADX clusters, log analytics, time series data, IoT telemetry, anomaly detection.★ 1.6k GitHub starsMCPRun any server from the Docker MCP Catalog in its ownDocker MCP gatewaydocker/mcp-gateway · by dockerDocker's own CLI plugin: run any server from the Docker MCP Catalog in its own container, behind one connection, with secrets kept out of env vars.★ 1.6k GitHub starsMCPOpen infrastructure for AI agents to discover and pay eachElisymelisymlabs/elisym · by elisymlabsOpen infrastructure for AI agents to discover and pay each other★ 17 GitHub stars

More from digitalsamba

SkillAI music generation with ACE-Step 1.5ACE-Step 1.5 Music Generationdigitalsamba/claude-code-video-toolkit · by digitalsambaAI music generation with ACE-Step 1.5 — background music, vocal tracks, covers, stem extraction, audio repainting, and continuation for video production. Use when generating music, soundtracks, jingles, or working with audio stems. Triggers include background music, soundtrack, jingle, music generation, stem extraction, cover, style transfer, repaint, continuation, or musical composition tasks.★ 2.1k GitHub starsSkillGenerate AI voiceovers, sound effectsElevenLabs Audio Generationdigitalsamba/claude-code-video-toolkit · by digitalsambaGenerate AI voiceovers, sound effects, and music using ElevenLabs APIs. Use when creating audio content for videos, podcasts, or games. Triggers include generating voiceovers, narration, dialogue, sound effects from descriptions, background music, soundtrack generation, voice cloning, or any audio synthesis task.★ 2.1k GitHub starsSkillVideo and audio processing with FFmpegFFmpeg for Video Productiondigitalsamba/claude-code-video-toolkit · by digitalsambaVideo and audio processing with FFmpeg. Use for format conversion, resizing, compression, audio extraction, and preparing assets for Remotion. Triggers include converting GIF to MP4, resizing video, extracting audio, compressing files, or any media transformation task.★ 2.1k GitHub starsSkillPrompting patterns for Ideogram 4 text-to-imageIdeogram 4 Skilldigitalsamba/claude-code-video-toolkit · by digitalsambaPrompting patterns for Ideogram 4 text-to-image — best-in-class in-image text rendering and exact color/layout control via structured JSON captions. Use when generating images that need legible on-image text (title cards, thumbnails, logos, signage, CTAs), precise brand colors, or controlled spatial layout. Triggers include title slide image, thumbnail with text, on-image text, legible text in image, brand color palette image, bounding-box layout, Ideogram.★ 2.1k GitHub starsSkillAI video generation with LTX-2.3 22BLTX-2.3 Video Generationdigitalsamba/claude-code-video-toolkit · by digitalsambaAI video generation with LTX-2.3 22B — text-to-video, image-to-video clips for video production. Use when generating video clips, animating images, creating b-roll, animated backgrounds, or motion content. Triggers include video generation, animate image, b-roll, motion, video clip, text-to-video, image-to-video.★ 2.1k GitHub starsSkillPython video composition with moviepy 2.xmoviepy for Video Productiondigitalsamba/claude-code-video-toolkit · by digitalsambaPython video composition with moviepy 2.x — overlaying deterministic text on AI-generated video (LTX-2, SadTalker), compositing clips, single-file build.py video projects. Use when adding labels/captions/lower-thirds to LTX-2 or SadTalker outputs, building short ad-style spots in pure Python without Remotion, or doing programmatic video composition. Triggers include text overlay on video, label LTX-2 clip, caption SadTalker output, lower third, build.py video, moviepy, Python video composition, sub-30s ad spot.★ 2.1k GitHub stars