edit-image
activev2026.08.25.1Edit a platform-stored image with a natural-language instruction (OpenAI images/edits), with optional background re-removal for transparent assets.
This page renders the template’s published registry entry — the contract itself, not a description of it. Immutable versions; sealed properties exist but are not public.
What you provide — intake contract
How it runs — step topology
1
Edit imagetool
2
Remove backgroundtoolbackgroundRemover
3
Refine edgestool
4
Audit cutouttool
Model roles: imageEditor backgroundRemover bindings budgetPolicy
What you get — artifact
edited-imagevisual
Version lineage
2026.08.25.1rev 71current2026-08-25
sha256:0c3ee25bf…
2026.08.25rev 702026-08-25
sha256:5fb327e01…
2026.07.18.1rev 522026-08-06
sha256:293738f58…
2026.07.18.1rev 512026-08-02
sha256:d99a6fbf2…
2026.07.18rev 482026-08-02
sha256:63b749d03…
2026.07.18rev 142026-07-18
sha256:1dd288178…
2026.07.04rev 12026-07-04
sha256:ac3ff62f3…
Full contract (as served)
GET /v1/catalog/workflows/edit-image
{
"_comment": "SYNCED SNAPSHOT — do not hand-edit. Regenerate with: node scripts/sync-workflow-catalog.mjs (pulls api.esy.com GET /v1/catalog/workflows/{id}).",
"generatedAt": "2026-09-07T04:32:14.515090Z",
"id": "edit-image",
"name": "Edit Image (Instruction)",
"description": "Edit a platform-stored image with a natural-language instruction (OpenAI images/edits), with optional background re-removal for transparent assets.",
"shortDescription": "Instruction-based image edit (img2img).",
"artifactClass": "visual",
"outputType": "visual",
"status": "active",
"supersededById": null,
"version": "2026.08.25.1",
"stages": [
{
"name": "Edit",
"description": "Apply the instruction to the source image, at the source's own dimensions and the requested tier.",
"stepCount": 1
},
{
"name": "Post-process",
"description": "Re-remove the background when transparency is requested.",
"stepCount": 1
},
{
"name": "Cutout QA",
"description": "Refine the cutout edges and audit the alpha, escalating the remover on failure.",
"stepCount": 2
}
],
"intakeSchema": {
"fields": [
{
"name": "sourceUrl",
"type": "string",
"required": true,
"description": "Platform artifact URL of the image to edit"
},
{
"name": "instruction",
"type": "string",
"required": true,
"description": "Natural-language edit instruction"
},
{
"name": "backgroundRemovalEnabled",
"type": "boolean",
"required": false,
"description": "Re-remove the background after editing",
"default": false
},
{
"name": "quality",
"type": "enum",
"required": false,
"default": "low",
"description": "Render tier for the edit itself",
"options": [
"low",
"medium",
"high"
]
},
{
"name": "alphaAuditMode",
"type": "enum",
"required": false,
"default": "report",
"description": "Cutout QA after background removal: 'enforce' (default) fails bad cutouts (holes/halos/spill) so they retry through the removal ladder, 'report' records metrics only, 'off' skips the audit",
"options": [
"enforce",
"report",
"off"
]
},
{
"name": "removalEscalationEnabled",
"type": "boolean",
"required": false,
"default": true,
"description": "On an enforced cutout-audit failure, retry the same render through stronger background-removal models (Heavy/Matting at 2K, then BRIA) before re-rendering; off fails straight to re-render"
}
]
},
"runtimeSteps": [
{
"id": "step-1",
"name": "Edit image",
"kind": "tool",
"inputPath": "intake.sourceUrl"
},
{
"id": "step-2",
"name": "Remove background",
"kind": "tool",
"role": "backgroundRemover",
"inputPath": "step-1.url"
},
{
"id": "step-2a",
"name": "Refine edges",
"kind": "tool",
"inputPath": "step-2.url"
},
{
"id": "step-2b",
"name": "Audit cutout",
"kind": "tool",
"inputPath": "step-2a.url"
}
],
"gates": [
{
"id": "gate-edit",
"name": "Provider execution",
"type": "quality",
"inputs": [
"intake"
],
"outputs": [
"edited-image"
],
"unlocks": [
"step-2"
]
},
{
"id": "gate-alpha",
"name": "Cutout alpha audit",
"type": "quality",
"inputs": [
"edited-image"
],
"outputs": [
"audited-image"
]
}
],
"artifactSchema": {
"artifactClass": "visual",
"artifactType": "edited-image",
"files": [
"image/webp"
],
"metadata": {
"sourceUrl": "string",
"backgroundRemoved": "boolean"
}
},
"providers": {
"imageEditor": "redacted",
"backgroundRemover": "redacted"
},
"budgetPolicy": "redacted",
"versions": [
{
"version": "2026.07.04",
"revision": 1,
"contentHash": "sha256:ac3ff62f337d8128ccc560530a71f27419f24d9296d0c58fd436945864aa31a9",
"createdAt": "2026-07-04T21:49:03.494747Z"
},
{
"version": "2026.07.18",
"revision": 14,
"contentHash": "sha256:1dd2881787195c2b138aae96709830efafdc6acd0af984cb1473d496109aeef7",
"createdAt": "2026-07-18T19:19:08.575944Z"
},
{
"version": "2026.07.18",
"revision": 48,
"contentHash": "sha256:63b749d03aaa4fe44f96ad29b1c38fb3d368fa64f1848632b2782566d14cebdb",
"createdAt": "2026-08-02T01:34:06.679672Z"
},
{
"version": "2026.07.18.1",
"revision": 51,
"contentHash": "sha256:d99a6fbf265d871db65be2bfd336fa4b51d4734f456aa9854c40a00587fed40d",
"createdAt": "2026-08-02T17:38:41.196478Z"
},
{
"version": "2026.07.18.1",
"revision": 52,
"contentHash": "sha256:293738f584503f2db34333fe200a1b0f83a271f033b936e6e78f3e1381556165",
"createdAt": "2026-08-06T22:08:47.950505Z"
},
{
"version": "2026.08.25",
"revision": 70,
"contentHash": "sha256:5fb327e015516fc1fc4a420aa23b67db2e81d83161997d5847ef28de97dffe9a",
"createdAt": "2026-08-25T10:45:22.232909Z"
},
{
"version": "2026.08.25.1",
"revision": 71,
"contentHash": "sha256:0c3ee25bfdbc3557dec9c9d6a1e3704d8da23a97e3530ba2218a01d43b83f26b",
"createdAt": "2026-08-25T16:37:42.276826Z"
}
],
"updatedAt": "2026-09-06T00:04:43.404983Z"
}Snapshot generated 2026-09-07 from the live registry.
