🎥 今回の参考動画はこちら ▼
1. Nano Banana Pro (Gemini 3) とは? - 建築×AIの革新
参考動画では「Nano Banana Pro」という愛称で紹介されていますが、これはGoogleの最新・最先端の画像生成AIモデル、gemini-3-pro-image-previewを指しています。
Webブラウザ上のGemini Advancedで利用できるこれらの機能は、実はAPI経由でPythonから制御することで、より強力な業務効率化ツールへと進化させることが可能です。
建築やインテリアデザインの現場において、以下のタスクを自動化・高度化できるのが最大の特徴です。
- 図面からの3Dパース生成: 平面図を読み込ませて、立体的な完成予想図を生成。
- リフォームシミュレーション: 既存の部屋の写真をもとに、家具の配置やスタイルを一瞬で変更。
- 高度なスタイル変換: 手書きスケッチをフォトリアルな写真に変換したり、逆に写真を水彩画風に加工したりする。
本記事のゴールは、動画で紹介されたテクニックを、エンジニア向けにPythonコードで再現可能な形で実装することです。
2. 必要な準備(環境構築)
まず、Googleの生成AIを利用するためのSDKをインストールします。
以下のコマンドで必要なライブラリをインストールします。
pip install -q -U google-genai pillowgoogle-genai: GoogleのAIモデルにアクセスするための公式SDKです。pillow: 画像処理を行うための標準的なライブラリです。
次に、Google AI StudioでAPIキーを取得し、環境変数またはコード内で設定します。
from google import genai
import os
# Google AI Studioで取得したAPIキーを設定
# 環境変数 'GOOGLE_API_KEY' に設定することを推奨します
api_key = os.getenv("GOOGLE_API_KEY")
if not api_key:
api_key = "YOUR_API_KEY"
# ライブラリは内部的に環境変数 GOOGLE_API_KEY を参照します
if api_key == "YOUR_API_KEY":
print("警告: 'YOUR_API_KEY' を実際のAPIキーに置き換えるか、環境変数 'GOOGLE_API_KEY' を設定してください。")
else:
os.environ['GOOGLE_API_KEY'] = api_key
print("Gemini APIのセットアップが完了しました。")
# 公式ドキュメントの構文に準拠してクライアントを初期化
client = genai.Client()
# プロフェッショナルなアセット制作に最適化されたモデルを選択
model_name = 'gemini-3-pro-image-preview'
print(f"使用するモデル: {model_name}")
3. 実装①:図面・スケッチから3Dパースを生成する
動画の0:10付近で紹介されている「フロアプラン(平面図)をレンダリング画像にする」工程を実装します。
Geminiの画像生成モデルは、テキストだけでなく「画像プロンプト」を受け取ることができます。これにより、「この図面の構造を保ったまま、立体的にして」というような、より複雑な指示が可能になります。
Python実装コード
以下のコードは、手元の図面画像(floor_plan.png)を読み込み、3Dパース画像を生成するサンプルです。
from google.genai import types
from PIL import Image
try:
# 画像ファイルの読み込み
image_path = "floor_plan.png" # あなたの図面画像パス
image = Image.open(image_path)
# プロンプトの作成
# 動画のテクニック:具体的なスタイル、照明、環境を指定することが重要です
prompt = (
"Turn this architectural floorplan into a high-quality 3D architectural rendering. "
"Create a multi-story building with a modern, sustainable design. "
"The building should be set in a dense urban environment. "
"The roof must reflect the structural qualities of the floorplan."
)
# APIリクエスト (前のステップで初期化した client を使用)
print("生成中...")
response = client.models.generate_content(
model=model_name,
contents=[prompt, image],
config=types.GenerateContentConfig(
image_config=types.ImageConfig(
aspect_ratio="16:9", # 出力画像の比率
image_size="2K" # Proモデルなら高解像度指定が可能
)
)
)
# 画像の保存
for part in response.parts:
if part.inline_data:
generated_image = part.as_image()
generated_image.save("architecture_render.png")
print("保存完了: architecture_render.png")
break
except FileNotFoundError:
print(f"エラー: 画像ファイル '{image_path}' が見つかりません。")
except Exception as e:
print(f"エラーが発生しました: {e}")
ポイント💡
contents=[prompt, image]: テキストと画像をリストで渡すことで、マルチモーダルな指示が可能です。image_size="2K":gemini-3-pro-image-previewならではの機能です。プレゼン資料にも耐えうる高解像度(2Kや4K)画像を生成できます。
4. 実装②:インテリアのリフォーム(Inpainting/Editing)
次に、動画の4:21付近にある「部屋の模様替え(Remodel a room)」を実装します。これはImage Editing(画像編集)機能を使用します。
Gemini APIの強力な点は、マスク画像(変更箇所の指定)を用意しなくても、自然言語だけで変更箇所を推論して編集してくれる点です。
コード例:特定の家具を変更する
from PIL import Image
try:
# 部屋の写真を読み込み
room_image_path = "my_room.jpg"
room_image = Image.open(room_image_path)
# 変更指示のプロンプト
# 「青いソファを革製のヴィンテージソファに変えて」といった具体的な指示が可能
edit_prompt = (
"Using the provided image of a living room, change only the sofa to a vintage brown leather chesterfield sofa. "
"Keep everything else in the image exactly the same, preserving the original style, lighting, and composition."
)
# APIリクエスト
print("インテリアを編集中...")
response = client.models.generate_content(
model=model_name,
contents=[edit_prompt, room_image]
)
# 編集後の画像を保存
for part in response.parts:
if part.inline_data:
edited_image = part.as_image()
edited_image.save("remodeled_room.jpg")
print("保存完了: remodeled_room.jpg")
break
except FileNotFoundError:
print(f"エラー: 画像ファイル '{room_image_path}' が見つかりません。")
except Exception as e:
print(f"エラーが発生しました: {e}")
この技術を使えば、クライアントに対して「この壁紙を白にしたらどうなるか?」「床を大理石にしたら?」といったシミュレーションを、その場で数秒で提示するアプリケーションが開発できます。
5. 応用:複数画像からムードボードを作成・具現化
動画の8:17付近では、Pinterestなどの画像を集めてムードボードを作成しています。Gemini APIは最大14枚の参照画像を一度に入力できるため、複数のリファレンス画像をもとに新しいデザインを生成することが可能です。
複数の画像から新しいデザインを生み出す
例えば、気に入った家具の画像や色味のサンプルを複数枚渡し、「これらの要素を統合したカフェの内装をデザインして」と指示することができます。
from PIL import Image
try:
# 複数の参照画像をリストに格納
ref_image_paths = ["ref_image_1.png", "ref_image_2.png", "ref_image_3.png"]
images = [Image.open(path) for path in ref_image_paths]
# プロンプトと画像のリストを作成
contents = [
"Create an interior photograph of a room that incorporates design elements and furniture from all the uploaded images. The photograph should be hyper-realistic and high quality.",
] + images
# APIリクエスト
print("複数画像から新しいデザインを生成中...")
response = client.models.generate_content(
model=model_name,
contents=contents
)
# 生成された画像を保存
for part in response.parts:
if part.inline_data:
moodboard_image = part.as_image()
moodboard_image.save("moodboard_design.png")
print("保存完了: moodboard_design.png")
break
except FileNotFoundError as e:
print(f"エラー: 参照画像が見つかりません ({e.filename})。")
except Exception as e:
print(f"エラーが発生しました: {e}")
6. まとめ
動画で紹介されていた「Nano Banana Pro」ことgemini-3-pro-image-previewは、建築やデザインのプロフェッショナルにとって強力なアシスタントとなります。
Web UIで手軽に試すのも良いですが、今回紹介したようにPython APIを活用することで、大量のパース生成を自動化したり、自社専用のデザインシミュレーターを構築したりと、応用の幅が大きく広がります。
ぜひ、あなたのクリエイティブワークフローにAIの力を組み込んでみてください🚀
この記事の自動化に使われた技術と思考法は、
すべて以下のアカデミーでインストールできます。