Imgix APIs生成 API代替テキスト生成

代替テキスト生成

Generations APIは、Imgix画像のAI生成代替テキストを生成できます。これはスクリーンリーダーなどの支援技術向けに書かれます。1回の呼び出しで、サポートされている52言語のうち最大10言語をリクエストできます。

生成されたテキストが適切でない場合は、言語ごとに手動オーバーライドを設定して編集することもできます。オーバーライドはAI生成テキストと並んで保存され、その画像の代替テキストがリクエストされたときに常に優先されます。

動画生成とは異なり、代替テキスト生成は同期です。生成されたテキストはレスポンスで直接返され、ポーリングすべきジョブはありません。

認証

Generations APIへのすべての呼び出しには、任意の権限(請求、アセットマネージャー読み取りなど)を持つAPIキーが必要です。キーを作成するには、ダッシュボードのAPIキービューに移動してください。APIキーのアカウントは、画像を配信するソースを所有している必要があります。

代替テキスト操作

エンドポイントメソッド説明
/v1/generations/alt-textGET1つ以上の言語で画像の代替テキストを生成します。
/v1/generations/alt-textPOST言語ごとに画像の代替テキストの手動オーバーライドを設定・削除します。

代替テキストの生成

代替テキストを生成するには、urlまたはurl64で画像を指定して、/v1/generations/alt-textGETリクエストを送信します。

リクエストパラメータ

