0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AI 3D Logo生成で入力契約とレビュー工程を分けて設計した理由

0
Posted at

AI 3D Logo Makerを実装するとき、最初に整理したのはモデル名や派手なサンプルではなく、入力契約でした。画面には「3D Logoを作る」という一つの目的が見えますが、実際には二つの異なる仕事があります。

一つはブランド名や業種、シンボル、素材感、配色、背景を文章で渡すText-to-Logoです。もう一つは既存の2Dロゴ画像を起点に、輪郭や識別要素を残しながら立体表現を試す2D-to-3Dです。この二つを同じ入力として扱うと、必須項目、検証、失敗理由、レビュー基準が曖昧になります。

入力をdiscriminated unionとして扱う

フロントエンドとAPIの間では、モードを文字列一つで補足するより、入力型そのものを分けた方が安全です。

type LogoRequest =
  | {
      mode: "text";
      brandName: string;
      industry?: string;
      symbol?: string;
      material?: "metal" | "glass" | "clay" | "plastic";
      colors?: string[];
      background?: string;
      outputCount: 1 | 2 | 3 | 4;
    }
  | {
      mode: "image";
      sourceImageId: string;
      preserve: Array<"silhouette" | "wordmark" | "colors" | "negative-space">;
      material?: "metal" | "glass" | "clay" | "plastic";
      outputCount: 1 | 2 | 3 | 4;
    };

Text-to-Logoではブランド名または十分なbriefが必要です。2D-to-3Dでは有効な画像参照と、何を残すかの指定が必要です。クライアント側で入力しやすさを改善しつつ、サーバー側でも同じ契約を再検証します。クライアント検証だけでは、古い画面、手書きリクエスト、再送、改変されたpayloadを防げないからです。

実行時の情報を送信直前に固定する

生成数、表示されるcreditコスト、利用可能な設定は変わる可能性があります。そのため、記事や古いスクリーンショットに固定値を書き込み、APIが永遠に同じだと仮定するのは危険です。

送信前の確認画面では、少なくとも次の値を一つのsnapshotとして表示します。

  • 選択した入力モード
  • 生成する候補数(1〜4)
  • 現在画面に表示されているcreditコスト
  • 参照画像またはbrand briefの要約
  • 保存前に確認する権利と利用目的

サーバーはこのsnapshotをそのまま信頼せず、現在のcapabilityと照合します。料金や利用可能数が変わった場合は、勝手に別条件で実行するより、差分を返して再確認を求める方が安全です。

生成は同期レスポンスではなくjobとして扱う

画像生成は待ち時間があり、成功以外にもqueued、running、failed、expiredといった状態があります。画面をロックしたまま一つのHTTPリクエストを待つ設計では、更新、再接続、重複送信への対処が難しくなります。

実装ではrequestを受け付けたらjob IDを返し、クライアントは状態を取得します。送信ボタンにはidempotency keyを持たせ、二重クリックやネットワーク再送でcreditを二重消費しないようにします。失敗時には「生成できませんでした」だけでなく、入力検証、残高、provider、一時的な処理失敗のどこで止まったかを、人に見せられる範囲で分けます。

completedはapprovedではない

jobがcompletedになっても、ロゴとして採用できるとは限りません。結果画面では1〜4件の候補を同じ条件で比較し、次のreview gateを通します。

  1. ブランド名やwordmarkの綴りは正しいか
  2. 元のシルエットとnegative spaceを必要な範囲で保てているか
  3. 小さいアイコンサイズでも識別できるか
  4. 立体感、影、素材がブランドの用途に合うか
  5. 既存商標や第三者素材との類似、利用権に問題がないか

このレビューをUI上の独立したstepにすると、モデルの完了状態と人間の承認状態を混同しにくくなります。再生成、候補選択、ダウンロードのイベントも分けて記録でき、どの入力からどの結果を選んだか追跡しやすくなります。

出力境界を正しく書く

このワークフローが生成するのは3Dスタイルのラスタ画像コンセプトです。編集可能な3Dモデル、ベクター原稿、完全なブランドガイド、商標登録可能性の判断を自動で納品するものではありません。正式利用では、デザイナーによる再作図、タイポグラフィと色指定の整理、縮小テスト、商標調査が必要になる場合があります。

プロダクト説明でもこの境界を消さない方がよいと思います。「3D Logoが生成された」と「運用可能なブランド資産が完成した」は別の状態です。

まとめ

AI画像機能を安定したプロダクトにするには、prompt欄だけでは足りません。Text-to-Logoと2D-to-3Dの入力契約を分け、実行時capabilityを確認し、生成をjobとして追跡し、最後に人間のreview gateを置く必要があります。

今回の実装例は次のページです。リンク先の現在の画面で、二つの入力経路、表示中のコスト、候補数、結果レビューの流れを確認できます。

AI 3D Logo Makerhomepage-desktop.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?