Generate variations from an Abyssale design
Abyssale can turn one design into many rendered outputs — different formats, languages, or a video — without recreating the design each time. This skill picks the right generation call and follows through to finished assets.
Note: printer_multipage designs are a different design type and are out of scope here — generate_static_banner/generate_banners_async both reject them. Use the abyssale-print-catalog skill for those.
Prerequisites
The Abyssale MCP server must be connected with the generate:banner scope (and read:design if you need to find the design first).
Steps
Identify the design. If the user names a design, use
search_designsorlist_designsto find its identifier, thenget_designto confirm it's the right one (check dimensions/layers match what they expect) before generating from it.Choose sync vs async:
- A single static image needed right away →
generate_static_banner. Synchronous, capped at 10 seconds server-side, returns the result directly. Good for one quick preview. - Multiple formats/sizes, a video, or anything AI-assisted →
generate_banners_asyncinstead. Use this even when it "looks like" just one more image on top of others you're already generating — batching variations through the async path is more reliable than looping the sync one, and it's required for anything that can't render in 10 seconds.
- A single static image needed right away →
Submit the generation(s). For N variations (N formats, N languages, N text swaps, …), call the async tool once per variation with its specific overrides — each call returns a
generation_request_idimmediately. Submit all of them before waiting on any; don't wait for one to finish before submitting the next.Poll for completion. Call
check_generation_statuspergeneration_request_id:- Finalized → the asset is ready; collect its URL.
- Still pending → wait briefly and poll again — this is normal, not an error.
- Expired (after 7 days) → if the user asks about an old request much later, tell them it expired rather than retrying the same id.
Report results as a set, once every requested variation is finalized — the user asked for N variations, so the useful unit of output is the whole batch, not one-at-a-time updates.
Notes
- Don't fake multi-format generation by looping
generate_static_banner— it's built for a single fast render, and its 10-second cap will fail on anything heavier. - If the request implies a video, don't try to force it through the static/sync path — it doesn't support that.