パラメータ必須説明
urlStringurl/url64のいずれかクエリパラメータを含まないプレーンなImgixレンダリングURL(例:https://assets.imgix.net/photo.jpg)。
url64Stringurl/url64のいずれかbase64urlでエンコードされたImgixレンダリングURL。URLがAI生成パラメータなどのクエリパラメータを含む場合に使用します。
languageStringいいえBCP-47言語コード。複数の言語を指定するには、パラメータを繰り返すか、カンマ区切りのリストを渡します(1リクエストあたり最大10言語)。大文字と小文字は区別されません。デフォルトはenです。
regenerateBooleanいいえキャッシュをスキップして、リクエストした言語の代替テキストを再生成し、保存されている内容を置き換えます。その言語の手動オーバーライドも削除されるため、レスポンスには新しいAI生成テキストが含まれます。リクエストしなかった言語は、保存済みのテキストもオーバーライドもそのまま保持されます。デフォルトはfalseです。

注意: urlまたはurl64のいずれか一方のみを指定してください。クリーンな画像URLにはurlを使用し、 URLにクエリパラメータが含まれる場合(例:text2imageで生成された画像)はurl64を使用します。

生成とキャッシュの仕組み

生成された代替テキストは画像ごとに保存されるため、2回目以降のリクエストは再生成せずに保存済みのテキストを返します。

各リクエストでは、その画像でまだ利用できない言語のみが生成されます。pl,nl,ru,deをリクエストした後にpl,nl,ru,de,thをリクエストした場合、生成されるのはタイ語だけで、他の4言語は以前とまったく同じテキストが返されます。オーバーライドを設定した言語もすでに利用可能とみなされるため、再生成されません。

同じ画像の異なるレンダリングは保存済みの代替テキストを共有します。photo.jpg?w=200photo.jpg?fit=crop&h=400は同じ写真なので、同じテキストを再利用します。text2imageで生成された画像は、プロンプトが異なれば別の画像として扱われます。

すでにあるテキストを置き換えるには、regenerate=trueを使用してください。

サポート言語

代替テキストは以下の52言語で生成できます。言語コードの大文字と小文字は区別されないため、PTzh-hantも受け付けます。これら以外の言語をリクエストすると、400レスポンスが返されます。

中国語は簡体字と繁体字でテキストが異なるため、zhではなく書記体系ごとに指定します。

コード言語
arアラビア語
bnベンガル語
bgブルガリア語
caカタルーニャ語
hrクロアチア語
csチェコ語
daデンマーク語
nlオランダ語
en英語
etエストニア語
filフィリピン語
fiフィンランド語
frフランス語
deドイツ語
elギリシャ語
guグジャラート語
heヘブライ語
hiヒンディー語
huハンガリー語
isアイスランド語
idインドネシア語
itイタリア語
ja日本語
knカンナダ語
ko韓国語
lvラトビア語
ltリトアニア語
msマレー語
mlマラヤーラム語
mrマラーティー語
nbノルウェー語(ブークモール)
faペルシア語
plポーランド語
ptポルトガル語
paパンジャブ語
roルーマニア語
ruロシア語
srセルビア語
zh-Hans簡体字中国語
skスロバキア語
slスロベニア語
esスペイン語
swスワヒリ語
svスウェーデン語
taタミル語
teテルグ語
thタイ語
zh-Hant繁体字中国語
trトルコ語
ukウクライナ語
urウルドゥー語
viベトナム語

10言語を超えるリクエスト

1回のリクエストで指定できるのは最大10言語です。それを超えると400が返されます。 残りは別のリクエストに分けてください。リクエストごとに課金されるため、複数の言語を 1回でまとめてリクエストするほうが、1言語ずつリクエストするより低コストです。

レスポンス

レスポンスには、リクエストした言語コードをキーとするalt_textオブジェクトと、生成できなかったリクエスト済み言語を列挙するfailed_languages配列が含まれます。

属性説明
alt_textObjectリクエストした各言語について、言語コードと代替テキスト文字列のマップ。手動オーバーライドが設定されている言語は、AI生成テキストではなくオーバーライドのテキストを返します。
failed_languagesArrayリクエストされたが生成できなかった言語コード。完全に成功した場合は空です。
overridden_languagesArrayalt_textの値がAI生成ではなく手動オーバーライドから返された、リクエスト済み言語コード。
GET api/v1/generations/alt-text?url=https://assets.imgix.net/photo.jpg&language=en,fr

パラメータを含むURLの代替テキストを生成する

画像URLにクエリパラメータが含まれる場合(例:text2imageで作成されたAI画像)は、完全なURLをbase64urlでエンコードしてurl64として渡します。

# プレーンなURL(クエリパラメータを含む):
# https://assets.imgix.net/ai?text2image=true&prompt=a serene mountain lake at sunset
 
GET api/v1/generations/alt-text?url64=aHR0cHM6Ly9hc3NldHMuaW1naXgubmV0L2FpP3RleHQyaW1hZ2U9dHJ1ZSZwcm9tcHQ9YSBzZXJlbmUgbW91bnRhaW4gbGFrZSBhdCBzdW5zZXQ&language=en

代替テキストの編集

AI生成の説明文を調整したい場合 — 例えば商品名を含めたい、ブランドのトーンに合わせたいなど — は、/v1/generations/alt-textPOSTリクエストを送信して、言語ごとに手動オーバーライドを設定できます。オーバーライドはAI生成テキストより優先されます。設定すると、GETエンドポイントはその言語についてユーザーのテキストを返し、overridden_languagesにその言語を列挙します。

オーバーライドは、すでに代替テキストが生成されている画像に対してのみ設定できます。先にGETリクエストで生成してください。生成済みの代替テキストがない画像へのPOST409を返します。

リクエストボディ

リクエストボディはJSONオブジェクトで、urlまたはurl64のいずれか一方で画像を指定し(GETエンドポイントと同じ扱い)、適用するオーバーライドをalt_textオブジェクトで渡します。

フィールド必須説明
urlStringurl/url64のいずれかクエリパラメータを含まないプレーンなImgixレンダリングURL。
url64Stringurl/url64のいずれかbase64urlでエンコードされたImgixレンダリングURL。クエリパラメータを含むURLに使用します。
alt_textObjectはい言語コードとオーバーライドテキストのマップ。値をnullにするとその言語のオーバーライドが削除され、AI生成テキストに戻ります。少なくとも1つの言語を含める必要があります。

サポート言語の任意のサブセットについて、1回のリクエストでオーバーライドの設定と削除ができます。10言語の上限は生成にのみ適用され、オーバーライドには適用されません。言語コードの大文字と小文字は区別されません。オーバーライドテキストは空にできず(削除には空文字列ではなくnullを使用)、言語ごとに最大2,000文字です。

レスポンス

属性説明
alt_textObject設定されたオーバーライド。言語コードをキーとします。
removed_languagesArrayオーバーライドが削除された言語コード。
POST api/v1/generations/alt-text
{
  "url": "https://assets.imgix.net/photo.jpg",
  "alt_text": {
    "en": "Maya the havanese puppy sitting on a wooden floor, looking up at the camera",
    "fr": null
  }
}

オーバーライドとクレジット

オーバーライドの設定・削除はAIモデルを呼び出さないため、POSTリクエストは AIクレジットを消費しません。オーバーライドは、null値で削除するか、 regenerate=trueでその言語を再生成するまで保持されます。ある言語を再生成しても、 他の言語のオーバーライドには影響しません。

オーバーライドが設定されている言語はすでに利用可能とみなされるため、 オーバーライドが有効な間は再生成されません。オーバーライドを削除すると、 その言語が以前に生成されていればAI生成テキストが再び表示されます。 生成されていなかった場合は、次のリクエストで生成されます。

ステータスコード

ステータスコード説明
200OK - 代替テキストが正常に生成(またはキャッシュから配信)されたか、オーバーライドが正常に適用されました。
400Bad Request - url/url64が欠落または無効、サポートされていない言語、1リクエストで10言語を超過、または無効なオーバーライドテキスト(空、または2,000文字超過)です。
402Payment Required - アカウントのAIクレジットが枯渇しています(plan_credits_depleted_payment_required)。GETのみ。
403Forbidden - ソースで代替テキスト生成が有効になっていない、またはAPIキーがソースを所有していません。
409Conflict - POSTのみ。画像にまだ生成済みの代替テキストがありません。先にGETリクエストで生成してください。
500Internal Server Error - 画像を取得できなかった、リクエストされたすべての言語で生成に失敗した、またはオーバーライドを保存できませんでした。

クレジットの使用

代替テキスト生成は、アカウントのAIクレジットに対して計上されます。代替テキストを 生成するリクエストは、言語数にかかわらず1回として計上されます — 10言語のリクエストでも 1言語のリクエストと同じコストです。保存済みのテキストやオーバーライドのみで応答した リクエストは計上されず、POSTリクエストも計上されません。

計上はリクエスト単位のため、複数の言語をまとめて生成するほうが1言語ずつ生成するより 低コストです。402レスポンスはアカウントのクレジットが枯渇していることを示します。 残高が補充されると生成が再開されます。

代替テキストの生成

curl -X GET "https://api.imgix.com/api/v1/generations/alt-text?url=https://assets.imgix.net/photo.jpg&language=en,es" \
  -H "Authorization: Bearer YOUR_API_KEY"
# Response:
# {
#   "alt_text": {
#     "en": "a havanese puppy sitting on a wooden floor, looking up at the camera",
#     "es": "un cachorro habanero sentado en un suelo de madera, mirando a la cámara"
#   },
#   "failed_languages": [],
#   "overridden_languages": []
# }

代替テキストの編集

curl -X POST "https://api.imgix.com/api/v1/generations/alt-text" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://assets.imgix.net/photo.jpg",
    "alt_text": {
      "en": "Maya the havanese puppy sitting on a wooden floor, looking up at the camera"
    }
  }'
# Response:
# {
#   "alt_text": {
#     "en": "Maya the havanese puppy sitting on a wooden floor, looking up at the camera"
#   },
#   "removed_languages": []
# }