AIとともに描く、これからの3D空間デザイン
Takramの野見山です。デザインエンジニアとして、テクノロジーと人を繋ぐ仕事をしています。ここ最近Takramでは、生成AIに関するプロジェクトを多数手掛けています。このnoteでは、それらのプロジェクトに共通する技術やアイデアを抽出して、今後も応用できる形で紹介したいと思います。
今回扱うテーマは、画像生成AIを活用した空間デザインの可能性についてです。画像生成AIは、自然言語だけでグラフィックやイメージを作成できる魅力的なツールです。しかし、空間や構図、スタイルなどを自然言語で正確に指定するのは至難の業です。思い通りの結果を得るには、ユーザーの創意工夫と忍耐が求められます。
これまでTakramでも、映像制作や建築デザインのプロジェクトで、思い通りの空間を描写したいシーンが何度かありました。その時チームで試行錯誤して導いたのが、画像生成AIと3Dレンダリングを組み合わせて空間を描く方法です。この方法は、映像制作や建築デザインだけでなく、都市開発/イベント企画/イラスト制作など、幅広い分野での応用が期待できる内容です。
AIは空間や物理法則を認識できない
まず、前提として理解しておきたいのは、画像生成AIには空間や物理法則を正しく認識する能力がないということです。例えば、「机の下の本」というプロンプトで画像を生成してみると、以下のように机の上に本が置かれた画像が頻繁に生成されます。これは、AIが学習データに含まれる一般的なパターンに基づいて画像を生成するためです。
一方、動画生成AI「Sora」は、物理法則を認識しているかのような動作を見せることで話題になりました。例えば、人同士がすれ違う時に体を避けたり、奥の物体が手前の物体に隠れたりします。しかし、これも物理法則を本質的に理解しているわけではなく、一般的な動きのパターンを再現しているに過ぎません。実際、物理エンジンのような正確さはなく、不自然な動きが見られることもありました。
では、画像生成AIで意図した通りに空間を描くにはどうしたらいいでしょうか。次の章からは、画像生成AIとしてStable Diffusion(生成モデル:Dream Shaper 8)を使用して具体的に検証を進めます。
画像生成AIで空間を描く
検証1:空間のパターンを反映する
空間認識能力を持たない画像生成AIに対し、言葉だけで詳細な空間を伝えるのは非常に困難な作業です。もし空間の制約がある程度決まっているなら、一から画像生成するのはとても非効率的です。そこで検証1では、事前に3D上で空間のパターンを定義します。
空間のパターンを定義すると言っても、精巧に作り込まれた3Dモデルを制作するわけではありません。シンプルな直方体を組み合わせて、大体の形状が把握できる状態まで用意します。
続いてパターンが決まったら、Stable Diffusionに「パターン画像」と「パターンの説明文」を入力して空間を描きます。パターンの説明文は、ChatGPTにパターン画像を渡して言語化してもらいます。
説明文の内容は概ね正しそうですね。では実際にStable Diffusionに入力して空間を描いてみましょう。以下の結果1-3は、条件を変えずに同じ入力で3回ランダムに生成した結果です。
うーん、失敗です。アイソメトリックなカメラの構図はたまに反映されますが、細かなパターンは無視されます。入力として立体情報が不足しているようです。
検証2:空間のパターンを反映する(奥行きの追加)
立体情報を補強するため、空間の奥行き画像を追加します。空間の奥行きを3Dで描き、ControlNet(Stable Diffusionの拡張機能)のDepthを利用して入力します。
成功しました!ベッド、机、椅子、棚、絵画、窓が意図したとおりに配置されています。異なる画角でも生成してみましょう。「パターンの説明文」は変えず、3D上でカメラの位置を動かして「パターン画像」と「奥行き画像」を差し替えます。
こちらも概ね成功です。画角から見切れた絵画が本棚に変わったものの、許容範囲です。空間のパターンと奥行きを組み合わせることで、精度高く空間を描けることがわかりました。次に、空間のスタイルを操作する方法を検証します。
検証3:スタイルを追加する
空間のパターンが決まったら、次はその空間にスタイルを追加してみたくなります。「パターンの説明文」にスタイルの要素を加えることで、どのように変化するかを検証してみましょう。スタイルの指示を手動で加えるのは大変なので、再びChatGPTを活用します。
スタイルに関する文言がパターンの説明文に追加されました。これを元に「パターン画像」「奥行き画像」「(スタイルが追加された)パターンの説明文」をStable Diffusionに入力して、画像生成を行います。
概ね成功です。えんじ色のカーペットがたまに反映されないなど、生成モデルが不得意とするスタイルもありますが、ほぼ意図した通りに生成されています。他のスタイルも試してみましょう。
これらも概ね成功です!同じ空間のパターンでも、スタイルが変わると印象が大きく変わります。形状や奥行きまで変わるようなスタイルの指示は難しい場合もありますが、質感やテクスチャを変えるのには効果的です。
検証4:描いた空間を3Dで再現する
生成した画像を3Dモデルのテクスチャーに利用することで、描いた空間を3Dで再現できます。これにより、カメラを動かして空間の中を少しだけ移動できるようになります。
「少しだけ」と言うのは、生成した画像で描かれなかった部分(例:ベッドの裏側など)はテクスチャーとして成立しないためです。しかし、少し移動できるだけでも空間の立体感や身体感覚を想起することができます。ちょっとしたアニメーションの演出にも利用できるでしょう。
生成した画像を3Dで再現すると、リライティング(再照明)することも可能です。様々な照明環境を用意することで、同じ空間でも異なる印象のシーンを描くことができます。映画やゲームの演出、建築デザインのプレゼンテーションなど、空間の表現を変えたいときに応用できるでしょう。
追記:最近話題の動画生成AI「Luma Dream Machine」を用いて生成した画像を動かしてみました。前述した3Dの手法と比べ、カメラワーク操作の自由度は低い一方、生成した時に映っていなかった画角をうまく補完くれています。用途や目的に応じて、アニメーションの手法を選ぶとよいでしょう。
まとめ
今回の記事では、画像生成AIと3Dレンダリングを組み合わせて空間を描く方法を紹介しました。画像生成AIに対して、自然言語だけで空間の構成を指示するのはとても難しい作業です。しかし、3Dレンダリングと併用することで、人と生成AIの協調できる可能性が広がります。
「いい雰囲気の空間を作って!」と何も考えずに、全てを生成AIに任せることは簡単にできます。しかし、人自身が考える楽しさや面白さは、これからも大切にしたい要素です。人の役割をただ奪うのではなく、人の想像力やアイデアを膨らませるようなAIこそが、今後も求められるでしょう。生成AIによって人の能力が拡張された時どのような未来が拓かれるか、これからも考えていきたいと思います。
テクノロジーとデザインに関する情報は今後も定期的に発信していきます。もし興味のある方はnoteやXでのフォローをお願いします。