Token导航 LogoToken导航

Agent Skill · 待分类

adobe-batch-edit-photos(adobe 批量编辑照片)

用于辅助图像生成、图片编辑、视觉素材处理或图像模型工作流。它适合让 Agent 根据文本生成图片、处理背景、整理视觉提示词或调用相关图像工具。使用时需要确认输入图片、版权来源、输出格式和模型限制;涉及人物、品牌、商品或公开展示素材时,应额外核对授权、真实性和内容合规边界。

adobe-batch-edit-photos 是待分类类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在待分类类的 11,209 个 Skill 里排第 3,393。

总安装 1,032周安装 43GitHub Stars 55下载 344核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:adobe-batch-edit-photos(adobe 批量编辑照片)
来源仓库:https://github.com/adobe/skills
仓库路径:skills/adobe-batch-edit-photos
安装命令:
npx skills add https://github.com/adobe/skills --skill adobe-batch-edit-photos
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/adobe/skills --skill adobe-batch-edit-photos

这个 Skill 是做什么的

这个 Skill 的分类还没最终确定,用法以来源仓库的说明为准。

adobe-batch-edit-photos 专注于批量处理一组照片的视觉一致性,统一色调与色彩风格。适用于需要保持多图整体协调性的场景,如社交媒体素材、产品图集等。支持自动校正、曝光调整和色调统一,优先保证集合感而非单图极致优化。需用户提供源图片,并注意版权合规性与输出格式限制。

适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

来源仓库内路径:skills/adobe-batch-edit-photos

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/adobe/skills --skill adobe-batch-edit-photos;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

adobe-batch-edit-photos 怎么安装?

在终端执行 npx skills add https://github.com/adobe/skills --skill adobe-batch-edit-photos。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

adobe-batch-edit-photos 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

adobe-batch-edit-photos 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

adobe-batch-edit-photos 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

adobe-batch-edit-photos 用的人多吗?

公开数据是累计安装 1,032 次,近一周安装 43 次,下载 344 次,GitHub 55 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

adobe-batch-edit-photos 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理待分类类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

待分类类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
infsh-cli

infsh CLI · Codex、Claude

4,374,576382权限未标注未明确未收录
ai-video-generation

AI 视频生成 · Codex、Claude

4,313,376382调用外部服务未明确有提醒
lark-openapi-explorer

云雀 OpenAPI 浏览器 · Codex、Claude

2,064,1209,011需要联网未明确有提醒
lark-workflow-standup-report

Lark 工作流程站立报告 · Codex、Claude

2,041,6328,978需要联网未明确通过
use-my-browser

使用我的浏览器 · Codex、Claude

1,848,49140操作浏览器未明确未通过
adobe-batch-edit-photos

adobe 批量编辑照片 · 本页

1,03255需要联网未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Adobe Batch Edit Photos

A batch editing pipeline focused on visual cohesion — making a set of photos look like they were edited together. The user picks a look (or describes one), and Claude applies it consistently across every image using Adobe creativity tools.

The core insight: users who want "cohesion" care less about per-image perfection and more about the whole set reading as intentional. Prioritize consistency of tone and color over squeezing the best out of any single image.


Tool Reference

StepToolNotes
Ingestasset_add_fileInteractive file picker
Straightenimage_auto_straightenPer image
Auto-toneimage_apply_auto_tonePer image, type: "cameraRawFilter"
Exposureimage_adjust_exposureBatch — fine-tune option (brighter/darker)
Highlightsimage_adjust_highlightsBatch — fine-tune option
Shadowsimage_adjust_dark_portionsBatch — fine-tune option
Bright areasimage_adjust_light_portionsBatch — fine-tune option
Brightness/Contrastimage_adjust_brightness_and_contrastBatch, if requested
Vibrance/Saturationimage_adjust_vibrance_and_saturationBatch, if requested
Color temperatureimage_adjust_color_temperatureBatch — key for "warm", "cool", "golden" looks
Look presetimage_apply_presetPer image, core style vehicle
Face detectimage_select_subject with bodyParts: ["Face"]Per image, only if crop focus needed
Background blurimage_apply_gaussian_blurPer image, only if explicitly requested
Cropimage_crop_and_resizePer image, optional
Sample previewasset_preview_fileBefore/after on image[0] only
Final previewasset_preview_fileBatch assets array
Firefly Boardcreate_firefly_boardAll edited outputs

