|

OpenClawでNano Banana Pro画像APIを連携する5ステップ完全チュートリアル

OpenClaw AI Agent に画像を自動生成させる機能は、多くの開発者が実現したいと考えている機能です。本記事では、5つのステップで OpenClaw のカスタム Skill を作成し、Nano Banana Pro 画像生成 API を導入して、チャットの指示から自動画像出力までの完全なワークフローを実現する方法を解説します。

コアバリュー: 本記事を読み終える頃には、OpenClaw カスタム Skill の作成方法をマスターし、APIYI プラットフォームを通じて Nano Banana Pro を導入し、テキストから画像生成、画像編集、一括処理を実現できるようになります。これにより、あなたの AI Agent にプロフェッショナル級の画像生成能力を持たせることができます。

openclaw-nano-banana-pro-image-api-tutorial-ja 图示


Nano Banana Pro 画像 API 核心能力概覧

導入を始める前に、Nano Banana Pro が OpenClaw Agent にどのような能力をもたらすかを確認しておきましょう。

Nano Banana Pro(正式名称:Gemini 3 Pro Image Preview)は、Google DeepMind がリリースしたプロフェッショナル級の AI 画像生成モデルです。Gemini 3 Pro をベースに構築されており、「正確にレンダリングされた、はっきりと読み取れるテキストを含む画像を生成するのに最適なモデル」として業界で高く評価されています。

Nano Banana Pro 核心技術パラメータ

機能 パラメータ 説明
テキストレンダリング エラー率 < 10% 1行のテキストの正確性は業界トップクラス
出力解像度 1K / 2K / 4K ネイティブ高解像度、後処理不要
参照画像 最大 14 枚 複数画像の合成とキャラクターの一貫性に対応
顔の一貫性 最大 5 キャラクター シーンを跨いでも顔の一貫性を維持
思考モード Thinking Process 複雑な構図の推論プロセスの可視化
サーチグラウンディング Google 検索 リアルタイムデータに基づいたビジュアル生成

🎯 導入のアドバイス: Nano Banana Pro の公式利用には Google Cloud の海外クレジットカードの登録が必要で、ハードルが高いのが現状です。そこでおすすめなのが、APIYI (apiyi.com) プラットフォーム経由での導入です。1枚あたり $0.05(公式 4K 価格の約 80% オフ)という一律料金で、日本のユーザーでも利用しやすい決済方法に対応しており、海外カードは不要です。


OpenClaw Skill 接入 Nano Banana Pro の全体アーキテクチャ

全体のアーキテクチャを理解しておくことで、その後の設定をよりスムーズに進めることができます。

openclaw-nano-banana-pro-image-api-tutorial-ja 图示

なぜ APIYI を経由して接続するのか

比較項目 Google 公式直接接続 APIYI (apiyi.com) 経由
4K単価 $0.24/枚 $0.05/枚(80%オフ)
支払い方法 海外クレジットカード Alipay / WeChat Pay / USDT
API形式 Google ネイティブ SDK Gemini ネイティブ形式互換
ネットワーク要件 プロキシ/VPNが必要 直接接続可能
並列実行制限 Quota(クォータ)制限あり 並列制限なし、RPM 2000+
大口顧客特典 なし チャージボーナス最大20%

ステップ1:OpenClaw Skill のディレクトリ構造を作成する

# Skillのディレクトリ構造を作成
mkdir -p ~/.openclaw/skills/nano-banana-pro/scripts
cd ~/.openclaw/skills/nano-banana-pro
touch SKILL.md scripts/generate.py scripts/edit.py

ステップ2:SKILL.md 定義ファイルの作成

SKILL.md は、OpenClaw があなたのスキルを認識し、呼び出すためのコアファイルです。YAML 形式のフロントマター(メタデータ)と Markdown 形式の指示で構成されています。

---
name: nano-banana-pro
description: Generate and edit images using Nano Banana Pro (Gemini 3 Pro Image) via APIYI platform. Supports text-to-image, image editing, multi-image composition, and batch processing.
version: 1.0.0
metadata:
  openclaw:
    requires:
      env:
        - APIYI_API_KEY
      bins:
        - python3
    primaryEnv: APIYI_API_KEY
emoji: "🎨"
---

