代替テキスト生成
Generations APIは、Imgix画像のAI生成代替テキストを生成できます。これはスクリーンリーダーなどの支援技術向けに書かれます。1回の呼び出しで複数の言語の代替テキストをリクエストできます。
生成されたテキストが適切でない場合は、言語ごとに手動オーバーライドを設定して編集することもできます。オーバーライドはAI生成テキストと並んで保存され、その画像の代替テキストがリクエストされたときに常に優先されます。
動画生成とは異なり、代替テキスト生成は同期です。生成されたテキストはレスポンスで直接返され、ポーリングすべきジョブはありません。
認証
Generations APIへのすべての呼び出しには、任意の権限(請求、アセットマネージャー読み取りなど)を持つAPIキーが必要です。キーを作成するには、ダッシュボードのAPIキービューに移動してください。APIキーのアカウントは、画像を配信するソースを所有している必要があります。
代替テキスト操作
| エンドポイント | メソッド | 説明 |
|---|---|---|
/v1/generations/alt-text | GET | 1つ以上の言語で画像の代替テキストを生成します。 |
/v1/generations/alt-text | POST | 言語ごとに画像の代替テキストの手動オーバーライドを設定・削除します。 |
代替テキストの生成
代替テキストを生成するには、urlまたはurl64で画像を指定して、/v1/generations/alt-textにGETリクエストを送信します。
リクエストパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
url | String | url/url64のいずれか | クエリパラメータを含まないプレーンなImgixレンダリングURL(例:https://assets.imgix.net/photo.jpg)。 |
url64 | String | url/url64のいずれか | base64urlでエンコードされたImgixレンダリングURL。URLがAI生成パラメータなどのクエリパラメータを含む場合に使用します。 |
language | String | いいえ | BCP-47言語コード。複数の言語を指定するには、パラメータを繰り返すか、カンマ区切りのリストを渡します。デフォルトはenです。 |
regenerate | Boolean | いいえ | キャッシュをスキップして、サポートされているすべての言語で代替テキストを再生成します。画像のすべての手動オーバーライドも削除されるため、レスポンスには新しいAI生成テキストのみが含まれます。デフォルトはfalseです。 |
注意: urlまたはurl64のいずれか一方のみを指定してください。クリーンな画像URLにはurlを使用し、
URLにクエリパラメータが含まれる場合(例:text2imageで生成された画像)はurl64を使用します。
サポート言語
代替テキストは以下の言語で生成できます。これら以外の言語をリクエストすると、400レスポンスが返されます。
| コード | 言語 |
|---|---|
en | 英語 |
fr | フランス語 |
de | ドイツ語 |
it | イタリア語 |
es | スペイン語 |
レスポンス
レスポンスには、リクエストした言語コードをキーとするalt_textオブジェクトと、生成できなかったリクエスト済み言語を列挙するfailed_languages配列が含まれます。
| 属性 | 型 | 説明 |
|---|---|---|
alt_text | Object | リクエストした各言語について、言語コードと代替テキスト文字列のマップ。手動オーバーライドが設定されている言語は、AI生成テキストではなくオーバーライドのテキストを返します。 |
failed_languages | Array | リクエストされたが生成できなかった言語コード。完全に成功した場合は空です。 |
overridden_languages | Array | alt_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-textにPOSTリクエストを送信して、言語ごとに手動オーバーライドを設定できます。オーバーライドはAI生成テキストより優先されます。設定すると、GETエンドポイントはその言語についてユーザーのテキストを返し、overridden_languagesにその言語を列挙します。
オーバーライドは、すでに代替テキストが生成されている画像に対してのみ設定できます。先にGETリクエストで生成してください。生成済みの代替テキストがない画像へのPOSTは409を返します。
リクエストボディ
リクエストボディはJSONオブジェクトで、urlまたはurl64のいずれか一方で画像を指定し(GETエンドポイントと同じ扱い)、適用するオーバーライドをalt_textオブジェクトで渡します。
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
url | String | url/url64のいずれか | クエリパラメータを含まないプレーンなImgixレンダリングURL。 |
url64 | String | url/url64のいずれか | base64urlでエンコードされたImgixレンダリングURL。クエリパラメータを含むURLに使用します。 |
alt_text | Object | はい | 言語コードとオーバーライドテキストのマップ。値をnullにするとその言語のオーバーライドが削除され、AI生成テキストに戻ります。少なくとも1つの言語を含める必要があります。 |
サポート言語の任意のサブセットについて、1回のリクエストでオーバーライドの設定と削除ができます。オーバーライドテキストは空にできず(削除には空文字列ではなくnullを使用)、言語ごとに最大2,000文字です。
レスポンス
| 属性 | 型 | 説明 |
|---|---|---|
alt_text | Object | 設定されたオーバーライド。言語コードをキーとします。 |
removed_languages | Array | オーバーライドが削除された言語コード。 |
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で画像の代替テキストを再生成する(画像のすべてのオーバーライドが
削除されます)まで保持されます。
ステータスコード
| ステータスコード | 説明 |
|---|---|
200 | OK - 代替テキストが正常に生成(またはキャッシュから配信)されたか、オーバーライドが正常に適用されました。 |
400 | Bad Request - url/url64が欠落または無効、サポートされていない言語、または無効なオーバーライドテキスト(空、または2,000文字超過)です。 |
402 | Payment Required - アカウントのAIクレジットが枯渇しています(plan_credits_depleted_payment_required)。GETのみ。 |
403 | Forbidden - ソースで代替テキスト生成が有効になっていない、またはAPIキーがソースを所有していません。 |
409 | Conflict - POSTのみ。画像にまだ生成済みの代替テキストがありません。先にGETリクエストで生成してください。 |
500 | Internal Server Error - 画像を取得できなかった、リクエストされたすべての言語で生成に失敗した、またはオーバーライドを保存できませんでした。 |
クレジットの使用
代替テキスト生成は、アカウントのAIクレジットに対して計上されます。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": []
# }