Step 0 - prereq: Initialize Adobe Tools

Call adobe_mandatory_init first. This returns file handling rules and tool routing guidance required for the rest of the workflow.

{ "skill_name": "adobe-batch-edit-photos", "skill_version": "1.0.1" }

Step 1 — Entitlement Check

Now that adobe_mandatory_init confirmed that the "Adobe for creativity" connector is live, check which tools are available through the "Adobe for creativity" connector by cross checking against the Tool Reference table above.


Step 2: Image Ingestion

Call asset_add_file with no parameters to open the file picker:

Tool: asset_add_file
Params: {}

Step 3: Understand the Desired Look

Once URIs are obtained, scan the conversation to infer as many preferences as possible before asking anything:

  • Look: inferrable from words like "warm", "golden", "cinematic", "moody", "bright and airy", "muted", "film", "cool", "vibrant", "punchy"
  • Fine-tune tweaks: inferrable from "recover highlights", "lift shadows", "more contrast", "blown out", "too dark", "more vibrant", "desaturate"
  • Crop: inferrable from "no crop", "square", "1:1", "portrait crop", "keep framing", etc.

Three cases:

A — Everything clear from context: Skip AskUserQuestion entirely. Post the confirmation message, then proceed directly to Step 3b (sample preview). Do NOT start the full batch — the preview and confirm gate always runs regardless of how clearly preferences were stated.

B — Some things clear, some not: Confirm what you've inferred upfront, then call AskUserQuestion with only the questions that remain unanswered. For example, if the look and a tweak are clear but crop isn't, post:

📷 Got [N] photo(s)! Based on what you said, I'll go with:
- Look: Moody & Cinematic
- Tweaks: Recover blown highlights

Just one thing — do you want a crop?

Then call AskUserQuestion with Question 3 only.

C — Nothing specified: Post the full intro and show all 3 questions:

📷 Got [N] photo(s)! I'll apply consistent edits across all of them so
the set looks cohesive.

What kind of look are you going for? 👇

The full AskUserQuestion questions (use only the ones that are still open):

Question 1 (single_select):
  question: "🎨 Pick a base look"
  options:
    - "Auto (balanced, neutral)"
    - "Warm & Golden — cozy, travel, golden hour"
    - "Bright & Airy — clean, light, lifestyle"
    - "Moody & Cinematic — dramatic, contrasty, desaturated"
    - "Cool & Fresh — clear skies, travel, blue tones"
    - "Vibrant & Punchy — vivid, bold, social-ready"
    - "Muted & Film — faded, analog, editorial"

Question 2 (multi_select):
  question: "🎛️ Fine-tune (optional)"
  options:
    - "Recover blown highlights"
    - "Lift dark shadows"
    - "Boost contrast"
    - "Boost color intensity"
    - "Desaturate / muted tones"
    - "Adjust exposure (brighter/darker)"
    - "Tune bright areas"
    - "Blur background (heavy)"
    - "None"

Question 3 (single_select):
  question: "✂️ Crop ratio? (optional)"
  options:
    - "No crop — keep original framing"
    - "1:1 square"
    - "4:5 portrait"
    - "16:9 wide"
    - "4:3 standard"

Question 4 (single_select):  [only ask if Q3 is not "No crop"]
  question: "🎯 How should the crop be framed?"
  options:
    - "Center — crop from center of image"
    - "Smart crop — detect subject/face and frame around it"

Wait for the user's reply before proceeding.

Note on Question 4: If the user's message already implies a framing preference (e.g. "center crop", "crop to my face", "frame around the subject"), skip Q4 and infer directly. If the user specifies a ratio but not a framing method, default to Smart crop — it almost always produces a better result than a pure center cut.

Look → Parameter Mapping

Base look → image_adjust_color_temperature + image_apply_preset + adjustments:

LookColor Temp (a, b, luminance)PresetSaturation/VibranceBrightness/Contrast
Auto (balanced)noneAdaptive: Auto Tonenonenone
Warm & Goldena=32, b=120, luminance=67Adaptive: Subject - Warm Popvibrance +15none
Bright & Airya=20, b=60, luminance=62Adaptive: Subject - Popsaturation -10, vibrance +10brightness +15
Moody & Cinematica=20, b=-50, luminance=45Adaptive: Sky - Dark Dramasaturation -20contrast +25
Cool & Fresha=18, b=-123, luminance=45Adaptive: Sky - Blue Dramavibrance +10none
Vibrant & PunchynoneAdaptive: Subject - Popvibrance +30, saturation +15contrast +10
Muted & Filmnonenonesaturation -35, vibrance -10contrast +10

