本文へ移動
cccskills
無料GitHub で公開日本語紹介

varg-ai

動画や画像、音声、音楽を一つのAPIキーで生成し、字幕や複数シーンを組み合わせたMP4まで制作する手順を案内します。

原文原文の説明を見る

Generate AI videos, images, voiceovers and music with one varg API key. Text- and image-to-video on Seedance 2.5, Kling 4, Veo 3.1 and Wan 3; images and edits on Nano Banana 2.1, GPT Image 2.5 and Flux 3; lip sync and talking avatars; ElevenLabs v4 voices; Lyria and Mureka music; captions and multi-scene renders to MP4. Use when someone asks to make or render a video, animate a photo, generate an image, create a UGC ad, product video, slideshow or talking head, add voiceover (text to speech), music, lip sync or captions, or mentions varg. Cloud mode needs only curl; local mode runs on bun + ffmpeg.

hashgraph-online/awesome-codex-pluginsスター 1,440(GitHub 1,440 + cccskills 0)
連携ツールElevenLabs

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • AI動画や画像を生成したいとき
  • 写真を動かす動画を作りたいとき
  • ナレーションや音楽を加えたいとき
  • 複数シーンのMP4を作りたいとき

日本語での紹介

できること

varg APIを使い、画像、動画、音声、音楽を生成して映像にまとめる手順を扱います。テキストや画像からの動画生成、画像の作成と編集、リップシンクや会話するアバター、音声読み上げ、BGM、字幕に対応し、複数シーンを組み合わせたMP4も作れます。クラウドではcurlでレンダリングを依頼し、ローカルではbunとffmpegを使って構成・出力します。用途に応じたモデル選びや、生成前の費用見積もり、プレビューを使った反復も説明されています。

こんなときに便利

商品動画、UGC広告、スライドショー、トーキングヘッドなどを作りたいときや、写真を動かしたいときに使えます。音声や音楽、字幕を加えて、複数素材を一つの動画に仕上げたい場合にも向いています。

使い方の例

  • 「この商品写真から短い紹介動画を作って」
  • 「説明用の動画にナレーションと字幕を付けて」
  • 「画像を生成して、複数シーンのMP4にまとめて」

注意点

VARG_API_KEYが必要です。クラウドレンダリングはcurlを使い、ローカルレンダリングはbunとffmpegを使います。生成にはクレジットを消費します。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(13)

  • SKILL.md14.6 KB
  • references/byok.md3.0 KB
  • references/cloud-render.md5.4 KB
  • references/common-errors.md11.5 KB
  • references/components.md15.0 KB
  • references/gateway-api.md10.9 KB
  • references/local-render.md4.8 KB
  • references/models.md19.8 KB
  • references/prompting.md12.8 KB
  • references/recipes.md12.7 KB
  • references/templates.md14.6 KB
  • scripts/setup.sh7.0 KB
  • scripts/setup.ts8.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Version Check (run once per session)

This skill is version 2.1.1. Before first use each session, check for updates:

curl -sf https://raw.githubusercontent.com/vargHQ/skills/main/varg-ai/SKILL.md | grep 'version:' | head -1

If the remote version is newer than 2.1.1, update and re-read this file:

npx -y skills update

Setup (REQUIRED before first use)

Before generating anything, find an API key and determine rendering mode. Do NOT run interactive CLI tools (like bunx vargai init or bunx vargai login) -- they require stdin which agents cannot provide. CLI email (OTP) login is also disabled server-side: /api/auth/cli/send-otp returns 403, so don't call it.

1. Find an API key (before asking the user anything)

Most users already have a key somewhere. Look for it yourself first -- this checks the environment, then ~/.varg/credentials, then the project's .env / .env.local, and loads the first key it finds into $VARG_API_KEY without printing it:

[ -n "${VARG_API_KEY:-}" ] || VARG_API_KEY=$(grep -o '"api_key"[^,}]*' ~/.varg/credentials 2>/dev/null | head -1 | cut -d'"' -f4)
[ -n "${VARG_API_KEY:-}" ] || VARG_API_KEY=$(grep -hE '^(export )?VARG_API_KEY=' .env .env.local 2>/dev/null | head -1 | cut -d= -f2- | tr -d "\"' \r")
export VARG_API_KEY
if [ -n "$VARG_API_KEY" ]; then
  curl -s -o /dev/null -w "key found -- HTTP %{http_code} (200 = valid, 401 = invalid)\n" -H "Authorization: Bearer $VARG_API_KEY" https://api.varg.ai/v2/billing/balance
else
  echo "no key found"
