Loading...
Loading...
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: โ
npx skill4agent add adobe/skills adobe-retouch-portraits| Step | Tool | Notes |
|---|---|---|
| Ingest | | Interactive file picker |
| Straighten | | Per image |
| Auto-Tone | | Per image |
| Exposure | | Batch ( |
| Highlights | | Batch |
| Shadows | | Batch |
| Brightness/Contrast | | Batch |
| Vibrance/Saturation | | Batch |
| Face detection | | To check for face presence |
| Adaptive Enhancements | | Per image, opt-in (see Step 6) |
| Adaptive Blur BG | | Replaces |
| Heavy blur | | Per image (if user requests, no adaptive selected) |
| Crop | | Per image |
| Sample preview | | Before/after on image[0] only |
| Final preview | | All final URLs directly, no resize step |
| Firefly Board | | Source presigned URLs from ingestion |
adobe_mandatory_init{ "skill_name": "adobe-retouch-portraits", "skill_version": "1.0.1" }adobe_mandatory_initasset_add_fileTool: asset_add_file
Params: {}asset_add_fileimageURIs: []AskUserQuestion๐ธ Got [N] photo(s)! The default pipeline will auto-straighten and auto-tone every image.
Let me know if you'd like any extras ๐AskUserQuestionQuestion 1 (multi_select):
question: "โจ Adaptive AI enhancements (select any โ or none to skip)"
options:
- "All"
- "Subject Pop โ boost contrast & vibrance on the person"
- "Warm Pop โ warm, glowing subject lift"
- "Whiten Teeth โ brightens teeth (smiles only)"
- "Blur Background โ subtle bg blur, respects edges"
- "Sky Drama (Blue) โ deepen sky blue, outdoor only"
- "Sky Drama (Dark) โ moody dramatic sky, outdoor/editorial"
- "None"
Question 2 (multi_select):
question: "๐๏ธ Manual tweaks (select any โ or none to skip)"
options:
- "Recover highlights"
- "Lift shadows"
- "More contrast"
- "More vibrant"
- "Desaturate (muted tones)"
- "Heavy background blur"
- "None"
Question 3 (single_select):
question: "โ๏ธ Crop ratio"
options:
- "Auto (landscapeโ4:3, portraitโ3:4)"
- "1:1 square"
- "4:5 portrait"
- "16:9 wide"Adaptive: Subject - PopAdaptive: Subject - Warm PopAdaptive: Portrait - Whiten TeethAdaptive: Blur Background - SubtleAdaptive: Sky - Blue DramaAdaptive: Sky - Dark Dramaimage_adjust_highlightsamount: -60image_adjust_dark_portionsamount: -40image_adjust_brightness_and_contrastcontrast: 30image_adjust_vibrance_and_saturationvibrance: 30image_adjust_vibrance_and_saturationsaturation: -30image_apply_gaussian_blurblurRadius: 12, blurTarget: "background""4:3""3:4""face"output: "1:1""face"output: "4:5""face"output: "16:9""face"focus: "face"focus: "subject"โ
Got it โ running with:
- Auto-straighten + auto-tone + auto-light
- Adaptive enhancements: [list selected, or "none"]
- Manual tweaks: [list if any, or "none"]
- Crop: [ratio or "auto 4:3/3:4"]
- Blur: [adaptive / heavy / none]โฑ 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 โ
completion summary with your
download links when done. (No Slack/email notifications available from here.)sourceURIs[0]asset_preview_fileimage_crop_and_resizeasset_preview_file({
assets: [
{ name: "Before", presignedAssetUrl: sourceURIs[0] },
{ name: "After", presignedAssetUrl: processed_url }
]
})๐ Here's a before/after preview using your first photo and the settings you selected.
How does it look?AskUserQuestionQuestion (single_select):
question: "Ready to run the full batch?"
options:
- "โ
Looks great โ run all [N] images"
- "๐๏ธ Adjust settings first"
- "โ Cancel"AskUserQuestionQuestion (single_select):
question: "Want to preview the new settings first, or run all images now?"
options:
- "๐ Preview first"
- "๐ Run all [N] images now"Tool: image_auto_straighten
Params:
imageURIs: ["<source_uri_N>"]
options:
uprightMode: "auto"
constrainCrop: trueresults[0].outputUrlstraightened_urls[]Tool: image_apply_auto_tone
Params:
imageURIs: ["<straightened_url_N>"]results[0].outputUrltoned_urls[]image_adjust_exposureimageURIs: [all toned_urls]image_adjust_highlightsimage_adjust_dark_portionsimage_adjust_light_portionsimage_adjust_brightness_and_contrastimage_adjust_vibrance_and_saturationAdaptive: Subject - PopAdaptive: Subject - Warm PopAdaptive: Portrait - Whiten Teethimage_select_subjectAdaptive: Blur Background - SubtleAdaptive: Sky - Blue DramaAdaptive: Sky - Dark DramaTool: image_apply_preset
Params:
imageURI: "<toned_url_N>" # chain from previous step's output
options:
presetName: "<exact preset name from list above>"results[0].outputUrlimage_select_subjectTool: image_apply_gaussian_blur
Params:
imageURIs: ["<url_N>"]
options:
blurRadius: 12
blurTarget: "background"results[0].outputUrl"4:3""face""3:4""face""face"focus: "subject"Tool: image_crop_and_resize
Params:
imageURI: "<blur_url_N>"
options:
output: "4:3" # or "3:4" / user choice
fit: "reframe"
focus: "face" # falls back to "subject" if no face detected
outputFileType: "jpeg"final_urls[]asset_preview_fileimage_crop_and_resizeasset_preview_fileasset_preview_fileasset_preview_file({
assets: [
{ name: "portrait_1.jpg", presignedAssetUrl: final_url_1 },
{ name: "portrait_2.jpg", presignedAssetUrl: final_url_2 },
// ... one entry per image
]
})create_firefly_board({
import_adobe_storage: [
final_output_url_1,
final_output_url_2,
// ...
]
})board_urlboard_urlboard_urlโ
All done! [N] portraits retouched and ready.
๐ฅ Download your full-resolution portraits:
โข Portrait 1 โ <final_url_1>
โข Portrait 2 โ <final_url_2>
๐จ View in Firefly Board โ <board_url> โ always include if board_url is set
Pipeline applied: Auto-straighten โ Auto-tone (Camera Raw) โ [tweaks if any]
โ [adaptive enhancements if any] โ [blur if any] โ Crop [ratio]โ
All done! [N] portraits retouched and ready.
๐ฅ Your retouched portraits:
โข Portrait 1 โ <final_url_1>
โข Portrait 2 โ <final_url_2>
โข ...
๐จ View in Firefly Board โ <board_url> โ always include if board_url is set
Pipeline applied: Auto-straighten โ Auto-tone (Camera Raw) โ [tweaks if any]
โ [adaptive enhancements if any] โ [blur if any] โ Crop [ratio]{ "results": [{ "success": true, "outputUrl": "https://..." }] }results[N].outputUrlsuccess: false| Situation | Action |
|---|---|
| Skip that preset (Pattern 1). Note in delivery summary: "[Preset name] was skipped โ your Adobe plan does not include this feature." Retrying does not resolve a 403 entitlement โ note the skip in the summary. |
| Any tool returns 401 (not authenticated) | Ask the user to re-authenticate via Adobe OAuth and retry |
| Wait; remind user to select files in the picker |
| Pass original URI to Step 5; note "straighten skipped" |
| Pass straightened URI forward; note in summary |
| Any tone adjustment fails | Log and continue with previous step's output |
| Skip Whiten Teeth preset for that image; continue |
| Use previous step's output; note "[preset name] skipped" in summary |
| Use previous step's output; note "blur skipped" |
| Use blur output as final; note in summary |
| Present final output URLs as plain text links in the summary. |
| All steps fail on one image | Return original URI; flag clearly in summary |
| Dead end | Report the failure clearly and offer to retry. |
image_apply_auto_tonetype: "cameraRawFilter"image_apply_gaussian_blurimage_apply_lens_blurimage_select_subject