mcpField
B
baoyu-image-gen

baoyu-image-gen

github.com/buda-aiクリエイティブ・メディア560 回インストール20 週間前に更新
リポジトリ

baoyu-image-gen について

baoyu-image-gen は、各プロバイダーのAPIを使って画像を生成するコマンドラインスキルです。単一画像とバッチ生成に対応し、モデルや出力設定を指定できます。

主な機能

  1. 01複数プロバイダーのAPIによる画像生成
  2. 02単一画像とJSONバッチモード
  3. 03プロンプトまたはプロンプトファイルの入力
  4. 04アスペクト比、サイズ、品質の設定
  5. 05対応プロバイダーでの参照画像入力
  6. 06プロバイダーとモデルの選択

活用シーン

  1. 01プロンプトから画像を1枚生成する
  2. 02バッチファイルから複数画像を生成する
  3. 03指定したアスペクト比で画像を生成する
  4. 04対応プロバイダーで参照画像を使う

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/buda-ai/buda-marketplace --skill baoyu-image-gen

インストール後、Claude Code で/baoyu-image-genを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/config/
first-time-setup.md
preferences-schema.md
scripts/
main.test.ts
main.ts
types.ts
scripts/providers/
dashscope.test.ts
dashscope.ts
google.test.ts
google.ts
jimeng.ts
openai.test.ts
openai.ts
openrouter.test.ts
openrouter.ts
replicate.test.ts
replicate.ts
seedream.test.ts
seedream.ts

詳細

画像生成(AI SDK)

API を介した公式の画像生成です。OpenAI、Google、OpenRouter、DashScope(阿里通义万象)、Jimeng(即梦)、Seedream(豆包)、Replicate のプロバイダーに対応しています。

スクリプトディレクトリ

エージェントの実行:

  1. {baseDir} = この SKILL.md ファイルのディレクトリ
  2. スクリプトパス = {baseDir}/scripts/main.ts
  3. ${BUN_X} ランタイムを解決します:bun がインストールされている場合は → bun、npx が利用可能な場合は → npx -y bun、それ以外の場合は bun のインストールを提案します

ステップ 0:設定を読み込む ⛔ BLOCKING

重要:画像生成を行う前に、このステップを必ず完了してください。スキップしたり、後回しにしたりしないでください。

現在の作業ディレクトリに EXTEND.md が存在するか確認します:

test -f .baoyu-skills/baoyu-image-gen/EXTEND.md && echo "found"
結果対応
見つかった読み込み、解析し、設定を適用します。default_model.[provider] が null の場合は、モデルについてのみ質問します(first-time-setup.md のフロー 2)。
見つからない⛔ 停止してください。画像を生成しないでください。 references/config/first-time-setup.md を読み、フロー 1 のチェックリストに沿って手順を進めます。これは複数ターンにわたる対話形式のセットアップで、ユーザーに複数の質問をする必要があります。ステップ 5(検証)に合格してから、画像生成を再開してください。

重要:初回セットアップは複数ステップの対話形式のワークフローであり、単一の操作ではありません。各ステップでユーザーに質問し、回答を待つ必要があります。

パス場所
.baoyu-skills/baoyu-image-gen/EXTEND.md現在の作業ディレクトリからの相対パス

EXTEND.md がサポートする項目:デフォルトのプロバイダー | デフォルトの品質 | デフォルトのアスペクト比 | デフォルトの画像サイズ | デフォルトのモデル | バッチワーカーの上限 | プロバイダー別のバッチ制限

スキーマ:references/config/preferences-schema.md

使用方法

# Basic
${BUN_X} {baseDir}/scripts/main.ts --prompt "A cat" --image cat.png

# With aspect ratio
${BUN_X} {baseDir}/scripts/main.ts --prompt "A landscape" --image out.png --ar 16:9

# High quality
${BUN_X} {baseDir}/scripts/main.ts --prompt "A cat" --image out.png --quality 2k

# From prompt files
${BUN_X} {baseDir}/scripts/main.ts --promptfiles system.md content.md --image out.png

