このガイドのゴール
- プロダクトに画像生成機能を組み込むための 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 で非同期処理してください。
アーキテクチャ: 非同期画像生成パイプライン
🔧 非同期画像生成の構成
ジョブキューで生成を非同期化し、完了を通知する
プロンプトエンジニアリングの基本
画像生成の品質はプロンプトの書き方に大きく依存します。
構造化プロンプトのテンプレート
[被写体], [スタイル], [構図], [照明], [品質修飾子]
例: 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 を確認してプロンプトを調整してください。
コンテンツモデレーション
画像生成をユーザーに開放する場合、不適切なコンテンツの生成を防ぐ仕組みが必須です。
- 入力フィルタ — プロンプトを OpenAI Moderation API で事前チェック
- API 側フィルタ — DALL-E は厳格なフィルタ内蔵。Stability AI は設定可能
- 出力フィルタ — 生成された画像を画像認識 API(Google Cloud Vision 等)で検査
- レート制限 — ユーザーあたりの生成回数に上限を設定
API 側のフィルタだけに依存しないこと
Stability AI のフィルタはプロンプトの表現を変えると回避できるケースがあります。ユーザー向けサービスでは必ず入力と出力の両方でチェックを入れてください。
コスト管理
画像生成は LLM のテキスト生成と比較して 1 リクエストあたりのコストが高いため、管理が重要です。
- ユーザーあたりの日次上限 を設定(例: 1 日 10 枚まで)
- 解像度の段階制御 — プレビューは低解像度、確定時に高解像度で再生成
- 生成結果のキャッシュ — 同一プロンプトの再生成を防ぐ(ただし画像生成は毎回結果が異なるため、ユーザーの意図を確認)
- 使用量ダッシュボード — 日次・月次の API コストをリアルタイム監視
まとめ
- 細かい画像加工(img2img / inpainting)が必要 → Stability AI
- テキストからの一発生成で品質重視 → OpenAI DALL-E 3
- 生成には 5〜20 秒かかるため非同期処理は必須
- ユーザー向けサービスでは 入力・出力の両方でコンテンツフィルタ を設置
- コスト管理のために ユーザーあたりの生成上限 を設定
この記事の情報は 2026 年 4 月時点のものです。各サービスのモデルや料金は頻繁に更新されます。