adobe-retouch-portraits
Bulk-retouch a folder of portrait photos using Adobe tools — designed for wedding photographers and event photographers who need fast, walk-away batch…
Skill by xixu-me
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/xixu-me-adobe-retouch-portraits
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/adobe-retouch-portraits
Tools it pre-approves 17
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
adobe_mandatory_initimage_list_presetsasset_add_fileread_widget_contextasset_initialize_file_uploadasset_finalize_file_uploadasset_preview_fileimage_auto_straightenimage_apply_auto_toneimage_apply_adjustmentsimage_select_subjectimage_apply_preset
Show 5 more
image_apply_lens_blurimage_apply_gaussian_blurimage_crop_and_resizeimage_fill_areacreate_firefly_board
What's inside
- Skill name
adobe-retouch-portraits- Description
- Bulk-retouch a folder of portrait photos using Adobe tools — designed for wedding photographers and event photographers who need fast, walk-away batch processing. Use this skill when the user says "retouch my photos", "batch process these portraits", "process my wedding photos", "clean up this folder of images", "run my headshots through Adobe", or uploads/selects a folder of photos and wants them polished and ready to review. Automatically applies auto-straighten, auto-tone, and auto-light to every image. Outputs a preview grid and download folder. Access: 🔐 Signed-In required | Gen AI: ❌ by default — optional background-only cleanup only where the surface permits generative AI (e.g. Codex); none on Claude
- License
- Apache-2.0
- Compatibility
- Runs on both widget-capable surfaces (e.g. Claude Cowork, which supports the asset_add_file picker and asset_preview_file preview widgets) and non-UI agents (e.g. Codex, where those widgets are unavailable). The default flow uses the widgets; each widget step has a text-only fallback. Local files are staged to Creative Cloud first; raw local paths are never passed to image tools.
- Allowed tools
- adobe_mandatory_init, image_list_presets, asset_add_file, read_widget_context, asset_initialize_file_upload, asset_finalize_file_upload, asset_preview_file, image_auto_straighten, image_apply_auto_tone, image_apply_adjustments, image_select_subject, image_apply_preset, image_apply_lens_blur, image_apply_gaussian_blur, image_crop_and_resize, image_fill_area, create_firefly_board
- Metadata
- version: 3.1.0 · visibility: public
- Instructions
- 639 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Agent Skills spec issues
- body: 639 lines (spec recommends under 500)
Files (4)
- SKILL.md
- openai.yaml · agents/
- icon-large.svg · assets/
- icon-small.svg · assets/
SKILL.md (first lines)
# Adobe Retouch Portraits
A walk-away bulk retouching pipeline for photographers. The user selects their
images, optionally adds tweaks, and the agent runs the full batch using Adobe
for creativity tools.
> **Surface note:** The default flow uses Adobe's MCP App widgets — the `asset_add_file` picker (Step 1) and the `asset_preview_file` preview (Steps 2c and 8). Follow it as written. Only if a widget tool is **not available on this surface** (e.g. Codex) use the *No-widget fallback* attached to that step. Present `AskUserQuestion` prompts as plain-text labeled options wherever no question widget exists.
---
## Generative AI Policy
**This retouching pipeline is fully non-generative by default.** The core workflow — auto-straighten, auto-tone, adjustments, presets, blur, and crop — uses no generative AI, and that non-generative pipeline is the *only* behavior on surfaces that do not permit generative AI (**including Claude**).
**Generative editing runs only where the surface permits it.** A surface permits generative AI only when it exposes a generative tool such as `image_fill_area` (e.g. Codex). Where no such tool is available (e.g. Claude), perform **no** generative edits of any kind — do not call, attempt, offer, or mention them; run the non-generative pipeline only.
**Where generative AI is permitted, it is limited to backgrounds and kept minimal.** Only then may `image_fill_area` correct dust spots, sensor artifacts, or scratches on non-human areas (walls, floors, sky, props), and only when the fix is invisible at normal viewing size — remove a dust spot, not repaint a wall. **Never** apply generative tools to faces, skin, hair, bodies, or clothing on any surface. Do not alter the scene, remove objects, change the environment, or extend the frame.
If the user asks you to generatively modify a person (e.g. "change her hair color", "make him look younger"), clarify that this skill does not perform generative edits on people — and, on a surface with no generative capability at all, that generative editing isn't available here — then suggest a dedicated generative workflow instead.
---
## Tool Reference (Adobe for creativity connector)
| Step | Tool | Notes |
| --------------------- | ----------------------------------------------------------- | -------------------------------------------------- |
| Ingest | `asset_add_file` + `read_widget_context` | Interactive file picker; resolve URIs via `read_widget_context` |
| Ingest *(no-widget fallback)* | `asset_initialize_file_upload` + `asset_finalize_file_upload` | Only when `asset_add_file` is unavailable — stage a local file to CC |
| Discover presets | `image_list_presets` | Once at startup; builds the smart preset plan |
| Straighten | `image_auto_straighten` | Per image |
| Auto-Tone | `image_apply_auto_tone` (cameraRawFilter) | Per image |
| Tone adjustments | `image_apply_adjustments` | Batch — all tweaks in one call |
| Subject/body detect | `image_select_subject` | Face + body parts + clothes detection |
| Adaptive Enhancements | `image_apply_preset` | Per image, opt-in (see Step 5) |
| Background blur | `image_apply_lens_blur` | Per image, preferred — depth-aware bokeh |
| Heavy/stylized blur | `image_apply_gaussian_blur` | Per image, only if user explicitly requests heavy |
| Background cleanup | `image_fill_area` (optional; generative) | Only where the surface permits generative AI (tool available, e.g. Codex) — backgrounds only, never people; **not used on Claude** |
| Crop | `image_crop_and_resize` | Per image |
| Sample preview | `asset_preview_file` | Before/after on image[0] only *(no-widget fallback: present the URLs directly)* |
| Final preview | `asset_preview_file` | All final URLs directly, no resize step *(no-widget fallback: present the URLs directly)* |
| Firefly Board | `create_firefly_board` | Source presigned URLs from ingestion |
---
## 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.
```json
{ "skill_name": "adobe-retouch-portraits", "skill_version": "3.1.0" }
```
This also tells you which widgets this surface supports and whether egress is enabled. If `asset_add_file` and `asset_preview_file` are available, follow the default flow (Steps 1, 2c, and 8 as written). If one is not available (e.g. Codex), use that step's *No-widget fallback*. If a tool result carries an `importantNote`, or the connector injects "Asset Storage & Display" guidance for the current turn, follow it — it overrides the presentation defaults here.
---
## Step 0b: Discover Available Presets
Call `image_list_presets` immediately after init — before ingestion or user questions. This gives you the full pool of presets available to this user's plan, so you can build a smart, plan-aware preset selection for Step 5.
```
Tool: image_list_presets
Params: {}
```
From the returned list, build a **Preset Plan** by categorizing presets into four buckets. Use the naming signals below to classify each preset — these are heuristics, not hardcoded names, so apply judgment:
### Preset Plan Buckets
**1. Adaptive Person Presets** — target the subject's body, skin, clothing, or teeth
Naming signals: `Adaptive`, `Subject`, `Portrait`, `Person`, `Skin`, `Body`, `Clothes`, `Outfit`, `Pop`, `Warm Pop`, `Enhance`, `Teeth`, `Whiten`, `Smile`, `Brighten`
Goal: pick 1–3 presets that best boost the human subject. Prefer presets that target skin/body or offer subject-level contrast/warmth lift. Avoid presets that affect only sky or background. Any preset with teeth/smile/whiten signals should be included here so it is available when Whiten Teeth is selected in Step 2.
**2. Global Mood / Tone Preset** — overall tonal character of the image
Naming signals: `Mood`, `Tone`, `Warm`, `Cool`, `Golden`, `Cinematic`, `Film`, `Natural`, `Airy`, `Fade`, `Matte`, `Classic`
Goal: pick exactly **1** preset. Choose the most portrait-friendly neutral or warm look — avoid heavy stylisation (neon, surreal) unless the user requested an editorial style.
**3. Global Toon / Look Preset** — stylistic look treatment
Naming signals: `Toon`, `Style`, `Look`, `Preset`, `Vintage`, `Retro`, `B&W`, `Mono`, `Haze`, `Glow`, `Edit`, `Creative`
Goal: pick exactly **1** preset. Choose something complementary to the mood preset — not a duplicate effect. If the mood preset is already cinematic/warm, choose a lighter stylistic touch.
**4. Background Blur Preset** — softens background to flatter the subject
Naming signals: `Blur Background`, `BG Blur`, `Bokeh`, `Depth`, `Focus`, `Defocus`
Goal: pick exactly **1** blur-background preset. This replaces `image_apply_gaussian_blur` when the user opts into it.
**Fallback strategy:**
- If no preset matches a bucket, leave that bucket empty rather than forcing a poor fit.
- If the plan returns no presets at all (403 or empty list), skip Step 5 entirely and note it in the summary: "Adaptive enhancements not available — no presets found on this plan." **This is a non-blocking error — all other pipeline steps (tone adjustments, preview gate, full batch) continue exactly as normal. Only Step 5 is skipped.**
- Buckets 2 and 3 are global mood/style layers — skip them if you cannot find a clearly portrait-appropriate match. It's better to skip than to apply an ill-fitting preset.
Store the chosen presets as your **Preset Plan** before Step 2. The user's mood/style selection (collected in Step 2a) may refine which preset is chosen within each bucket — see Step 2a for guidance. Show the final plan to the user in the confirmation message (Step 2).
---
## Step 1: Image Ingestion
Call `asset_add_file` with no parameters. This renders an interactive UI where
the user can:
- **Browse CC storage** and select a folder or individual files
- **Upload from device** (local files)
- **In Cowork**: select a local folder path directly
```
Tool: asset_add_file
Params: {}
```
**Important:** `asset_add_file` returns `imageURIs: []` — this is expected and
NOT an error. The actual URIs arrive in the **next user message** after the
user selects files. Wait for that follow-up before continuing.
After receiving the URIs, call `read_widget_context` with `asset_add_file` to resolve them to correct presigned S3 URLs. Use those resolved URLs for all subsequent tool calls — `dcx-stage.adobe.io` URIs are network-blocked and must be resolved via `read_widget_context` first.
Collect the resulting presigned URLs as `sourceURIs[]` and continue to Step 2a.
> **No-widget fallback** *(only if `asset_add_file` is unavailable on this surface, e.g. Codex)* — don't ask the user to pick; get the source URIs from where the files are. `image_*` tools only accept Creative Cloud storage URIs — never raw local paths.
>
> | Source | Action |
> |--------|--------|
> | File(s) at a local path (e.g. `/mnt/user-data/uploads/…`) | **Check egress status from `adobe_mandatory_init` first.** If egress is enabled: stage each file programmatically — get file size and MIME type, call `asset_initialize_file_upload({ path: "<filename>", media_type: "<mime>" })`, PUT the bytes to the returned upload URL, then `asset_finalize_file_upload({ filename: "<filename>", transfer_document: <from initialize response> })`; use each returned presigned CC URL for downstream calls. If egress is disabled or programmatic upload fails, this fallback cannot proceed on this surface — surface the limitation to the user. |
> | File(s) already in Creative Cloud | Reference them directly by their CC presigned URL. |From xixu-me/scps, Apache-2.0.
More from xixu-me/scps
- 0.565score
adobe-design-from-template
xixu-me
Create any visual design using Adobe Express templates — flyers, posters, social media posts (Instagram, Facebook, LinkedIn), business cards, invitations…
SkillAFreshness: AClaude Code +9 - 0.565score
adobe-create-mockups
xixu-me
Use when a user wants to see their logo, design, or sketch on a product or scene mockup — mugs, t-shirts, business cards, hats, phone screens, posters…
SkillAFreshness: AClaude Code +9 - 0.409score
alphafold-skill
xixu-me
Submit compact AlphaFold Protein Structure Database API requests for prediction, UniProt summary, sequence summary, and annotation lookups.
SkillDFreshness: DClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 8, 2026 (20 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 3.1.0
- License
- Apache-2.0
- Repository
- github.com/xixu-me/scps
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from xixu-me
- 0.565score
adobe-design-from-template
xixu-me
Create any visual design using Adobe Express templates — flyers, posters, social media posts (Instagram, Facebook, LinkedIn), business cards, invitations…
SkillAFreshness: AClaude Code +9 - 0.565score
adobe-create-mockups
xixu-me
Use when a user wants to see their logo, design, or sketch on a product or scene mockup — mugs, t-shirts, business cards, hats, phone screens, posters…
SkillAFreshness: AClaude Code +9 - 0.409score
alphafold-skill
xixu-me
Submit compact AlphaFold Protein Structure Database API requests for prediction, UniProt summary, sequence summary, and annotation lookups.
SkillDFreshness: DClaude Code +9
Cite this page
adobe-retouch-portraits skill. Agent Mart. https://agentmart.dev/skills/xixu-me-adobe-retouch-portraits (last updated 2026-10-24)