Nano Banana Pro 画像生成スキル

機能

  • テキストから画像生成: テキストの説明に基づいて高品質な画像を生成します(1K/2K/4K)。
  • 画像編集: 既存の画像に対して修正、合成、スタイル変換を行います。
  • 一括処理: 画像の一括生成および一括編集をサポートします。

使用方法

画像の生成

exec python3 scripts/generate.py --prompt "説明文" --aspect-ratio "16:9" --resolution "2K"

画像の編集

exec python3 scripts/edit.py --instruction "編集指示" --image-url "画像のURL"

注意事項

  • GeminiネイティブAPI形式を使用:/v1beta/models/{model}:generateContent
  • 4K画像の生成には約60秒かかるため、exec timeout=120 を推奨します
  • 最適な結果を得るために、英語のプロンプトの使用を推奨します

> 💡 **開発のヒント**: `primaryEnv: APIYI_API_KEY` を宣言すると、OpenClawは自動的にAPIキーをSkillの実行環境に注入します。スクリプトは環境変数から直接読み取ることができ、キーをハードコードする必要はありません。

---

## ステップ3:テキストから画像生成スクリプト generate.py の作成

これはコアとなるスクリプトで、OpenClawから渡されたパラメータを受け取り、Nano Banana Pro APIを呼び出して画像を生成します。

### curlによるクイックテスト(Geminiネイティブ形式)

まずはcurlコマンドでAPIが正常に動作するか確認しましょう。これが最も簡単なテスト方法です:

