runpod
RunPodサーバーレスを使用したクラウドGPU処理を担当するスキル。RunPodエンドポイントのセットアップ、Dockerイメージのデプロイ、GPUリソースの管理、エンドポイントのトラブルシューティング、コスト確認などに活用できる。qwen-edit、realesrgan、propainter、sadtalker、qwen3-ttsの5つのツールキットイメージすべてに対応。
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).
SKILL.md 本文
RunPod Cloud GPU
RunPod serverless で cloud GPU 上のオープンソース AI モデルを実行します。従量課金制、最低料金なし。
セットアップ
# 1. https://runpod.io でアカウントを作成
# 2. .env に API キーを追加
echo "RUNPOD_API_KEY=your_key_here" >> .env
# 3. --setup を使用してツールをデプロイ
python tools/image_edit.py --setup
python tools/upscale.py --setup
python tools/dewatermark.py --setup
python tools/sadtalker.py --setup
python tools/qwen3_tts.py --setup
各 --setup コマンドで以下が実行されます:
- Docker イメージから RunPod テンプレート を作成
- 適切な GPU で serverless エンドポイント を作成
- エンドポイント ID を
.envに保存 (例:RUNPOD_QWEN_EDIT_ENDPOINT_ID)
利用可能なイメージ
すべてのイメージは GHCR で公開されており、認証は不要です。
| ツール | Docker イメージ | GPU | VRAM | 一般的なコスト |
|---|---|---|---|---|
| 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 |
月間総コスト: 頻繁に使用しても $10 を超えることはほとんどありません。
仕組み
すべてのツールは同じパターンに従います:
Local CLI → Upload input to cloud storage → RunPod API → Poll for result → Download output
- ファイル転送: ツールは Cloudflare R2 が設定されている場合 (
R2_ACCOUNT_ID,R2_ACCESS_KEY_ID,R2_SECRET_ACCESS_KEY,R2_BUCKET_NAME) に使用し、そうでない場合は無料のアップロード サービスにフォールバック - RunPod API: ツールは
/runエンドポイントを呼び出し、完了するまで/status/{job_id}をポーリング - コールドスタート vs ウォームスタート: アイドル後の最初のリクエストはワーカーをスピンアップ (~30-90s)。その後のリクエストは高速 (~5-15s)
エンドポイント管理
ワーカー
workersMin: 0 — アイドル時にゼロにスケール (コストなし)
workersMax: 1 — 最大同時ジョブ数 (スループット向上には増加)
idleTimeout: 5 — ワーカーがスケールダウンするまでの秒数
すべてのエンドポイント全体で、RunPod プランに基づくワーカー プールを共有します。制限に達した場合は、積極的に使用していないエンドポイントの workersMax を減らしてください。
エンドポイント ステータスの確認
各ツールは .env にエンドポイント ID を保存します:
| ツール | 環境変数 |
|---|---|
| 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 |
エンドポイントの無効化
エンドポイントを削除せずにワーカー スロットを解放するには、RunPod ダッシュボードまたは GraphQL API 経由で workersMax=0 を設定してください。
RunPod API リファレンス
これらを使用してエンドポイントをプログラムで照会・管理します。RunPod は GraphQL introspection を無効化しているため、これらのフィールド名は検証済みで完全に一致する必要があります。
認証
すべての API 呼び出しに Authorization: Bearer $RUNPOD_API_KEY が必要です。
- GraphQL:
POST https://api.runpod.io/graphql - REST (Serverless):
https://api.runpod.ai/v2/{endpoint_id}/...
GraphQL クエリ
すべてのエンドポイントを一覧表示:
query { myself { endpoints { id name gpuIds templateId workersMax workersMin } } }
現在の支出率:
query { myself { currentSpendPerHr spendDetails { localStoragePerHour networkStoragePerHour gpuComputePerHour } } }
Pod を一覧表示:
query { myself { pods { id name runtime { uptimeInSeconds } machine { gpuDisplayName } desiredStatus } } }
よくある間違い: フィールド名は camelCase で完全な単語 —
localStoragePerHrではなくlocalStoragePerHour。エンドポイントはserverlessWorkersではなくendpoints。spendingはフィールドではなく —currentSpendPerHrとspendDetailsを使用してください。
GraphQL ミューテーション
エンドポイント GPU または設定を更新:
mutation { saveEndpoint(input: {
id: "endpoint_id",
name: "endpoint-name",
templateId: "template_id",
gpuIds: "AMPERE_24",
workersMin: 0,
workersMax: 1
}) { id gpuIds } }
saveEndpoint は更新時でも name と templateId が必要です — まず現在の値を取得するためにクエリしてください。
REST API (Serverless)
| アクション | メソッド | URL |
|---|---|---|
| ジョブを送信 | POST | /v2/{id}/run |
| ステータスを確認 | GET | /v2/{id}/status/{job_id} |
| ジョブをキャンセル | POST | /v2/{id}/cancel/{job_id} |
| 保留中を一覧表示 | GET | /v2/{id}/requests |
| ヘルス/統計 | GET | /v2/{id}/health |
ヘルス レスポンス にはジョブ数とワーカー状態が含まれます:
{
"jobs": { "completed": 16, "failed": 1, "inProgress": 0, "inQueue": 2, "retried": 0 },
"workers": { "idle": 0, "initializing": 1, "ready": 0, "running": 0, "throttled": 0 }
}
注:
/requestsは保留中/キューに入っているジョブのみを返します。完了したジョブの履歴は API では利用できません — ログについては RunPod ウェブ コンソールを確認してください。
GPU タイプ ID
| ID | GPU | VRAM | 一般的なコスト |
|---|---|---|---|
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 |
可用性に関する注: ADA_24 (4090) は RunPod で頻繁にスロットル/利用不可です。ジョブがキューに無限に留まることを避けるため、常に 複数のフォールバック GPU タイプ でエンドポイントを設定してください (カンマ区切り):
gpuIds: "AMPERE_24,ADA_24" # 最初に 3090 を試行、4090 にフォールバック
すべてのツールキット ツールは 5 分間のキュー タイムアウトも適用しており、300 秒以内に GPU が利用できない場合、ジョブは自動的にキャンセルされて、初期化サイクル失敗からの失控請求を防ぎます。
Cloudflare R2 (AWS CLI 経由)
R2 は S3 互換 API を使用しますが --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
よくある間違い:
--region autoを省略するとInvalidRegionNameエラーが発生します。R2 有効リージョン:wnam,enam,weur,eeur,apac,oc,auto。
トラブルシューティング
イメージ プルを強制
新しい Docker イメージ バージョンをプッシュしても、RunPod はキャッシュされた古いイメージをまだ使用する可能性があります。プルを強制するには:
- テンプレートの
imageNameを@sha256:DIGEST記法を使用するように更新 - ワーカーが再起動するまで待機
- 確認後
:latestタグに戻す
コールドスタートが遅い
- qwen3-tts: ~70s コールドスタート、~7s ウォーム
- sadtalker: ~60s コールドスタート、~10s ウォーム
- image_edit: ~90s コールドスタート、~15s ウォーム
コールドスタートが問題の場合は、workersMin: 1 を設定してください (アイドル時にコストがかかります)。
ジョブが OOM で失敗
モデルが GPU が提供する VRAM より多くの VRAM を必要とします。オプション:
- より大きい GPU ティアを使用
- dewatermark の場合:
--resize-ratioを減らす (デフォルト 0.5 で安全) - image_edit の場合:
--stepsを減らす
「No workers available」
RunPod プランの同時ワーカー制限に達しました。以下のいずれか:
- 実行中のジョブが終了するまで待機
- 使用していないエンドポイントで
workersMax=0を設定 - RunPod プランをアップグレード
Docker イメージ
すべての Dockerfile は docker/runpod-*/ に存在します。イメージはツール全体でレイヤーを共有するために runpod/pytorch をベースとして使用します。
RunPod 用にビルド (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 パッケージはデフォルトで プライベート です — RunPod が実行できるようにするには手動でパブリックにする必要があります。GitHub > Packages > Package Settings > Change Visibility に移動してください。
コスト最適化
- すべてのエンドポイントで
workersMin: 0を保持 (ゼロにスケール) - 積極的に使用するエンドポイントのみをデプロイ
workersMax=0を使用してアイドル エンドポイントを削除せずに無効化- Qwen3-TTS は ElevenLabs よりナレーション用に大幅に安い
- RunPod ダッシュボードで使用状況と請求を確認
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- digitalsamba
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/digitalsamba/claude-code-video-toolkit / ライセンス: MIT
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。