表示される4枚のイラストから好きなものを1枚選ぶ、という質問に答えていくと、自分が惹かれるキャラクターの属性を読み解いてくれる診断アプリ。髪型や衣装、雰囲気といった見た目の好みだけでなく、その奥にある「なぜそれが好きなのか」までを結果として示し、最後に診断結果に合わせたオリジナルキャラのイラストをAIがその場で1枚描く。登録不要・無料で、全年齢向けに作っている。
生成AIを使ったアプリが増えるなかで、AIでなければ成り立たない「AI時代のアプリ」を作ってみたかったのが出発点。大量の画像による新鮮な診断体験と、好みに合わせた画像生成を組み合わせた。
主な機能
- 4択×30問の画像診断: 1問ごとに4枚のイラストが表示され、直感で好きな1枚を選ぶ。10問ずつの3章構成で、章の区切りには途中経過が表示される。
- 2段階の結果: 髪型などの見た目の好みから決まるタイプと、選んだ衣装や表情から読み解く深層のタイプの2段階で結果を出す。
- 根拠の表示: 結果画面では、どの回答がその結果につながったのかを内訳として確認できる。
- オリジナルイラストの生成: 診断結果の属性を組み合わせて、世界に1枚だけのキャラクターイラストをAIが生成する。
- シェアと保存: 結果をXでシェアしたり、リンクをコピーしたり、結果をまとめた画像を保存したりできる。
使い方
- 「診断をはじめる」を押す。
- 表示される4枚のイラストから、好きなものを1枚ずつ選んでいく(全30問)。
- 結果画面でタイプと回答の内訳を確認する。結果を読んでいるあいだに専用のイラストが生成される。
- 気に入ったらシェアや画像保存をする。
技術構成
フロントエンドはVanilla TypeScript + Viteで作り、Cloudflare Pagesで配信している。APIはHonoで書き、Google CloudのCloud Runで動かしている。結果のイラストは画像生成モデル Illustrious XL を使い、NVIDIA L4 GPUを載せたCloud Runで生成する。どちらもアクセスがないときはゼロまでスケールダウンするので、待機中の費用はほぼかからない。
診断で表示するイラストは、属性の組み合わせごとに手元のGPUで事前に大量生成し、ストレージから配信している。診断中はGPUを使わず、費用がかかるのは最後の1枚の生成だけになる。データベースは持たず、回答の履歴は有効期限付きのトークンとしてブラウザ側に保持する。
工夫した点
一番時間をかけたのは、診断結果の「当たっている感」をどう高めるかだった。最初は2枚から1枚を選ぶ20問の形式で公開したが、出題方法・問数・選択肢の数を変えたときに結果の精度がどう変わるかをシミュレーションで比べ、4枚から1枚を選ぶ30問の形式に切り替えた。4枚の中身は、2〜3個の属性だけが違い残りは同じというペアを同じ画風で2組選んでいるので、「何を基準に選んだか」が回答から読み取りやすい。
画像生成は自由入力のプロンプトを受け付けず、診断で確定した属性の組み合わせだけから作る。生成後には自動チェックを入れ、幼く見える絵を弾くなど全年齢向けの範囲に収まるようにしている。GPUの費用が想定外に膨らまないよう、予算アラートと自動停止の仕組み、リクエスト数の制限も用意した。