{"id":55030,"plugin_id":"plugin_asdk_app_6a608e436adc8191affb546011f744cf","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-26T00:04:41.608Z","digest":"109b14c543abc6fbb3710a8007b72a7d11d3ba1ee85e248f7746c7f2f04d8bca","against":null,"payload":{"description":"Use when the user wants an existing product photo cleaned up for a store or listing: background removed or made white, a distracting object, dust or a reflection removed, the image enlarged or sharpened, or a vector (SVG) version of a logo or flat graphic. Not for new scenes (use product-scene-styling) or a full photo set (use ecommerce-product-photos).","included_files":[],"name":"product-image-cleanup","skill_md_contents":"---\nname: product-image-cleanup\ndescription: Use when the user wants an existing product photo cleaned up for a store or listing: background removed or made white, a distracting object, dust or a reflection removed, the image enlarged or sharpened, or a vector (SVG) version of a logo or flat graphic. Not for new scenes (use product-scene-styling) or a full photo set (use ecommerce-product-photos).\n---\n\n# Product image cleanup\n\nFix an image the user already has, without changing the product: cut it out, clean the background, remove distractions, enlarge it, or trace a flat graphic to SVG. Each fix is one call; chain them in the order below.\n\n## What you need\n\n- The image (attached or a public URL).\n- What to fix. If they say \"clean it up\", do background → distractions → enlarge, and say so.\n\n## Recipe\n\nStore it first with `upload_asset({ url })` and keep the `asset_id`. Then use what applies, passing each result's asset id (from `orisu_media.items`) to the next step:\n\n1. **Transparent cutout.**\n\n```json\n{ \"tool\": \"remove_background\", \"arguments\": { \"config\": {}, \"inputs\": { \"input_image\": { \"kind\": \"image\", \"assetId\": \"<asset_id>\" } } } }\n```\n\n2. **White background or a small removal** (dust, a cable, a reflection, a price sticker the user wants gone):\n\n```json\n{ \"tool\": \"edit_image\", \"arguments\": {\n  \"config\": { \"model\": \"nano-banana-2\", \"prompt\": \"Remove the dust specks and the cable behind the product. Change nothing else: same product, label, colors, framing and light.\" },\n  \"inputs\": { \"input_image\": { \"kind\": \"image\", \"assetId\": \"<asset_id>\" } },\n  \"confirm_above_credits\": 40,\n  \"idempotency_key\": \"product-image-cleanup-1\"\n} }\n```\n\nRemove only what the user asked. Never remove or alter labels, logos, ingredients or safety text on the product.\n\n3. **Enlarge** for print or zoom (2x or 4x):\n\n```json\n{ \"tool\": \"upscale_image\", \"arguments\": {\n  \"config\": { \"model\": \"topaz-upscale\", \"scale_factor\": 4 },\n  \"inputs\": { \"input_image\": { \"kind\": \"image\", \"assetId\": \"<asset_id>\" } },\n  \"confirm_above_credits\": 40,\n  \"idempotency_key\": \"product-image-cleanup-2\"\n} }\n```\n\nUpscale last, after edits, so later edits don't work on a huge file.\n\n4. **SVG** for a logo, icon or flat illustration (not photos): `vectorize_image` with `config: {}` and the same `inputs`.\n5. Show the before and after with `preview_asset` (original asset id and result) so the user can compare.\n\n## Cost, waiting and retries\n\nGive every paid call its own `idempotency_key`, unique to that request (for example `mug-packshot-1`). Send the same key again only to resend a call that was interrupted or whose result you never saw, such as after a permission or file-download prompt; the first result then comes back instead of a second charge. Before re-running anything, check `list_runs` or `get_run` for a result that already finished. To redo something on purpose (a failed run, an image that missed, changed settings), use a new key: the old one would replay the same result, failure included.\n\nEach step is a paid call; pass `confirm_above_credits` and ask before going over. On `timed_out: true`, call `wait_for_run`. If a step fails, redo that step on the last good result, not the whole chain.\n\n## Quality check\n\n- Cutout edges are clean (no halo, no missing parts such as handles or straps).\n- Only the requested things were removed; product text and details unchanged.\n- Upscaled image has no invented texture on the label.\n\n## Next edits to offer\n\n- New scenes for the cleaned product: product-scene-styling.\n- The full store set: ecommerce-product-photos.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}