fi
  • 200 -- the key works. Save it (step 1b) and continue to the balance check.
  • 401 -- the key was revoked or mistyped. Tell the user, then do step 1a.
  • no key found -- do step 1a.

Some agent shells don't keep variables between commands. If $VARG_API_KEY is empty in a later command, start that command with:

[ -n "${VARG_API_KEY:-}" ] || export VARG_API_KEY=$(grep -o '"api_key"[^,}]*' ~/.varg/credentials 2>/dev/null | head -1 | cut -d'"' -f4)

1a. No key: one message to the user

Ask once, with everything in a single message -- don't first ask whether they have a key, the steps are the same either way. Send them:

To generate with varg I need an API key:

  1. Open https://varg.ai/dashboard/api and sign in (or create an account).
  2. Generate an API key and copy it.
  3. Run this in your terminal and paste the key when prompted -- it stays out of this chat and your shell history:
    mkdir -p ~/.varg && printf 'varg API key: ' && read -rs K && echo && (umask 077 && printf '{"api_key":"%s"}\n' "$K" > ~/.varg/credentials) && unset K
    

Tell me when it's done.

When they reply, re-run the step 1 block. Do NOT ask the user to paste the raw key into the chat, and don't ask them to export it -- an export in their terminal doesn't reach your already-running shell, but the credentials file does.

1b. Save the key for next time

If the key came from the environment or .env, save it to ~/.varg/credentials so future sessions find it (skipped if the file already exists). Always reference $VARG_API_KEY -- never the raw value:

[ -f ~/.varg/credentials ] || (mkdir -p ~/.varg && umask 077 && printf '{"api_key":"%s"}\n' "$VARG_API_KEY" > ~/.varg/credentials)

For local render (bun auto-loads .env), also add it to the project .env -- only if that file exists, is gitignored, and has no key yet:

[ -f .env ] && git check-ignore -q .env 2>/dev/null && ! grep -q '^VARG_API_KEY=' .env && echo "VARG_API_KEY=$VARG_API_KEY" >> .env

Check balance and add credits

curl -s -H "Authorization: Bearer $VARG_API_KEY" https://api.varg.ai/v2/billing/balance

