未来的な建築家のデスクの上で、AIがインテリアデザインを生成しているホログラムインターフェースの画像。背景にはPythonコードが見える。

AI画像生成

Gemini (Nano Banana Pro) API画像生成チュートリアル:PythonでAIインテリアデザインを実装

広告

🛋️
Gemini (Nano Banana / Pro) APIで実現する
AIインテリアデザイン入門
Pythonコードを使って、部屋の写真をアップロードするだけで理想の空間を生成。本記事では、公式ドキュメントに準拠した、確実で再現性の高いコードを交えて徹底解説します。

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



1. Gemini (Nano Banana / Pro)によるAIインテリアデザインとは?

Gemini APIは、テキストだけでなく画像も深く理解し、新たな画像を生成する強力なマルチモーダル能力を備えています。この能力を活用することで、これまで専門的なスキルが必要だったインテリアデザインの領域を、AIの力で自動化・効率化できます💡

本記事で紹介する画像生成モデルには、通称「Nano Banana」と「Nano Banana Pro」があります。これらは正式なモデル名に対応しており、用途に応じて使い分けます。

  • Nano Banana (gemini-2.5-flash-image): 速度と効率を重視したモデル。
  • Nano Banana Pro (gemini-3-pro-image-preview): より高品質で高度な編集が可能な最先端モデル。

本記事では、高品質な出力を得るために主に「Nano Banana Pro」を使用します。公式ドキュメントに記載の正しいPythonコードで、以下のようなタスクを実現できます。

  • 何もない部屋の写真を基に、指定したスタイルの家具や装飾を配置する
  • 既存の家具がある部屋の写真を編集し、家具の変更や追加を行う
  • 複数の参考画像(Pinterestなど)から、統一感のあるデザインムードボードを作成する

本記事のゴールは、これらの機能を実際にあなたの手で実装し、Gemini APIのクリエイティブな可能性を体験することです。

2. 必要な準備(環境構築・インストール)

実装に入る前に、Python環境を整え、必要なライブラリをインストールしましょう。また、Gemini APIを利用するためのAPIキーも必要になります。

Pythonライブラリのインストール

Googleの公式Pythonライブラリをインストールします。ターミナルで以下のコマンドを実行してください。

pip install google-genai pillow requests

pillowは画像の読み込み、requestsはURLからの画像取得に利用します。

Gemini APIキーの取得と設定

APIキーは、Google AI Studioから無料で取得できます。取得したAPIキーは、Pythonコード内で以下のように設定し、公式ドキュメントの通りgenai.Client()を使ってクライアントを初期化します。

from google import genai
import os

# Google AI Studio (https://aistudio.google.com/app/apikey) で取得したAPIキーを設定
# 環境変数に設定することを推奨します
# 例: os.environ['GOOGLE_API_KEY'] = "YOUR_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()

# --- ▼ モデルの選択 ▼ ---
# 愛称「Nano Banana Pro」は、より高品質で高度な編集が可能な 'gemini-3-pro-image-preview' を指します。
model_name = 'gemini-3-pro-image-preview'
print(f"使用するモデル: {model_name}")

これで準備は完了です。早速、具体的な実装に進みましょう🚀

3. 実装①:空の部屋を理想の空間にリモデルする

最初のステップとして、何もない部屋の写真から、指定したデザインスタイルのインテリアを生成してみましょう。動画で紹介されているような、洗練された空間を作り出します。

プロンプトの設計が鍵

重要なのは、AIに明確な指示を与えるプロンプトです。動画では、デザインスタイル、機能、色、素材、含めるべき家具などを細かく指定しています。特に「元の部屋の構造(壁、窓、床)は変更しない」という指示は、リアリティを保つ上で非常に重要です。

Pythonコード例

以下は、空の部屋の画像(empty_room.png)を読み込み、プロンプトを添えて画像を生成する公式ドキュメント準拠のコードです。

from PIL import Image

try:
    # 画像ファイルを読み込む
    img = Image.open('empty_room.png')

    # 詳細なプロンプトを作成
    prompt = """
THIS AN IMAGE OF AN EMPTY ROOM. KEEP THE ARCHITECTURAL STRUCTURE (WALLS, WINDOWS, FLOORING, CEILING HEIGHT, AND NATURAL LIGHTING) EXACTLY AS SHOWN IN THE ORIGINAL IMAGE. USING THIS AS THE BASE, GENERATE A HYPER-REALISTIC, PROFESSIONALLY DESIGNED INTERIOR THAT REFLECTS THE FOLLOWING VISION:

- DESIGN STYLE: [japandi minimalism]
- FUNCTION OF THE ROOM: [Living room]
- COLOR PALETTE PREFERENCES: [2026 trending color palette]
- KEY MATERIALS OR TEXTURES: [2026 trending key materias and textures]
- FURNITURE TO INCLUDE: [couch, rug, coffee table, a media console, a tv, artwork on the walls, and alot of beautiful houseplants to give the room life. decorate the room accordingly]

I REPEAT: DO NOT ALTER THE STRUCTURE OR ANGLE OF THE ORIGINAL ROOM. KEEP THE IMAGE'S PROPORTIONS AND PERSPECTIVE THE SAME. ONLY ADD FURNITURE, DECOR, AND TEXTURES BASED ON THE INPUT ABOVE. THE RESULT SHOULD FEEL COMPLETE, REFINED, AND ARCHITECTURALLY APPROPRIATE.
"""

    # 画像生成リクエストを送信 (前のステップで初期化した `client` を使用)
    print("AIによるリモデルを開始します...")
    response = client.models.generate_content(
        model=model_name,
        contents=[prompt, img]
    )

    # 生成された画像を保存
    # response.parts から画像データを取り出す
    for part in response.parts:
        if part.inline_data:
            generated_image = part.as_image()
            generated_image.save('remodeled_room.png')
            print("リモデルされた部屋の画像を 'remodeled_room.png' として保存しました。")
            break

