最初の段階では夢の推定を行います。体験者が夢を全身で表現し、それを元にその人の夢が何であるかを推定します。本体験ではユーザに入力を求めることは無く、カメラの前で完結する設計になっています。 より詳細なフローをご説明すると、まず夢を全身で表現することを体験者に求め、その様子を3秒おきに3枚のキャプチャを撮ります。その画像と事前にシステムに設定したPromptをGPT4Visionに入力し、体験者の夢が何になることであるか、また、体験者は今自分がいる場所をどこと見立てて夢を表現しているかという2点を推定します。実際にやってみた例では、おもちゃのサッカーボールでリフティングしているシーンの3枚キャプチャが入力され”professional football player”, “stadium”と推定されています。
生成戦略
前段で”a professional ballerina”, “a theater of ballet”という推定結果が得られたとき、後段でどのような生成をするべきでしょうか。夢を叶えた未来では、自分自身の姿はどうなっているか不確定であり様々な可能性がある一方で、夢の舞台に関しては「いつかメトロポリタン歌劇場で踊りたい!」という風にある程度明確化されておりブレのないものだと仮定します。この考えを画像生成にも反映させるため、人物と背景で生成を分けるという方法をとりました。人物の生成ではバリエーションのある変換を行い、背景の生成では一貫性のある生成をそれぞれで行います。
こうして得られた視点推定の結果”from the perspective of an observer in the room”とPrompt推定で得られた”a theater of ballet”という情報をDALL·E 3に入力し、背景画像の元となる画像を生成します。次に、この画像を線画調に変換し、それをControl ImageとしてLCM + ControlNetのモデルを用いて10パターン生成を行います。このような段階を踏む理由は、DALL·E 3の入力情報に忠実な構造の画像が生成できるという利点を活かしつつ、後で生成される人物画像とトーンを合わせるためです。
次に、切り抜かれた画像を「夢を叶えた姿」にimg2img変換を行います。生成戦略で述べたように人物画像に関してはバリエーションがある変換するために、ここではControlNetは用いずに通常のimg2imgを利用します。今回はStability AIがリリースしたSDXL Turboのimg2imgモデルを採用しました。SDXL Turboに切り抜かれたキャプチャ画像と” a professional ballerina”を入力することで「夢を叶えた姿」が出力されます。