Fine-tune → tool parameters:

  • "Recover blown highlights" → image_adjust_highlights → amount: -60
  • "Lift dark shadows" → image_adjust_dark_portions → amount: +40
  • "Boost contrast" → image_adjust_brightness_and_contrast → contrast: 30
  • "Boost color intensity" → image_adjust_vibrance_and_saturation → vibrance: 30
  • "Desaturate / muted tones" → image_adjust_vibrance_and_saturation → saturation: -30
  • "Adjust exposure (brighter/darker)" → image_adjust_exposure → exposure: +0.5 (brighter) or exposure: -0.5 (darker); infer direction from context, default to +0.3 if unspecified
  • "Tune bright areas" → image_adjust_light_portions → amount: +20
  • "Blur background (heavy)" → image_apply_gaussian_blur → blurRadius: 12, blurTarget: "background"
  • "None" → skip fine-tune step entirely

Crop:

  • "No crop" → skip Step 7 entirely
  • Ratio + "Center" → image_crop_and_resize with fit: "reframe", that ratio as output, align: {x: 0.5, y: 0.5} (pure center cut)
  • Ratio + "Smart crop" → image_crop_and_resize with fit: "reframe", that ratio as output, focus: "face" if portraits/people likely, else focus: "subject" (smart reframe around detected subject at the chosen ratio)

After receiving selections, confirm the settings back to the user:

✅ Got it — running with:
- Look: [selected look]
- Tweaks: [list if any, or "none"]
- Crop: [ratio or "no crop"] + [Center / Smart crop]
- Background blur: [yes/no]

Then proceed immediately to Step 3b (sample preview) — do not start the full batch yet.


Step 3a: Large Batch Warning (N > 5)

Include this as part of the Step 3b confirmation prompt (after the before/after preview) when N > 5:

⏱ Estimated time for [N] images:
  6–10 → ~3–5 min
  11–20 → ~5–10 min
  20+ → 10+ min

Feel free to step away — I'll post a ✅ summary with download links when done.

Step 3b: Sample Preview (Before/After on Image 1)

Before running the full batch, process the first image only through the complete pipeline (Steps 4–8) using the confirmed settings. This gives the user a real preview of exactly what will be applied to every image.

  1. Run the full pipeline on sourceURIs[0] only (straighten → tone → look → fine-tune → blur → crop).
  2. Call asset_preview_file directly with both the original source URL and the processed output URL — do NOT resize either through image_crop_and_resize first, as that introduces white bars or unwanted cropping:
asset_preview_file({
  assets: [
    { name: "Before", presignedAssetUrl: sourceURIs[0] },
    { name: "After",  presignedAssetUrl: processed_url }
  ]
})
  1. Post this message (append the large-batch timing note here if N > 5):
👆 Here's a before/after preview using your first photo and the settings you selected.

How does it look?
  1. Call AskUserQuestion with a single question:
Question (single_select):
  question: "Ready to run the full batch?"
  options:
    - "✅ Looks great — run all [N] images"
    - "🎛️ Adjust settings"
    - "❌ Cancel"

If "Looks great": Start the full batch on the remaining images (sourceURIs[1…]). Reuse the already-processed image[0] result — do not reprocess it.

If "Adjust settings": Re-show the full AskUserQuestion set from Step 3. Once new settings are confirmed, ask whether the user wants another preview or wants to go straight to the full batch:

Question (single_select):
  question: "Want to preview the new settings first, or run all images now?"
  options:
    - "👁 Preview first"
    - "🚀 Run all [N] images now"
  • If "Preview first": repeat Step 3b with the new settings (process image[0] again, show before/after, offer the same Looks great / Adjust / Cancel gate).
  • If "Run all now": start the full batch immediately on all sourceURIs with the new settings. Do not reuse the earlier image[0] result — reprocess it with the updated settings. If "Cancel": Acknowledge and stop. Do not process any images.

Step 4: Auto-Straighten (per image)

