このガイドのゴール

  • プロダクトに画像生成機能を組み込むための API 選定基準を理解する
  • Stability AI と OpenAI DALL-E の特性・コスト・制約を比較する
  • 非同期生成・コンテンツモデレーション・コスト管理の実装パターンを把握する

画像生成 API は「プロンプトを送ると画像が返る」というシンプルな仕組みですが、本番運用では生成時間・コスト・不適切コンテンツ対策など考慮すべき点が多くあります。

🧩 このガイドで使うリソース
生成したい画像の種類で選ぶ
🎨 細かい制御
Stability AI
img2img・inpainting・ControlNet など多様な生成モードに対応。画像加工の自由度が高い。
🖼️ テキストから一発生成
OpenAI DALL-E
自然言語プロンプトからの生成品質が高い。OpenAI エコシステムとの統合が容易。

API の特性比較

観点 Stability AI OpenAI DALL-E 3
生成モード txt2img / img2img / inpainting / upscale txt2img のみ(編集は別 API)
生成時間 3〜15 秒(モデル・解像度による) 5〜20 秒
最大解像度 モデルにより異なる(SDXL で 1024×1024) 1024×1024 / 1792×1024
出力形式 Base64 / URL Base64 / URL
コスト構造 クレジット制。モデルと解像度で消費量が変動 画像 1 枚ごとの固定料金。解像度で段階的に変動
コンテンツフィルタ API 側でフィルタあり(設定可能) 厳格なフィルタ(設定変更不可)
⚠️
画像生成のレスポンスは 5〜20 秒かかる

同期的に待つと HTTP タイムアウトやユーザー離脱の原因になります。ジョブキュー + ポーリング or WebSocket で非同期処理してください。

アーキテクチャ: 非同期画像生成パイプライン

🔧 非同期画像生成の構成
ジョブキューで生成を非同期化し、完了を通知する
👤 ユーザー プロンプト送信 POST API サーバ バリデーション ジョブ投入 job_id 返却 Queue Redis / SQS Worker ① 画像生成 API 呼出 ② S3 にアップロード ③ DB ステータス更新 ④ WebSocket で通知 ポーリング or WebSocket で結果取得

プロンプトエンジニアリングの基本

画像生成の品質はプロンプトの書き方に大きく依存します。

構造化プロンプトのテンプレート

[被写体], [スタイル], [構図], [照明], [品質修飾子]
例: A Japanese garden in autumn, watercolor style, wide angle,
    soft natural lighting, highly detailed

やりがちな失敗

  • プロンプトが長すぎる — 情報が多すぎると生成結果がぼやける。核心的な要素を 3〜5 個に絞る
  • ネガティブプロンプトの省略 — 不要な要素を明示的に除外しないと意図しないものが入る(Stability AI で使用可能)
  • 日本語プロンプト — 英語のほうが生成品質が安定する(モデルの学習データの偏り)
📌
DALL-E 3 は入力プロンプトを内部で書き換える

ユーザーが送ったプロンプトをそのまま使わず、GPT-4 が「より良いプロンプト」に自動変換します。意図と異なる画像が出る場合は、revised_prompt を確認してプロンプトを調整してください。

コンテンツモデレーション

画像生成をユーザーに開放する場合、不適切なコンテンツの生成を防ぐ仕組みが必須です。

  1. 入力フィルタ — プロンプトを OpenAI Moderation API で事前チェック
  2. API 側フィルタ — DALL-E は厳格なフィルタ内蔵。Stability AI は設定可能
  3. 出力フィルタ — 生成された画像を画像認識 API(Google Cloud Vision 等)で検査
  4. レート制限 — ユーザーあたりの生成回数に上限を設定
🚨
API 側のフィルタだけに依存しないこと

Stability AI のフィルタはプロンプトの表現を変えると回避できるケースがあります。ユーザー向けサービスでは必ず入力と出力の両方でチェックを入れてください。

コスト管理

画像生成は LLM のテキスト生成と比較して 1 リクエストあたりのコストが高いため、管理が重要です。

  • ユーザーあたりの日次上限 を設定(例: 1 日 10 枚まで)
  • 解像度の段階制御 — プレビューは低解像度、確定時に高解像度で再生成
  • 生成結果のキャッシュ — 同一プロンプトの再生成を防ぐ(ただし画像生成は毎回結果が異なるため、ユーザーの意図を確認)
  • 使用量ダッシュボード — 日次・月次の API コストをリアルタイム監視

まとめ

  • 細かい画像加工(img2img / inpainting)が必要 → Stability AI
  • テキストからの一発生成で品質重視 → OpenAI DALL-E 3
  • 生成には 5〜20 秒かかるため非同期処理は必須
  • ユーザー向けサービスでは 入力・出力の両方でコンテンツフィルタ を設置
  • コスト管理のために ユーザーあたりの生成上限 を設定

この記事の情報は 2026 年 4 月時点のものです。各サービスのモデルや料金は頻繁に更新されます。