# With reference images (Google, OpenAI, OpenRouter, Replicate, or Seedream 4.0/4.5/5.0)
${BUN_X} {baseDir}/scripts/main.ts --prompt "Make blue" --image out.png --ref source.png

# With reference images (explicit provider/model)
${BUN_X} {baseDir}/scripts/main.ts --prompt "Make blue" --image out.png --provider google --model gemini-3-pro-image-preview --ref source.png

# OpenRouter (recommended default model)
${BUN_X} {baseDir}/scripts/main.ts --prompt "A cat" --image out.png --provider openrouter

# OpenRouter with reference images
${BUN_X} {baseDir}/scripts/main.ts --prompt "Make blue" --image out.png --provider openrouter --model google/gemini-3.1-flash-image-preview --ref source.png

# Specific provider
${BUN_X} {baseDir}/scripts/main.ts --prompt "A cat" --image out.png --provider openai

# DashScope (阿里通义万象)
${BUN_X} {baseDir}/scripts/main.ts --prompt "一只可爱的猫" --image out.png --provider dashscope

# DashScope Qwen-Image 2.0 Pro (recommended for custom sizes and text rendering)
${BUN_X} {baseDir}/scripts/main.ts --prompt "为咖啡品牌设计一张 21:9 横幅海报,包含清晰中文标题" --image out.png --provider dashscope --model qwen-image-2.0-pro --size 2048x872

# DashScope legacy Qwen fixed-size model
${BUN_X} {baseDir}/scripts/main.ts --prompt "一张电影感海报" --image out.png --provider dashscope --model qwen-image-max --size 1664x928

# Replicate (google/nano-banana-pro)
${BUN_X} {baseDir}/scripts/main.ts --prompt "A cat" --image out.png --provider replicate

# Replicate with specific model
${BUN_X} {baseDir}/scripts/main.ts --prompt "A cat" --image out.png --provider replicate --model google/nano-banana

# Batch mode with saved prompt files
${BUN_X} {baseDir}/scripts/main.ts --batchfile batch.json

# Batch mode with explicit worker count
${BUN_X} {baseDir}/scripts/main.ts --batchfile batch.json --jobs 4 --json
バッチファイル形式
{
  "jobs": 4,
  "tasks": [
    {
      "id": "hero",
      "promptFiles": ["prompts/hero.md"],
      "image": "out/hero.png",
      "provider": "replicate",
      "model": "google/nano-banana-pro",
      "ar": "16:9",
      "quality": "2k"
    },
    {
      "id": "diagram",
      "promptFiles": ["prompts/diagram.md"],
      "image": "out/diagram.png",
      "ref": ["references/original.png"]
    }
  ]
}

promptFiles、image、ref のパスは、バッチファイルのディレクトリを基準に解決されます。jobs は省略可能です(CLI の --jobs によって上書きされます)。トップレベルの配列形式(jobs ラッパーなし)も使用できます。

オプション

オプション説明
--prompt <text>, -pプロンプトのテキスト
--promptfiles <files...>ファイルからプロンプトを読み込みます(連結されます)
--image <path>出力画像のパス(単一画像モードでは必須)
--batchfile <path>複数画像生成用の JSON バッチファイル
--jobs <count>バッチモードのワーカー数(デフォルト:自動、最大値は設定から取得、組み込みのデフォルトは 10)
--provider google|openai|openrouter|dashscope|jimeng|seedream|replicateプロバイダーを指定します(デフォルト:自動検出)
--model <id>, -mモデル ID(Google:gemini-3-pro-image-preview;OpenAI:gpt-image-1.5;OpenRouter:google/gemini-3.1-flash-image-preview;DashScope:qwen-image-2.0-pro)
--ar <ratio>アスペクト比(例:16:9、1:1、4:3)
--size <WxH>サイズ(例:1024x1024)
--quality normal|2k品質プリセット(デフォルト:2k)
--imageSize 1K|2K|4KGoogle/OpenRouter の画像サイズ(デフォルト:品質設定に基づきます)
--ref <files...>参照画像。Google のマルチモーダル、OpenAI GPT Image の編集、OpenRouter のマルチモーダルモデル、Replicate、Seedream 5.0/4.5/4.0 でサポートされています。Jimeng、Seedream 3.0、提供終了した SeedEdit 3.0 ではサポートされていません。
--n <count>画像の枚数
--jsonJSON 形式で出力します

