目次
- なぜアイキャッチにgpt-image-2を選ぶのか
- ブログアイキャッチに求められる3条件
- gpt-image-2が満たすポイント
- プロンプト設計の実践
- プロンプト6要素
- 英語プロンプトの実例
- 日本語 vs 英語:どちらで書くべきか
- アバターを固定してブランディングに使う
- base_avatar.png を参照画像として渡す仕組み
- images.edit API で「同一人物」を維持する方法
- 固定する要素 / 毎回変える要素の切り分け
- 構図ローテーション設計(マンネリ防止の4軸)
- 4軸(場所・構図・アクション・時間帯)の考え方
- 直近3記事との差分チェックの実践例
- API呼び出しからWordPress設定までの自動化フロー
- generate_eyecatch.py の処理フロー
- 06_eyecatch_spec.md → API呼び出し → images/ 保存の流れ
- frontmatter の eyecatch / eyecatch_alt / status 設定
- publish_post.py でアイキャッチ付き記事を公開する
- 費用と品質の最適化
- 月額費用の実数値(月8本 × high / 1536×1024 = 200〜300円)
- quality: high vs low の比較判断
- サイズ選択(1536×1024 = ブログ横長の最適解)
- うまくいかないときのリカバリ設計
- よくある失敗パターン
- 3回リトライ → Canva フォールバックの判断基準
- プロンプト修正のチェックリスト(5項目)
- 著作権と商用利用のポイント
- OpenAI の利用規約上のルール
- 実在人物・ブランドの回避
- FAQ
- Q1. gpt-image-2で生成したアイキャッチ画像は商用利用できますか?
- Q2. 毎回同じキャラクターでアイキャッチを作れますか?
- まとめ:アイキャッチを「仕組み」にする
AIアイキャッチをgpt-image-2で作る完全手順|プロンプト設計からWordPress設定まで
ブログのアイキャッチ画像を毎回Canvaで作っていると、時間がかかるうえに仕上がりが記事ごとにバラバラになりがちです。かといってAIに任せると「毎回違う人物が出てくる」「同じ構図ばかりになる」という別の悩みが生まれる。
この記事では、OpenAIの画像生成モデル gpt-image-2 を使って、アイキャッチを「仕組み」として運用する方法を解説します。具体的には次の3つの設計が柱になります。
- アバター固定:参照画像(
base_avatar.png)を毎回渡して、同一人物を安定して出力する - 構図ローテーション:場所・構図・アクション・時間帯の4軸を意識的にずらしてマンネリを防ぐ
- API自動化:
generate_eyecatch.pyを使ってコマンド1発で生成〜WordPress設定まで完了させる
この記事は「AIでブログ運営を自動化する5ステップ完全ガイド」のStep 4を深掘りしたものです。概要はピラー記事で確認できます。
なぜアイキャッチにgpt-image-2を選ぶのか
ブログアイキャッチに求められる3条件
アイキャッチに求めるものを整理すると、3つに絞られます。
| 条件 | 意味 |
|---|---|
| 一貫性 | 記事が増えても「このブログの世界観」として認識される |
| 再現性 | プロンプトと参照画像さえあれば、毎回同じクオリティで出力できる |
| 低コスト | 月数百円の範囲で運用できる |
Canvaや手動の画像生成ツールでは「再現性」に課題があります。同じプロンプトを貼っても画像生成ツールの更新や乱数で結果が変わりやすく、「あの記事と同じ雰囲気で」を再現するのが難しい。API経由なら、スクリプトとプロンプトを固定しておけば安定した結果が得られます。
gpt-image-2が満たすポイント
gpt-image-2(OpenAI)が他のツールより優れている点は3つです。
1. images.edit API で参照画像を渡せる
画像生成の images.generate ではなく、images.edit APIを使うと参照画像(ベース画像)を入力として渡せます。毎回 base_avatar.png を渡すことで「このキャラクターが〇〇している場面」という指定が機能します。
2. 日本語テキストの精度が高い
同様のモデルと比較して、日本語テキストを画像内に含める場合の崩れが少ない特徴があります。ただし本記事のアイキャッチ設計では「画像にテキストを含めない」方針のため、この点は副次的なメリットです。
3. APIパラメータが柔軟
quality(high/low)・size(1536×1024など複数)・n(生成枚数)を細かく指定できます。品質とコストのバランスを数値で調整できるのが、UI操作系ツールにない強みです。
プロンプト設計の実践
プロンプト6要素
gpt-image-2で安定した出力を得るためのプロンプトは、6つの要素で構成します。
| 要素 | 役割 | 記述例 |
|---|---|---|
| 出力仕様 | サイズ・用途の宣言 | Wide format, 1536x1024, suitable for a blog eyecatch |
| スタイル | 画風・イラスト調の指定 | soft anime-style illustration, gentle lines, slightly muted colors |
| 被写体 | 人物の外見・服装 | a male nurse in his late 20s, short hair with brown highlights |
| 構図 | フレーミング・視点 | upper body, slightly from the side, hands visible on desk |
| 配色・雰囲気 | 色調・光・感情トーン | calm blue tones, soft morning light, quiet and focused atmosphere |
| 除外要素 | 生成してほしくない要素 | No text in the image. No identifiable logos or brand names. |
この6要素を順番に記述するだけで、ツールが解釈しやすい英語プロンプトが組み上がります。
英語プロンプトの実例
以下は実際に使っているプロンプトの代表例です。コピーして使えます。
例1:デスク前で作業している場面(記事:ブログ自動化解説系)
A soft anime-style illustration of a male nurse in his late 20s,
short hair with subtle brown highlights, wearing a blue V-neck scrub.
He is sitting at a home desk in the early morning,
looking at a laptop screen with a calm, focused expression.
Upper body shot, slightly from the side.
The room has a quiet, pre-dawn atmosphere with soft desk lamp light.
Background is slightly blurred — simple home office setup.
No text in the image. No logos.
Wide format, 1536x1024, suitable for a blog eyecatch.
例2:カフェで資料を見ている場面(記事:戦略・設計系)
A soft anime-style illustration of a male nurse in his late 20s,
short hair with brown highlights, in casual wear (not scrubs).
He is sitting at a cafe table, holding a tablet and looking at it thoughtfully.
The pose shows him from the side, elbow resting on the table.
Warm afternoon light from a nearby window.
Background is a blurred cafe interior, warm and quiet.
No other people visible. No text or logos in the image.
Wide format, 1536x1024, suitable for a blog eyecatch.
例3:アイキャッチ記事に使った場面(記事:AI画像生成系)
A soft anime-style illustration of a male nurse in his late 20s,
short hair with subtle brown highlights, wearing a blue V-neck scrub.
He is standing at a tall window in an office corridor at dusk,
looking at a glowing holographic screen with abstract image thumbnails floating before him.
Three-quarter view, slightly looking up.
Deep blue evening light outside the window, cool interior lighting.
Background blurred, hospital-like corridor but minimal details.
No text in the image. No logos or brand names.
Wide format, 1536x1024, suitable for a blog eyecatch.
日本語 vs 英語:どちらで書くべきか
結論は英語推奨です。
gpt-image-2は英語指示のほうが構図・雰囲気・人物描写の解像度が高い傾向があります。「やや垂れ目がかった穏やかな形」より slightly drooping, gentle eyes のほうが指示の通りやすさが安定します。
ただし日本語でも動作します。「英語が苦手でプロンプトを考えるのが大変」という場合は、Claude Codeに「以下の日本語の指示を英語プロンプトに変換して」と依頼するのが最も効率的です。
# Claude Code への指示例
以下の画像指示を、gpt-image-2向けの英語プロンプトに変換してください。
- 登場人物:20代後半の男性看護師、青いスクラブ、ショートヘア
- 場面:自宅のデスクでPCを見ている、夜、デスクライトのみ
- 構図:斜め後ろから、手元が見える
- 雰囲気:落ち着いた、集中している
- 禁止:テキスト不可、ロゴ不可
- サイズ:1536x1024、横長
自動化スクリプトのコード全文(generate_eyecatch.py 含む)は、note の有料記事で公開しています(500円)。
アバターを固定してブランディングに使う
上位の競合記事を見ると、「AIでアイキャッチを作る方法」は多く扱われていますが、「毎回同じキャラクターを出し続ける設計」を扱った記事はほぼゼロです。ここが本記事の核心です。
最初は記事ごとに好みのプロンプトを書いて生成していましたが、5〜6記事が溜まったところでブログの一覧画面を見て気づきました。記事によって登場人物の顔立ち・髪型・服装がバラバラで、「同じブログの記事」という統一感が出ていない。これを解決するために base_avatar.png を参照させる仕組みを作りました。
base_avatar.png を参照画像として渡す仕組み
images.edit APIは、テキストプロンプトに加えて画像ファイルを入力として受け取ります。このAPIを使うと「この画像の人物が〇〇している場面を生成して」という指示が機能します。
参照画像として使う base_avatar.png は、一度だけ丁寧に作った「このブログのキャラクター」の基準画像です。このファイルを blog-automation/assets/avatar/ に置いておき、生成のたびに参照させます。
images.edit API で「同一人物」を維持する方法
generate_eyecatch.py の核心部分はこの3行です。
# images.edit API で参照画像を渡して生成
with open(AVATAR_PATH, "rb") as f:
result = client.images.edit(
model="gpt-image-2",
image=f, # base_avatar.png を渡す
prompt=prompt, # アバター固定設定 + 記事ごとの指示
size="1536x1024",
quality="high",
n=1,
)
images.generate ではなく images.edit を使っている点がポイントです。generate はテキストのみで生成するのに対し、edit は参照画像を入力として受け取り、その画像の特徴を踏まえて指示に沿った新しい画像を生成します。
さらにプロンプトの先頭には、毎回固定の「アバター固定設定」を挿入しています。
AVATAR_HEADER = (
"【最重要・必ず守ること】\n"
"添付画像と完全に同一人物として描いてください。\n"
"- 顔立ち・髪色(茶系のハイライト含む)・髪型・目の形・肌の色・輪郭をそのまま踏襲\n"
"- 目は細めでやや垂れ目がかった穏やかな形。大きくしない・パッチリさせない\n"
"- 黒一色の髪にしない。添付画像どおりの茶系ハイライトを保つ\n"
"- 顔の輪郭はシャープで細め\n"
"- 表情はクールで控えめな微笑み\n"
"- 同じアニメ調イラスト・やわらかい線・淡い彩色の画風を保つ\n\n"
)
この文字列を extract_prompt() 関数でプロンプトの先頭に自動挿入しているため、06_eyecatch_spec.md に記事ごとの場面指示を書くだけで、アバター固定設定は毎回確実に入ります。
固定する要素 / 毎回変える要素の切り分け
| 固定する(ブランディング) | 毎回変える(マンネリ防止) |
|---|---|
| 人物の顔立ち・髪型・髪色 | 場所(院内・自宅・カフェ・街) |
| 画風(アニメ調・やわらかい線) | 構図(後ろ姿・横顔・手元・俯瞰) |
| 服装(青いスクラブ 基本) | アクション(作業・歩く・眺める) |
| 雰囲気(誠実・落ち着き) | 時間帯・光の質(朝・夕・夜・雨) |
「人物は同じ、場面は毎回違う」という設計で、記事ごとの個性を出しながらブログとしての統一感を保てます。
構図ローテーション設計(マンネリ防止の4軸)
アバター固定を始めてしばらくすると、次の問題が起きました。プロンプトをある程度パターン化すると、似たような構図が続いてしまう。「デスクで作業している夜のシーン」が3記事連続で並んだとき、一覧の印象が単調になりました。
この経験から「直近3記事と被らない構図を意識的に選ぶ」ルールを作りました。
4軸(場所・構図・アクション・時間帯)の考え方
構図の多様性は4軸で管理します。記事を書くたびに直近3件の組み合わせを確認し、被っている軸を1つ以上ずらします。
軸1:場所
院内:廊下 / ナースステーション / 休憩室 / 階段の踊り場 / 処置室
院外通勤:通勤電車 / 駅のホーム / 帰り道の歩道
自宅:デスク・PC前 / キッチン / ベランダ / リビング
街・外出:カフェ / 公園のベンチ / 図書館 / 本屋の前
軸2:構図
人物主体:後ろ姿 / 横顔 / 正面・斜め前 / 俯瞰 / 引きの全身
部分・小物主体:手元アップ / 足元アップ / ドア越しのシルエット / 鏡への映り込み
軸3:アクション
静的:眺める / 考える / 座る
動的:歩く / 手を動かす(書く・スマホ・コーヒーを淹れる)
特徴的:振り返る / 伸びをする / 本を開く
軸4:時間帯・光の質
朝の自然光 / 午後の自然光 / 夕方・マジックアワー
夜の室内光(蛍光灯・デスクライト) / 深夜(暗闇+小さな光源)
雨の日(灰色がかった光) / 朝焼け・夕焼け
直近3記事との差分チェックの実践例
記事を書くたびに、以下のような差分チェックを行います。
【直近3記事の構図ログ】
- C12:自宅デスク × 手元アップ × PC操作 × 深夜
- C13:廊下 × 後ろ姿 × 歩く × 朝
- C14:カフェ × 上半身正面 × タブレットを見る × 午後
【C15(本記事)の選択方針】
- 場所:院外(駅・通勤)or 自宅(ベランダ・リビング)が未使用 → 「院外」を選ぶ
- 構図:「後ろ姿」「手元」「上半身正面」が3回で使い切り → 「俯瞰」か「引きの全身」を選ぶ
- アクション:「操作」「歩く」「眺める」使用済み → 「一息つく」「振り返る」を選ぶ
- 時間帯:「深夜」「朝」「午後」使用済み → 「夕方」「雨」を選ぶ
→ 選定:「夕方の病院駐車場 × 引きの全身 × 車に向かって歩く × マジックアワー」
このメモを 06_eyecatch_spec.md に残しておくと、次の記事でも参照できます。
API呼び出しからWordPress設定までの自動化フロー
generate_eyecatch.py の処理フロー
スクリプト全体の流れを擬似コードで示します。
# generate_eyecatch.py の全体フロー
def main():
# 1. コマンドライン引数から spec ファイルのパスを受け取る
spec_path = args.spec_file # 例: drafts/articles/ai-eyecatch-gpt-image-2/06_eyecatch_spec.md
# 2. slug を spec_path の親フォルダ名から自動取得
slug = spec_path.parent.name # 例: ai-eyecatch-gpt-image-2
# 3. 出力先パスを自動生成
output_path = spec_path.parent / "images" / f"{slug}_eyecatch.png"
# 4. .env から OPENAI_API_KEY を読み込む
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
# 5. spec ファイルから「## プロンプト本体」セクションを抽出
prompt = extract_prompt(spec_path)
# ↑ AVATAR_HEADER(アバター固定設定)を先頭に自動挿入
# 6. 最大3回のリトライループ
for attempt in range(1, 4):
generate_once(client, prompt, output_path)
# ↑ images.edit API 呼び出し → base64デコード → PNG保存
answer = input("OK ですか? [y/n]: ")
if answer == "y":
break
elif attempt == 3:
print("上限3回。Canvaフォールバックをご検討ください。")
sys.exit(1)
実行コマンドは1行です。
python scripts/generate_eyecatch.py drafts/articles/ai-eyecatch-gpt-image-2/06_eyecatch_spec.md
自動完走モード(品質審査後の無人実行)では --no-confirm フラグを付けます。
python scripts/generate_eyecatch.py drafts/articles/ai-eyecatch-gpt-image-2/06_eyecatch_spec.md --no-confirm
06_eyecatch_spec.md → API呼び出し → images/ 保存の流れ
番号付きの手順で整理します。
Step 1:06_eyecatch_spec.md を作成する
Claude Code に以下の指示を出します。
以下の記事のアイキャッチ仕様書(06_eyecatch_spec.md)を作成してください。
記事タイトル:AIアイキャッチをgpt-image-2で作る完全手順
記事の核心:アバター固定と構図ローテーションの設計
直近3記事の構図ログ:
- C12:自宅デスク × 手元アップ × PC操作 × 深夜
- C13:廊下 × 後ろ姿 × 歩く × 朝
- C14:カフェ × 上半身正面 × タブレット × 午後
保存先:drafts/articles/ai-eyecatch-gpt-image-2/06_eyecatch_spec.md
テンプレート:templates/eyecatch_prompt_template.md
Step 2:spec ファイルの「## プロンプト本体」セクションを確認する
## プロンプト本体
A soft anime-style illustration of a male nurse in his late 20s…
(英語プロンプト全文をここに記述)
バッククォート3つで囲まれたコードブロック内のテキストが、extract_prompt() に自動抽出されます。
Step 3:スクリプトを実行する
python blog-automation/scripts/generate_eyecatch.py \
blog-automation/drafts/articles/ai-eyecatch-gpt-image-2/06_eyecatch_spec.md
実行すると以下の出力が出ます。
[1/3] 画像生成中(30秒〜1分かかります)...
使用量: CompletionUsage(...)
保存: drafts/articles/ai-eyecatch-gpt-image-2/images/ai-eyecatch-gpt-image-2_eyecatch.png
画像を確認してください。OK ですか? [y/n]:
Step 4:生成画像を確認してOK/NGを入力する
y→ 処理完了。次の工程(WordPress設定)へn→ 自動で再生成(最大3回)
Step 5:3回NGだったらCanvaフォールバック(詳細は後述のリカバリ設計セクション参照)
frontmatter の eyecatch / eyecatch_alt / status 設定
記事の下書きファイル(04_draft_v*.md)のfrontmatterに以下の3項目を追加します。
---
title: "AIアイキャッチをgpt-image-2で作る完全手順|..."
slug: ai-eyecatch-gpt-image-2
seo_title: "..."
seo_description: "..."
excerpt: "..."
categories:
- WordPress効率化
tags:
- AI
- gpt-image-2
eyecatch: images/ai-eyecatch-gpt-image-2_eyecatch.png # ← 画像パス(slug/images/ 配下)
eyecatch_alt: "夕方の病院駐車場を歩く男性看護師の後ろ姿" # ← alt テキスト
status: publish # ← 公開準備完了
---
eyecatch のパスはスラッグ配下の相対パスで記述します。publish_post.py がこのパスを読んで、WordPress REST API 経由でアイキャッチを設定します。
publish_post.py でアイキャッチ付き記事を公開する
publish_post.py は frontmatter の eyecatch フィールドを検出すると、以下の処理を自動で行います。
# publish_post.py の eyecatch 処理(該当部分の擬似コード)
# 1. frontmatter から eyecatch パスを読み込む
eyecatch_path = draft_dir / frontmatter["eyecatch"]
# 2. WordPress REST API でメディアをアップロード
media_id = wp_upload_media(eyecatch_path, alt_text=frontmatter["eyecatch_alt"])
# 3. 投稿の featured_media に media_id を設定
post_data["featured_media"] = media_id
# 4. 投稿を作成 or 更新
wp_create_or_update_post(post_data)
実行コマンド:
# 新規投稿
python blog-automation/scripts/publish_post.py blog-automation/drafts/articles/ai-eyecatch-gpt-image-2/
# リライト(更新)
python blog-automation/scripts/publish_post.py blog-automation/drafts/articles/ai-eyecatch-gpt-image-2/ --update 1234
この設計により、「アイキャッチ画像の生成 → frontmatterへの記述 → WP公開」の流れが1コマンドずつ確実に繋がります。手動でWordPress管理画面を操作する必要はありません。
なお、WordPress自動投稿の詳細な設定手順(REST API認証・アプリケーションパスワード設定など)は、Claude CodeでWordPress投稿を自動化する方法で解説予定です。
費用と品質の最適化
月額費用の実数値(月8本 × high / 1536×1024 = 200〜300円)
gpt-image-2の料金は quality と size の組み合わせで決まります(従量制)。
| quality | size | 1枚あたり | 月8本の場合 |
|---|---|---|---|
| high | 1536×1024 | 約$0.19(約29円) | 約232円 |
| high | 1024×1024 | 約$0.17(約26円) | 約208円 |
| low | 1536×1024 | 約$0.07(約11円) | 約88円 |
| low | 1024×1024 | 約$0.06(約9円) | 約72円 |
※ 1ドル=153円換算(2026年5月時点)。料金はOpenAIの価格改定で変わる可能性があります。
実運用での選択:quality: high、size: 1536x1024
月8本で200〜300円という計算になります。「月数百円でプロ品質のアイキャッチが全記事に揃う」コスト感は、手動でCanvaの有料素材を使い続けるよりも断然安い。
quality: high vs low の比較判断
high と low の違いは、アバターの顔の再現精度と背景の細部表現に顕著に出ます。
- high:顔の特徴(目の形・髪のハイライト・輪郭)が参照画像に近い。背景の奥行き感・光の質が自然
- low:顔のパーツが若干崩れやすい。背景が簡略化される傾向
ブランディングの核がアバターの一貫性である以上、high 一択です。low で顔が崩れると、アバター固定の意味が薄れます。
サイズ選択(1536×1024 = ブログ横長の最適解)
WordPress のアイキャッチとして使う場合、推奨サイズは 1536x1024(横長)です。
gpt-image-2が対応しているサイズ:
1024x1024(正方形)
1536x1024(横長・landscape)
1024x1536(縦長・portrait)
ブログのOGP画像(SNSシェア時のサムネイル)は横長が標準であり、1536x1024 がそのまま使えます。
うまくいかないときのリカバリ設計
よくある失敗パターン
パターン1:アバターの顔が変わる
症状:生成されるたびに顔立ちが変わる。「同一人物感」がない。
原因と対処:
base_avatar.pngが渡されていない →AVATAR_PATHの設定を確認- プロンプトにアバター固定設定が入っていない →
AVATAR_HEADERがpromptの先頭に付いているか確認 - 参照画像の解像度が低い →
base_avatar.pngを300px以上のサイズで用意する
パターン2:背景が不自然・医療描写が過剰
症状:拘束具・注射針・血液など刺激の強い描写が出る。背景の病院設備が過剰にリアル。
対処:除外要素の指定を強化する。
# プロンプトの末尾に追加
No restraints, no syringes, no medical equipment closeups.
Background should be minimal and slightly blurred.
Keep the atmosphere calm and quiet, not dramatic.
パターン3:色調が記事と合わない
症状:ダークな記事なのにポップな色合いになる。または逆。
対処:色調指定をより具体的にする。
# 落ち着いた記事に合わせる場合
Muted color palette, cool blue-gray tones.
Soft, diffused lighting without strong contrast.
No bright or saturated colors.
3回リトライ → Canva フォールバックの判断基準
generate_eyecatch.py は最大3回まで再生成を試みます。3回すべてで n を入力した場合、スクリプトは以下のメッセージを出して終了します。
再生成の上限(3回)に達しました。手動ツール(Canva等)でのフォールバックをご検討ください。
フォールバック手順:
- Canva(無料プラン)を開く
- 「ブログバナー」テンプレートを選択(横長1536×1024 or 16:9サイズ)
- 記事のメインカラー(青系)に合わせた背景色を選ぶ
- 自分のアバター画像をPNG形式で配置
- 記事タイトルの一部または記事テーマを表す抽象的なアイコンを加える
{slug}_eyecatch.pngとして書き出し、images/フォルダに保存
Canvaフォールバックは「月1回以内」を目安にしています。3回連続でAPIが失敗する場合は、プロンプトに根本的な問題があることが多いため、06_eyecatch_spec.md のプロンプトを見直します。
プロンプト修正のチェックリスト(5項目)
3回でもうまくいかない場合の見直し手順です。
□ 1. AVATAR_HEADER が prompt の先頭に入っているか
(extract_prompt() の戻り値を print で確認する)
□ 2. 英語プロンプトに矛盾した指示がないか
例:「hospital corridor」と「cafe」を同時に指定していないか
□ 3. 除外要素(No ...)の指定が十分か
出てほしくないものはすべて列挙する
□ 4. 構図と被写体の指示が具体的すぎないか
細かく指定しすぎるとモデルが混乱する場合がある
「upper body shot」程度に留めて、細部は任せる
□ 5. base_avatar.png が適切な品質か
顔が不鮮明・小さい・背景が複雑な画像は参照精度が下がる
正面を向いた・顔が大きく映る・背景が単純な画像が最適
著作権と商用利用のポイント
OpenAI の利用規約上のルール
OpenAI の利用規約(2025年時点)では、API経由で生成した画像の著作権は利用者に帰属し、商用利用が認められています。ブログでのアフィリエイト記事やプロモーション記事に使うことも規約上は問題ありません。
ただし以下は禁止されています。
- 実在人物の肖像権を侵害する画像の生成(政治家・有名人などの顔を模倣する)
- 他社のブランドロゴ・商標を含む画像の生成
- 暴力・性的・ヘイト表現を含む画像の生成
実在人物・ブランドの回避
プロンプトで回避するための定型フレーズです。
No identifiable public figures.
No brand logos, trademarks, or copyrighted symbols.
No text that could be confused with real company names.
実運用では、除外要素の最後に上記を追記しておけば、意図せずブランドが混入するリスクを減らせます。なお、生成AIの利用規約は改定されることがあるため、定期的にOpenAIの利用規約を確認することをお勧めします。
FAQ
Q1. gpt-image-2で生成したアイキャッチ画像は商用利用できますか?
OpenAIの利用規約上、API経由で生成した画像はユーザーが著作権を持ち、商用利用が認められています。ブログのアイキャッチとして広告掲載ページやアフィリエイトページで使うことは規約上問題ありません。
実際にブログ全記事のアイキャッチとしてAPI生成画像を使っていますが、明文的に「実在人物を模倣しない」「ブランドロゴを含めない」「暴力・性的表現を除外する」の3点をプロンプトに入れておけば、通常のブログ用途での問題は発生していません。
最終的な判断はOpenAIの最新利用規約を確認してください。本記事の内容は執筆時点(2026年5月)の情報です。
Q2. 毎回同じキャラクターでアイキャッチを作れますか?
images.edit APIに参照画像(base_avatar.png)を渡すことで、同一人物の一貫性を保って生成できます。images.generate(テキストのみ)ではキャラクターが毎回変わりますが、images.edit は参照画像の特徴を踏まえるため、安定度が上がります。
base_avatar.png を全記事で使い始めてから、ブログ一覧を見たときの「世界観の統一感」が出てきました。記事の内容と関係なく「このブログらしい」とわかるビジュアルトーンが生まれると、記事ページを開いてもらいやすくなります。
ただし images.edit でも100%同一にはならないため、顔が崩れた場合はリトライまたはCanvaフォールバックに切り替えてください。
まとめ:アイキャッチを「仕組み」にする
gpt-image-2を使ったアイキャッチ生成の全手順を振り返ります。
| ステップ | 内容 | ポイント |
|---|---|---|
| 1. プロンプト設計 | 6要素で英語プロンプトを組む | 構図・色調・除外要素を具体的に |
| 2. アバター固定 | base_avatar.png を images.edit に渡す |
参照画像の品質が一貫性を左右する |
| 3. 構図ローテーション | 4軸で直近3記事と被らない組み合わせを選ぶ | ログを残して次回も確認できるようにする |
| 4. API実行 | generate_eyecatch.py を1コマンドで実行 |
--no-confirm で自動完走も可 |
| 5. WordPress設定 | frontmatter の eyecatch / eyecatch_alt を記述 | publish_post.py が自動でアイキャッチを紐づける |
| 6. リカバリ | 3回リトライ → Canvaフォールバック | プロンプトのチェックリスト5項目で原因を特定 |
| 7. 費用管理 | quality: high × 1536×1024 × 月8本 = 約230円 | lowに下げてもアバター崩れが起きやすい |
この設計を1度作ってしまえば、以降は 06_eyecatch_spec.md に場面を書いてコマンドを1発叩くだけです。「アイキャッチを毎回考える作業」から「設計した仕組みを動かす作業」に変わります。
「アイキャッチ以外のブログ自動化(記事作成・X投稿・分析)」は、AIでブログ運営を自動化する5ステップ完全ガイドでまとめています。本記事と合わせて読むと、全体のフローが把握できます。
なお、ブログ自動化ツールの連携方法については「Claude CodeでWordPress投稿を自動化する方法」でも解説する予定です。
50枚の試行錯誤ログ・プロンプトテンプレートの全バリエーション・構図ローテーションの実例一覧は、noteでまとめています。
