ポスタープロンプトの構造
ポスターは約1秒で印象を伝えなければならないため、機能するプロンプトに含めるのは4つだけです。主役となる被写体、ジャンルと雰囲気、ライティング、そしてテキストの配置場所です。最後の要素を省略する人が多いのですが、ここが重要です。スペースを空けるようモデルに指示しないと、フレームの端から端まで画像で埋め尽くされ、顔にかぶせずにタイトルを置ける場所がなくなります。
安定して機能する構造は次のとおりです。[被写体+アクション]+[ジャンルと雰囲気]+[ライティングとレンズ]+[カラーグレーディング]+[タイトルとクレジット用の明確な空白]+[アスペクト比]。数文程度に収めてください。長いプロンプトにしても、より良いポスターになるわけではありません。—モデルがテキストを文字化けさせる機会が増えるだけです。
覚えておくべき一文:ショットを説明し、その後でキャンバスのどこを空白にするかをモデルに伝える。
ジャンル別コピーペースト用プロンプト
以下はすべてテキストから画像を生成するためのプロンプトです。タイトル用のスペースを意図的に確保し、実際のワンシートと同じ形である2:3のフレームを指定しています。最も豊かなスタイルを求めるならGemini 3 Pro Imageで、タイトルのテキスト量が多いと分かっているならgpt-image-2で実行してください。
アクション
ゴールデンアワーの崩壊する屋上を、一人の特殊部隊員が疾走している。ほこりと瓦礫が空中で静止し、煙に覆われた空をヘリコプターが旋回している。35mmアナモルフィックレンズで撮影、強いリムライト、ティールとオレンジのカラーグレーディング、超高精細で映画的。上部3分の1は太字のメタリックなタイトル用にすっきり空け、下部15%はクレジットブロック用に暗くする。縦長のワンシート、2:3。
ホラー
夜の農家の薄暗い廊下を、戸口越しに見ている。一番奥には、ぼやけた一人の人影が立っている。かすかな月明かり、強いフィルムグレイン、彩度を落とした緑と病的な黄色、深い影が端を飲み込んでいる。50mm、不穏なネガティブスペース。上部は細いセリフ体のタイトルと短いタグライン用に空ける。縦長のワンシート、2:3。
SF
夜、一人の人物が屋上からネオンに輝く巨大都市を見下ろしている。そびえ立つホログラム看板、光の軌跡を残す飛行車両、ボリュメトリックフォグ、シアンとマゼンタの配色、濡れた反射面、超広角の映画的構図。上部中央は横長の未来的なタイトル用に明確なスペースを確保し、下端はクレジット用に空ける。縦長のワンシート、2:3。
ロマンス
夕暮れの雨に濡れた街路で、2人が電飾の下に近く立っている。暖かく柔らかなボケ、穏やかな逆光、浅い被写界深度、フィルム写真のような色調、親密で静かな雰囲気。上部にはエレガントな筆記体タイトル用の広い空を残し、下部には1行のタグライン用のスペースを空ける。縦長のワンシート、2:3。
アニメーション
勇敢な若い発明家と、小さく丸いロボットの相棒が、日の出の草原の丘に立っている。豊かで様式化された3Dアニメーション映画のルック、柔らかなグローバルイルミネーション、暖かく鮮やかな色、表情豊かな顔、ファミリー向けアドベンチャーの雰囲気。空の上部は大きく丸みを帯びたタイトル用に開け、下部は公開日ストリップ用に空ける。縦長のワンシート、2:3。
上記のように、アニメーションのルックは一般的なものにしてください。特定のスタジオの作風やキャラクターを名前で指定すると、商用ポスターに持ち込みたくない商標の問題に踏み込むことになります。