```bash
curl -s -X POST \
  "https://api.apiyi.com/v1beta/models/gemini-3-pro-image-preview:generateContent" \
  -H "Authorization: Bearer sk-あなたのAPIYIキー" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"text": "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme"}
      ]
    }],
    "generationConfig": {
      "responseModalities": ["IMAGE"],
      "imageConfig": {
        "aspectRatio": "16:9",
        "imageSize": "2K"
      }
    }
  }' | python3 -c "
import sys, json, base64
data = json.load(sys.stdin)
img_data = data['candidates'][0]['content']['parts'][0]['inlineData']['data']
sys.stdout.buffer.write(base64.b64decode(img_data))
" > gemini-native-image.png

実行に成功すると、現在のディレクトリに gemini-native-image.png ファイルが生成されます。

Pythonスクリプト(Geminiネイティブ形式)

#!/usr/bin/env python3
"""Nano Banana Pro テキストから画像生成スクリプト - OpenClaw Skill(Geminiネイティブ形式)"""
import os, json, base64, argparse, requests
from datetime import datetime

API_KEY = os.environ.get("APIYI_API_KEY", "")
API_BASE = "https://api.apiyi.com/v1beta/models"  # APIYI Geminiネイティブインターフェース

def generate_image(prompt, aspect_ratio="16:9", resolution="2K"):
    url = f"{API_BASE}/gemini-3-pro-image-preview:generateContent"
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }
    data = {
        "contents": [{"parts": [{"text": prompt}]}],
        "generationConfig": {
            "responseModalities": ["IMAGE"],
            "imageConfig": {
                "aspectRatio": aspect_ratio,
                "imageSize": resolution
            }
        }
    }
    response = requests.post(url, headers=headers, json=data, timeout=120)
    response.raise_for_status()
    result = response.json()

    # Geminiネイティブ形式:candidatesからinlineDataを抽出
    parts = result["candidates"][0]["content"]["parts"]
    for part in parts:
        if "inlineData" in part:
            img_bytes = base64.b64decode(part["inlineData"]["data"])
            filename = f"nano_banana_{datetime.now().strftime('%Y%m%d_%H%M%S')}.png"
            with open(filename, "wb") as f:
                f.write(img_bytes)
            print(f"画像が生成されました: {filename} ({len(img_bytes)/1024:.1f} KB)")
            return filename
    print("画像データを抽出できませんでした")
    return None

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--prompt", required=True)
    parser.add_argument("--aspect-ratio", default="16:9")
    parser.add_argument("--resolution", default="2K", help="解像度: 1K/2K/4K")
    args = parser.parse_args()
    generate_image(args.prompt, args.aspect_ratio, args.resolution)

🚀 クイックスタート: 上記のコードは、APIYI(apiyi.com)のGeminiネイティブ形式インターフェースを使用しています。エンドポイントは /v1beta/models/{model}:generateContent で、レスポンス構造はGoogle公式と完全に一致しています。APIYIコンソール(api.apiyi.com)でキーを作成すれば、すぐに利用を開始できます。


ステップ 4:画像編集スクリプト edit.py の作成

Nano Banana Pro は、画像の生成だけでなく、既存の画像の編集にも対応しています。

#!/usr/bin/env python3
"""Nano Banana Pro 画像編集スクリプト - OpenClaw Skill(Gemini ネイティブ形式)"""
import os, json, base64, argparse, requests
from datetime import datetime

API_KEY = os.environ.get("APIYI_API_KEY", "")
API_BASE = "https://api.apiyi.com/v1beta/models"

def edit_image(instruction, image_url, extra_images=None):
    url = f"{API_BASE}/gemini-3-pro-image-preview:generateContent"
    headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

    # Gemini ネイティブ形式のマルチモーダル parts を構築
    parts = [{"text": instruction}]
    # 画像 URL を base64 インラインデータに変換
    img_resp = requests.get(image_url, timeout=30)
    parts.append({"inlineData": {"mimeType": "image/png",
                                  "data": base64.b64encode(img_resp.content).decode()}})
    if extra_images:  # 複数画像の合成に対応(最大 14 枚の参照画像)
        for img_url in extra_images[:13]:
            r = requests.get(img_url, timeout=30)
            parts.append({"inlineData": {"mimeType": "image/png",
                                          "data": base64.b64encode(r.content).decode()}})

    data = {
        "contents": [{"parts": parts}],
        "generationConfig": {"responseModalities": ["IMAGE"]}
    }
    response = requests.post(url, headers=headers, json=data, timeout=120)
    response.raise_for_status()
    result_parts = response.json()["candidates"][0]["content"]["parts"]
    for part in result_parts:
        if "inlineData" in part:
            filename = f"edited_{datetime.now().strftime('%Y%m%d_%H%M%S')}.png"
            with open(filename, "wb") as f:
                f.write(base64.b64decode(part["inlineData"]["data"]))
            print(f"編集完了: {filename}")
            return filename
    return None

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--instruction", required=True)
    parser.add_argument("--image-url", required=True)
    parser.add_argument("--extra-images", nargs="*")
    args = parser.parse_args()
    edit_image(args.instruction, args.image_url, args.extra_images)

画像編集機能のまとめ

編集タイプ プロンプト例 処理時間
背景の置換 "Remove background and add sunset" 約 10 秒
スタイル変換 "Convert to anime style" 約 15 秒
要素の追加 "Add sunglasses to the person" 約 10 秒
複数画像の合成 "Combine these logos and add…" 約 20 秒
テキストの追加 "Add title text: Hello World" 約 10 秒
色の調整 "Make the image warmer, increase contrast" 約 8 秒

ステップ 5:OpenClaw の設定とテスト

APIキーの設定

OpenClaw の設定ファイル ~/.openclaw/openclaw.json に Skill の設定を追加します。

{
  "skills": {
    "entries": {
      "nano-banana-pro": {
        "enabled": true,
        "apiKey": "sk-あなたのAPIYIキー"
      }
    }
  }
}

openclaw-nano-banana-pro-image-api-tutorial-ja 图示

Skill のテスト

メッセージプラットフォームでテスト指示を送信し、機能を検証します。

モダンでミニマルなスタイルのEC商品展示画像を生成してください。背景は白、商品は中央に配置してください。

Skill が正しく読み込まれているか確認します。

openclaw skills list | grep nano-banana
openclaw skills test nano-banana-pro

💰 コストの最適化: Nano Banana Pro は、APIYI(apiyi.com)を通じて、解像度に関わらず一律 $0.05/枚で提供されています。プロジェクトの 1 日あたりの平均消費量が 5,000 枚を超える場合、最大 20% のチャージボーナスが適用され、1 枚あたりのコストを $0.04 まで抑えることが可能です。


Nano Banana Pro APIのコストとパフォーマンス比較

長期的な利用において、適切な接続方法を選択することは非常に重要です。

openclaw-nano-banana-pro-image-api-tutorial-ja 图示

上記のSVGチャートは、詳細な価格比較とパフォーマンスパラメータを示しています。重要なデータ:APIYIを通じてNano Banana Proに接続すると、4K画像1枚あたりのコストはわずか0.05ドル(公式の0.24ドルの20%)です。大口顧客向けのチャージ特典を利用すると、1枚あたり0.04ドルまで下がります。プラットフォームは1日平均10万枚以上の画像を処理しており、同時実行数の制限もありません。


よくある質問

Q1: OpenClaw で Nano Banana Pro を利用するために必要な依存関係は何ですか?

Python 3 と requests ライブラリのみが必要です。APIYI (apiyi.com) の Gemini ネイティブ形式インターフェース(/v1beta/models/{model}:generateContent)を通じて呼び出すため、Google の google-generativeai SDK をインストールする必要はありません。pip install requests を実行するだけで準備完了です。また、依存関係なしで curl コマンドを使用してテストすることも可能です。

Q2: 4K 画像の生成時に OpenClaw でタイムアウトが発生した場合はどうすればよいですか?

Nano Banana Pro による 4K 画像の生成には約 60 秒かかります。SKILL.md の使用説明において、OpenClaw がスクリプトを呼び出す際に exec timeout=120 または exec timeout=180 を使用するように指定し、デフォルトのタイムアウトによるタスクの中断を避けることをお勧めします。

Q3: Nano Banana Pro の代わりに他の画像生成モデルを使用することはできますか?

はい、可能です。APIYI (apiyi.com) プラットフォームは、同時に複数の画像生成モデルをサポートしています。generate.py 内の model パラメータを変更するだけで切り替えが可能で、API 形式は完全に同一であるため、他のコードを修正する必要はありません。

Q4: OpenClaw Skill の安全性を確保するにはどうすればよいですか?

3 つの重要な対策があります。第一に、API キーは環境変数を通じて注入し、スクリプト内にハードコードしないこと。第二に、自分自身で作成した Skill のみを使用し、ClawHub などから提供される出所不明な画像生成スキル(すでに 820 以上の悪意のあるスキルが発見されています)のインストールを避けること。第三に、OpenClaw のログを定期的に確認し、異常な呼び出しがないかチェックすることです。

Q5: 画像編集ではどのような操作がサポートされていますか?また、その効果はどうですか?

Nano Banana Pro は、背景の置換、スタイル変換、要素の追加・削除、マルチ画像合成(最大 14 枚の参照画像)、テキストレンダリングなどをサポートしています。特にテキストレンダリングは最大の強みであり、単一行テキストの誤り率は 10% 未満と、DALL-E 3 や Midjourney を大きく上回ります。APIYI プラットフォームを通じて編集機能を利用する場合、1 回あたりわずか $0.05 で、平均 10 秒で完了します。


まとめ

本チュートリアルの 5 つのステップを通じて、OpenClaw 用のカスタム Skill を作成し、Nano Banana Pro の画像 API を連携させる完全なプロセスを習得しました。

  1. Skill ディレクトリの作成 — 標準的な SKILL.md + scripts/ 構造の構築
  2. SKILL.md の記述 — 依存関係、環境変数、使用コマンドの宣言
  3. テキストから画像生成スクリプトの作成 — APIYI の Gemini ネイティブ形式インターフェースによる Nano Banana Pro の呼び出し
  4. 編集スクリプトの作成 — マルチ画像合成、背景置換、スタイル変換への対応
  5. 設定とテストopenclaw.json での API キー設定と機能検証

APIYI (apiyi.com) を通じて Nano Banana Pro にアクセスすることをお勧めします。1 枚あたり一律 $0.05 という低価格(公式 4K 料金の 80% オフ)で利用でき、Claude、GPT-4o、DeepSeek などの複数モデルを統一インターフェースでサポートしています。また、imagen.apiyi.com で画像生成の効果を無料で体験することも可能です。


本記事は、大規模言語モデルの API 連携の実践と Agent 開発チュートリアルに注力する APIYI 技術チームによって執筆されました。さらなる技術ガイドについては、APIYI ヘルプセンター(help.apiyi.com)をご覧ください。

類似投稿