Tool: image_auto_straighten
Params:
  imageURIs: ["<source_uri_N>"]
  options:
    uprightMode: "auto"
    constrainCrop: true

Output: results[0].outputUrl → straightened_urls[]

On failure: use original URI, note "straighten skipped" for that image.


Step 5: Auto-Tone (per image)

Tool: image_apply_auto_tone
Params:
  imageURI: "<straightened_url_N>"
  options:
    type: "cameraRawFilter"
  outputFileType: "jpeg"

Use type: "cameraRawFilter" for image_apply_auto_tone. Output: results[0].outputUrl → toned_urls[]


Step 6: Apply the Look (per image)

Apply the look in this order per image, chaining outputs:

6a: Color Temperature (if the look requires it — see mapping table)

image_adjust_color_temperature supports a batch imageURIs array. Pass all toned URLs at once for efficiency:

Tool: image_adjust_color_temperature
Params:
  imageURIs: ["<toned_url_1>", "<toned_url_2>", ...]
  options:
    a: <value from mapping>         # green-red axis (-128–127)
    b: <value from mapping>         # blue-yellow axis (-128–127)
    luminance: <value from mapping> # 0–100

Output: results[N].outputUrl → color_temp_urls[]

6b: Look Preset (if the look uses one — see mapping table)

Tool: image_apply_preset
Params:
  imageURI: "<color_temp_url_N>"
  options:
    presetName: "<preset from mapping>"

6c: Vibrance / Saturation (if the look requires it)

Tool: image_adjust_vibrance_and_saturation
Params:
  imageURIs: ["<previous_url_N>"]
  options:
    vibrance: <value>
    saturation: <value>

6d: Brightness + Contrast (if the look requires either — combine into one call)

Tool: image_adjust_brightness_and_contrast
Params:
  imageURIs: ["<previous_url_N>"]
  options:
    brightness: <value>   # omit if not needed for this look
    contrast: <value>     # omit if not needed for this look

Combining brightness and contrast into a single call saves a round trip and produces the same result as two sequential calls.

The goal is consistency: apply the same parameter values to every image, even if some images might technically look better with different values. Cohesion beats perfection here.

On 403 (entitlement) for image_apply_preset: Skip the preset for all images. Note in the delivery summary: "[Preset name] was skipped — not included in your Adobe plan." Continue with the rest of the look adjustments.


Step 7: Fine-Tune Adjustments (batch, if selected)

Apply user-selected tweaks across all images at once. All of these tools accept a batch imageURIs array — chain from the look output:

Tool: image_adjust_highlights / image_adjust_dark_portions / image_adjust_brightness_and_contrast /
      image_adjust_vibrance_and_saturation / image_adjust_exposure / image_adjust_light_portions
Params:
  imageURIs: ["<look_url_1>", "<look_url_2>", ...]
  options:
    <values from mapping>

Run each selected tweak in sequence, chaining outputs. If "Boost contrast" is selected AND the look already calls image_adjust_brightness_and_contrast for brightness (e.g. Bright & Airy), merge them into a single call with both brightness and contrast values rather than running two separate calls.

Background blur (if selected, per image):

Tool: image_apply_gaussian_blur
Params:
  imageURIs: ["<url_N>"]
  options:
    blurRadius: 12
    blurTarget: "background"

Step 8: Crop (per image, if requested)

If "No crop" was selected, skip this step entirely.

Both crop modes use the same fit: "reframe" at the chosen ratio — the difference is in how the frame is positioned within the image.

Center crop — cuts to the target ratio from the geometric center:

Tool: image_crop_and_resize
Params:
  imageURI: "<adjusted_url_N>"
  options:
    output: "<ratio>"        # "1:1", "4:5", "16:9", "4:3"
    fit: "reframe"
    align: { x: 0.5, y: 0.5 } # geometric center
  outputFileType: "jpeg"

Smart crop — same ratio, but positions the frame around the detected subject or face rather than the geometric center. The subject stays in frame even if they're off-center in the original:

Tool: image_crop_and_resize
Params:
  imageURI: "<adjusted_url_N>"
  options:
    output: "<ratio>"   # "1:1", "4:5", "16:9", "4:3"
    fit: "reframe"
    focus: "face"       # or "subject" for non-portrait scenes
  outputFileType: "jpeg"

Collect as final_urls[]. If no crop: final_urls[] = outputs from Step 7 (or Step 6 when no fine-tunes are selected).