自分の写真をポスターに変える
最も検索されている使い方は「自分をポスターに載せて」です。これは画像編集の作業です。写真を参照画像として渡すと、モデルが本人らしさを維持しながら、その写真を中心にポスターを構成します。自分の写真、または権利を持つ架空のキャラクターを使ってください。—実在の有名人や商標登録されたキャラクターは避けましょう。同意なく他人の顔をポスターに載せることは、ここで唯一、実際にトラブルにつながり得る近道です。
写真を添付した状態で、以下を画像編集モデルに貼り付けてください:
アクションの主役
アップロードした私の写真を主役として使い、映画的なアクション系ワンシートを作成してください。中央にローアングルのヒーローポーズ、ゴールデンアワーのリムライティング、背後に煙と火の粉、ティールとオレンジのカラーグレーディング。私の顔と本人らしさはそのまま維持してください。上部3分の1はタイトル用に空ける。縦長、2:3。
ロマンス、2人の主役(写真を2枚添付)
アップロードした2枚の写真を2人の主役として使い、ロマンス映画のポスターを構成してください。2人の顔を近づけ、暖かな光を当て、背後には夕暮れの街路を柔らかくぼかしたボケとして配置する。2人の本人らしさを維持してください。上部は筆記体タイトル用、下部はタグライン用に空ける。縦長、2:3。
ホラー、ソロ
アップロードしたポートレートをホラー系ワンシートの主役に変えてください。顔の半分を影に入れ、冷たい月明かり、彩度を落とした配色、強いグレイン、背後に空っぽの廊下を配置する。本人らしさを維持してください。上部は細いタイトル用に確保する。縦長、2:3。
コードを書かずに試してみたいですか?
gpt-image-2の画像編集ページまたはGemini 3 Pro Imageの画像編集ページで実行するか、完成版のAI Movie Poster Makerを直接使ってください。.
どのモデルを使うべきか:テキストかスタイルか
2つのモデルの違いは、「テキストの正確さ」と「それ以外」の一線で明確に分かれます。
gpt-image-2は、私が試したどのモデルよりも画像内テキストを正確に描画します。密度の高いクレジットブロックや非ラテン文字にも対応しています。タイトルが日本語や中国語なら、これを選んでください。料金はトークン単位(GPT Protoでは入力100万トークンあたり$6.4、出力100万トークンあたり$24)なので、高品質で大きなポスターを1枚作る場合、画像単位の定額モデルより高くなります。また、サイズと品質を上げるほど料金も増えます。
Gemini 3 Pro Imageは反対方向の強みを持っています。より強いフォトリアルなスタイル、シリーズ全体でのキャラクターの一貫性、最大4Kの出力、そして1枚あたり$0.0804の定額料金です。バッチ処理を行うときに重要なのは、この予測しやすさです。
| |
gpt-image-2 |
Gemini 3 Pro Image(Nano Banana Pro) |
| 得意分野 |
正確で多言語に対応した画像内テキスト、複雑なレイアウト |
フォトリアルなスタイル、シリーズ全体でのキャラクターの一貫性 |
| 最大解像度 |
最大3840pxの長辺 |
最大4K(2:3で3392×5056) |
| GPT Protoでの料金 |
トークン制:入力100万あたり$6.4、出力100万あたり$24 |
1枚あたり$0.0804の定額 |
| 使うべき場面 |
タイトルの文字数が多い、または非ラテン文字で、正確さが必須の場合 |
アート、4K出力、または大量のバッチ処理が必要な場合 |
実際には、Gemini 3 Pro Imageでアートとスタイルを作り、タイトルがきれいに出ない場合、または第2言語が必要な場合に、gpt-image-2で正確なテキスト処理を行います。このトレードオフは現実のものです。gpt-image-2は画像1枚あたりの精度にコストがかかるため、テキストに本当に必要になるまでは使わないでください。
正しい比率にする
劇場用ワンシートは27×40インチ、つまり2:3の比率です。多くのプロンプトガイドでは、モデルのデフォルトである正方形の画像が提示されます。しかし、正方形のポスターは実物のポスターの隣に置いた瞬間に不自然に見えます。形状は明示的に指定してください。
gpt-image-2では、sizeにピクセルサイズを渡します。すぐに試す2:3画像なら"1024x1536"、印刷用にはさらに大きなサイズを指定できます。長辺は最大3840px、両辺は16の倍数、アスペクト比は3:1以内です。
Gemini 3 Pro Imageでは、aspect_ratioを"2:3"に、sizeを"4K"に設定します。これにより3392×5056となり、印刷にも十分な大きさになります。SNS向けには9:16がストーリーズに、4:5がフィードに適しています。
最も難しい部分:タイトル文字をくっきりさせる
これが最も頻繁に遭遇した失敗です。複雑なシーン、長いタイトル、タグライン、クレジットブロックを1つのプロンプトで描かせると、最初に壊れるのはテキストです。文字が溶け、単語の綴りを間違え、カーニングが崩れます。どちらのモデルも昨年の拡散モデルよりはるかに優れたテキストを描画しますが、詳細なアートワークと高密度なタイポグラフィを同じ工程で処理するのは、依然として苦手な部分です。
解決策は、2つの工程に分けることです。
1段階目:タイトル部分を空けた状態でアートワークを生成します(上記のプロンプトはすべてこの方法になっています)。2段階目:その画像を画像編集呼び出しに渡し、フォントと配置を明示したうえで、タイトル、タグライン、クレジットだけを追加するよう依頼します。モデルはフレーム全体を新しく作るのではなく画像を編集するため、テキストがきれいに配置される確率が大幅に高まります。
1段階目の画像を入力として使う、2段階目の画像編集呼び出し:
titled = generate(
"openai/gpt-image-2/image-edit",
{
"prompt": (
'Add the title "MIDNIGHT SIGNAL" in a bold condensed sans-serif '
"across the empty top third, a smaller tagline just below it, and a "
"credits block along the bottom edge. Do not change the rest of the image."
),
"images": [poster["outputs"][0]], # the pass-one image URL
"size": "1024x1536",
"quality": "high",
"response_format": "url",
},
)
print(titled["outputs"])
非ラテン文字のタイトルの場合は、2段階目をgpt-image-2で実行してください。より高い画像単価を支払う理由は、多言語テキストの描画性能にあります。覚えておくべき一文:モデルに画像を描かせることとタイトルを書かせることを、同時に行わせてはいけません。
避けるべき失敗
- 複雑なシーン、長いタイトル、複数のキャラクターを1つのプロンプトに詰め込む。最初に壊れるのはテキストです。—2段階に分けてください。
- 空白を残さない。確保された場所がないと、タイトルが顔の上に配置されます。
- 正方形で生成する。ポスターは2:3です。gpt-image-2では
sizeを1024x1536に、Gemini 3 Pro Imageではaspect_ratioを2:3に設定してください。
- 解像度を忘れる。デフォルトは約1Kです。—印刷用には、明示的に大きなサイズを指定してください。
- URLを期限切れにする。GPT Protoは一時的な画像URLを返すため、すぐにダウンロードするか、代わりに
b64_jsonをリクエストしてください。
- 実在の俳優の顔や商標登録されたキャラクターをプロンプトに入れる。自分の写真やオリジナルキャラクターを使いましょう。法的リスクに見合う価値はありません。
APIで実行する:5枚ではなく50枚作る
ここまでの内容は、ウェブツールで一度に1枚ずつポスターを作る方法です。APIを使う理由は、大量処理にあります。作品ごとに異なるタイトルを付ける、ポスターごとに5つのアスペクト比を作る、同じポスターを3言語で作る、といった作業です。GPT Protoでは、両方のモデルを1つの非同期パターンで実行できます。リクエストを送信し、予測IDを受け取り、完了するまでポーリングします。まずキーを環境変数に設定し(export GPTPROTO_API_KEY=sk-...)、決してハードコードしないでください。
ジョブを送信し、結果を待つ小さなヘルパー:
import os, time, requests
API_KEY = os.environ["GPTPROTO_API_KEY"]
BASE = "https://gptproto.com/api/v3"
HEADERS = {"Authorization": API_KEY, "Content-Type": "application/json"}
def generate(path, body):
# submit the job
r = requests.post(f"{BASE}/{path}", headers=HEADERS, json=body)
r.raise_for_status()
get_url = r.json()["data"]["urls"]["get"]
# poll until the prediction finishes
while True:
data = requests.get(get_url, headers=HEADERS).json()["data"]
if data["status"] in ("completed", "failed"):
return data # data["outputs"] holds the image URL(s)
time.sleep(2)
各モデルでポスターを生成する。同じ呼び出しで、bodyだけを変えます:
# gpt-image-2: pixel sizes + a quality level
poster = generate(
"openai/gpt-image-2/text-to-image",
{"prompt": PROMPT, "size": "1024x1536", "quality": "high", "response_format": "url"},
)
# Gemini 3 Pro Image: a size tier + an aspect ratio
poster = generate(
"google/gemini-3-pro-image-preview/text-to-image",
{"prompt": PROMPT, "size": "4K", "aspect_ratio": "2:3", "output_format": "png"},
)
print(poster["outputs"])
プロンプトをループ処理して、作品群全体をバッチ処理する:
genres = {"action": ACTION_PROMPT, "horror": HORROR_PROMPT, "scifi": SCIFI_PROMPT}
for name, prompt in genres.items():
out = generate(
"google/gemini-3-pro-image-preview/text-to-image",
{"prompt": prompt, "size": "4K", "aspect_ratio": "2:3", "output_format": "png"},
)
print(name, out["outputs"])
簡単なテストにはcURLを使う:
curl --location 'https://gptproto.com/api/v3/openai/gpt-image-2/text-to-image' \
--header 'Authorization: GPTPROTO_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"prompt":"<your poster prompt>","size":"1024x1536","quality":"high","response_format":"url"}'
注意点は1つです。同じエンドポイントでも、2つのモデルは異なるサイズパラメータを受け取ります。gpt-image-2はピクセルサイズと品質レベルを必要とし、Gemini 3 Pro Imageはサイズの段階(1K/2K/4K)とaspect_ratioを必要とします。認証とポーリングは同じですが、bodyは異なります。(これらの呼び出しはGPT Protoのドキュメントに記載されたリクエスト形式に準拠しています。本番環境で実行する前に、各モデルのページで現在のパラメータ一覧を確認してください。)
試してみる
コードを書く前に動作を確認したいですか?AI Movie Poster Makerを開くか、gpt-image-2とGemini 3 Pro Imageのモデルページにあるプレイグラウンドでプロンプトを実行してください。バッチ処理の準備ができたら、上記の呼び出しを必要な枚数のポスターに拡張できます。—各実行の料金は料金ページで正確に確認できます。