adobe-create-social-variations について
Adobe のワークフロー スキルで、元画像からソーシャルプラットフォーム向けの切り抜きやバリエーションを作成します。被写体を考慮した構図と、全件生成前のプレビューが特徴です。
主な機能
- 01被写体を考慮した画像クロップ
- 02アスペクト比に合わせたキャンバス拡張
- 03全件生成前の3種類プレビュー
- 04プラットフォーム別の画像バリエーション
- 05同じ比率での動画リサイズ
活用シーン
- 011枚の画像を複数のSNS向けに準備
- 02一括生成前にクロップの構図を確認
MCP 対応
Adobe MCP App ウィジェットと Adobe for creativity コネクターを使い、素材の選択、確認、加工、プレビュー、納品を行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ adobe/ skills --skill adobe-create-social-variationsインストール後、Claude Code で/adobe-create-social-variationsを入力して読み込まれたか確認します。
詳細
Adobe Create Social Variations
単一のソースファイルから、各プラットフォーム向けの画像や動画を作成します。AI キャンバス拡張と被写体を認識したトリミングを使い、あらゆるアスペクト比で被写体に焦点が当たるようにします。全セットを処理する前に、3 種類のトリミングを簡易プレビューで確認できるため、フレーミングの問題を早い段階で発見できます。これらのトリミングは最終出力でも再利用されます。
画面に関する注意: 以下のデフォルトのフローでは、Adobe の MCP App ウィジェット(
asset_add_fileファイルピッカーとasset_preview_fileプレビュー)を使います。記載どおりに実行してください。ウィジェットツールがこの画面で利用できない場合(例:Codex)に限り、その手順に記載されたウィジェットなしの場合の代替手順を使ってください。同様に、質問ウィジェットがない場合は、AskUserQuestionの質問をラベル付きの選択肢としてプレーンテキストで提示してください。
対応する入力形式
| 入力 | 対応状況 | 備考 |
|---|---|---|
| JPG / PNG | ✅ 完全なワークフロー | |
| Firefly で生成された画像 | ✅ 完全なワークフロー | .ffgenimg アセットの場合は、presignedAssetUrl ではなく presignedRenditionUrl フィールドを渡します |
| Express ファイル | ⚠️ 部分対応 | 先に JPG/PNG に書き出す必要があります。処理を進める前にユーザーに伝えてください |
| PSD / AI(Illustrator) | ⚠️ 部分対応 | 先に統合してください(失敗した場合は「エラー処理」を参照) |
| 動画(MP4/MOV) | ⚠️ 部分対応 | サイズ変更のみ対応し、スマートリフレームには対応していません。「VIDEO WORKFLOW」を参照してください |
| 未対応(DOCX、PDF など) | ❌ | ユーザーに伝え、受け付け可能な形式を列挙してください |
Step 0 - 前提条件:Adobe ツールの初期化
最初に adobe_mandatory_init を呼び出してください。これにより、以降のワークフローで必要となるファイル処理ルールとツールのルーティングに関するガイダンスが返されます。
{ "skill_name": "adobe-create-social-variations", "skill_version": "2.1.0" }
Step 1 — 利用資格の確認
adobe_mandatory_init によって「Adobe for creativity」コネクターが稼働中であることが確認されたので、コネクター経由で利用できるツールを確認し、機能フラグを設定してください。
画像ワークフロー — コアツール(必須)
スキルを実行するには、以下のツールがすべて揃っている必要があります。コネクターに1 つでもない場合は、このメッセージをそのまま出力して停止してください。それ以降、ツールを呼び出さないでください。
"To access this skill, please disconnect and reconnect to the "Adobe for creativity" Connector to sign in using an Adobe account, or sign up."
| ツール | 用途 |
|---|---|
asset_initialize_file_upload | 2 段階アップロードの最初の呼び出し — ローカルファイルを CC にステージングします |
asset_finalize_file_upload | 2 段階アップロードの 2 回目の呼び出し |
asset_inline_preview | トリミング前に焦点を当てる方法を決定します |
image_crop_and_resize | プラットフォームおよび形式ごとのトリミング |
ウィジェットツール(利用可能な場合に使用。利用できない場合は代替手段に切り替え)
| ツール | フラグ | 利用できない場合 |
|---|---|---|
asset_add_file | pickerWidget = true/false | ファイルピッカー — ウィジェットを使える画面(例:Claude)でのデフォルトの取り込み方法です。利用できない場合(例:Codex)は、asset_initialize_file_upload → asset_finalize_file_upload を使って、プログラムからローカルファイルをステージングしてください(各「ソースファイルの取得」手順にあるウィジェットなしの場合の代替手順を参照)。 |
asset_preview_file | previewWidget = true/false | 横並び/グリッド形式のプレビューです。利用できない場合(例:Codex)は、代わりに出力 URL をメッセージ内に直接提示してください。UI クライアントではインラインで表示されます。非 UI エージェントは curl でそれぞれダウンロードします。 |
画像ワークフロー — 拡張ツール(オプション、利用できない場合も柔軟に対応)
| ツール | フラグ | 利用できない場合 |
|---|---|---|
image_generative_expand | expandAvailable = true/false | 代わりに、sourceURI を基に fit: "reframe" を指定して image_crop_and_resize を使用します。ユーザーに「AI canvas expansion」とは決して伝えないでください。納品概要に「アスペクト比の調整にはスマートリフレームを使用しました。」と記載します。 |
動画ワークフロー — 必須ツール(オプションのワークフロー。すべてそろっている場合のみ)
以下の両方のツールが利用可能な場合に限り、動画ワークフローを提示してください。どちらか一方でも利用できない場合は、videoCapable = false に設定してください。動画のリサイズ機能については、いかなる場合もユーザーに伝えないでください。
| ツール | 用途 |
|---|---|
video_resize | 同じアスペクト比でのみリサイズ |
resizeVideoPoll | 遅延読み込みされるツール — 呼び出す前に読み込む |
videoCapable = false で、ユーザーが動画のリサイズについて明示的に尋ねた場合は、説明を簡潔にして、次のメッセージをそのまま出力してください。
"現在の設定では動画のリサイズを利用できません。いったん「Adobe for creativity」コネクターを切断してから再接続し、Adobe アカウントでサインインするか、アカウントに登録してください。それまでは、画像のトリミングやソーシャルメディア向けのバリエーション作成をお手伝いできます。"
ツールリファレンス
| 手順 | ツール | 備考 |
|---|---|---|
| ファイルの取得(ウィジェット画面) | asset_add_file | ファイルピッカー/CC ブラウズ |
| ファイルのステージング(ウィジェットなしの場合のフォールバック) | asset_initialize_file_upload + asset_finalize_file_upload | 2 段階のアップロード — ピッカーを利用できない場合にローカルファイルを CC にステージングします |
| 元画像の確認 | asset_inline_preview | トリミング前に焦点の合わせ方を判断します |
| キャンバスの拡張 | image_generative_expand | 縦長(9:16/4:5)と横長(約 2:1/16:9)のバリエーションを作成します |
| プラットフォームの寸法に合わせてトリミング | image_crop_and_resize | プラットフォームごと、フォーマットごとに適用。拡張時の 403 エラーに対するフォールバックにも使用します |
| テスト用のトリミングまたはセット全体をプレビュー | asset_preview_file | 全体処理の前(テスト時)と納品時に使用します (ウィジェットなしの場合のフォールバック:URL を直接提示します) |
| 動画のリサイズ | video_resize | 同じアスペクト比でのみリサイズ |
| 動画リサイズジョブのポーリング | resizeVideoPoll | 遅延読み込みされるツール — 呼び出す前に読み込む |
画像ワークフロー
ステップ 0 — ソースファイルを取得する
ファイルの取得方法は、ファイルがどこにあるかによって異なります。
| ソース | 操作 |
|---|---|
チャットにアップロードされたファイル(/mnt/user-data/uploads/…) | adobe_mandatory_init(ステップ 0)から egress の状態を確認します。egress が有効な場合は、bash でファイルサイズと MIME タイプを取得し、asset_initialize_file_upload を呼び出してチャンクを PUT し、その後 asset_finalize_file_upload を呼び出してプログラムからアップロードします。egress が無効な場合は、代わりに asset_add_file()(ピッカー)を使用します。 |
| ファイルがまだ提供されていない | 先に尋ねる必要はありません。すぐに asset_add_file() を呼び出します。 |
| ファイルがすでに Creative Cloud にある | ユーザーが CC ストレージから選択できるように、asset_add_file() を呼び出します。 |
ウィジェットが使えない場合の代替手段(
asset_add_fileがこのサーフェスで利用できない場合のみ。例:Codex)— ユーザーに選択を求めないでください。ローカルファイルをプログラムからステージングし(asset_initialize_file_upload→ PUT →asset_finalize_file_upload)、返された署名付き CC URL を使用します。すでに Creative Cloud にあるファイルの場合は、CC URI で直接参照します。ステージングには egress が必要です。まずadobe_mandatory_initから egress の状態を確認してください。egress が無効で、このサーフェスでピッカーも利用できない場合は、ここではステージングできないことをユーザーに伝え、asset_add_fileピッカーが利用できるサーフェスでワークフローを実行するよう依頼してください。
ファイルを利用できるようになったら、mediaType から画像か動画かを判定します。画像の場合は、ステップ 1 に進みます。
ステップ 1 — 対象プラットフォームを尋ねる
複数選択が可能な AskUserQuestion を使って、1 つの質問で尋ねます。
全プラットフォーム / Instagram / TikTok / LinkedIn / Facebook / YouTube / Snapchat / X/Twitter / Pinterest / Threads
ユーザーの回答に基づいてテストフラグを設定します。
- 「全プラットフォーム」が選択された場合 →
runTestPreview = true。すべてのプラットフォームを使用します。全セットを生成する前に、3 種類のクロップによるテストプレビューを表示します(ステップ 4 を参照)。 - 特定のプラットフォームが 1 つ以上選択された場合 →
runTestPreview = false。選択されたプラットフォームのみを使用します。テストプレビューをスキップし、ステップ 3 からステップ 5 に直接進みます。
テストプレビューは、多数のプラットフォームにまたがる大規模なバッチでは安全策として役立ちますが、対象を絞った 1~2 プラットフォームの実行では、余計な手間になります。
ステップ 2 — 画像を確認してフォーカス戦略を設定する
まず、ソースファイルに対して asset_inline_preview を使用し、画像を確認してください。目視で確認することで、ファイル名から推測するよりもはるかに適切なフォーカスを決定できます。通常、ユーザーに何かを尋ねる必要もなくなります。
確認後、見えている内容と使用するフォーカス戦略をユーザーに伝え、修正があれば知らせてもらうようにします。
「これは[例:『無地の背景に置かれたトートバッグの商品写真』]ですね。すべてのトリミングで[被写体]が中央にくるよう、[フォーカス戦略]を使用します。この方針でよろしいですか? それとも、ほかのものにフォーカスしたいですか?」
画像が本当に曖昧な場合(同じくらい目立つ被写体が複数ある、または明確な焦点のないシーン)のみ、追加の質問をしてください。
| 画像の種類 | フォーカス戦略 | 理由 |
|---|---|---|
| ポートレート/顔写真/人物のいるシーン | "face" | 人物には最も信頼性が高く、狭い範囲でトリミングする場合も顔検出によって顔を基準にできます |
| 上半身/胸から上のポートレート | "upper_body" | 顔と胴体の両方の文脈が重要な場合に使用します(服装、ジェスチャー、表情など) |
| 無地の背景にある商品 | { prompt: "description of product" } | きれいに切り抜くため、商品を明示的に指定します(例:{ prompt: "tote bag" }) |
| 背景が複雑な非人間の被写体 | { prompt: "description of subject" } | 一般的な "subject" よりも正確です |
| 空撮/フラットレイ/明確な被写体がない画像 | { x: 0.5, y: 0.5 } | 検出対象がない場合は、中央でトリミングするのが最も安全です |
| ユーザーが被写体を指定した場合 | { prompt: "user's description" } | ユーザーの言葉をそのまま渡します |
人物を含む画像には
"face"を使用してください。プロンプトによるフォーカスは、顔ではなく体にずれる傾向があります。{ prompt: "..." }は非人間の被写体に使用してください。
⚠️ ソース画像が高さよりも大幅に幅広い(横長)場合は、縦長の拡張で上部と下部に 2000px を使用してください(デフォルトの 960px ではありません)。これにより、ポートレートのトリミングで被写体を再配置するためのキャンバスを十分に確保できます。 ⚠️ 同じ横長のソース画像では、横長の拡張で左右に 1500px も使用してください(デフォルトの 960px ではありません)。960px では、約 2:1 の横長トリミングで被写体を中央に移動するための再配置スペースが足りません。
ユーザーが評価を訂正した場合は、フォーカス戦略を更新し、続行する前に確認してください。
ステップ 3 — 生成拡張(ソースから直接実行 — パディングなし)
元の画像を直接拡張します。最初に正方形へパディングしないでください。AI は、空白の帯をつなぎ合わせるよりも、実際のシーンの内容を延長するほうが良い結果を生成します。
トリミングを行う前に、両方の拡張を実行してください。
// GROUP A — tall canvas (for 9:16 and 4:5 targets)
image_generative_expand(sourceURI, { top: 960, bottom: 960 }) → tallURI
// use 2000 top & bottom if source is significantly landscape
// GROUP B — wide canvas (for ~2:1 and 16:9 targets)
image_generative_expand(sourceURI, { left: 960, right: 960 }) → wideURI
// use 1500 left & right if source is significantly landscape
正方形のターゲット(1:1)はソースから直接トリミングするため、拡張は不要です。
拡張は元の
sourceURIから開始してください。拡張を連鎖させると出力品質が低下します。 ⚠️image_generative_expandが 403(権限)を返した場合は、該当グループのすべてのバリエーションで、sourceURIを使ったfit: "reframe"のimage_crop_and_resizeに切り替えてください。納品概要にフォールバックしたことを記載してください。
ステップ 4 — テストプレビュー (フルセットのみ — runTestPreview = false の場合はスキップ)
runTestPreview = false の場合(特定のプラットフォームを選択):このステップをスキップして、ステップ 5 に進みます。
runTestPreview = true の場合(フルセット):フルセットを生成する前に、アスペクト比の各ファミリーを代表するテスト用クロップを 3 点作成します。
| テスト | ソース | 寸法 | 比率 | 対象となる項目 |
|---|---|---|---|---|
| テスト 1 — 正方形 | sourceURI | 1080×1080 | 1:1 | Instagram の正方形、LinkedIn の正方形、Facebook の正方形 |
| テスト 2 — 縦長 | tallURI | 1080×1350 | 4:5 | Instagram の縦長、Threads — 9:16 の品質を測る指標 |
| テスト 3 — 横長 | wideURI | 1200×627 | ~2:1 | LinkedIn の横長、Facebook の横長、X/Twitter |
asset_preview_file ですべて表示して、次のように尋ねます。
「主なアスペクト比を網羅するテスト用クロップを 3 点用意しました。フレーミングと拡張の仕上がりは問題ありませんか?承認いただければ、フルセットを生成します。」
ウィジェットが利用できない場合の代替手順(
asset_preview_fileが利用できない場合のみ。例:Codex)— 3 つすべての URL をメッセージに直接提示して、同じ質問をします。UI クライアントではインラインで表示されます。Codex などの UI を持たないエージェントでは、それぞれをワークスペースにダウンロードし、ローカルパスを参照します。
これらのクロップは最終出力でも再利用されます。承認後に生成する必要があるのは、9:16 のストーリー/リール用クロップのみです。
ステップ 5 — すべてのプラットフォーム向けバリエーションを生成する
**runTestPreview = true の場合:**ステップ 4 でユーザーがテスト用クロップを承認した後にのみ進みます。
**runTestPreview = false の場合:**ステップ 3 の直後に進みます。
選択した各プラットフォームについて、「プラットフォーム仕様」表にあるすべてのバリエーションを生成します。寸法が完全に一致する場合に限り、テスト用クロップの URI を再利用してください。寸法が異なる場合は、新たに image_crop_and_resize を実行します。
プラットフォームごとに生成するバリエーション:
| プラットフォーム | バリエーション |
|---|---|
| 1080×1080(テストを再利用)、1080×1350(テストを再利用)、1080×1920 | |
| TikTok | 1080×1920 のみ — TikTok 用の 4:5 バリエーションはありません |
| 1200×627(テストを再利用)、1080×1080(テストを再利用) | |
| 1200×630、1080×1080、1080×1920 | |
| X/Twitter | 1200×675、1080×1080 |
| YouTube | 1280×720 |
| Snapchat | 1080×1920 |
| 1000×1500 | |
| Threads | 1080×1350 |
ステップ 6 — フルセットをプレビューする
生成に成功したすべての URL を asset_preview_file に渡します。バリエーションの一部に失敗した場合も、生成に成功した分を含めます。
ウィジェットが利用できない場合の代替手順(
asset_preview_fileが利用できない場合のみ。例:Codex)— 生成に成功したすべての URL をメッセージに直接列挙します(バリエーションの一部に失敗した場合も、生成に成功した分を含めます)。UI クライアントではインラインで表示されます。Codex などの UI を持たないエージェントでは、それぞれをワークスペースにダウンロードし、ローカルパスを参照します。
ステップ 7 — 納品内容の概要
見やすい概要表を提示します。フォールバックやスキップしたステップがあれば、明確に記載してください。
✅ Social media set complete!
| Platform | Format | Dimensions | Status |
| --------- | -------------- | ---------- | ------------- |
| Instagram | Feed Square | 1080×1080 | ✅ (from test) |
| Instagram | Feed Portrait | 1080×1350 | ✅ (from test) |
| Instagram | Story / Reel | 1080×1920 | ✅ |
| TikTok | Video / Post | 1080×1920 | ✅ |
| LinkedIn | Post Landscape | 1200×627 | ✅ (from test) |
| LinkedIn | Post Square | 1080×1080 | ✅ (from test) |
生成 AI による拡張からリフレームに切り替えた場合:
⚠️ 現在ご利用の Adobe プランには AI によるキャンバス拡張が含まれていないため、スマートリフレームを使用しました。
プラットフォーム仕様(画像)
| # | プラットフォーム | フォーマット | 寸法 | 比率 | 品質 | ソースキャンバス |
|---|---|---|---|---|---|---|
| 1 | フィード(正方形) | 1080×1080 | 1:1 | 7 | sourceURI | |
| 2 | フィード(縦長) | 1080×1350 | 4:5 | 7 | tallURI | |
| 3 | ストーリー/リール | 1080×1920 | 9:16 | 7 | tallURI | |
| 4 | TikTok | 動画/投稿 | 1080×1920 | 9:16 | 7 | tallURI |
| 5 | 投稿(横長) | 1200×627 | ~2:1 | 6 | wideURI | |
| 6 | 投稿(正方形) | 1080×1080 | 1:1 | 6 | sourceURI | |
| 7 | フィード(横長) | 1200×630 | ~2:1 | 7 | wideURI | |
| 8 | フィード(正方形) | 1080×1080 | 1:1 | 7 | sourceURI | |
| 9 | ストーリー | 1080×1920 | 9:16 | 7 | tallURI | |
| 10 | X/Twitter | インストリーム | 1200×675 | 16:9 | 6 | wideURI |
| 11 | X/Twitter | 正方形投稿 | 1080×1080 | 1:1 | 6 | sourceURI |
| 12 | YouTube | サムネイル | 1280×720 | 16:9 | 5 | wideURI |
| 13 | Snapchat | スナップ/ストーリー | 1080×1920 | 9:16 | 2 | tallURI |
| 14 | 標準ピン | 1000×1500 | 2:3 | 7 | tallURI | |
| 15 | Threads | フィード(縦長) | 1080×1350 | 4:5 | 7 | tallURI |
⚠️ Snapchat の 250 KB 制限には
quality: 2が必要です。Snapchat が選択された場合は、事前にユーザーに警告してください。
ファイル命名規則: [basename]_[platform]_[descriptor]_[ratio].jpg
例:hero_instagram_story_9x16.jpg
動画ワークフロー
ステップ 0 — ソースファイルを取得する
動画ツールには URL ではなく assetId が必要です。取得方法はファイルの保存場所によって異なります。
| ソース | 操作 |
|---|---|
チャットにアップロードされたファイル(/mnt/user-data/uploads/…) | adobe_mandatory_init(ステップ 0)で egress の状態を確認します。egress が有効な場合は、bash でファイルサイズと MIME タイプを取得し、asset_initialize_file_upload を呼び出してチャンクを PUT し、その後 asset_finalize_file_upload を呼び出してプログラムからアップロードします。返された assetId を動画ツールで使用します。egress が無効な場合は、代わりに asset_add_file()(ファイル選択ツール)を使用します。 |
| ファイルがまだ提供されていない | すぐに asset_add_file() を呼び出します。 |
| ファイルがすでに Creative Cloud にある | ユーザーがファイルを選択できるように asset_add_file() を呼び出します。 |
egress が無効で、ユーザーがすでに動画をチャットにドロップしている場合は、そのまま使用できない理由を説明します。「動画のサイズを変更するには、ファイル選択ツールから動画を選択していただく必要があります。これにより、Adobe が必要とするアセット ID を取得できます。今から開きます。」
ウィジェットが使えない場合の代替手段(
asset_add_fileが利用できない場合のみ。例:Codex)— ローカル動画をプログラムからステージングし(asset_initialize_file_upload→ PUT →asset_finalize_file_upload)、返されたassetIdを使用します。Creative Cloud にすでにある動画は、そのassetIdを指定します。ステージングには egress が必要です。まずadobe_mandatory_initで egress の状態を確認します。egress が無効で、この環境でファイル選択ツールも利用できない場合は、ここではステージングできないことをユーザーに伝え、asset_add_fileファイル選択ツールが使える環境でワークフローを実行するよう依頼します。
ステップ 1 — 動画の種類を判断する
ユーザーが動画の向きをすでに説明している、または示唆している場合(例:「スマートフォンで縦向きに撮影しました」→ 明らかに 9:16)は、この質問を省略して次に進みます。それ以外の場合は、次のように尋ねます。
「最適な出力サイズを提案するには、動画の種類がわかると役立ちます。どのような種類の動画ですか?」
単一選択で AskUserQuestion を使用します。
| オプション | アスペクト比 | よくある用途 |
|---|---|---|
| スマートフォン動画 — 縦向き | 9:16 | スマートフォンで縦向きに撮影 |
| スマートフォン動画 — 正方形 | 1:1 | 正方形モードで撮影 |
| 画面録画 | 16:9 | デスクトップまたはノートパソコンの画面キャプチャ |
| カメラ/DSLR | 16:9 | プロ用カメラまたはミラーレスカメラ |
| その他/わからない | — | 1:1 をデフォルトにします(クロスプラットフォームで最も安全) |
ステップ 2 — 安全な出力サイズを提案する
同じアスペクト比のリサイズのみを提案します。異なるアスペクト比へのリサイズ(例:16:9 → 9:16)では黒帯が生じ、TikTok と Instagram Reels でアルゴリズムによる評価が下がります。ユーザーが異なるアスペクト比へのリサイズを依頼した場合は、制約を説明し、同じアスペクト比の代替案を提示してください。
| 元のアスペクト比 | 安全な出力サイズ |
|---|---|
| 9:16(縦向き) | 1080×1920, 720×1280, 540×960 |
| 1:1(正方形) | 1080×1080, 720×720 |
| 16:9(横向き) | 1920×1080, 1280×720, 854×480 |
AskUserQuestion(複数選択)を使って、これらを選択肢として提示します。
ステップ 3 — リサイズする
⚠️
resizeVideoPollは遅延ツールです。ポーリングを試みる前に、まず読み込んでください。 読み込まずに直接呼び出すと、「not loaded」エラーが発生します。
選択したサイズごとに、アセット ID を指定して video_resize を呼び出します。
video_resize({ assetId: sourceAssetId, width: W, height: H }) → { statusId }
完了するまで resizeVideoPoll でポーリングします。進行が遅いことをユーザーに報告する前に、短い間隔を置きながら 3~4 回ポーリングしてください。
ステップ 4 — プレビューする
完了したすべての出力を指定して asset_preview_file を呼び出します。
ウィジェットが利用できない場合の代替手段(
asset_preview_fileが利用できない場合のみ。例:Codex)— 完了したすべての出力 URL をメッセージに直接列挙します。UI クライアントではインラインで表示されます。Codex やその他の非 UI エージェントでは、それぞれをワークスペースにダウンロードし、ローカルパスを参照してください。
ステップ 5 — 提供内容の概要
✅ Video resize complete!
| Size | Ratio | Status |
| --------- | ----- | ------ |
| 1080×1920 | 9:16 | ✅ |
| 720×1280 | 9:16 | ✅ |
注:動画のリサイズではインテリジェントなリフレーミングは行われません。異なるアスペクト比への再フォーマットは、このスキルの対象外です。
エラー処理
| 状況 | 対応 |
|---|---|
| アップロード時のエグレスに失敗する(再試行後もチャンクの PUT が 5xx) | アップロードを中止します。asset_add_file() にフォールバックし、ユーザーに「直接アップロードできませんでした。ファイルを選択できるようにピッカーを開きます。」と伝えます。(ウィジェットのない画面の場合:失敗を報告し、ファイルをもう一度提供するようユーザーに依頼します。) |
image_generative_expand が 403(利用資格)を返す | sourceURI から fit: "reframe" を指定して image_crop_and_resize にフォールバックします。納品の概要に「現在の Adobe プランには AI キャンバスの拡張が含まれていないため、代わりにスマートリフレームを使用しました。」と記載します。利用資格による 403 は再試行しても解決しないため、フォールバックのルールに従って続行します。 |
image_crop_and_resize が 403(利用資格)を返す | ワークフローを中止します。ユーザーに「現在の Adobe プランでは画像のトリミングを利用できないため、ここではリクエストを完了できません。」と伝えます。 |
| PSD/AI のフラット化が 403 を返す | ワークフローを中止します。ユーザーに「現在の Adobe プランではこのファイル形式のフラット化を利用できません。まず JPG または PNG として書き出してから、もう一度お試しください。」と伝えます。 |
.ffgenimg ファイル形式の展開に失敗する | presignedAssetUrl ではなく presignedRenditionUrl を使用して再試行します。 |
| 401 未認証 | Adobe OAuth で再認証するようユーザーに依頼します。 |
| トリミング後の画像サイズが大きすぎる | 品質設定を下げて再実行します。 |
| Express ファイルがアップロードされた | まず JPG/PNG として書き出すようユーザーに依頼します。 |
| PSD / AI ファイルがアップロードされた | まずフラット化します(JPEG、300 DPI)。403 が発生した場合は、上記の利用資格に関する行を参照してください。 |
video_resize が失敗する | 明確に報告し、MP4 として再アップロードするようユーザーに提案します。 |
| サポートされていないファイル形式(DOCX、PDF など) | ユーザーに知らせます。受け付ける入力形式:JPG、PNG、Firefly 画像、PSD/AI、MP4/MOV。 |
厳守事項
image_*ツールや動画ツールにローカルファイルシステムのパスをそのまま渡さないでください。ローカルファイルはまず Creative Cloud に送る必要があります。asset_add_fileピッカーで選択するか、(ウィジェットを使用しない場合の代替手順として)asset_initialize_file_upload→ PUT →asset_finalize_file_uploadの順にステージングしてください。有効なのは、そこで生成された画像用の署名付き CC URI、または動画ツール用のassetIdのみです。