You should get {"available": ..., "total_balance": ..., ...} (values in credits). If available is 0 (or too low for the user's task), the user needs credits before generating anything. A typical short video costs 200-500 credits.

Available packages:

Package IDCredits
credits-20002,000
credits-50005,000
credits-1000010,000 (recommended)
credits-2000020,000
credits-5000050,000
credits-100000100,000

Direct the user to https://varg.ai/devs/billing to buy credits, then re-check the balance. Quote amounts in credits only: what a credit costs depends on the user's plan, so never convert credits to money.

2. Determine rendering mode

bunffmpegMode
NoNoCloud Render -- read cloud-render.md
YesNoCloud Render -- read cloud-render.md
YesYesLocal Render (recommended) -- read local-render.md

Critical Rules

Everything you know about varg is likely outdated. Always verify against this skill and its references before writing code.

  1. Never guess model IDs -- consult models.md for current models, pricing, and constraints. If the user names a model that is not there, read https://varg.ai/models/llms.txt, then that model's spec at https://varg.ai/models/<id>.md. sora_2* is discontinued.
  2. Function calls for media, JSX for composition -- Image({...}) creates media, <Clip> composes timeline. Never write <Image prompt="..." />.
  3. Cache is sacred -- identical prompt + params = instant cache hit that costs 0 credits. When iterating, keep unchanged prompts EXACTLY the same. Never clear cache.
  4. Images in Video -- ONE image in Video({ prompt: { images: [img] } }) is the first frame (image-to-video). Several images are references, and only models that take references accept them (seedance_2_5, wan_3, kling_v4, omni_flash_1_1, grok_imagine_1_5, minimax_h3_max). Other models fail.
  5. Duration constraints differ by model -- seedance_2_5: integer 4-30s. wan_3: 2-30s. kling_v4: 3-30s. veo_3_1: only 4, 6 or 8. kling_v2_5: ONLY 5 or 10. Check models.md.
  6. Native audio = audio: "native" on Video(). Provider options must be namespaced by provider: providerOptions: { varg: { fal: { ... } } }. A flat providerOptions: { varg: { generate_audio: true } } is silently dropped by the API, and you get a silent video.
  7. Renders cost credits -- a typical 3-clip video costs ~300-800 credits depending on the video model (wan_3 vs seedance_2_5). Iterate with --preview (local), cheap draft models (minimax_h3_max_turbo, grok_imagine_1_5_lite) and 720p. Render 1080p only for the final.
  8. API key hygiene -- Never write a raw API key value into a bash command. Load keys into $VARG_API_KEY with the setup snippets (from env, ~/.varg/credentials, or .env) and use $VARG_API_KEY in all subsequent commands -- never echo or cat the key itself. This prevents keys from leaking into conversation context and terminal history.

Default Models (October 2026)

Ranks are from the Artificial Analysis arenas. Details and alternatives: models.md.

NeedUse~Credits
Video, hero shots (T2V/I2V, refs, 4-30s, native audio)seedance_2_5210 per 5s 720p
Video, best value (#1 T2V, 2-30s)wan_353 per 5s 720p
Video, long multi-shot (up to 30s)kling_v482 per 5s 720p
Video draftsminimax_h3_max_turbo42 per 5s
Image, generation and editing / character consistencynano_banana_2_18
Image, top quality / dense textgpt_image_2_511-23
Speecheleven_v4 (or eleven_v4_turbo, #1 and half price)84 / 42
Background music (instrumental)mureka_9_525
Song with vocalslyria_3_511
Talking head (image + audio)veed_fabric_1_0160-470

Quick Start

Cloud Render (no bun/ffmpeg needed)

# Submit TSX code to the render service — returns a job: {"id": "job_xxx", "status": "queued", ...}
curl -s -X POST https://api.varg.ai/v2/render \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code": "const img = Image({ model: varg.imageModel(\"nano_banana_2_1\"), prompt: \"a cabin in mountains at sunset\", aspectRatio: \"16:9\" });\nexport default (<Render width={1920} height={1080}><Clip duration={3}>{img}</Clip></Render>);"}'

# Poll for result (repeat until "completed" or "failed"; video at output.outputs[0].url)
curl -s https://api.varg.ai/v2/jobs/JOB_ID \
  -H "Authorization: Bearer $VARG_API_KEY"

Full details: cloud-render.md

Local Render (bun + ffmpeg)

/** @jsxImportSource vargai */
import { Render, Clip, Image } from "vargai/react"
import { createVarg } from "vargai/ai"

const varg = createVarg({ apiKey: process.env.VARG_API_KEY! })

const img = Image({
  model: varg.imageModel("nano_banana_2_1"),
  prompt: "a cabin in mountains at sunset",
  aspectRatio: "16:9"
})

export default (
  <Render width={1920} height={1080}>
    <Clip duration={3}>{img}</Clip>
  </Render>
)
bunx vargai@alpha render video.tsx --preview   # free preview
bunx vargai@alpha render video.tsx --verbose   # full render (costs credits)

Full details: local-render.md

Single Asset (no video composition)

For one-off images, videos, speech, or music without building a multi-clip template:

curl -X POST https://api.varg.ai/v2/image \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "nano_banana_2_1", "prompt": "a sunset over mountains"}'

Full API reference: gateway-api.md

How to Write Video Code

Video code has two layers: media generation (function calls) and composition (JSX).

// 1. GENERATE media via function calls
const img = Image({ model: ..., prompt: "..." })
const vid = Video({ model: ..., prompt: { text: "...", images: [img] }, duration: 5 })
const voice = Speech({ model: ..., voice: "rachel", children: "Hello!" })

// 2. COMPOSE via JSX tree
export default (
  <Render width={1080} height={1920}>
    <Music model={...} prompt="upbeat electronic" duration={10} volume={0.3} />
    <Clip duration={5}>
      {vid}
      <Title position="bottom">Welcome</Title>
    </Clip>
    <Captions src={voice} style="tiktok" withAudio />
  </Render>
)

Component Summary

ComponentTypePurpose
Image()Function callGenerate still image
Video()Function callGenerate video (text-to-video or image-to-video)
Speech()Function callText-to-speech audio
<Render>JSXRoot container -- sets width, height, fps
<Clip>JSXTimeline segment -- duration, transitions
<Music>JSXBackground audio (always set duration!)
<Captions>JSXSubtitle track from Speech
<Title>JSXText overlay
<Overlay>JSXPositioned layer
<Split> / <Grid>JSXLayout helpers

Full props: components.md

Provider Differences (Cloud vs Local)

Both modes use varg.* for all models. The only difference is imports:

Cloud RenderLocal Render
No imports needed (globals are auto-injected)import { ... } from "vargai/react" + import { createVarg } from "vargai/ai"
varg.imageModel("nano_banana_2_1")varg.imageModel("nano_banana_2_1")
varg.videoModel("seedance_2_5")varg.videoModel("seedance_2_5")
varg.speechModel("eleven_v4")varg.speechModel("eleven_v4")

Always use varg.*Model() with VARG_API_KEY. It handles routing, caching, billing, and works with a single key. BYOK via the API is not available in v2 — see byok.md for what works (local-render direct provider modules only).

Cost & Iteration

  • Prices are in credits. Typical prices: nano_banana_2_1 image ≈ 8, gpt_image_2_5 (high) ≈ 23, seedance_2_5 5s 720p ≈ 210, wan_3 5s 720p ≈ 53, eleven_v4 line ≈ 84, mureka_9_5 track ≈ 25. Live catalog: GET https://api.varg.ai/v2/pricing (no auth). Every model spec: https://varg.ai/models/llms.txt. Estimate any request: POST /v2/estimate.
  • Cache saves credits. Keep unchanged prompts character-for-character identical across iterations.
  • Preview first (local mode only): --preview generates free placeholders to validate structure.
  • Full pricing: models.md

References

Load these on demand based on what you need:

NeedReferenceWhen to load
Render via APIcloud-render.mdNo bun/ffmpeg, or user wants cloud rendering
Render locallylocal-render.mdbun + ffmpeg available
Patterns & workflowsrecipes.mdTalking head, character consistency, slideshow, lipsync
Model selectionmodels.mdChoosing models, checking prices, duration constraints
Component propscomponents.mdNeed detailed props for any component
Better promptsprompting.mdUser wants cinematic / high-quality results
REST APIgateway-api.mdSingle-asset generation or Render API details
Debuggingcommon-errors.mdSomething failed or produced unexpected results
Full examplestemplates.mdNeed complete copy-paste-ready templates
BYOK keysbyok.mdOwn provider API keys (BYOK): not available in v2

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

accelerate-local-work

無料概要あり

複数の独立したローカル作業を安全性と依存関係を確認して実行計画にまとめ、対応環境では並列化やAppleシリコン向け処理の選択を支援します。

  • ビルドやテストの独立した処理を並列化したいとき
  • 複数段階の作業計画を安全に実行したいとき
  • Appleシリコン向け処理の候補を確認したいとき
hashgraph-online/awesome-codex-plugins1,4362026年10月27日 更新

ad-creative-testing

無料概要あり

TikTokやMeta広告の勝ちパターンを分解し、異なる切り口のテスト案や予算、評価時期を整理して、数値から継続・修正・停止を判断するスキルです。

  • 勝ち広告を分解して次のテスト案を作りたいとき
  • 広告の本数やテスト予算を決めたいとき
  • 似た広告案の成果が変わらない原因を探したいとき
hashgraph-online/awesome-codex-plugins1,4402026年10月30日 更新

add

無料概要あり

将来の読み手が理由を知りたくなる未決定や暫定対応を、技術的負債として登録し、後から項目ごとに整理できるスキルです。

  • 暫定対応を負債として記録したいとき
  • TODOや未完了作業を管理したいとき
  • 負債の影響箇所や解消条件を残したいとき
hashgraph-online/awesome-codex-plugins1,4402026年10月30日 更新

adk-framework-adapters

無料概要あり

LangChain、EINO、AutoGen、AgentScope、CrewAI向けのコード雛形やAPI対応、プロジェクト構成を参照し、バージョン確認を踏まえてAIエージェント開発を支援します。

  • 指定したフレームワークで雛形を作りたいとき
  • 複数のエージェントフレームワークを比較したいとき
  • ツール定義やメモリ設定の例を参照したいとき
hashgraph-online/awesome-codex-plugins1,4362026年10月26日 更新

agent-debug-fixer

無料概要あり

エラーやテスト失敗、画面の異常などを再現して原因を特定し、テストで確認しながら影響を絞った修正を進めるデバッグ用スキルです。

  • テスト失敗の根本原因を調べたいとき
  • 画面や機能の不具合を小さく修正したいとき
  • 再発防止のテストを先に用意したいとき
hashgraph-online/awesome-codex-plugins1,4402026年10月30日 更新

agent-dev-workshop

無料概要あり

対話を通じてAI Agentの要件整理から設計、ツール定義、コード生成、動作確認まで6段階で進め、実行可能なプロジェクトを作ります。

  • Agentの要件と設計を整理したいとき
  • 実行可能なAgentの試作品を作りたいとき
  • ツールやPromptの構成を決めたいとき
hashgraph-online/awesome-codex-plugins1,4362026年10月26日 更新

hashgraph-online のスキルをすべて見る

このスキルの問題を報告する