Edit any photo with text prompts: change art style, recolor, replace elements, refine composition, or restyle reference images in one step. Perfect for AI photo editing, style transfer, illustration conversion, anime/watercolor/flat design looks, color grading, and iterative regenerations when you need a fast AI image editor that follows your references and instructions.
npx skills add https://github.com/surgepix/agent-skills --skill surgepix-image-editEdit an image via the platform API based on submitted reference images and a text edit instruction (change style, recolor, replace elements, adjust composition, etc.), and return a download link for the edited image.
| Action | Description |
|---|---|
| Edit an image | Submit one or more reference images via --reference |
| Change style | Change art style, color scheme, texture, etc. through a text instruction (e.g. "make it illustration style", "black and white", "warm tones") |
| Cross-skill adjustment | Takes over results from other generation-type skills and continues adjusting / regenerating on top of them |
| Reference-image driven | Every submitted image participates in the edit as a reference; the result follows the reference content and style |
| Set output size | Specify the output image width and height via --size; when omitted,defaults to the reference image (the first one when multiple) |
| Check task status | When run with --nowait true, look up via taskId using surgepix-query-task |
| Download result | Returns a download link for the edited single image |
By default ( --nowait false) the API waits for completion and returns the final download link directly.Pass --nowait true to get a taskId immediately; then check progress via the surgepix-query-task skill. | |
Step 0: Check environment (required)
Before running, verify config:
node "<skills-dir>/surgepix-setup/scripts/check_env.mjs"
.env following the surgepix-setup skill, then retryStep 1: Gather inputs
Everything is entered via parameters (this skill has no dialogue step).
./photo.png)WxH, eg. 1024X1024, 1920x1080. When the user provides one, it takes priority; when omitted, defaults to the size of the submitted reference image — the first one when multiple.sessionId can be reused across skills; it only serves to show this result together with previous generation results in the same frontend session history. When switching to this skill to adjust a result from another generation-type skill because the user is not satisfied with it, reuse the sessionId (number type) output by that skill; omit it on a brand-new request and the platform auto-creates a new session.JPEG / JPG / PNG / WEBPStep 2: Run image-edit
node "<skills-dir>/surgepix-image-edit/scripts/image_edit.mjs" \ --reference "<path-or-url>" [--reference "<path-or-url>" ...] \ --prompt "<edit instruction>" \ [--size <WxH>] \ [--session-id <id>] [--nowait <true|false>]
| Flag | Description |
|---|---|
--reference <path-or-url> | Reference image (local paths are auto-uploaded; repeatable; at least one required) |
--prompt <text> | Edit instruction (required): what to change |
--size <WxH> | Output size as WxH;when omitted, defaults to the reference image (the first one when multiple); a user-provided value takes priority |
--session-id <id> | Session ID (number type); can be reused across skills, only to show results in the same frontend session history |
--nowait <true|false> | Wait mode, default false (see below) |
The request is always submitted asynchronously. --nowait false (default) makes the script poll internally until completion and return the final download ; --nowait true returns the taskId immediately, to be resolved later via the surgepix-query-task skill.
Step 3: Parse output
Sync success (--nowait false, stdout):
{"ok":true,"taskId":"task_xxx","sessionId":123,"progress":"succeeded","download":"https://...images.zip","resultType...":4,"resultType":"zip","note":"API 仅返回 ZIP 下载地址,不含单张图片 URL;禁止编造单张链接"}
Async submitted (--nowait true, stdout) — resolve later with the surgepix-query-task skill:
{"ok":true,"async":true,"taskId":"task_xxx","sessionId":123,"progress":"processing","download":null,"resultType":"..."}
Failure (stderr):
{"ok":false,"error":"..."}
Step 4: Present result
download URL from script output. Always show sessionId (note: it is a number type, e.g. 123 ) so the user can pass it in a retry if needed.error field. Common causes:missing_required_param — no reference image or --prompt providedunsupported_image_format — file format not supportedimage_too_large — file exceeds 20MBinvalid_param_value — --size invalid format or valuegeneration_failed — internal error; retry or simplify the instructionCreate & Edit Visuals with AI
© 2026 SurgePix. All rights reserved. Made with ❤️ for productivity.