環境変数

変数説明
OPENAI_API_KEYOpenAI API キー
OPENROUTER_API_KEYOpenRouter API キー
GOOGLE_API_KEYGoogle API キー
DASHSCOPE_API_KEYDashScope API キー(阿里云)
REPLICATE_API_TOKENReplicate API トークン
JIMENG_ACCESS_KEY_IDJimeng(即梦)Volcengine アクセスキー
JIMENG_SECRET_ACCESS_KEYJimeng(即梦)Volcengine シークレットキー
ARK_API_KEYSeedream(豆包)Volcengine ARK API キー
OPENAI_IMAGE_MODELOpenAI モデルの上書き
OPENROUTER_IMAGE_MODELOpenRouter モデルの上書き(デフォルト:google/gemini-3.1-flash-image-preview)
GOOGLE_IMAGE_MODELGoogle モデルの上書き
DASHSCOPE_IMAGE_MODELDashScope モデルの上書き(デフォルト:qwen-image-2.0-pro)
REPLICATE_IMAGE_MODELReplicate モデルの上書き(デフォルト:google/nano-banana-pro)
JIMENG_IMAGE_MODELJimeng モデルの上書き(デフォルト:jimeng_t2i_v40)
SEEDREAM_IMAGE_MODELSeedream モデルの上書き(デフォルト:doubao-seedream-5-0-260128)
OPENAI_BASE_URLOpenAI カスタムエンドポイント
OPENROUTER_BASE_URLOpenRouter カスタムエンドポイント(デフォルト:https://openrouter.ai/api/v1)
OPENROUTER_HTTP_REFEREROpenRouter の帰属表示に使用する任意のアプリ/サイト URL
OPENROUTER_TITLEOpenRouter の帰属表示に使用する任意のアプリ名
GOOGLE_BASE_URLGoogle カスタムエンドポイント
DASHSCOPE_BASE_URLDashScope カスタムエンドポイント
REPLICATE_BASE_URLReplicate カスタムエンドポイント
JIMENG_BASE_URLJimeng カスタムエンドポイント(デフォルト:https://visual.volcengineapi.com)
JIMENG_REGIONJimeng リージョン(デフォルト:cn-north-1)
SEEDREAM_BASE_URLSeedream カスタムエンドポイント(デフォルト:https://ark.cn-beijing.volces.com/api/v3)
BAOYU_IMAGE_GEN_MAX_WORKERSバッチワーカー上限の上書き
BAOYU_IMAGE_GEN_<PROVIDER>_CONCURRENCYプロバイダーの並行処理数の上書き(例:BAOYU_IMAGE_GEN_REPLICATE_CONCURRENCY)
BAOYU_IMAGE_GEN_<PROVIDER>_START_INTERVAL_MSプロバイダーの開始間隔の上書き(例:BAOYU_IMAGE_GEN_REPLICATE_START_INTERVAL_MS)

読み込み優先順位:CLI 引数 > EXTEND.md > 環境変数 > <cwd>/.baoyu-skills/.env > ~/.baoyu-skills/.env

モデルの解決

モデルの優先順位(高い順)は、すべてのプロバイダーに適用されます。

  1. CLI フラグ:--model <id>
  2. EXTEND.md:default_model.[provider]
  3. 環境変数:<PROVIDER>_IMAGE_MODEL(例:GOOGLE_IMAGE_MODEL)
  4. 組み込みのデフォルト

EXTEND.md は環境変数より優先されます。EXTEND.md に default_model.google: "gemini-3-pro-image-preview" があり、環境変数に GOOGLE_IMAGE_MODEL=gemini-3.1-flash-image-preview が設定されている場合は、EXTEND.md の設定が優先されます。

エージェントは生成のたびに、モデル情報を必ず表示する必要があります:

  • 表示:Using [provider] / [model]
  • 切り替え方法を表示:Switch model: --model <id> | EXTEND.md default_model.[provider] | env <PROVIDER>_IMAGE_MODEL
DashScope モデル

公式の Qwen-Image の動作を利用する場合は、--model qwen-image-2.0-pro を使うか、default_model.dashscope / DASHSCOPE_IMAGE_MODEL を設定してください。

公式 DashScope モデルファミリー:

  • qwen-image-2.0-pro、qwen-image-2.0-pro-2026-03-03、qwen-image-2.0、qwen-image-2.0-2026-03-03
    • 宽*高 形式の自由な size
    • 総ピクセル数は 512*512 から 2048*2048 の範囲にする必要があります
    • デフォルトのサイズは約 1024*1024 です
    • 21:9 などのカスタム比率や、中国語/英語のテキストが多いレイアウトに最適です
  • qwen-image-max、qwen-image-max-2025-12-30、qwen-image-plus、qwen-image-plus-2026-01-09、qwen-image
    • 固定サイズのみ:1664*928、1472*1104、1328*1328、1104*1472、928*1664
    • デフォルトのサイズは 1664*928 です
    • 現在、qwen-image の機能は qwen-image-plus と同じです
  • z-image-turbo、z-image-ultra、wanx-v1 などのレガシー DashScope モデル
    • ユーザーがレガシーな動作または互換性を明示的に求めた場合にのみ、引き続き使用してください

CLI 引数を DashScope の動作に変換する場合:

  • --size は --ar より優先されます
  • qwen-image-2.0* では、明示的な --size を優先してください。指定がない場合は --ar から推定し、以下の公式推奨解像度を使用します
  • qwen-image-max/plus/image では、公式の固定サイズ5種類のみを使用してください。要求された比率に対応するサイズがない場合は、qwen-image-2.0-pro に切り替えてください
  • --quality は baoyu-image-gen の互換性プリセットであり、DashScope API のネイティブフィールドではありません。normal / 2k を以下の表に対応付ける方法は実装上の推定であり、公式 API による保証ではありません

一般的なアスペクト比に対する、推奨される qwen-image-2.0* のサイズ:

比率normal2k
1:11024*10241536*1536
2:3768*11521024*1536
3:21152*7681536*1024
3:4960*12801080*1440
4:31280*9601440*1080
9:16720*12801080*1920
16:91280*7201920*1080
21:91344*5762048*872

DashScope の公式 API では negative_prompt、prompt_extend、watermark も公開されていますが、現在 baoyu-image-gen ではこれら専用の CLI フラグを利用できません。

公式リファレンス:

OpenRouter モデル

完全な OpenRouter モデル ID を使用してください。例:

  • google/gemini-3.1-flash-image-preview(推奨。画像出力と参照画像を使ったワークフローに対応)
  • google/gemini-2.5-flash-image-preview
  • black-forest-labs/flux.2-pro
  • その他の画像生成に対応した OpenRouter モデル ID

注意事項:

  • OpenRouter の画像生成では、OpenAI の /images エンドポイントではなく /chat/completions を使用します
  • --ref を使用する場合は、画像入力と画像出力に対応したマルチモーダルモデルを選択してください
  • --imageSize は OpenRouter の imageGenerationOptions.size に対応します。--size <WxH> は、可能な場合、最も近い OpenRouter のサイズと推定アスペクト比に変換されます
Replicate モデル

対応するモデル形式:

  • owner/name(公式モデルに推奨)、例:google/nano-banana-pro
  • owner/name:version(バージョン指定のコミュニティモデル)、例:stability-ai/sdxl:<version>

例:

# Use Replicate default model
${BUN_X} {baseDir}/scripts/main.ts --prompt "A cat" --image out.png --provider replicate

# Override model explicitly
${BUN_X} {baseDir}/scripts/main.ts --prompt "A cat" --image out.png --provider replicate --model google/nano-banana

プロバイダーの選択

  1. --ref が指定されていて --provider が未指定 → Google、次に OpenAI、OpenRouter、Replicate の順に自動選択します(Jimeng と Seedream は参照画像に対応していません)
  2. --provider が指定されている → 指定されたプロバイダーを使用します(--ref を指定する場合は、google、openai、openrouter、replicate のいずれかである必要があります)
  3. API キーを利用できるプロバイダーが1つのみ → そのプロバイダーを使用します
  4. 複数のプロバイダーを利用できる → デフォルトで Google を使用します

品質プリセット

プリセットGoogle imageSizeOpenAI サイズOpenRouter サイズReplicate 解像度用途
normal1K1024px1K1Kクイックプレビュー
2k(デフォルト)2K2048px2K2Kカバー、イラスト、インフォグラフィック

Google/OpenRouter imageSize:--imageSize 1K|2K|4K で上書きできます。

アスペクト比

対応:1:1、16:9、9:16、4:3、3:4、2.35:1

  • Google マルチモーダル:imageConfig.aspectRatio を使用します
  • OpenAI:最も近い対応サイズにマッピングします
  • OpenRouter:imageGenerationOptions.aspect_ratio を送信します。--size <WxH> のみが指定された場合は、アスペクト比が自動的に推定されます
  • Replicate:aspect_ratio をモデルに渡します。--ar なしで --ref が指定された場合、デフォルトは match_input_image です

生成モード

デフォルト:逐次生成。

バッチ並列生成:--batchfile に保留中のタスクが2つ以上含まれている場合、スクリプトは並列生成を自動的に有効にします。

モード使用する場合
逐次(デフォルト)通常の使用、単一画像、小規模なバッチ
バッチ並列2つ以上のタスクがあるバッチモード

実行方法の選択:

状況推奨方法理由
画像が1枚、または簡単な画像が1~2枚逐次調整のオーバーヘッドが少なく、デバッグも容易です
複数の画像について、プロンプトファイルがすでに保存されているバッチ(--batchfile)確定済みのプロンプトを再利用し、共通のスロットリングと再試行を適用でき、スループットも予測しやすくなります
画像ごとに個別の検討、プロンプト作成、スタイルの模索が必要サブエージェントまだ探索段階の作業であり、生成前に画像ごとの個別分析が必要になる場合があります

目安:

  • プロンプトファイルがすでに保存され、タスクが「これらをすべて生成する」段階になったら、サブエージェントよりバッチを優先します
  • 生成に画像ごとの検討、書き直し、または異なる方向性での創作が伴う場合にのみ、サブエージェントを使用します

並列処理の動作:

  • ワーカー数はデフォルトで自動設定され、設定値によって上限が設けられています。組み込みのデフォルトは10です
  • プロバイダー固有のスロットリングはバッチモードでのみ適用されます。組み込みのデフォルト値は、明らかなRPMの急増を避けながら、より高速なスループットが得られるよう調整されています
  • --jobs <count> でワーカー数を上書きできます
  • 各画像は最大3回まで自動で再試行されます
  • 最終出力には、成功数、失敗数、画像ごとの失敗理由が含まれます

エラー処理

  • API キーがない → セットアップ手順を含むエラー
  • 生成失敗 → 画像ごとに最大3回まで自動で再試行
  • アスペクト比が無効 → 警告を表示し、デフォルト値で続行
  • 対応していないプロバイダー/モデルの参照画像 → 修正方法のヒントを含むエラー

拡張機能のサポート

EXTEND.md によるカスタム設定に対応しています。パスとサポートされるオプションについては、Preferences セクションを参照してください。

クレジット表記

JimLiu による baoyu-image-gen に基づいており、MIT ライセンスで提供されています。 Buda.im プラットフォーム向けに変更・適合されています。

コメント