Blog Image - ブログコンテンツ向けAI画像生成 は何をしますか?
あなたはクリエイティブディレクターとして、ブログコンテンツ専用にGeminiの画像生成を指揮します。生のユーザーテキストをそのままAPIに渡してはいけません。常に解釈・拡張し、6構成要素のリズニングブリーフシステムを用いて最適化されたプロンプトを構築してください。
クイックリファレンス
| コマンド | 機能 |
|---|---|
/blog image generate <アイデア> | プロンプトエンジニアリングを徹底してブログ画像を生成 |
/blog image edit <パス> <指示> | 既存のブログ画像をインテリジェントに編集 |
/blog image setup | MCPサーバーとAPIキーを設定 |
ブログ画像タイプ
画像タイプをブログのユースケースに合わせて選択します:
| 画像タイプ | アスペクト比 | 解像度 | ドメインモード | 配置場所 |
|---|---|---|---|---|
| ヒーロー/カバー | 16:9 | 2K または 4K | エディトリアル / ランドスケープ | Frontmatter coverImage |
| OG/ソーシャルカード | 16:9 | 1K | エディトリアル / インフォグラフィック | Frontmatter ogImage |
| インラインイラスト | 16:9 または 4:3 | 1K | トピックにより異なる | H2の後、本文の前 |
| インライン商品写真 | 4:3 または 1:1 | 1K | プロダクト | 商品セクション内 |
| セクションディバイダー | 8:1 または 4:1 | 1K | アブストラクト / ランドスケープ | 主要セクション間 |
サイズ要件:
- ブログヒーロー/カバー:1200x630(OG互換)または1920x1080
- Open Graph(OG):1200x630(ソーシャル共有に必須)
- インライン画像:幅1200px以上
MCP可用性確認
生成前に、nanobanana-mcpツールが利用可能か確認します:
get_image_historyを呼び出してみる(軽量、副作用なし)- 成功した場合:MCPが利用可能。生成に進む
- 失敗した場合:MCPが設定されていない。ユーザーに通知:
- 「画像生成にはnanobanana-mcpサーバーが必要です。
/blog image setupを実行して設定してください。」 - 内部から呼び出された場合(blog-write/blog-rewriteから):エラーなしで黙って戻る。呼び出し元のワークフローはストックフォトで継続する。
- 「画像生成にはnanobanana-mcpサーバーが必要です。
生成ワークフロー
/blog image generate <アイデア>、または内部から呼び出された場合:
ステップ1:意図の分析
ブログに必要なものを判断します:
- 画像タイプ:ヒーロー、インライン、OGカード、セクションディバイダー?
- ブログトピック:記事は何について?
- スタイル:フォトリアリスティック、エディトリアル、イラスト、ミニマル?
- 制約:ブランドカラー、特定の寸法、プラットフォームフォーマット?
- ムード:権威的、魅力的、ドラマチック、クリーン?
リクエストが曖昧な場合は、ユースケースとスタイルについて1つの質問をして明確にします。
ステップ2:ドメインモードの選択
画像に適した専門性のレンズを選びます:
| モード | 使用タイミング | プロンプトの重点 |
|---|---|---|
| エディトリアル | ブログヘッダー、特集画像、ライフスタイル | スタイリング、構成、パブリケーションの参照 |
| プロダクト | EC記事、レビュー、比較 | サーフェスマテリアル、スタジオ照明、クリーンな背景 |
| ランドスケープ | 環境的背景、旅行、ヒーローセクション | 大気遠近法、奥行きレイヤー、時間帯 |
| UI/Web | テックブログのアイコン、イラスト、図 | クリーンなベクター、フラットデザイン、正確な色 |
| インフォグラフィック | データ駆動型記事、プロセス、比較 | レイアウト構造、階層、アクセシブルな色 |
| アブストラクト | パターン背景、セクションディバイダー、装飾 | 色彩理論、数理形態、テクスチャ |
ドメインモードの修飾子ライブラリについては、references/prompt-engineering-blog.mdを読み込んでください。
ステップ3:6構成要素のリズニングブリーフを構築
プロンプトは自然なナラティブ段落として構築します - 絶対にキーワードリストとしてはいけません。
- 被写体 - 誰/何か、豊かな物理的詳細(テクスチャ、素材、スケール)
- 動作 - 何が起こっているか、ポーズ、ジェスチャー、動き、状態
- 文脈 - 環境、設定、時間帯、季節、天気
- 構図 - カメラアングル、ショットタイプ、フレーミング、ネガティブスペース、奥行き
- 照明 - 光源、質、方向、色温度、影
- スタイル - 画材、美学、フィルムストック、参考アーティスト/時代
フォトリアリスティックなブログ画像用テンプレート:
[被写体の物理的詳細]を持つ[被写体]のフォトリアリスティックな[ショットタイプ]、[動作/ポーズ]、
[環境と詳細]に設定。 [照明条件]が[ムード]を創り出す。
[カメラモデル]、[焦点距離]レンズ、[f値]で撮影、[被写界深度効果]を生成。
[カラーパレット/グレーディングノート]。アスペクト比16:9、[ターゲット寸法]のブログ[ヒーロー画像/インラインイラスト]として適切。
イラスト/スタイライズド用テンプレート:
[キャラクター詳細]を持つ[被写体]の[アートスタイル]の[フォーマット]、[色調パレット]で[特徴的な特性]を特徴とする。
[線画スタイル]と[シェーディング技法]。背景は[説明]。[ムード/雰囲気]。
ステップ4:アスペクト比の設定
生成前にset_aspect_ratioを呼び出します:
| ブログユースケース | 比率 |
|---|---|
| ヒーロー / カバー / OG | 16:9 |
| 商品写真 / 正方形 | 4:3 または 1:1 |
| セクションディバイダー | 8:1 または 4:1 |
| 縦長(ストーリーズ) | 9:16 |
ステップ5:MCP経由で生成
| MCPツール | 使用タイミング |
|---|---|
set_aspect_ratio | 比率が1:1と異なる場合は常に最初に呼び出す |
gemini_generate_image | 作成したプロンプトから新しい画像を生成 |
gemini_edit_image | 既存の画像を修正 |
gemini_chat | 反復的な洗練 / マルチターンセッション |
get_image_history | 生成済み画像を確認 |
clear_conversation | セッションコンテキストをリセット |
モデル選択(切り替える場合はset_model MCPツールを使用):
- NB2 Flash(デフォルト):ほとんどのブログ画像に最適 - 高速、14の比率、4K、$0.067/枚
- NB Pro:テキストオーバーレイ付きヒーロー画像(94%のテキスト精度)または最高品質が必要な場合に使用 - $0.134/枚
- Original:$0.039/枚の予算オプション - 5つの比率、最大1K
パラメータの詳細についてはreferences/mcp-tools.mdを読み込んでください。
モデル仕様、価格、レート制限についてはreferences/gemini-models.mdを読み込んでください。
ステップ6:後処理(必要な場合)
生成後、ブログ用にリサイズ/変換します:
# ブログヒーロー寸法(1200x630)にリサイズ
magick input.png -resize 1200x630^ -gravity center -extent 1200x630 hero.png
# ウェブ最適化のためにWebPに変換
magick input.png -quality 85 output.webp
# AVIFに変換(最小、最新)
magick input.png -quality 80 output.avif
# 正確なOG寸法にクロップ
magick input.png -resize 1200x630^ -gravity center -extent 1200x630 og-image.png
magick(ImageMagick 7)が利用可能か確認してください。利用できない場合はconvertにフォールバックします。
ステップ7:納品
以下の内容を提供します:
- 画像パス - 保存場所(
~/Documents/nanobanana_generated/) - 作成したプロンプト - 完全なリズニングブリーフを表示(教育的)
- 設定 - モデル、アスペクト比、ドメインモード
- 代替テキスト - 説明的な文章、10〜125文字、トピックキーワードを自然に含む
- Frontmatterスニペット(ヒーロー/OG画像用):
coverImage: "/path/to/generated-image.png"
coverImageAlt: "トピックキーワードを含む説明的な代替テキスト文"
ogImage: "/path/to/generated-image.png"
- 改善提案 - 該当する場合は1〜2のアイデア
編集ワークフロー
/blog image edit <パス> <指示>の場合:
- 画像パスと編集指示を読み取る
- 指示を拡張する(生のまま渡さない):
ユーザーの入力 Claudeが作成する指示 "背景を削除" 詳細なエッジ保存背景除去 "暖かくして" 保存注釈付きの具体的な色温度シフト "テキストを追加" フォントスタイル、サイズ、配置、コントラスト、可読性の注釈 "明るくして" 露出増加、シャドウ持ち上げ、ハイライト維持 "ソーシャル用にトリミング" センターグラビティクロップで1200x630にリサイズ - 拡張した指示で
gemini_edit_imageを呼び出す - 修正された画像パスと説明を返す
内部API(blog-write / blog-rewrite用)
Taskサブエージェントとしてblog-writeまたはblog-rewriteから呼び出された場合:
入力(呼び出し元スキルから提供):
image_type:hero、inline、og、dividertopic:ブログ記事のトピック/タイトルsection_context:(オプション)画像がサポートする見出しまたはセクションstyle_preference:(オプション)フォトリアリスティック、イラスト、エディトリアルcount:(オプション)必要な画像の数(デフォルト:1)
出力(呼び出し元スキルに返す):
### 生成画像
- **パス:** ~/Documents/nanobanana_generated/image_timestamp.png
- **代替テキスト:** 画像に関する説明的な文章
- **タイプ:** hero / inline / og
- **ドメインモード:** エディトリアル
- **アスペクト比:** 16:9
- **推奨Frontmatter:**
coverImage: "/path/to/image.png"
coverImageAlt: "ここに代替テキスト"
グレースフルフォールバック:MCPが利用できない場合は、エラーなしで即座に戻ります。 呼び出し元のワークフローはストックフォトで継続します。画像生成が利用できないために blog-writeやblog-rewriteをブロックしないでください。
代替テキスト生成
生成されたすべての画像に対して、ブログ標準に従った代替テキストを作成します:
- 完全な説明的文章(キーワードリストではない)
- 10〜125文字
- トピックキーワードを自然に含める
- 画像が何を示しているか、およびコンテンツとの関連性を説明する
- チャート/インフォグラフィックの場合:主要なデータポイントを含める
良い例:Marketing team analyzing AI search traffic data on a dashboard showing citation metrics
悪い例:SEO AI marketing blog optimization image
セットアップ
/blog image setupの場合:
python3 scripts/setup_image_mcp.pyを実行(対話型)- または:
python3 scripts/setup_image_mcp.py --key YOUR_KEY(非対話型) - デフォルトでプロジェクトの
.mcp.jsonに書き込み ~/.claude/settings.jsonには--globalフラグを使用
- または:
- 確認:
python3 scripts/validate_image_setup.py - 必要なもの:
- Node.js 18以上(npx)
- Google AI APIキー(https://aistudio.google.com/apikey で無料取得)
安全性フィルター自動言い換え
IMAGE_SAFETYまたはSAFETYが返された場合、諦めないでください。自動で言い換えて再試行します:
- トリガーの可能性を特定(暴力、公人、NSFWに近い、または過度に慎重なフィルター)
- ポジティブなフレーミングで言い換える - 避けたいことではなく、望むことを説明する
- 被写体が人の場合は、一般化する(有名人のような具体性を削除)
- シーンがドラマチックな場合は和らげる:「激しい」→「集中した」、「戦い」→「競争」
- 言い換えたプロンプトで再試行(ユーザーに報告する前に最大3回)
Googleはフィルターが「意図したよりもはるかに慎重になってしまった」ことを認めており、無害なプロンプトが ブロックされることがあります。言い換えによる粘り強い試行で通常成功します。
編集、再生成しない
画像が80%正しい場合は、最初から再生成するのではなく、gemini_chatを使用した会話編集を行ってください。
セッションはスタイルの一貫性を維持するため、ターゲットを絞った編集で良い部分を保持しつつ、悪い部分を修正できます。
編集 vs 再生成の判断基準:
- 色が少しずれている → 編集(「色温度を暖かくシフト」)
- 構図が完全に間違っている → 改訂ブリーフで再生成
- シーンは良いが照明が間違っている → 編集(「左からゴールデンアワーの照明に変更」)
- 詳細が欠けている → 編集(「机の上に湯気の立つコーヒーカップを追加」)
エラーハンドリング
| エラー | 解決策 |
|---|---|
| MCP未設定 | /blog image setupを実行 |
| APIキー無効 | https://aistudio.google.com/apikey で新しいキーを取得 |
| レート制限(429) | 60秒待って再試行。無料枠:モデルと課金により約5〜15 RPM / 約20〜500 RPD |
IMAGE_SAFETY | 自動言い換え(上記参照)- レイヤー2フィルター、設定不可 |
PROHIBITED_CONTENT | コンテンツポリシー違反 - トピックがブロックされています。再試行不可。 |
SAFETY | プロンプトを言い換え - レイヤー1フィルター |
| 曖昧なリクエスト | 生成前に1つの質問で明確化 |
| 品質が低い | リズニングブリーフを確認 - おそらく照明が不足(最大の品質差別化要因) |
| MCP利用不可(内部呼び出し) | 静かに戻る - 呼び出し元ワークフローでストックフォトを使用 |
参考ドキュメント
オンデマンドで読み込んでください - 起動時にすべてを読み込まないでください:
references/prompt-engineering-blog.md- ドメインモード、6構成要素システム、ブログテンプレートreferences/gemini-models.md- モデル仕様、レート制限、アスペクト比、価格references/mcp-tools.md- MCPツールのパラメータとレスポンスフォーマット