Blogこの広告は、90日以上更新していないブログに表示しています。Unityこんにちは。Activ8の岡村です。最近Activ8社内で生成AIハッカソンが行われたため、それに向けて作った簡単なUnityアプリをせっかくなので紹介します。*1アプリの内容は、カメラで撮影した画像をAIに見せてプロンプトを生成し、生成したプロンプトで画像生成する、といったものです。デモ汚くて申し訳ないですが、自分の机の写真を用意しました。workspace.↓すごく似ている、というわけでもないのですが、画像に映っているところどころのオブジェクトは再現されており、不思議な近親感を持つ画像に仕上がっています。10Unityを使っているのは単純に私自身がUnityに慣れているからです。あと、時間があればUIを作りこんだりスマホ対応したかったな......というのもあります。対応したタイミングであったため、このマルチモーダル機能を活かしたものを作りたいと考えていました。APIにも搭載されており、gpt-4-vision-previewモデルとして利用可能になっています。画像を認識して説明し、それを基に加工された画像を用意する、といった仕組みの作成に挑戦してみました。variation機能があるのですが、こちらはプロンプトの指定ができません。プロンプトの指定ができると、画像の加工時に情報の追加や削除が柔軟にできて可能性が広がるのではと考え、一度プロンプトに変換する方法を試してみました。突貫で作ったのもありあんまり見せられたコードではないのですが、かいつまんで紹介していきます。アプリ自体のつくりはシンプルで、撮影し、加工して、結果を見るという3ステートで構成されており、ステートの管理はImtStateMachineを使用しました。github.com撮影ステートでは、カメラの映像をWebCamTextureで取得し、撮影ボタンを押したら新しいテクスチャを作成してデータをコピーします。destTexture;}加工ステートではテクスチャをjpegに変換し、OpenAIにアップロードしています。Convert.ToBase64String(jpg);zenn.devbase64エンコードしたjpeg画像を、「この画像を画像生成のプロンプトに使えるくらい詳細に説明してください」といった感じのプロンプトとともにHttpRequestで投げています。token);こうして受け取ったプロンプトを基に、DALL-E3で画像生成を行います。token);最後に画像生成した結果をダウンロードし、テクスチャとして使えるようにしておしまいです。1);texture.LoadImage(response);振り返りUnityでの画像の扱いは以前からGPU周りの事情などが絡んでいて負荷を避けるのが難しいのですが、最近はAsyncGPUReadbackやImageConversionなどのAPIが生えていて、だいぶ楽になっているように感じました。上記コードではまだ妥協して古いAPIを使ってしまっているところが多いので、後でよりフレームレートに優しいコードに変えておきます。APIをC#から直接叩く際、Jsonペイロードの用意が中々面倒でした。charset=utf-8のままでも問題なく使えたのですが、images/generationsではapplication/jsonでないとエラーが出てしまい、回避のためにByteArrayContentクラスを使わなければなりませんでした。APIKeyの流出問題もあるので、公開するアプリではきちんと間にサーバーを挟んであげることをおすすめします。生成の結果によってはコンテンツポリシーに違反しているというエラーが発生することもあり、日常の画像を使う際にはこういったエラーのハンドリングにも気を付ける必要がありそうです。}}画像を取り扱うAPIはコストも高く、2023年12月9日現在、プロンプト生成→画像生成の一連の流れで0.1ドル程度かかってしまっていたので、試す場合はコストにもご注意ください。画像認識のdetailを下げることで多少は回避できますが、クオリティとのトレードオフになります。こんにちは、エンジニアのクロ(@kro96_xr)です。こんにちは、エンジニアのクロ(@kro96_xr)です。先日...2023-10-24生成AIによるモーション生成技術の概観こんにちは、エンジニアの渡辺(@mochi_neko_7)です。昨今の...2023-08-28RustでVectorDBを触りたい?!こんにちは、エンジニアの渡辺(@mochi_neko_7)です。...2023-07-24Unityでもgrpc-dotnetを使ったgRPCがしたいこんにちは、エンジニアの渡辺(@mochi_neko_7)です。5はてなブログをはじめよう!Synamonさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。