映画のような世界観を
コードから創り出す
動画で話題の「Imagine Art」の裏側にある最新モデル、Gemini 3 Pro (Nano Banana Pro) をPythonから制御。一貫性のあるキャラクター生成からストーリー構築まで、APIで自動化する最先端ワークフローを解説します。
🎥 今回の参考動画はこちら ▼
1. Nano Banana Pro (Gemini 3 Pro) とは? - 概要とメリット
こんにちは、AIアーキテクトのOKIHIROです。
今回の参考動画では、「Imagine Art」というツールを使って、映画のような一貫性のあるシーンを作り出すワークフローが紹介されています。非常に魅力的なツールですが、我々開発者にとって興味深いのは、その裏側で動いている技術です。
動画内でも言及されている「Nano Banana Pro」というモデル名。これは、Googleの最新画像生成モデル「Gemini 3 Pro Image Preview (gemini-3-pro-image-preview)」の別名(またはコードネーム)です。
このモデルは単なる画像生成AIではありません。以下のような開発者向けの強力な特徴を持っています。
- 思考プロセス (Thinking Process): 複雑な指示を理解し、構図を論理的に組み立ててから描画する機能。
- 最大14枚の参照画像: キャラクターや製品の一貫性を保つために、複数の参考画像をコンテキストとして渡せる。
- テキストレンダリング: 画像内の文字を正確に描画する能力が高い。
- Google検索のグラウンディング: 最新情報に基づいた画像生成が可能。
本記事では、この「Nano Banana Pro」をPythonから直接API経由で操作し、動画で紹介されていたような「一貫性のあるキャラクター生成」や「シネマティックな広告制作」を、プログラムで自動化する方法を解説します。
2. 必要な準備(環境構築)
まずは開発環境を整えましょう。Googleの最新の生成AIモデルを利用するには、新しいPython SDKであるgoogle-genaiを使用します。
以下のコマンドでライブラリをインストールしてください。
pip install google-genai※注意: 以前の google-generativeai ではなく、新しい google-genai ライブラリを使用する点がポイントです。
次に、APIキーを取得し、クライアントを初期化します。
from google import genai
from google.genai import types
from PIL import Image
import os
# APIキーの設定(環境変数などから読み込むことを推奨)
client = genai.Client(api_key="YOUR_API_KEY")3. 実装・使い方の解説
ここからは、動画で紹介されていた3つの主要なワークフローを、Pythonコードで実装していきます。
ワークフローA: 一貫性のあるキャラクター生成
動画では、1人のキャラクターを異なるカメラアングル(広角、クローズアップ、ローアングル)で生成していました。APIでこれを実現するには、参照画像機能を活用します。
まず、ベースとなるキャラクター画像を1枚用意し、それをリファレンスとして渡しながら、アングルを変えたプロンプトを送信します。
# プロンプトのテンプレート
base_character = "A rugged coal miner in his 40s, wearing worn clothes and an eye patch."
angles = [
"Wide establishing shot showing full subject and environment",
"Extreme close-up macro shot of the face, detailed textures",
"Low angle hero shot looking up at the subject"
]
# ベース画像の読み込み(初回生成した画像や手持ちの画像)
ref_image = Image.open("miner_base.png")
for angle in angles:
prompt = f"{angle}. {base_character} Cinematic lighting, photorealistic."
response = client.models.generate_content(
model="gemini-3-pro-image-preview", # Nano Banana Pro
contents=[prompt, ref_image],
config=types.GenerateContentConfig(
image_config=types.ImageConfig(
aspect_ratio="16:9",
image_size="2K" # 高解像度指定
)
)
)
# 画像の保存処理
if response.parts[0].image:
response.parts[0].image.save(f"output_{angle[:10]}.png")解説: contents リストにテキストと画像のオブジェクトを両方渡すことで、モデルはその画像の特徴(キャラクターの服装や顔立ち)を維持しながら、新しい構図で描画してくれます。Gemini 3 Proは最大14枚まで参照できるため、枚数を増やすほど一貫性が向上します。
ワークフローB: 画像から物語を展開する
次に、1枚の画像から「炭鉱に入っていく」「ダイヤモンドを見つける」といったストーリー性のある連作画像を生成する方法です。
ここでは、Geminiのマルチモーダル認識能力を使って、「現在の画像の状況」をテキスト化し、それを次のプロンプトの種にするループを回します。
# ストーリー生成のための関数
def generate_next_scene(current_image, action_instruction):
# 1. 画像認識で現在の状況を把握 (Gemini 2.5 Flashを使用)
analyze_prompt = "Describe this scene in detail to maintain continuity for the next shot."
analysis = client.models.generate_content(
model="gemini-2.5-flash",
contents=[current_image, analyze_prompt]
).text
# 2. 次のシーンの画像生成 (Nano Banana Pro)
next_prompt = f"Based on the previous scene: {analysis}. Next action: {action_instruction}. Photorealistic, cinematic style."
response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=[next_prompt, current_image], # スタイル維持のため画像も渡す
)
return response.parts[0].image
# 実行フロー例
img1 = Image.open("miner_base.png")
img2 = generate_next_scene(img1, "The miner walks into the dark tunnel.")
img3 = generate_next_scene(img2, "The miner finds a glowing diamond in the wall.")このアプローチにより、前のシーンの文脈(服装や雰囲気)をAI自身に理解させ、ストーリーを破綻させずに次の絵を作らせることができます。
ワークフローC: シネマティックな商品広告(Porsche 911)
最後に、製品写真から広告動画用のカット(ヘッドライトのアップ、エンブレムの接写など)を生成する方法です。動画ではカスタムGPTsを使っていましたが、これもPython内で完結できます。
製品画像をGemini 2.5 Flashに分析させ、魅力的なカメラアングル案を出させます。
product_image = Image.open("porsche.png")
# クローズアップショットの案をAIに考えさせる
plan_prompt = """
You are a cinematic director. Look at this product image.
Suggest 3 different close-up shots to create a premium advertisement video.
Output only the prompt descriptions for image generation.
"""
planning_response = client.models.generate_content(
model="gemini-2.5-flash",
contents=[product_image, plan_prompt]
)
# 提案された各アングルで画像を生成
shot_prompts = planning_response.text.split("\n")
for shot_prompt in shot_prompts:
if not shot_prompt.strip(): continue
print(f"Generating: {shot_prompt}")
img_response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=[shot_prompt, product_image],
config=types.GenerateContentConfig(
image_config=types.ImageConfig(aspect_ratio="16:9")
)
)
# 保存処理...4. 応用・注意点
Thinking Processの活用
Gemini 3 Pro Image Previewでは、デフォルトで「思考プロセス」が働き、複雑なプロンプトの意図を汲み取ろうとします。レスポンスの中に thought フィールドが含まれており、AIがどのように構図を決定したかを確認できる場合があります(Python SDKのバージョンによる)。
解像度とコスト
コード内の image_size="2K" のように、高解像度指定が可能です(最大4K)。ただし、解像度が高いほど生成にかかるトークン消費や処理時間が増えるため、テスト段階ではデフォルト(1K相当)や gemini-2.5-flash-image (Nano Banana) を使い、本番出力で Pro モデルを使うのが賢い運用です。
動画化について
今回生成した一連の画像は、Kling AIやRunway、あるいはGoogleの動画生成モデル「Veo」に入力することで、動画内で紹介されていたような高品質なビデオクリップに変換できます。一貫性のある静止画さえ作れれば、動画のクオリティは保証されたも同然です。
5. まとめ
今回は、動画で話題の「Imagine Art」の裏側にある技術、Gemini 3 Pro (Nano Banana Pro) をAPIで制御する方法を解説しました。
- Nano Banana Pro は
gemini-3-pro-image-previewとして利用可能。 - 参照画像機能 を使うことで、キャラクターや製品の一貫性を維持できる。
- Gemini 2.5 Flash と組み合わせることで、画像分析 → プロンプト生成 → 画像生成 の完全自動化が可能。
このワークフローを組めば、あなたは「監督」として指示を出すだけで、AIがカメラマンと演者の役割をこなし、無限の映像素材を生み出してくれます。
ぜひ、あなたのプロダクト開発やクリエイティブ制作に取り入れてみてください。
この記事の自動化に使われた技術と思考法は、
すべて以下のアカデミーでインストールできます。