Integration details
Description
Adobe unlocks more ways to create and get work done from the conversation. Previously available as Photoshop, the Adobe connector now brings creativity and productivity capabilities across Creative Cloud and Acrobat. Describe what you want to make or change, and Adobe can help turn ideas, images, videos, and documents into polished outputs — from editing photos and creating PDFs to designing social assets, resizing videos, searching Creative Cloud assets, and generating data-driven documents. Key capabilities: * Retouch portraits or edit photos in bulk: Drop in photos and describe the look you want — adjust color, lighting, and tone; remove distractions and generate new elements; apply Lightroom presets; remove backgrounds; blur, crop, resize, and expand images. * Design from template: Start from an Express template, update text and colors, and then animate for social media or convert to PDF. * Refine video for any platform: Upload a horizontal clip and ask to reformat it for YouTube Shorts, Instagram Reels, or any platform. You can also stitch clips into a single sequence. * Search and organize creative work: Describe what you're looking for and surface assets from your Creative Cloud library — by subject, style, mood, or content — without browsing folders. * Work with PDFs and documents: Create and convert polished PDFs and documents. * Create data-driven documents: Describe your output and provide your data — the connector turns raw data or content into formatted, shareable PDFs, including badges, cards, catalogs, and more. You can get started as a guest, and sign in with your Adobe account for more capabilities and tools, Creative Cloud storage, and saved work across sessions.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Photo & Image Editing
- Secondary Subcategories
- None listed
- Brand
- Adobe
- Access
- Account optional
- First tracked
- 2026-09-21
- Tool count
- 93
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for Adobe
Get updates when Adobe’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Photo & Image Editing
View Category93 tools agents can invoke
Open the file picker so user can select an image/video to edit. ALWAYS call this when user mentions editing but no file is provided. WHEN TO USE: "edit my photo", "retouch my photos", "my photo", "my image", "this image", vague edit requests without a file URL, "process my photos", "get my products ready" - ANY editing request where no file URL is present. WHEN NOT TO USE: When you already have a file URL (https://...) to work with. use asset_openai_file_upload. NOTES: This tool returns immediately with a `job_id` while the file picker UI is shown; the assets array is empty at this point. The selection is delivered asynchronously: after the user confirms their choice and the file is submitted, read the `job_id` from the result and call asset_add_file_check_status with that `job_id` until `job_status` is `complete`, then use the returned `assets` array. Do not take further action until polling returns `complete`.
asset_add_file
Add film grain texture to an image for a vintage or cinematic look. WHEN TO USE: "add grain", "film grain", "vintage grain", "make it grainy", "analog film look", "add texture". WHEN NOT TO USE: For digital noise/static effect -> use image_add_noise.
image_add_grain
Add digital noise/static texture to an image for a gritty or distressed look. WHEN TO USE: "add noise", "gritty look", "add static", "distressed effect", "digital noise". WHEN NOT TO USE: For film/analog grain -> use image_add_grain.
image_add_noise
CALL ONCE per chat session before using any adobe tool (animate_design, asset_add_file, asset_add_file_check_status, asset_add_file_submit, asset_copy_assets, asset_create_folders, asset_download_file, asset_finalize_file_upload, asset_get_mime_type, asset_get_presigned_url, asset_get_presigned_urls, asset_initialize_file_upload, asset_inline_preview, asset_license_and_download_stock, asset_lr_get_presigned_url, asset_migrate_guest_storage, asset_openai_file_upload, asset_preview_file, asset_resolve_short_url, asset_search, change_background_color, convert_pdf_to_indd, document_convert_pdf, document_merge_data_layout, document_merge_data_vector, document_render_layout, document_render_vector, download_design, enhanceSpeechPoll, export_idml, fill_text, font_activate, font_create_kit, font_details, font_preview, font_recommend, font_search, font_styles, generate_indd_mapping_prompt, image_add_grain, image_add_noise, image_apply_adjustments, image_apply_auto_tone, image_apply_color_overlay, image_apply_gaussian_blur, image_apply_glitch_effect, image_apply_halftone, image_apply_lens_blur, image_apply_monochromatic_tint, image_apply_preset, image_auto_straighten, image_crop_and_resize, image_crop_to_bounds, image_fill_area, image_generate, image_generative_expand, image_instruct_edit, image_invert_selection, image_list_presets, image_remove_background, image_remove_blemishes, image_select_by_prompt, image_select_subject, image_vectorize, log_analytics, markdown_to_pdf, media_enhance_speech, media_summarize, pdf_compress, pdf_create, pdf_export, pdf_ocr, pdf_operation_status, pdf_properties, pdf_to_image, pdf_to_markdown, prepare_indd_merge_template, quickCutPoll, replace_image, resizeVideoPoll, search_design, summarizePoll, vectorPollingHelper, videoMetadataPoll, videoRenderFramePoll, videoRenderPoll, video_create_quick_cut, video_metadata, video_render, video_render_frame, video_resize). Do NOT call again unless this tool's response is no longer in your context window. Returns file handling rules and tool routing guidance.
adobe_mandatory_init
Animate an Express design with motion effects. WHEN TO USE: "animate this", "make it move", "add animation to the design". WHEN NOT TO USE: Only works on Express designs.
animate_design
**Session prerequisite:** Call `adobe_mandatory_init` once before using any Adobe tool in this session. If its response is already in your context window, do not call it again — the instructions it returns remain in effect for the entire session. Applies named Lightroom preset(s) to one or more images in a single batched call, transforming each image's look in one step. A preset adjusts tone, color, contrast, grain, and sharpening together as a unified look. Group the work into `edits`: each entry pairs one `presetName` with the `images` it applies to. Use multiple entries to apply different presets to different images in the same call. WHEN TO USE: the user's request is about **color/tone/mood only** — preset, color grade, film look, vintage, black and white conversion, matte finish, warm tone, cool tone, skin tone edit, vignette, cinematic grade, dramatic sky, sharpen, add grain, subject pop. WHEN NOT TO USE: composed-look requests that imply a different background, subject/background separation, or relighting — e.g. "studio photo", "product shot", "clean white backdrop", "magazine cover", "headshot on grey", "professional portrait". Those require structural changes that presets cannot produce. In those cases, build the composition first (isolate subject, replace background, relight) using the subject-selection / fill / blur / exposure tools, and only then apply a preset as the final color pass if needed. **One look per result:** Presets are a complete look, not additive filters. Apply a single preset as the final color/tone step for any given output, and do NOT re-run this tool on an image that already has a preset baked in — chaining presets on the same pixels compounds the effect and looks unnatural. Listing the *same* source image under *different* presets is fine: each preset is applied independently to the original image and produces a separate variant. 100+ presets across 14 categories: B&W (10), Color (6), Creative (13), Curve (4), Defaults (4 profiles with optional lens correction / noise reduction), Grain (3), Optics (3), Portraits (13: light/medium/deep skin variants), Sharpening (3), Vignetting (3), Adaptive (19: portrait, sky, subject, background blur), Auto+ (3: retro), Style (12: futuristic, cinematic II, film-inspired, vintage, B&W), Subject (8: travel, food, lifestyle). The catalog also includes a handful of curated **custom** presets that apply as a complete look exactly like the built-in ones. **Important:** The categories above are summaries, not exact preset names. You MUST call `image_list_presets` first to get the exact display names — preset names have specific formatting (e.g. "B&W - B&W High Contrast", not "B&W High Contrast"). Do not guess preset names. Returns one result per (preset, image) pair, each carrying the applied `presetName` in its metadata. Examples: <example> One preset on two photos: { "edits": [ { "presetName": "B&W - B&W High Contrast", "images": [ "https://example.com/a.jpg", "https://example.com/b.jpg" ] } ] } </example> <example> A different preset per photo: { "edits": [ { "presetName": "B&W - B&W High Contrast", "images": [ "https://example.com/a.jpg" ] }, { "presetName": "Style: Vintage - VN07", "images": [ "https://example.com/b.jpg" ] } ] } </example> <example> Two looks of one photo (independent variants): { "edits": [ { "presetName": "B&W - B&W High Contrast", "images": [ "https://example.com/a.jpg" ] }, { "presetName": "Style: Vintage - VN07", "images": [ "https://example.com/a.jpg" ] } ] } </example>
image_apply_preset
**Session prerequisite:** Call `adobe_mandatory_init` once before using any Adobe tool in this session. If its response is already in your context window, do not call it again — the instructions it returns remain in effect for the entire session. **MANDATORY PREREQUISITE — before every call to this tool, you must first call asset_inline_preview or read_image (whichever is available) on each input image, including intermediate outputs from prior tool calls, and inspect the returned visual.** Do not call this tool from the filename, the user's description, or prior assumptions alone. Do not proceed until the preview has returned and you have used it to judge the image's actual brightness, tonal balance, highlight/shadow state, and color cast. Without that visual grounding, parameter values are guesses. Adobe Photoshop and Lightroom professional image adjustments. **Use when:** brighten, darken, too dark, too bright, overexposed, underexposed, recover highlights, lift shadows, reveal shadow detail, crush blacks, boost contrast, boost saturation, muted colors, more colorful, desaturate, too yellow, too blue, warm up, cool down, white balance, color grade, hue shift, recolor an object, tone down a specific color, make it pop, looks dull, flat, lifeless, lacks contrast, professional look, polished, clean look — for specific, targeted adjustments where the direction or parameter is clear. For vague problem descriptions without a specified direction or amount, call `image_apply_auto_tone` first; use this tool only for follow-up fine-tuning. **Adjustment groups — set only the fields you need:** - Exposure: `exposure`, `gamma`, `exposureOffset` - Tonal regions: `highlights`, `lights`, `darks`, `shadows` - Brightness / contrast: `brightness`, `contrast` - Color temperature: `tempA` + `tempB` + `tempLuminance` (all three required) - Hue / sat / lightness: `hslHue` + `hslSaturation` + `hslLightness` (all three required; optionally add `colorize` or `targetColor`) - Vibrance / saturation: `vibrance`, `saturation` - Per-channel saturation: `channelTarget` + `channelSaturation` (both required) **Why this tool:** - CIELAB color temperature: precise warm/cool via Lab colorspace - Vibrance: smart saturation that protects skin tones - Camera Raw tone controls: exposure, gamma, offset, tonal regions - Deterministic single-pass pipeline: all adjustments applied in optimal fixed order in one call To target a specific object or area in the image: 1. If the user provides a mask URL, use it to limit the effect to that region. 2. If no mask URL is provided but the user wants to target a specific area, first use available masking tools to create a mask based on their description, then apply the effect. 3. If no mask is specified and no targeting is requested, apply the effect to the entire image. **Output Format:** ALWAYS use `outputFileType: "png"`. PNG is required — it preserves lossless quality and transparency through multi-step edits and selection-mask chains. Only use `"jpeg"` when the user has explicitly requested JPEG format for the final result. **Pipeline order (fixed, applied server-side):** exposure → highlights → lights → darks/shadows → brightness/contrast → colorTemperature → hsl → vibrance/saturation → channelSaturation. To enforce a different effective order, call this tool multiple times, chaining each results[].outputUrl into the next call's imageURIs. Examples: <example> Too dark / dull / flat: { "exposure": 0.5, "gamma": 1.2, "contrast": 20 } </example> <example> Too bright: { "exposure": -1.0, "highlights": -50 } </example> <example> Warmer: { "tempA": 20, "tempB": 100, "tempLuminance": 55 } </example> <example> Natural color boost (skin-safe): { "vibrance": 30 } </example> <example> Recover shadow detail: { "darks": 40, "shadows": 25 } </example> <example> Recolor a neutral or white object to blue: { "hslHue": 220, "hslSaturation": 60, "hslLightness": 0, "colorize": true } </example> <example> Tone down reds only: { "channelTarget": "red", "channelSaturation": -40 } </example>
image_apply_adjustments
**Session prerequisite:** Call `adobe_mandatory_init` once before using any Adobe tool in this session. If its response is already in your context window, do not call it again — the instructions it returns remain in effect for the entire session. Adds a colored overlay by creating a solid color fill layer with a specified RGB color, blend mode, and layer name. **IMPORTANT: opacity cannot be set on this tool.** If the request mentions any percentage or transparency (e.g. "at 20%", "at 80%", "semi-transparent"), do NOT call this tool — call `image_fill_area` instead, which has an `opacity` parameter. **Use when:** color overlay, color wash, tint filter, color layer on photo. **WHEN NOT TO USE:** filling or replacing the background behind a subject ("fill the background white", "make the background blue"), even on a transparent cutout. This tool's full-canvas fill layer covers the WHOLE image — no blend mode makes it sit behind the subject, so you get a blank solid-color result. Use `image_remove_background` with `options.backgroundColor` instead. Examples: <example> Create a red color overlay (lighten blend mode): { "color": { "red": 205, "green": 3, "blue": 3 }, "blendMode": "lighten" } </example> <example> Create a blue color overlay (lighten blend mode): { "color": { "red": 3, "green": 45, "blue": 252 }, "blendMode": "lighten" } </example> <example> Create a purple color overlay (lighten blend mode): { "color": { "red": 134, "green": 4, "blue": 226 }, "blendMode": "lighten" } </example> <example> Create a custom purple color overlay with name: { "color": { "red": 134, "green": 4, "blue": 226 }, "blendMode": "lighten", "layerName": "Custom Color Layer" } </example> <example> Create a warm orange overlay (overlay blend mode): { "color": { "red": 255, "green": 165, "blue": 0 }, "blendMode": "overlay" } </example> <example> Create a bright red overlay (colorBurn blend mode): { "color": { "red": 255, "green": 80, "blue": 80 }, "blendMode": "colorBurn" } </example>
image_apply_color_overlay
**Session prerequisite:** Call `adobe_mandatory_init` once before using any Adobe tool in this session. If its response is already in your context window, do not call it again — the instructions it returns remain in effect for the entire session. **Output Format:** ALWAYS use `outputFileType: "png"`. PNG is required — it preserves lossless quality and transparency through multi-step edits and selection-mask chains. Only use `"jpeg"` when the user has explicitly requested JPEG format for the final result. Applies Gaussian Blur to soften the image or a specific area, targeting the current layer, subject, or background as configured. This is a uniform-radius blur — for a natural shallow depth-of-field / bokeh look with falloff, use `image_apply_lens_blur` instead. **Use when:** blur, soften, defocus, bokeh, out of focus, hazy background. To target a specific object or area in the image: 1. If the user provides a mask URL, use it to limit the effect to that region. 2. If no mask URL is provided but the user wants to target a specific area, first use available masking tools to create a mask based on their description, then apply the effect. 3. If no mask is specified and no targeting is requested, apply the effect to the entire image. Examples: <example> Blur current layer: { "blurRadius": 3.5, "blurTarget": "currentLayer" } </example> <example> Blur subject only: { "blurRadius": 1.5, "blurTarget": "subject" } </example> <example> Blur background only: { "blurRadius": 5.0, "blurTarget": "background" } </example>
image_apply_gaussian_blur
Expand an image by adding content around it. Generates seamless context-aware borders without altering the original content. WHEN TO USE: "expand this image", "extend the canvas", "add more space", "make it wider", "add sky above", "outpaint", "extend in [direction]". WHEN NOT TO USE: For resizing/scaling existing content -> use image_crop_and_resize. For upscaling/super-resolution -> not available. **Requirements:** - Dimensions: If missing, retrieve via a dimension tool; if unavailable, infer from context/URL or ask the user. - Inset: Specify direction(s) for expansion. For horizontal/vertical expansion, distribute insets evenly. Examples: - Expand landscape images to make them wider: { width: 1200, height: 800, inset: { left: 200, right: 200 } } - Add sky space above portrait images: { width: 800, height: 1200, inset: { top: 300 } } - Create panoramic effect by extending images on all sides: { width: 1000, height: 750, inset: { top: 100, right: 200, bottom: 100, left: 200 } }
image_generative_expand
Apply a chromatic aberration glitch effect to the ENTIRE image. WHEN TO USE: "add a glitch effect", "make it look glitched", "add chromatic aberration", "VHS effect" - when applying to the whole image. WHEN NOT TO USE: For region-specific effects like "glitch the background" or "glitch only the sky" -> use image_instruct_edit instead, which can target specific areas.
image_apply_glitch_effect
Apply a halftone effect to the image. WHEN TO USE: "make it look like a comic", "add a halftone pattern", "give it a pop art feel", "Ben-Day dots".
image_apply_halftone
**Session prerequisite:** Call `adobe_mandatory_init` once before using any Adobe tool in this session. If its response is already in your context window, do not call it again — the instructions it returns remain in effect for the entire session. Blurs the background with depth-of-field falloff (bokeh) while keeping the subject sharp. Auto-detects the primary subject and progressively blurs the background — no manual masking. **Output Format:** ALWAYS use `outputFileType: "png"`. PNG is required — it preserves lossless quality and transparency through multi-step edits and selection-mask chains. Only use `"jpeg"` when the user has explicitly requested JPEG format for the final result. **Use ONLY when the user explicitly asks for blur, bokeh, depth-of-field, or out-of-focus background. Takes no mask and ignores selection state — do not chain `image_select_subject` / `image_invert_selection` ahead of it; subject masking is built in. For a uniform-radius blur instead of DoF falloff/bokeh, use `image_apply_gaussian_blur`: either `blurTarget: 'background'` (auto subject detection), or pass a `maskURI` from `image_select_subject` or `image_select_by_prompt` + `image_invert_selection` when you need a custom region or a sharper mask boundary. Example: <example> Apply lens blur: {} </example>
image_apply_lens_blur
Apply a monochromatic color tint to the image, including black and white conversion. WHEN TO USE: "black and white", "convert to black and white", "grayscale", "monochrome", "add a sepia tone", "tint it blue", "make it duotone", "cyanotype effect", "B&W".
image_apply_monochromatic_tint
Automatically straighten and level the image. WHEN TO USE: "straighten this", "fix the horizon", "level the image", "the photo is crooked".
image_auto_straighten
**Session prerequisite:** Call `adobe_mandatory_init` once before using any Adobe tool in this session. If its response is already in your context window, do not call it again — the instructions it returns remain in effect for the entire session. Automatically corrects the tonal balance of the images in one step by adjusting exposure, contrast, highlights, shadows, whites, and blacks. No prior image analysis or preview is needed — call this tool directly. **Use when:** the user describes a tonal or visual problem without specifying exact values or a direction — e.g., "improve", "fix the lighting", "I can't see the subject", "looks flat". Always call this tool first; use `image_apply_adjustments` afterward only if finer manual control is still needed. **Not for:** adjustments where the user specifies a clear direction or amount (e.g., "make shadows warmer", "boost saturation") — use `image_apply_adjustments` directly for those.
image_apply_auto_tone
Update the background color of an Express design. WHEN TO USE: "change the background to blue", "make the background white", "use a darker background". WHEN NOT TO USE: Only works on Express designs.
change_background_color
Poll for Completion of videoRenderFrame tool
videoRenderFramePoll
Poll for Completion of quickCut tool
quickCutPoll
Poll for Completion of videoMetadata tool
videoMetadataPoll
Poll for Completion of videoRender tool
videoRenderPoll
Poll for Completion of resizeVideo tool
resizeVideoPoll
Poll for Completion of enhanceSpeech tool
enhanceSpeechPoll
Poll for Completion of summarize tool
summarizePoll
Returns the status of an add-file job started by asset_add_file. Use when: user picked files in the add-file UI, you need the chosen assets, asset_add_file returned a job_id. Call with that job_id; repeat until job_status is complete, then read assets. Returns pending, complete (with assets), not_found, or cancelled.
asset_add_file_check_status
Convert a PDF to an editable InDesign file (INDD or IDML). WHEN TO USE: "convert PDF to InDesign", "edit this PDF layout", "make PDF editable in InDesign", "PDF to INDD". NOTES: Returns a ZIP containing the document and linked assets. Requires login.
document_convert_pdf
Converts a PDF into an InDesign (.indd) file for use as a variable-data merge template. WHEN TO USE: When the source template is a PDF that needs to be prepared for a data merge workflow. WHEN NOT TO USE: For general PDF-to-InDesign editing. Returns presigned .indd URL(s).
convert_pdf_to_indd
Copy one or more assets within Creative Cloud storage. WHEN TO USE: "copy this to another folder", "duplicate asset", "copy to project".
asset_copy_assets
Create one or more folders in Adobe Creative Cloud Files storage for organizing assets. WHEN TO USE: "create a folder", "make a new folder", "set up project folders", "organize my files", creating destination folders before copying/moving assets, setting up project directory hierarchies. WHEN NOT TO USE: For uploading files -> use asset_add_file for user-selected local files, or asset_openai_file_upload for ChatGPT-native file uploads. USAGE: - Folders can be created at root level (home directory) or nested within existing folders. - Use forward slashes to create nested hierarchies in one call (e.g., "myAssets/2024/Q4-Campaign" creates three nested folders). - If a folder with the same name already exists, a numbered suffix is automatically added (e.g., "MyFolder", "MyFolder (1)"). LIMITATIONS: Cannot create folders in Libraries or Brands (only in Files storage). Folder names must follow Adobe naming conventions. OUTPUT: Returns folder ID (assetId), folder name (may differ from input if renamed due to conflict), and creation metadata.
asset_create_folders
Create an AI-generated highlight reel from a video by automatically selecting the most engaging moments. WHEN TO USE: "create highlights", "make a highlight reel", "quick cut", "summarize this video", "pick the best parts". NOT SUPPORTED (explain limitation to user): - Content-aware cutting based on speech analysis ("remove rambling", "cut where they repeat themselves") - Semantic understanding of what's being said - Trimming based on specific words or topics NOTES: Uses visual engagement metrics, not speech/content analysis. For content-based editing, suggest manual trimming or professional video editing software.
video_create_quick_cut
Export an InDesign document (.indd or .idml) as PDF, JPEG, or PNG with page range and resolution control. WHEN TO USE: "export InDesign", "publish this InDesign layout", "InDesign to PDF", "render INDD as JPEG", "convert InDesign file". INPUT: Requires an .indd or .idml source file URL.
document_render_layout
**Session prerequisite:** Call `adobe_mandatory_init` once before using any Adobe tool in this session. If its response is already in your context window, do not call it again — the instructions it returns remain in effect for the entire session. Smart crop and resize with subject-aware positioning. Automatically detects subjects and positions crops intelligently. **Preferred tool for tight subject / product / face crops** — uses server-side face/subject/prompt detection, which is far more reliable than estimating 0-1 bounds visually. If the user asks to "crop to only X", "tight crop on X", "isolate X", or frame any nameable subject, use this tool with fit: "extract" rather than image_crop_to_bounds. For geometric crops (halves, quarters, fixed percentages, letterbox bars) where no subject detection is needed, use image_crop_to_bounds directly. **Key capabilities:** - Crop to exact dimensions with subject-aware focus (face, upper_body, or custom point) - Focus on arbitrary objects by text prompt (e.g., "the red car", "the dog") - Crop to aspect ratio at source resolution ("16:9", "4:5", etc.) - Resize to a single dimension (proportional scaling) - Pad mode: fit entire image within target dimensions with transparent (PNG only) or white background (JPEG only) fill - Adjustable per-side margins around detected subjects (margin: 0.15 = 15% of subject size added to each side) - Custom alignment (rule of thirds, etc.) **align parameter** — controls where the focus point lands in the output frame (0=left/top, 0.5=center, 1=right/bottom). Only set the axis you want to shift; omit for centered crops. - "subject in the left third" → align: { x: 0.33 } - "subject in the right third" → align: { x: 0.67 } - "face in upper third" → align: { y: 0.33 } - "rule of thirds, upper-left" → align: { x: 0.33, y: 0.33 } - "leave space on the right for text" → align: { x: 0.3 } - "leave space above for a title" → align: { y: 0.6 } - "subject at the bottom" → align: { y: 0.75 } Values below 0.5 push the subject toward top-left; above 0.5 toward bottom-right. **Note:** align has no effect on an axis when the crop spans the full source dimension on that axis (e.g., cropping a landscape to portrait uses the full source height, so align.y cannot move the crop). When this happens, an "align_constrained" tradeoff is recorded in metadata. align may also be partially overridden to keep the detected subject visible in the crop. **Aspect compatibility & clipping:** `fit: "reframe"` cannot grow the crop; when source and target aspect differ sharply (portrait → landscape or vice versa) the subject **will** clip and no `focus`/`align`/`margin` can prevent it. On `focus: "subject"` the tool auto-retries with `focus: "face"` when the subject looks upright (tall bbox, a proxy for "person"); non-upright subjects (pets, produce, landscapes) skip this step. If still clipped (`visible_fraction < 0.7`), `onSubjectClipping` kicks in: `"expand"` (default — emits a `requires_expand_chain` tradeoff with pre-filled `image_generative_expand` args; baseline action is an extract crop) · `"extract"` (tight crop, may upscale) · `"pad"` (letterbox, no loss) · `"error"` (fail with guidance) · `"ignore"` (tradeoffs only). **`requires_expand_chain` tradeoff:** invoke the pre-filled `next_call` (image_generative_expand) exactly as given, then re-invoke image_crop_and_resize with the same arguments, replacing `imageURI` with the expand output URL. The baseline action returned alongside this tradeoff is an extract crop — usable as a fallback, but chaining yields the content-preserving result. **`recommend_visual_verify` tradeoff:** the single-region anchor may have clipped content a human would consider essential (most commonly headline text on ads/posters/banners). Call `adobe_inline_preview` on the output. If text, logos, or a secondary region appear clipped, retry with the `suggested_retry` parameters (biasing `align` toward the clipped edge) or with `focus: 'prompt'` naming the clipped content. This signal fires on a geometric heuristic, not content detection, so false positives are expected on pure-photo inputs. **Intent → parameter mapping (use this to pick the right parameters):** - "crop to X" / "isolate X" / "extract just X" / "only the X" → fit: "extract", omit output, margin: 0.02 - "crop around X" / "frame X nicely" → fit: "extract", output: aspect ratio, margin: 0.1–0.2 - "crop for X" / "X in frame" / social media crop → fit: "reframe", output: dimensions, focus on X - "resize for social media" / "make it fit Instagram/TikTok/X" / cross-aspect conversion from one source → use defaults. `onSubjectClipping: "expand"` (default) emits a `requires_expand_chain` tradeoff when the source/target aspects differ sharply; follow the pre-filled `next_call` → `then_retry` sequence to preserve all content. - "chest up" / "waist up" / "from the shoulders" → fit: "extract", focus: "upper_body", margin: 0.02. Works for both single-person and group photos. - "head and hair" / "above the shoulders" / "keep the whole head" / "don't cut off hair/ears" → fit: "extract", focus: "head", margin: 0.05–0.1 **fit modes:** - **"reframe"** (default) — takes the largest possible crop at the target aspect ratio from the source, then positions it using focus/align. Preserves as much of the image as possible. Use for social media crops, aspect ratio changes, and general-purpose resizing where you want broad scene context with the subject kept in frame. - **"extract"** — crops tightly to the detected region (face, upper_body, subject, or prompt match) + margin, then resizes to output if specified. **Important: setting output expands the crop to fit the target aspect ratio, which may pull in content beyond the detected region.** For tight isolation, omit output — the crop auto-sizes to the detected region + margin at source resolution, giving the tightest possible crop around the focus target. Use extract for: headshots, product close-ups, isolating a specific person or object from a group. - **"pad"** — scales the entire image to fit inside the target dimensions without cropping, fills remaining space with transparent (PNG) or white (JPEG) background. **focus values for people:** - **"subject"** — detects the full body. In reframe: keeps the whole person in frame. In extract: crops to the full body. - **"face"** — detects only the face region (jawline up, no hair or ears). Best with extract mode for headshots and passport photos. In reframe: centers the crop on the face but the crop is still wide. Use margin to control how much beyond the face to include (e.g., margin: { bottom: 1.5 } extends 1.5× face height below). - **"head"** — detects the whole head above the neck: face + beard + hair + ears. Tighter than "upper_body", wider than "face". Use when hair or ears must stay in frame (big hair, hats, earrings, profile shots) without including shoulders. The crop centers on the face; margin extends outward from the head bounds. - **"upper_body"** — detects head + hair + torso + hands as a combined region. Best with extract mode for chest-up portraits and profile photos. Works for both single-person and group photos — in groups, crops to the chest-up region of all detected people. **focus: { prompt }** — for non-human objects, specific items among many, or when you need to name what to focus on (e.g., "the red car", "the golden retriever", "the flowers"). Unions all matching objects — { prompt: "the cats" } will frame all cats, not just one. **When to use reframe (default):** - Resize images to a target resolution - Crop images to social media dimensions (Instagram square, Twitter header, etc.) - Broad scene crops that keep faces/subjects visible - Crop around specific objects by description (prompt focus) **When to use extract (with output — framed crop):** - Headshots, passport photos, profile pictures (face or upper_body focus + aspect ratio) - Product photos cropped to a specific format **When to use extract (without output — tight isolation):** - Isolating a specific person from a group photo ("crop to the middle person") - Extracting just one object from a busy scene ("just the dog", "only the red car") - Product cutouts from wider shots - Any request implying "only", "just", or "isolate" **When to use pad:** - Letterbox/pillarbox when content must not be cropped **NOT supported** (do not attempt — no parameters exist for these): - Circle or shape crops — only rectangular crops - Blurred background fill — pad mode uses solid color (transparent for PNG, white for JPEG) - Color adjustments, filters, or effects — use dedicated editing tools instead - Batch/multi-image crop in one call — call this tool once per image **Common social media dimensions:** - 1080x1350 for Instagram post portrait (4:5) — most common crop - 1080x1080 for Instagram post (square) - 1080x1920 for Instagram/TikTok story (9:16 vertical) - 1200x675 for X (Twitter) post - 1280x720 for YouTube thumbnail - 1200x630 for Facebook post Examples: <example> Resize to 800px wide, maintain aspect ratio: { output: { width: 800 } } </example> <example> Crop to Instagram square, focus on face: { output: { width: 1080, height: 1080 }, focus: "face" } </example> <example> Crop to 16:9 at source resolution: { output: "16:9" } </example> <example> Crop with face in left third: { output: { width: 1280, height: 720 }, focus: "face", align: { x: 0.33 } } </example> <example> Pad to IG story with transparent or white background: { output: { width: 1080, height: 1920 }, fit: "pad" } </example> <example> Crop to 4:5 with 30% total breathing room around subject (15% per side): { output: "4:5", focus: "subject", margin: 0.15 } </example> <example> IG portrait, leave space above for text: { output: { width: 1080, height: 1350 }, focus: "subject", align: { y: 0.6 } } </example> <example> Place subject in the right third: { output: { width: 1500, height: 1350 }, focus: "subject", align: { x: 0.66 } } </example> <example> Square crop around the dog: { output: { width: 1080, height: 1080 }, focus: { prompt: "the dog" } } </example> <example> Crop to 16:9 focused on the red car: { output: "16:9", focus: { prompt: "the red car" } } </example> <example> Crop around the flowers with breathing room: { output: { width: 1200, height: 630 }, focus: { prompt: "the flowers" }, margin: 0.2 } </example> <example> Product on the left, space for text on right: { output: { width: 1200, height: 675 }, focus: { prompt: "the sneaker" }, align: { x: 0.3 } } </example> <example> Extra space below subject for caption: { output: { width: 1080, height: 1080 }, focus: "subject", margin: { bottom: 0.3 } } </example> <example> More headroom above face, tight sides: { fit: "extract", output: "4:5", focus: "face", margin: { top: 0.5, left: 0.3, right: 0.3 } } </example> <example> Passport photo (head + shoulders, square): { fit: "extract", output: "1:1", focus: "face", margin: { top: 0.3, bottom: 1.5, left: 0.8, right: 0.8 } } </example> <example> Professional headshot (chest up): { fit: "extract", output: "4:5", focus: "upper_body" } </example> <example> LinkedIn profile photo (upper body, square): { fit: "extract", output: { width: 800, height: 800 }, focus: "upper_body", margin: 0.1 } </example> <example> Group photo chest-up crop: { fit: "extract", focus: "upper_body", margin: 0.02 } </example> <example> Isolate the middle person from a group photo: { fit: "extract", focus: { prompt: "the middle person" }, margin: 0.02 } </example> <example> Crop to just the dog: { fit: "extract", focus: { prompt: "the dog" }, margin: 0.02 } </example> <example> Extract the cat tightly (auto-sized from detection): { fit: "extract", focus: { prompt: "the cat" } } </example> <example> Extract subject with breathing room (auto-sized): { fit: "extract", focus: "subject", margin: 0.2 } </example> **Fallback to image_crop_to_bounds if available:** - **Detection miss (silent):** preview shows wrong region, empty match (`prompt_no_match` tradeoff), or subject in an unexpected position → switch to image_crop_to_bounds with explicit 0-1 coordinates. Legitimate use of geometric bounds — the subject is already visually located in the preview. - **Hard error:** retry once. If it still fails with a detection error (no match), fall back to image_crop_to_bounds. If it's infrastructural (auth, rate limit, unsupported format), surface to the user. - **When falling back for a subject crop, pad the bounds by 5–8% outward (not inward).** Visual estimates of a subject's extent tend to clip limbs / edges; a little extra background is imperceptible, a clipped hand or ear is not. This is the opposite of image_crop_to_bounds' border-removal guidance — for borders you overshoot inward; for subjects you overshoot outward.
image_crop_and_resize
**Session prerequisite:** Call `adobe_mandatory_init` once before using any Adobe tool in this session. If its response is already in your context window, do not call it again — the instructions it returns remain in effect for the entire session. **PREREQUISITE: call asset_inline_preview or read_image (whichever is available) on the input image first.** Choosing bounds without a current visual can clip subjects, miss borders or crop the wrong region. If the only information you have is the filename or a description, you do NOT have enough grounding; preview first, then choose bounds from what you see. Crop images to exact geometric bounds using normalized coordinates (0-1). Each coordinate is a fraction of the image dimension: 0 = top/left edge, 1 = bottom/right edge. The same normalized bounds are applied to every image — since coordinates are relative, images of different sizes produce proportionally equivalent crops. **Use ONLY for geometric / compositional crops** where the region is specified by position, not by subject: - "the left half", "center 50%", "top-right quarter" - "remove 10% from all edges", "trim the black letterbox bars" - "16:9 letterbox from the center" - Fast, deterministic crops with no detection overhead needed. **Do NOT use this tool as the first choice for subject / product / face crops** — even if you can see the subject clearly. Visual coordinate estimation is unreliable for tight framing and frequently leaves empty regions on one side or clips the subject on the other (a recurring failure mode). For any of these, use image_crop_and_resize first: - "crop to only the product", "crop to the tube / bottle / box", "isolate X", "just the dog" → image_crop_and_resize with fit: "extract" + focus + margin - "crop this to 16:9 keeping the subject in frame", social media crops with a subject → image_crop_and_resize with default fit: "reframe" + focus - Any request to frame a nameable subject — server-side face/subject/prompt detection is far more reliable than eyeballing 0-1 coordinates from a preview. - **Decorative frame / ornate border / rotated-subject-on-background** (e.g. a framed document, certificate, photo on a desk, scanned paper that isn't axis-aligned): the inner content is a subject, not a geometric crop — the frame edges don't align with the image edges. Use image_crop_and_resize with fit: "extract" and focus: { prompt: "<the subject>" }. **Use this tool as a fallback when image_crop_and_resize detection misses** (empty match, wrong region, or subject in an unexpected position). In that case the subject is already visually located in the preview, so explicit coordinates are the right escape hatch — pad bounds by 5–8% outward around the subject to avoid clipping limbs / edges that are easy to under-estimate visually. **Border / letterbox / frame removal — overshoot, single call.** Rule: if the visible border is V% on a side, set the inner bound to **at least V + 5** on that side. Never equal, never less. Measure each side independently — for asymmetric frames (e.g. Polaroid with a thicker bottom), do NOT default to symmetric bounds. If a sliver survives, jump by another 5–10% — do not nudge by 1%. After the call, follow the `importantNote` on the result to verify the output visually before reporting success. Examples (all geometric — no subject estimation): <example> Center 50%: { top: 0.25, left: 0.25, bottom: 0.75, right: 0.75 } </example> <example> Left half: { top: 0, left: 0, bottom: 1, right: 0.5 } </example> <example> Top-right quarter: { top: 0, left: 0.5, bottom: 0.5, right: 1 } </example> <example> Remove 10% from all edges: { top: 0.1, left: 0.1, bottom: 0.9, right: 0.9 } </example> <example> Thin border ≈3% per side, overshoot to 8%: { top: 0.08, left: 0.08, bottom: 0.92, right: 0.92 } </example> <example> Symmetric border ≈5% per side, overshoot to 10%: { top: 0.10, left: 0.10, bottom: 0.90, right: 0.90 } </example> <example> Asymmetric frame — 3% top/sides and 15% bottom, overshoot each side independently (8%/8%/20%/8%): { top: 0.08, left: 0.08, bottom: 0.80, right: 0.92 } </example> <example> Letterbox ~12% top/bottom, +5% overshoot: { top: 0.17, left: 0, bottom: 0.83, right: 1 } </example>
image_crop_to_bounds
Batch-produce multiple InDesign documents by merging CSV rows into an .indd template, then export as PNG, JPEG, or PDF. WHEN TO USE: "generate personalized documents", "data merge InDesign", "batch create from CSV", "variable data publishing", "merge data into template". NOTES: One output file per CSV row. Requires an InDesign subscription.
document_merge_data_layout
Batch-produce multiple AI/PNG/SVG/JPEG/PDF files by merging CSV rows into an .ai template — e.g. personalized certificates, product labels, or localized assets. WHEN TO USE: "data merge Illustrator", "batch create certificates", "generate product labels from CSV", "variable data in Illustrator". NOTES: Requires an Illustrator subscription.
document_merge_data_vector
Export one or more Illustrator (.ai) files as PNG, JPEG, SVG, PDF, AI, or EPS with artboard and resolution control. WHEN TO USE: "export Illustrator file", "save .ai files as PNGs", "convert Illustrator to PDF", "render AI files", "export this Illustrator file as PNG", "Illustrator to PNG", "AI to JPEG". CRITICAL: When the user has uploaded an .ai file and asks to export/convert/render it, use THIS tool immediately. Do not open the file picker again. NOTES: Requires an Illustrator subscription.
document_render_vector
Export (download) an Adobe Express design as PDF. Use this tool when the user asks to download/export the current design. Notes: - Only PDF format is supported. - The tool returns pre-signed URLs for each exported page.
download_design
Edit an image using a natural language instruction. Powered by Adobe Firefly. WHEN TO USE: - Remove objects/text/logos/people from image ("remove the text", "remove the logo", "remove the person") - Add objects/elements to image ("add sunglasses", "add wings", "add text saying X") - Replace/change background ("change background to sunset", "studio backdrop") - Change color of SPECIFIC NAMED OBJECT ("make the car blue", "make shirt green") - Style transformations ("anime style", "cartoonize", "sketch effect", "make it look like a painting", "oil painting style", "Y2K style", "retro style", "80s style", "90s style", "vaporwave", "pop art") - Edit/change text in an image ("change the text to say X", "edit the text", "replace SALE with CLEARANCE") - Face/body modifications ("add makeup", "change hairstyle", "make them smile") - Retouching ("whiten teeth", "brighten eyes", "smooth skin") - Convert film negative to positive ("negative to positive", "invert negative") - Region-specific effects ("glitch the background", "blur only the sky", "add grain to the background") WHEN NOT TO USE: Global color adjustments -> use adjust_* tools. Exposure/brightness -> use image_adjust_exposure. Cropping/resizing -> use image_crop_and_resize. Background blur -> use image_apply_lens_blur. NEVER for watermark removal (copyright violation). NOT SUPPORTED (explain to user and suggest Photoshop): - Flip/mirror image horizontally or vertically - Rotate image by specific degrees - Geometric transformations (skew, warp, perspective) CRITICAL RULES: 1. This is the PRIMARY tool for any content modification. When in doubt, use this tool. 2. For text removal: ALWAYS use this tool, NOT image_fill_area (which just fills with color). 3. For style changes (anime, cartoon, sketch, Y2K, retro, etc.): ALWAYS use this tool on the uploaded image. 4. For retouching (teeth whitening, eye brightening): ALWAYS use this tool - it's simpler than select+adjust. 5. For region-specific effects ("X the background", "X only the Y"): use this tool - it understands regions. 6. If user mentions a style with an uploaded image, apply the style - don't ask for clarification. 7. For flip/rotate requests: explain this is not supported and suggest Photoshop. 8. For editing text in images: ALWAYS use this tool - it can read and modify text content. NOTES: Requires login.
image_instruct_edit
Separate audio from a video or audio file into three isolated tracks: cleaned-up speech, background music/ambient sound, and reverb.
media_enhance_speech
Exports an InDesign (.indd) document to IDML format for document structure analysis. WHEN TO USE: When a presigned .indd URL needs to be analyzed for frame layout and field mapping before creating placeholders. WHEN NOT TO USE: For publishing or rendering the document as PDF/image. Returns a presigned IDML download URL.
export_idml
Fill placeholder text fields in an Adobe Express design template with specific content. WHEN TO USE: "put my company name here", "add the date to this invite", "update the headline" - ONLY when working with an Express design template (from search_design). WHEN NOT TO USE: - Only works on Express designs opened via search_design LIMITATIONS: Replaces text content ONLY. Does NOT support: font color, font size, font family, bold/italic styling, or text alignment changes.
fill_text
Completes a block upload and creates the file asset after chunk transfer finishes. **What this tool does:** Sends the completed transfer document to RAPI to confirm all blocks were received and create the asset. Handles asynchronous finalization automatically (polls the monitor URL until the asset is ready). **When to call this:** After all blocks have been successfully PUT to their block transfer URLs from `asset_initialize_file_upload`. Pass the `transfer_document` from init, updated so `_links["http://ns.adobe.com/adobecloud/rel/block/transfer"]` lists only the block links you actually used (same objects or `{ href }` entries). Keep the finalize link from the init response. Optionally set `repo:md5` for integrity verification. **Returns:** - `assets`: array containing the created asset (currently one asset per finalized upload) - Each asset includes ID, name, media type, and presigned URLs when available **Important:** - This is a mutating operation and should be called once per initialized upload session - For retries after uncertain network failures, expect backend conflict handling (for example filename renaming)
asset_finalize_file_upload
Generate a NEW AI image from scratch using Adobe Firefly. WHEN TO USE: "generate an image of", "create a picture of", "create a product photo background", "imagine a scene", "text to image" - ONLY when NO image is uploaded in context. WHEN NOT TO USE: - If context shows an image is already uploaded -> use image_instruct_edit instead - Style requests with uploaded image ("anime style", "make it look like X") -> use image_instruct_edit - For flyers/posters/banners -> use design_search (Adobe Express templates) CRITICAL: Check context first! If user already uploaded an image and asks for a style, use image_instruct_edit to transform it - don't generate a new image. NOTES: Requires login. Uses Firefly credits. USAGE: Parameter constraints (mutually exclusive): - aspectRatio: Use for general terms ("portrait" -> "3:4", "landscape" -> "4:3", "widescreen" -> "16:9") - size: Use for exact pixel dimensions (e.g., "2688x1536"). Cannot combine with aspectRatio. - referenceImage: Provide URL to guide style/composition. Cannot combine with aspectRatio or size. If no dimension specified, omit aspectRatio (service uses default).
image_generate
Resolve presigned S3 URLs for Lightroom/ACP assets by id. Fallback for when you have an asset id but no auth-free renditionURL — asset_search results already include auth-free renditionURLs, so use those directly. Pass the full array of LR/ACP assets — all are resolved in parallel in one call. WHEN TO USE: When you have a Lightroom or CCAsset id but no auth-free renditionURL (e.g. not from asset_search, or resolution failed) and need a usable URL for asset_preview_file, asset_inline_preview, or an edit tool. WHEN NOT TO USE: For StockAsset results — renditionURL is a public CDN URL, safe to use directly. For assets loaded via the file picker — presignedAssetUrl is already resolved. INPUT: assets array — each item needs id and sourceType from search results. Include renditionUrl and mediaType if present. OUTPUT: assets array in the same order as input — each item has id, renditionUrl, downloadUrl, previewUrl. Always use previewUrl for asset_preview_file, asset_inline_preview, and edit tool inputs. Items where resolution failed have null URLs. EXAMPLE: asset_get_presigned_urls({ assets: [ { id: "<id>", sourceType: "lightroom", renditionUrl: "<renditionURL from search>" }, { id: "<id>", sourceType: "acp", renditionUrl: "<renditionURL from search>" } ] }) → { assets: [{ id, renditionUrl, downloadUrl, previewUrl }, ...] }
asset_get_presigned_urls
Generates structured instructions for creating a CSV-to-template field mapping for InDesign placeholders. WHEN TO USE: Before assigning CSV columns to template frames — use this to obtain mapping guidance for reasoning out field assignments. WHEN NOT TO USE: This tool does not modify any document or call InDesign — it only returns instructions for the model to reason out the mapping JSON. Returns a prompt string with mapping structure requirements.
generate_indd_mapping_prompt
Internal helper: resolves presigned S3 URLs for one or more Lightroom assets via the Oz direct_links API. Returns presignedRenditionUrl (best available rendition) and presignedAssetUrl (master file) for each asset.
asset_lr_get_presigned_url
Retrieves presigned download URLs for PNG renditions of Adobe Creative Cloud assets. WHEN TO USE: "give me a download link", "get download URL" — only when context has a URN (urn:aaid:...) and no presigned URL is available. WHEN NOT TO USE: - If context already has a presigned URL (https://cc-api-storage.adobe.io/... or similar), use that URL directly.
asset_get_presigned_url
Return video metadata — width, height, fps, and duration in seconds — for a Walnut video asset.
video_metadata
Internal helper for the preview file UI: fetches HTTP headers for a URL and returns the Mime-Type parsed from the Content-Type header.
asset_get_mime_type
Convert a raster image (PNG or JPEG) — including photos, portraits, product shots, logos, illustrations etc. — into a clean, scalable SVG of editable vector paths. WHEN TO USE: "vectorize this", "convert to SVG", "make this a vector", "make this scalable", "scalable version of this", "make this Illustrator-ready", "trace image", "raster to vector", "turn into vector graphic".
image_vectorize
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Adobe alternatives on ChatGPT?
As of 2026-09-28, Adobe competes with Immopix, Photo Metadata Remover, YouCam (beta) in ChatGPT Photo & Image Editing, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.