Step 9: Preview

Pass the final output URLs directly to asset_preview_file — do NOT run them through image_crop_and_resize first. Adding a resize step introduces white bars (from fit: "pad") or crops subjects (from fit: "reframe"). asset_preview_file handles its own thumbnailing correctly.

asset_preview_file({
  assets: [
    { name: "photo_1.jpg", presignedAssetUrl: final_url_1 },
    // ... one per image
  ]
})

If asset_preview_file fails, present the final output URLs as plain text links in the completion summary.

Before/after preview (Step 3b): Same rule applies — pass the original source URL and the processed URL directly to asset_preview_file. Do not resize either.

Create Firefly Board

Call the firefly board tool with the final output urls as follows:

create_firefly_board({
  import_adobe_storage: [
    final_output_url_1,
    final_output_url_2,
    // ...
  ]
})

Board link handling:

  • create_firefly_board returns a board URL. Extract it and store as board_url.
  • If board_url is present and non-empty, include it in the completion message.
  • If the call throws an error or returns no URL: omit the board link and note "Firefly Board unavailable" in the summary (retrying does not help). Then post the completion message. The preview grid is included in every completion message. The board link is included whenever board_url was returned.

If N ≤ 3:

✅ Done! [N] photos edited with a consistent [look name] look.

📥 Download:
• Photo 1 → <final_url_1>
• ...

🎨 View in Firefly Board → <board_url>   ← always include if board_url is set

Look applied: [look name] → [brief description of what was applied]

If N > 3:

✅ Done! [N] photos edited with a consistent [look name] look.

📥 Your edited photos:
• Photo 1 → <final_url_1>
• Photo 2 → <final_url_2>
• ...

🎨 View in Firefly Board → <board_url>   ← always include if board_url is set

Look applied: [look name] → [brief description of what was applied]

Verbosity Rule

Report only: major stage starts, per-image failures (logged once), and the final summary.

  • When a major stage starts (e.g. "Applying Warm & Golden look to [N] images…")
  • Any per-image failure (log once, continue)
  • Final summary with grid + download links

Output Extraction

All pipeline tools return:

{ "results": [{ "success": true, "outputUrl": "https://..." }] }

Read results[N].outputUrl. On success: false → see Error Handling.


Error Handling

SituationAction
image_apply_preset returns 403Skip preset for all images (Pattern 1). Note in summary. Continue with other look steps.
Any tone/color tool returns 403Skip that step. Note in summary. Continue.
Any tool returns "No approval received"Treat the same as a 403 entitlement error. For optional steps (presets, fine-tune adjustments, preview), skip and note in summary. Retrying does not help for this error — continue per the rules above.
Any tool returns 401Ask user to re-authenticate via Adobe OAuth and retry.
Any tool returns "file too large or corrupted"Stop processing that image immediately. Do not retry, do not attempt alternative URLs. Tell the user: "I couldn't process [filename] — it's either too large or the file may be damaged. Try re-uploading a smaller version, or check that the file opens correctly on your end." Flag the image in the summary and continue with remaining images.
asset_add_file shows no filesRemind user to select files in the picker.
image_auto_straighten failsUse original URI; note "straighten skipped".
image_apply_auto_tone failsUse straightened URI; note in summary.
Any adjustment tool failsUse previous step's output; note in summary.
image_apply_gaussian_blur failsUse previous output; note "blur skipped".
image_crop_and_resize failsUse blur/adjusted output as final; note in summary.
asset_preview_file returns "No approval received"Present final output URLs as plain text links in the summary instead.
All steps fail on one imageReturn original URI; flag clearly in summary.

Hard Constraints

  • Every image in the batch is processed; failures are flagged rather than silently skipped.
  • image_apply_auto_tone is called with type: "cameraRawFilter".
  • Apply the same parameter values to every image in the batch (cohesion over perfection).
  • Adaptive presets are off by default — only run them as part of a look.
  • Background blur uses image_apply_gaussian_blur with blurTarget: "background" (image_apply_lens_blur is not used here).
  • Completion is posted as a clear in-chat message (no push notifications).

平台分布

Codex

35.83%
按下载量换算123

Claude

29.11%
按下载量换算100

Cursor

17.22%
按下载量换算59

Gemini CLI

8.84%
按下载量换算30

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills