【AIでアプリ開発】StableDiffusionのモデル管理アプリを作る!ユースケース定義編【バイブコーディング】
AIを使って軽めのウェブアプリ開発をやってみようという試みをやってみます。
今回は「AIでStableDiffusionのモデル管理アプリを作る!」の第一回、ユースケース定義編です。
この企画で作るアプリは
「Stable Diffusionのモデルとプロンプトを管理するアプリ」
です。
開発には人間が自然言語で指示を出してAIがコーディングを行う手法
(=バイブコーディング; vibe coding)を使います。
この方法では作ってほしいものをどれだけ上手にAIに伝えられるかが重要になると思います。
以下の記事で、バイブコーディングをするとき実践すべき「作ってほしいものをちゃんと言葉にするためのプロセス」を解説しました。

このプロセスをこれから数回に分けて実演をして、ソフトウェアエンジニアではない一般人がAIでアプリを作るチュートリアル的なものをお伝えしたいと思います。
[rtoc_mokuji]
ユースケース定義とは?
ユースケースってなに?
「ユースケース」とは、ユーザーがシステムを使ってやりたいことをまとめたものです。
システム開発では、「どんな人が」「どんな目的で」使うのかを明確にするために、とても大切な考え方です。
たとえば、オンラインストアを作る場合を考えてみましょう。
お客さん(ユーザー)は、このサイトで何をしたいでしょうか?
- 商品を検索したい
- 商品をカートに入れたい
- 商品を購入したい
- 購入履歴を確認したい
このように、ユーザーがシステムを使って達成したいことが、それぞれ1つの「ユースケース」です。
また、ユーザーは人間だけとは限りません。
ときには、他のシステムが自動でデータをやり取りするようなケースもあります。
このように、システムと関わる「人」や「もの」のことを、専門的には アクター(Actor) と呼びます。
なぜユースケースを定義するか
ユースケースを整理することで、次のようなメリットがあります。
ユーザーの視点で考えられるようになる
→ 誰のために、どんな目的で作るのかがはっきりします。
→ 開発者がユーザーのニーズを理解しやすくなります。
必要な機能が明確になる
→ システムが「何をできるようにすべきか」が整理されます。
→ 作るべき機能の抜け漏れを防げます。
AIを使うときのポイント
ユースケースを考えるときは、できるだけ多くの使い方を洗い出すことが大事です。
そのためには、AIと会話しながらブレインストーミング(アイデア出し)をするのがおすすめです。
たとえば、AIに次のように聞いてみましょう。
「このアプリのユーザー(アクター)は誰があげられますか?」
「このアクターはどんな使い方をすることが想定されますか?」
こうやって、「アクター」と「使い方」をセットで考えると、抜けのないユースケースを作ることができます。
実際にユースケースのリストアップをしてみる
まずはおおざっぱに
では、Stable Diffusionのモデルとプロンプトを管理するアプリのユースケースを考えてみましょう。
まずは、おおざっぱでいいのでどんな使い方があるかをリストアップします。
ここで重要なのは、ユースケースの詳細度よりも数です。ブレインストーミングだと思ってたくさんリストアップしてみてください。
たとえば、今回のアプリだと「生成画像の管理」や「モデルファイルの管理」、「Civitaiからモデルを自動でダウンロードする」とかがありますね。
ざっくりリストアップしたら、少しだけ細分化します。(細分化できるものだけでよいです。)
生成画像の管理を少し詳しく分解してみると、
- 生成画像の管理
- 新規プロンプトの作成
- プロンプトの参照・検索
- プロンプトの編集
- プロンプトの削除
のように分けることができます。
いったんこれくらいの粒度にとどめて、簡単なユースケースのリストを作成しましょう。
いったんリストができたらAIに抜け漏れがないかなどをレビューしてもらうとよいと思います。
たとえば、「このような管理アプリで一般的に考えられるユースケースは?」のようにAIに聞いてユースケースを補強するとよいです。
AIに詳細化してもらう
おおざっぱなリストができたら、AIにそれをわたして詳細化してもらいましょう。
詳細化するときには以下の項目を含めるようにすると、次のステップで行うアプリの機能定義がしやすくなると思います。
- ユースケース名:
短く、分かりやすい名前をつけます。 - アクター:
ユースケースを実行する「誰か」または「何か」。 - 目的:
このユースケースを通じて、ユーザーが何を達成したいのか。 - 事前条件:
ユースケースが開始される前に満たされているべき条件。 - 基本フロー(正常系):
ユースケースが成功するまでの一連の手順。ユーザーとシステム間のやり取りを段階的に記述します。 - 代替フロー(異常系/イレギュラー):
基本フロー以外で発生しうる状況や、エラー時の処理。 - 事後条件:
ユースケースが終了した後にシステムの状態がどうなるか
これを自力でやるのは大変なので、AIに考えてもらいましょう。たとえば、以下のような指示を与えて作ってもらいます。
このリストはStable Diffusionのモデルとプロンプトを管理するアプリのユースケースです。このアプリのユースケースを詳細化してください。
このとき、ユースケース名、アクター、目的、事前条件、基本フロー、代替フロー、事後条件を明確にしてください。
ユースケースの一例ですが、以下のような感じでまとめてくれました。
- ユースケース名: 新規プロンプトの作成
- アクター: ログイン済みユーザー(あなた)
- 概要: 新しいStable Diffusionプロンプトをアプリケーションに保存する。
- 事前条件: ユーザーがログインしている。
- 主要成功シナリオ:
- ユーザーは「新規プロンプト作成」画面またはボタンをクリックする。
- ユーザーはプロンプトの本文、ネガティブプロンプト、関連するタグ、メモ、生成に用いたモデル情報、画像生成設定(例: サンプラー、ステップ数、CFGスケール、シード値)などを入力する。
- ユーザーは「保存」ボタンをクリックする。
- システムは入力された情報を検証し、データベースに保存する。
- プロンプト保存成功のメッセージが表示され、プロンプト一覧に追加される。
- 代替フロー:
- 入力検証エラー: 必須項目が未入力の場合、エラーメッセージを表示し、入力を促す。
- 事後条件: 新しいプロンプトがシステムに保存され、後から参照・利用可能になる。
ユースケースの確認とファイルへ書き出し
ユースケースの詳細化ができたら、一度確認をします。
ユースケースが出そろったら最後に、これまでのユースケースをファイルに書き出してもらいましょう。
そのファイルを次のステップである機能定義で使います。
形式はマークダウンやXML、jsonがおすすめです。
情報を構造化して保存でき、AIにそのまま渡した際にも情報構造込みでAIに共有することができます。
たとえば、以下のように指示すればいいですね。
これまで出たユースケースをマークダウン形式でまとめて、.mdファイルにしてください。
GEMINIの場合はAIによる応答の一番下に以下の画像のような「Copy response」というボタンが表示されるので、これをクリックするとマークダウン形式のテキストがクリップボード保存されるので、メモ帳やVS CODEなどのエディタにペーストしてファイルとして保存しましょう。

ユースケースの検討結果
ユースケースの検討結果を以下の記事に書きました。
(全部書くと長いので記事を分けました)

どのようなものができあがるのかなど、詳細を確認したい方はこちらからご確認ください。
まとめ
生成AIを使って軽めのウェブアプリ開発の第一回として、アプリのユースケース定義をやってみました。
次回は考えたユースケースを実現するアプリの機能を定義していきます。

