2025/07/17

つないでみよう:#25)画像生成 AI DALL-E3

約半年ぶりにこの連載『つないでみよう』の更新です。今回は画像生成にチャレンジします。

画像生成で利用するのは OpenAI 社の DALL-E 3 です。API としては 2023 年 9 月の公開らしいので、すでに 1 年半以上経過しているようです。展開が早くて全然追いつけていないですね...


きっかけ

先日行われた DominoHub 2025 Tokyo で展示ブースを担当することになりました(レポート記事は こちら)。私のブースでは、これまでに作成してきたさまざまなアプリを紹介し、Domino 活用のヒントをご提供することを目標にしました。そのアプリの一つが『AI 絵付師 からくり1号』で、生成 AI を使用してノーツ DB のアイコンを自動作成するアプリです。処理の流れは、

  1.  作成したい画像イメージを文章でリクエストを入力
  2.  DALL-E3 がリクエストに応じた画像を生成(1024 x 1024 Pixel)
  3.  Excel を利用して 64 x 64 Pixel に高品質で変換
  4.  指定した DB のアイコンに DXL を使って設定

となっていまいました。今回のシリーズでは、この処理の 2 の部分を紹介します。


DALL-E3 の利用

OpenAI 社が提供する Create Image API から DALL-E3 を利用できます。この API は数年前にテストしたことがあったのですが、その時点では前バージョンの DALL-E2 までしか利用できませんでした。残念ながら微妙な画像しか生成できなかったので、そのまま放置していました。その間に、DALL-E3 に対応し、劇的に進化していたようです。

DALL-E3 では、こちらからのリクエストの解釈(特に日本語の理解)が進み、希望する(希望に近い)画像が出力されるようになりました。内部的には、著作権保護や不適切な表現をしないよう安全性にも配慮されているとのことです。

API 利用者としてありがたいのは、生成した画像の所有権がユーザ側にあること、そして、商用利用しても問題がないという点だと思います。


Create Image API の使い方

API の基本的な利用方法は、他のシリーズで使用してきた Chat Completions API と同等です。違う点を中心にまとめます。

まず、エンドポイントです。コールする API が違うので、URL が変化します。

POST  https://api.openai.com/v1/images/generations

リクエストヘッダの指定には変化がありません。Authorization に指定する Bearer も同じもが流用できます。

POST 時に送信する RequestBody は次のような JSON となります。 Chat Completions API に比べてずいぶんシンプルですね。

{
   "model": "dall-e-3",
   "size": "1024x1024",
   "quality": "standard",
   "response_format": "b64_json",
   "prompt": "上司と部下が会議室で本気で議論しているシーンを少年漫画のバトルシーンのようなタッチで描いてください。"
}

各項目の説明と設定できる値は次の通りです。必要最低限の情報だけを抜粋しているので、より詳しく知りたい場合には、API の ヘルプ を参照ください。

prompt 生成を希望する画像の説明文です。
model
画像生成のモデルを指定します。
DALL-E3 を指定するには "dall-e-3" を指定。
(デフォルトは前バージョンの "dall-e-2")
quality生成画像の品質を指定します。
DALL-E3 の場合、"hd" と "standard" が利用できます。
(省略するとモデルごとの最適な品質を自動選択)
size 生成する画像サイズで、設定できる値はモデル次第です。
DALL-E3:"1024x1024", "1792x1024", "1024x1792"
DALL-E2:"256x256", "512x512", "1024x1024"
response_format 生成画像の取得方法です。
"url" :生成画像の URL を返す(有効期限は 60 分)
"b64_json" :Base64 エンコードの画像をレスポンスに含む


続きは次回

これで API 利用に必要な情報がそろいました。次回は、リクエストを送信する部分の LotusScript のサンプルコードを紹介します。


前回 連載:つないでみよう 次回


0 件のコメント:

コメントを投稿