こんにちは、GIFTechエンジニアの佐藤です。
前回の投稿に続き第二弾!
生成AIを活用したアプリ『コミ単』の開発における挑戦と学びを記録します。
『コミ単』とは?
『コミ単』は、中高生をターゲットに、生成AIを楽しみながらその魅力を体験してもらうことを目的としたアプリです。
英単語を漫画に変換するプロセスを通じて、中高生に生成AIとの接点を提供し、最終的にはAIを身近なツールとして感じてもらうことを目指しています。
彼らの身近な悩みである「英単語がなかなか覚えられない」「既存の単語帳ではつまらない」という学習上の課題に着目し、日常の課題に生成AIが役立つことを知ってもらうきっかけとなれるよう設計しました。
構成
流れ
- 英単語を入力する
- GPTが漫画のストーリーとなる、タイトルとサマリを生成
- オリジナル漫画が生成される
- 自分のオリジナルストーリーに書き換えて再生成も可能
生成した漫画は、単語帳のように保存することができます。
システム構成
『コミ単』は、webアプリであること、少人数による高速な開発サイクルが求められるプロジェクトであること、を踏まえて構成を考えました。
アプリの頻繁な仕様変更に柔軟に対応するために、使用経験のあるFirebaseを利用することでサーバーレス構成にして工数削減に努めました。
Frontend : JavaScript(Next.js)
Backend : Python
Infrastructure : GCP/Firebase
Image GenAI : Stable Diffusion - Ultraモデル
Text GenAI : GPT - 4oモデル
FrontendはNext.jsを用い、Firebase Hostingでホストしています。
BackendはFirebase Functionsを用いて、PythonでAPIの実装をしました。
Firebase AuthenticationやFirestoreなどのマネージドサービスを活用することで、バックエンドの初期構築を大幅に効率化しました。 加えて、リソースのスケーリングが自動化されており、リリース後の負担軽減にも寄与した設計を目指しました。
開発始動 - 生成AIの技術選定
0からスタートしたこのプロジェクト。
どの生成AIの技術を使っていくのかの試行錯誤を重ねました。
テキスト生成AI、音楽生成AI、画像生成AI...
それぞれ作成したプロトタイプを実際に中高生に体験していただき、ヒアリングを行いました。
ヒアリングの結果「音楽はわざわざ音を聴くのが面倒」「漫画は読みやすくて気になる」などの意見から、プロダクトの方向性は"画像生成"に辿り着きました。
"画像生成"のなかでも楽しく触ってもらえるようなUI/UXデザインをいくつか用意し、"漫画"のUIが多数決の結果多く、"漫画生成"の方針に決定しました。
技術は?
テキスト生成を主にOpenAIを使用すると決めていたため、はじめは生成AIのAPIはOpenAIで統一しました。
テキスト生成:GPT
画像生成:DALL·E 3
DALL·E 3のイラスト生成の性能はDALL·E 2よりかなり向上しており、以下のように、簡単なプロンプトでアニメ風のイラストを生成することができました。
しかし、イラストではなく、"日本の漫画"という生成をする際に、特徴をうまく表現できず、アメコミ調になってしまい中高生ウケが安定しませんでした。
漫画風に生成させたもの↓
そこで、社内のAI部門の方に相談・調査をし、日本のアニメ画風を出すには、Stable Diffusionが最適だと分かりました。安定性やクオリティ向上にも繋がり、AIが生成する画像の質により中高生の反応も高まるため、APIを切り替えることを決断しました。
→ 画像生成:Stable Diffusion
その後も裏側で生成させる方法を変更したり、プロンプトを何度も調整し、安定した画像を生成できるように修正を重ねています。
ユーザーヒアリング
作成したプロトタイプを通して、現役の中高生約20名にヒアリングを行いました。
はじめは、実際に触ってもらうことに、緊張と不安とワクワクでごちゃごちゃになっていました。。
ですが、アプリを通して目的としていた
- 生成AIに魅力を感じてもらうこと
- 楽しみながら課題解決の一つの方法として使用してもらうこと
を達成することができました。
詳細には、数人に体験をしてもらっていたところ、横から「触ってみたい!」という声があったり、1人で何度も生成させていたり、「単語も印象残って覚えられそう」、「これって生成AIができてるのすごい」、「イラストが綺麗」、「ゲームみたいに面白い」という反応からこのプロジェクトへの価値を見出すことができ、次のフェーズに進めました。
格闘し続ける日々
『コミ単』のブラッシュアップを続ける日々。
たった1人でフロント・バック・インフラを設定、開発していく上で課題にぶち当たる毎日。
まだまだ漫画の統一性が取れない。
ストーリーをもっと面白くしたい。もっと漫画らしさを高めたい。画像生成の安定性を向上させたい。
こうした課題をもとに事業責任者と議論を重ねました。
そこで生まれたのが『Humanity 1.5』という概念です。
- Humanity1.0: 従来の人間のみによる創作
- Humanity1.5: AIと人間の協働
- Humanity2.0: AIと人間の完全な共生(将来的な展望)
生成AIはまだ人間の面白さを学習中です。
ユーモアの向上という課題に対して、私たちは人間との組み合わせをどのように実現するかを追求しました。
『コミ単』が目指すのは、AIが生成したストーリーをベースに、中高生が「これをもっと面白くできる!」と想像力を発揮できるような情報を提供することです。
AIが作ったストーリーを「面白さのたたき台」として提示し、それをきっかけに自分なりのアレンジを加える体験を提供する。
実際に『Humanity 1.5』を反映させたプロトタイプを作成し、ヒアリングを行いました。
「0からいきなりストーリーを作るのは難しいけれど、AIが出したものを元にするなら想像しやすい」といった反応がありました。
このフィードバックは、『Humanity 1.5』の実現が正しい方向性であることを証明しているのではないかと思います。
エンジニアとして挑戦し続ける
GIFTech事業で『コミ単』を開発する上で沢山の壁にぶつかり、悩み、学ぶ日々。
成長したい気持ちが高まり続け、そういった環境を与えてくれるGIFTech。
私がGIFTechなエンジニアを目指したきっかけは、自分の手でプロダクトを0から1へと導きたいという強い思いでした。ただ、開発の全工程に責任を持って取り組む中で、技術的な壁に直面することも多々ありました。
所属本部の技術リーダーたちとの技術討議や、全社横断の専門家とのナレッジ共有を通じて、より良い設計判断を重ねることができました。
この経験から、個々の専門性を組み合わせることで、プロダクト開発において技術の幅を広げ、諦めることなく挑戦し続けることができると実感しました。
ユーザーに価値のあるものを届けるために、沢山のチャレンジをさせてくれるこの環境が私は大好きで、エンジニアであり続けたい理由の一つです。
GIFTechという、エンジニアにとってとても成長価値のあるこの場で、挑戦させてもらえていることに心から感謝しています。
まだまだ成長途中の私ですが、このプロジェクトが確実に私の糧になっています。
今後も私が思う"かっこいいエンジニア"を目指して挑戦し続けます!
GIFTechについて知りたい方はこちら
公式サイト