civitai-gen について
Civitai の Workflow API を操作する統合 CLI で、画像・動画・音声の生成と音声文字起こしに対応します。ワークフローの送信、進捗確認、結果のダウンロードを行う制作者やエージェント向けです。
主な機能
- 01ワークフローの送信、監視、結果取得
- 02ライブ更新付きのステータス確認
- 03buzz 消費量の見積もり
- 04動画エンジンと稼働状況の一覧
- 05音声・音楽の生成と文字起こし
- 06プロンプトの一括処理と実験
活用シーン
- 01画像や動画を生成して保存
- 02非同期ジョブを送信して進捗確認
- 03音声や音楽を生成し、音声を文字起こし
- 04プロンプトやパラメーターの一括実験
MCP 対応
Civitai MCP サーバーでモデルや LoRA を検索し、AIR URN を取得します。シェルから CLI 経由で MCP ツールを呼び出すこともできます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ civitai/ civitai-gen-skill --skill civitai-genインストール後、Claude Code で/civitai-genを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.env.example.gitignoreexperiment.mjsgenerate.mjsdocs/engines.mdmusic.mdtranscription.mdtts.mdlib/api.mjsaudio.mjsimage.mjsvideo.mjstest/smoke-test.mjswildcards/art-styles.txtaspects.txtcolors.txtneon-colors.txtREADME.md詳細
civitai-gen
Civitai のオーケストレーション Workflow API 用の統合 CLI です。すべての生成タイプで、同じワークフローのライフサイクルを使用します。送信、ポーリング、ダウンロードです。
セットアップ
Node.js 18 以降が必要です。CIVITAI_API_KEY は、環境変数として設定するか、このスキルのディレクトリ(generate.mjs と同じ場所)の .env ファイルに設定してください。まず .env.example を .env にコピーします。キーは https://civitai.com/user/account で取得できます。
以下のパスは、このスキルのディレクトリからの相対パスです。スクリプトはそのディレクトリに移動して実行する(
cdで移動する)か、ランタイムで使用するインストールパスを先頭に付けてください。
機能
| コマンド | 機能 | 詳細 |
|---|---|---|
wait | 送信 + ポーリング + ダウンロード(デフォルト) | 生成を一括でブロッキング実行 |
submit | 即時に返し、ワークフロー ID を返します | 非同期ワークフロー向け |
status | ワークフローの進行状況を確認 | ライブ更新には --poll |
download | 完了したメディアを取得 | ワークフロー ID を指定 |
cost | buzz のコストをドライランで見積もり | whatif=true、buzz は消費されません |
engines | 動画エンジンとライブステータスを一覧表示 | 11 種類以上のエンジン |
tts | テキスト読み上げ | docs/tts.md を参照 |
music | 音楽/曲の生成(ACE Step 1.5) | docs/music.md を参照 |
transcribe | 音声のテキスト起こし | docs/transcription.md を参照 |
クイック例
# Image (defaults to Flux.1, 4 images)
node generate.mjs wait --prompt "A knight at sunset" -o ./out
# Multiple concurrent prompts
node generate.mjs wait --prompt "A warrior" --prompt "A mage" -o ./out
# Video (VEO 3)
node generate.mjs wait --engine veo3 --prompt "A robot walking" -o ./out
# Text-to-speech
node generate.mjs tts --text "Hello world" --speaker serena -o ./out
# Music
node generate.mjs music --prompt "upbeat electronic dance track" -o ./out
# Transcription
node generate.mjs transcribe --media-url "https://example.com/audio.mp3" -o ./out
# Cost check (any type, 0 buzz)
node generate.mjs cost --prompt "A cat" -n 100
node generate.mjs cost --engine veo3 --prompt "A robot" --duration 8
# Experiment mode (wildcard expansion)
node experiment.mjs --spec experiment.json -o ./out
生成したものを投稿する
画像を生成し(スキルがローカルに保存します)、1 つのコマンドでローカルファイルを投稿します。
node generate.mjs wait --prompt "a red apple" -n 1 -o ./out
node mcp-cli.mjs post-image ./out/step_0-0.png --title "My apple"
# -> Post published. URL: https://civitai.com/posts/<id>
post-image はローカルファイルを読み込み、アップロードして投稿を公開し、公開 URL を出力します。まだ mcp-cli.mjs がない場合は、先に取得してください(curl -fsSL https://mcp.civitai.com/cli -o mcp-cli.mjs)。CIVITAI_API_KEY が必要です。
フラグ:--title(デフォルトはファイル名)、--detail、--nsfw <level>、--draft(未公開のままにする)、--json。動画/音声を投稿する場合や、UUID でアップロード済みの画像を添付する場合は、create_post を直接呼び出してください(node mcp-cli.mjs schema create_post)。また、生成出力の remoteUrls[].url は有効期限が短い署名付き URL のため、そちらよりローカルファイルを投稿してください。
エンジンとモデルの選び方
適切な生成器を選ぶには、docs/engines.md をお読みください。主な違いは次のとおりです。
| パス | エンジン | モデルの選び方 |
|---|---|---|
| オープンウェイトのエコシステム | SD1、SDXL、Pony、Illustrious、Flux.1/2、Qwen、Z-Image、Chroma、Anima | Civitai MCP(search_models / get_model_version)で互換性のある LoRA と チェックポイント AIR を探し、--model / --resources に指定します |
| クローズド API エンジン | OpenAI、Google/Gemini、Seedream、Grok、MAI、ERNIE、およびすべての動画/音声 | エンジン名のみ。チェックポイント検索も LoRA も不要です |
モデルの検索には Civitai MCP サーバーを使用します(ホスト先は https://mcp.civitai.com/mcp)。ツールを呼び出してチェックポイント/LoRA を検索し、AIR URN を取得してください。このスキル内では検索しないでください。LoRA のベースモデルは、チェックポイントのエコシステムと一致している必要があります。
Civitai MCP が接続されていない場合は、追加してください(参照ツールに API キーは不要です)。
claude mcp add --transport http civitai https://mcp.civitai.com/mcp
ランタイムに MCP 設定を追加できませんか? 依存関係不要の CLI(Node 18 以降)を取得し、代わりにシェルからツールを呼び出してください。
curl -fsSL https://mcp.civitai.com/cli -o mcp-cli.mjs
node mcp-cli.mjs call search_models '{"query":"anime portrait","type":"Checkpoint","supportsGeneration":true,"baseModel":"SDXL 1.0"}'
# Call these Civitai MCP tools directly (they return AIR URNs ready for --model / --resources):
search_models { query: "anime portrait", type: "Checkpoint", supportsGeneration: true, baseModel: "SDXL 1.0" }
search_models { query: "neon style", type: "LORA", baseModel: "SDXL 1.0" } # LoRA base MUST match checkpoint
get_model_version { ids: [<versionId>] } # full version details + AIR URN + trigger words
エンジンの利用可否やパラメーターは変わることがあります。最新の一覧は node generate.mjs engines を実行して確認し、エンジンごとのパラメーターについては https://developer.civitai.com/orchestration/recipes を参照してください。
ドメイン固有のドキュメント
詳細なパラメーターについては、該当するドキュメントを参照してください。
- 画像:
--prompt、--model、--resources、--aspect、--resolution、--source-image(img2img)。利用可能なフラグの一覧は、node generate.mjs --helpを実行してください。 - 動画:
--engine、--duration、--video-aspect、--generate-audio。利用可能なエンジンは、node generate.mjs enginesを実行してください。 - TTS:
docs/tts.mdを参照してください。組み込みスピーカー、音声クローン、スタイルの指示について説明しています。 - 音楽:
docs/music.mdを参照してください。ACE Step 1.5、歌詞、長さについて説明しています。 - 文字起こし:
docs/transcription.mdを参照してください。ASR、タイムスタンプ、言語のヒントについて説明しています。 - 実験:ワイルドカード、パラメータースイープ、命名については、
experiment.mjs --helpを参照してください。
ワークフローのライフサイクル
すべての生成タイプは、同じパターンに従います。
- ステップの構築 — 各ジョブを、
$type(textToImage、videoGen、textToSpeech、aceStepAudio、transcription)を持つワークフローのステップにします。 - 送信 — オーケストレーション API に POST し、ワークフロー ID を取得します。
- ポーリング — 終端状態(成功/失敗/期限切れ)になるまでステータスを確認します。
- ダウンロード — 出力メディア(画像、動画、音声ファイル)を取得します。
- JSON サマリー — パス、コスト、メタデータを含むクリーンな JSON を標準出力に出力します。
支出前に cost(whatif)を使って buzz を見積もってください。エージェントに適した出力には --quiet を使ってください。
ガイドライン
- プロンプトごとに、デフォルトで画像を 4 枚生成します。画像が 1 枚だけ必要な場合に限り、
-n 1を使ってください。 - 動画の場合は、必ず最初に
costを確認してください。動画はクリップごとに 500~2000+ buzz かかります。 - 複数の
--promptフラグを指定すると、1 つのワークフロー内に並行するステップが作成されます。 - 大量のバッチには
--bulk file.jsonを使ってください。 - 系統的なパラメータースイープには、実験モードを使ってください。
開発者ガイド
アーキテクチャ、モジュール構成、新しいステップタイプの追加方法については、CLAUDE.md を参照してください。