except FileNotFoundError:
    print("エラー: 'empty_room.png' が見つかりません。コードと同じディレクトリに画像を配置してください。")
except Exception as e:
    print(f"予期せぬエラーが発生しました: {e}")

このコードを実行すると、プロンプトに基づいた家具や装飾が配置された、新しい部屋の画像が生成されます。

4. 実装②:既存の部屋を部分的に編集・再構成する

次に、すでに家具が配置されている部屋の写真を基に、特定の部分だけを編集してみましょう。これにより、既存の空間のインスピレーションを得るのに役立ちます。

編集指示プロンプト

この場合のプロンプトは、変更したい点を具体的に指示するのがポイントです。「コーヒーテーブルを新しいものに変えて」「もっと観葉植物を増やして」「ソファをL字型にして」といった具体的な編集指示を与えます。

from PIL import Image

try:
    # 編集したい部屋の画像を読み込む
    img_before = Image.open('my_room_before.png')

    # 編集指示プロンプト
    edit_prompt = """
EDIT INSTRUCTIONS:
[I want a new coffee table that matches the room. I would like more house plants to fill the space. I want artwork on the walls that match the design aesthetic already established. I want magazines on the table for reading. I want my couch to be L shaped]

I REPEAT: DO NOT CHANGE ANYTHING ELSE. MAINTAIN ALL OTHER ELEMENTS EXACTLY AS THEY APPEAR IN THE ORIGINAL PHOTO.
"""

    # 画像編集リクエストを送信
    print("AIによる部分編集を開始します...")
    response_edit = client.models.generate_content(
        model=model_name,
        contents=[edit_prompt, img_before]
    )

    # 編集後の画像を保存
    for part in response_edit.parts:
        if part.inline_data:
            edited_image = part.as_image()
            edited_image.save('my_room_after.png')
            print("編集後の画像を 'my_room_after.png' として保存しました。")
            break

except FileNotFoundError:
    print("エラー: 'my_room_before.png' が見つかりません。コードと同じディレクトリに画像を配置してください。")
except Exception as e:
    print(f"予期せぬエラーが発生しました: {e}")

このテクニックを使えば、元の画像の雰囲気を保ちつつ、新しいアイデアを試すことができます。

5. 応用編:複数の参考画像からムードボードを生成する

最後に、複数の参考画像からインスピレーションを抽出し、一つのデザインコンセプトとしてまとめる「ムードボード」を作成します。これは、プロジェクトの初期段階でデザインの方向性を固めるのに非常に有効です。

複数画像のアップロード

contents引数に、プロンプトと複数の画像オブジェクトをリストとして渡すことで、モデルはすべての画像をコンテキストとして認識します。

from PIL import Image

try:
    # 参考画像をリストとして読み込む
    image_paths = ['ref1.png', 'ref2.png', 'ref3.png', 'ref4.png', 'ref5.png']
    
    print(f"読み込み中の画像: {image_paths}")
    images = [Image.open(path) for path in image_paths]

    # ムードボード生成用のプロンプト
    moodboard_prompt = """
CREATE A PHOTOGRAPH OF AN INTERIOR DESIGN MOOD BOARD THAT INCORPORATES ELEMENTS FROM ALL THE UPLOADED IMAGES. THE MOOD BOARD SHOULD BE ORGANIZED, THOUGHT OUT, AND CRAFTED LIKE A PROFESSIONAL INTERIOR DESIGN MOOD BOARD FOR DESIGN PURPOSES. YOU MAY MINIMALLY OVERLAP ELEMENTS WHEN APPLICABLE AND USE DESIGN TECHNIQUES LIKE COLLAGING AND TRANSPARENCY. WHITE BACKGROUND. DO NOT WRITE ANY WORDS YOURSELF.
"""

    # プロンプトと画像リストを結合
    request_contents = [moodboard_prompt] + images

    # ムードボード生成リクエスト
    print("AIによるムードボード生成を開始します...")
    response_moodboard = client.models.generate_content(
        model=model_name,
        contents=request_contents
    )

    # 生成された画像を保存
    for part in response_moodboard.parts:
        if part.inline_data:
            moodboard_image = part.as_image()
            moodboard_image.save('design_moodboard.png')
            print("デザインムードボードを 'design_moodboard.png' として保存しました。")
            break

except FileNotFoundError as e:
    print(f"エラー: 画像ファイルが見つかりません ({e.filename})。すべての参照画像が正しいパスに存在するか確認してください。")
except Exception as e:
    print(f"予期せぬエラーが発生しました: {e}")

この機能により、散在するアイデアを視覚的に統一されたコンセプトへと昇華させることができます。

6. まとめ

本記事では、公式ドキュメントに厳密に基づいたclient.models.generate_content()構文を用い、Gemini API (Nano Banana / Pro) によるインテリアデザイン生成・編集を実装する方法を解説しました。空の部屋のリモデルから、部分的な編集、そしてムードボードの作成まで、プロンプトと画像を組み合わせることで、非常にクリエイティブなタスクが可能になります。

重要なのは、AIに何をさせたいかを具体的かつ明確に伝えるプロンプト設計です。高品質な結果を求めるなら「Nano Banana Pro」(gemini-3-pro-image-preview) の利用がおすすめです。ぜひ、本記事の正しいコードを参考に、ご自身のアイデアを形にしてみてください✅


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

運営者:OKIHIRO

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

-AI画像生成
-, , , ,