AIによる建築デザイン支援ツールのインターフェース。Pythonコードと建物のホログラムが表示されている。

AI開発・活用事例

【Python】Gemini 3 Pro (Nano Banana Pro) で建築パース生成&リノベーションを自動化する方法

広告

AI Architecture Tutorial
Gemini 3 Pro Image (Nano Banana Pro) で建築デザイン業務を自動化する
動画で話題の「Nano Banana Pro」の正体は、Googleの最新画像生成モデルでした。図面の3D化、内装リフォーム、スタイル変換をPythonで実装する方法を、AIアーキテクトが徹底解説します。
🐍 Python
Gemini 3 Pro Image
🖼️ Pillow

🎥 今回の参考動画はこちら



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 pillow
  • google-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の力を組み込んでみてください🚀


【免責事項】本記事は、AI技術を用いて作成された部分を含みます。公開時点の情報に基づいていますが、AIの仕様変更やサービスの更新により、内容が現状と異なる場合があります。最新の情報は公式サイト等でご確認ください。
  • この記事を書いた人
  • 最新記事

運営者:OKIHIRO

Gemini API × Python のスペシャリスト。 AI技術でWeb制作とブログ運営を完全自動化するエンジニア。 理論だけでなく、実際に動くコードとシステム設計で、クリエイターの時間を「単純作業」から解放する。 最先端AIの実装ノウハウを、どこよりも分かりやすく発信中。

-AI開発・活用事例
-, , , ,