SurgePix
Poster Creator
Generate AI-powered event posters from structured event details and creative direction — optimized for autonomous agent skill calling and automated workflows. Use when the user asks to create an event poster, design an activity flyer, make a promotional banner, or generate any visual announcement for an event. Accepts event name, date, venue as required inputs, with optional creative prompts, tagline text, reference images, or previously uploaded file IDs. Returns a download URL, session ID, and task ID upon completion, with async execution and automatic polling — no human-in-the-loop required. Supports 8 preset styles for intent-to-style mapping and custom output dimensions in any WxH format.
npx skills add https://github.com/surgepix/agent-skills --skill surgepix-generate-posterSurgePix Poster Creator
Generate a professional event poster image from structured event details using the SurgePix API. Use when the user asks to create an event poster, activity flyer, promotional banner, or any visual announcement for an event.
What the Skill Does
| Action | Description |
|---|---|
| Generate event poster | Create a poster image from event name, date, venue, and brief |
| Upload reference image | Upload a brand logo or visual reference image to apply to the poster design |
| Check task status | Poll a generation task by taskId to check progress |
| Download result | Retrieve the PNG download URL directly from the task result |
Generations run asynchronously. By default, the skill submits the task and polls automatically until complete. Pass --no-wait to receive a taskId immediately and check progress manually with the status command. | |
Workflow
Step 0: Check environment (required)
Before running, verify config:
node "<skills-dir>/surgepix-setup/scripts/check_env.mjs"
- Exit 0 → proceed to Step 1
- Exit 1 → follow surgepix-setup skill to configure
.env, then retry
Step 1: Gather inputs
--event-name,--date, and--venueare required.- Event name (required): main title displayed on the poster
- Date and time (required): e.g.
2026-06-15 19:00 - Venue (required): location name or address shown on the poster
- Prompt (optional): free-form creative direction — describe desired color scheme, typography, layout, imagery, or atmosphere. This instructs the AI and does not appear as text on the poster.
- Description (optional): tagline or intro text printed on the poster, max 100 characters
- Style (optional): layout and typography preset. Choose from:
modern/vintage/minimalist/bold. Use as a quick shorthand for visual direction; omit if--promptPreset Styles section below for detailed descriptions. - Size (optional, default
1080x1920): custom dimensions inWxHformat, e.g.1080x1920,1080x1080,1920x1080. - Reference image (optional): local file path or image URL; script uploads automatically. Repeatable for multiple images. Supported formats:
JPEG,JPG,PNG,WEBP— max 20MB each. - Session ID (optional): if the user is iterating on a previous result, ask them to provide the
sessionId(number type) printed by the last run. If this is a fresh request, omit it — the platform auto-creates a new session. - Local reference image → script uploads automatically, then calls API
- Reference image URL → script uses it directly
Step 2: Run generate-poster
node "<skills-dir>/surgepix-generate-poster/scripts/generate_poster.mjs" \ --event-name "<text>" --date "<text>" --venue "<text>" \ [--prompt "<text>"] [--description "<text>"] [--style <name>] \ [--size <1080x1920>] [--reference "<path-or-url>" ...] [--session-id <id>]
Flag Description --event-name <text>Main title on the poster (required) --date <text>Event date and time, e.g. 2026-06-15 19:00(required)--venue <text>Location text shown on the poster (required) --prompt <text>Creative direction (color, typography, layout) — not printed on poster --description <text>Tagline printed on the poster, max 100 characters --style <name>Layout preset: modern/vintage/minimalist/bold--size <WxH>Output dimensions, default 1080x1920--reference <path-or-url>Reference image (local path auto-uploaded; repeatable for multiple files) --session-id <id>Session ID; pass the sessionId(number type) from a previous run to iterateThe script always uses asynchronous mode (internal
noWait=true) — it submits the task and automatically polls until complete.noWaitis hardcoded inside the script; do NOT pass it as a parameter.Step 3: Parse output
Success (stdout):
{"ok":true,"taskId":"task_xxx","sessionId":123,"progress":"succeeded","download":"https://...poster.png"}
Failure (stderr):
{"ok":false,"error":"..."}
Step 4: Present result
- On success: Show the download URL. Always show
sessionId(note: it is a number type, e.g.123) so the user can pass it in a retry if needed - On failure: Report the
errorfield. Common causes:- Missing required parameter —
--event-name,--date, or--venuenot provided --descriptionexceeds 100 characters- Reference image format not supported or exceeds 20MB
- Invalid
--sizevalue - Generation failed — internal error; retry or simplify the prompt
- Missing required parameter —
- The result is automatically attached to the session (auto-created or reused). The user can open the platform frontend to see all iterations in one place.
- If the user is not satisfied and wants to iterate, instruct them to pass
--session-id <sessionId>(number type) in the next run — both versions appear in the same session history on the frontend.
- On success: Show the download URL. Always show
Rules
- ALWAYS run
check_env.mjsbefore first use in a session. --event-name,--date,--venueare all required — never run the command if any is missing.--descriptionmust be at most 100 characters.- NEVER pass
noWait— it is hardcoded totrueinside the script. - NEVER pass local reference image paths to the API — script handles upload internally.
- NEVER invent download URLs — only use the
downloadvalue from the output. - NEVER echo auth tokens in logs or output.
- If the user wants to iterate, they pass
--session-id 123in the next run — both versions appear in the same session on the frontend. - If
--session-idis omitted, the platform auto-creates a new session for the run. - If the user provides a brand color, pass it via
--prompt, e.g.--prompt "Brand color #FF5A00, tech style, dark background". Do not put creative direction in--description— that field is reserved for text printed on the poster. - The poster download URL is valid for 24 hours; download before it expires.
- To generate multilingual versions of the same poster, run the command separately for each language, adjusting
--event-name,--venue, and--descriptionaccordingly. - Reference image supported formats:
JPEG,JPG,PNG,WEBP— max 20MB each.
Create & Edit Visuals with AI
© 2026 SurgePix. All rights reserved. Made with ❤️ for productivity.