画像生成機能の要件を分ける
画像生成を「プロンプトを送信して画像を受け取る」とだけ定義すると、修正の理由やレビュー条件が残りません。本稿はVideoAIの公開UIで確認できる入力と出力の説明を例にした設計メモです。内部実装、性能、ベンチマークは扱わず、どの画像生成機能にも応用できる要件の分け方を整理します。
ポーズ要件と撮影要件
人物の動きは、動作、重心、視点、シルエットで確認します。写真表現は、光、レンズ、被写界深度、素材、背景で確認します。両者を一つの自由入力だけにすると、ポーズを直したのに照明まで変わった、という差分が起きます。
Pose Reference Generator のように、人物、動作、見る角度を文章で指定し、JPGやPNGを起点にできる入力では、参照画像の役割も保存対象にします。人物なのか、ポーズなのか、衣装なのかを後から判別できるようにします。
Realistic AI Photo Generator のように、光、レンズ、奥行き、素材を文章で指示する入力では、「リアル」という単語を合否条件にしません。どの方向から光が来るのか、どの距離で撮るのかをレビュー可能なフィールドに分けます。
type Candidate = {
action: string;
viewpoint: string;
subject: string;
lighting: string;
framing: string;
referenceRole?: "pose" | "character" | "scene";
status: "draft" | "review" | "approved" | "rejected";
};
要件表
| 要件 | 保存する情報 | 確認方法 |
|---|---|---|
| 動作 | 動詞、重心、主な手足 | 小さい表示でシルエットを確認 |
| 視点 | 正面、横、見上げなど | 指示とフレームを比較 |
| 写真表現 | 光、レンズ、奥行き、素材 | 変更した項目だけを比較 |
| 参照画像 | 画像IDと役割 | 差し替え時の影響を確認 |
| 利用判断 | 用途、権利、レビュー理由 | 承認前に人が確認 |
テストケース
- ポーズ参照だけを差し替えて、撮影意図が保持される
- 光の方向だけを変更して、承認済みの動作が変わらない
- 視点を「正面」から「見上げる」に変更した履歴が残る
- 小さいサムネイルで手足、顔、細い文字を確認できる
- 実在人物に見える出力を本人の写真として扱わない
- 参照画像の利用許可とロゴの扱いを確認できる
UI契約の例
以下は特定サービスで検証したセレクターではなく、レビュー理由を候補と一緒に保存する契約の例です。
test("候補のレビュー理由を保存できる", async ({ page }) => {
await page.goto("/creative-workspace");
await page.getByLabel("レビュー理由").fill("視点は維持し、手の形を確認");
await page.getByRole("button", { name: "レビューを保存" }).click();
await expect(page.getByText("視点は維持し、手の形を確認")).toBeVisible();
});
生成結果を自動的に正解とみなすテストは作りません。公開された入力説明から分かるのは、どのような指示や参照を与えられるかという境界です。再現性、顔や手の正確さ、用途ごとの適合性は、実際のデータと人の確認で別途評価します。
まとめ
ポーズ、撮影意図、参照画像の役割、利用判断を分けて保存すると、画像生成の修正が説明しやすくなります。生成ボタンの成功だけでなく、次の担当者が「何を残し、何を変えたか」を追えることを要件に含めるのがポイントです。