Need a logo for your brand, fast? Enter your brand name, describe it in one sentence, add reference images, and get a custom brand mark in minutes — no design experience required. Style, colors, and shape are all guided by your words, and you can set the output size to fit your website, posters, slides, or social avatars. From new brand launches to brand refresh, generate production-ready HD PNG logos with ease — start with a concept, let AI iterate, and refine version after version until it's just right.
npx skills add https://github.com/surgepix/agent-skills --skill surgepix-generate-logoGenerate a brand logo image from a text description plus optional reference images via the platform API, and return a download link.
| Action | Description |
|---|---|
| Generate brand logo | Create a full logo image from a text description (style, colors, etc.) |
| Upload reference image | Upload brand/style reference images to apply to the logo design |
| Choose output format | Select the output format via --format:png (transparent background) or jpg (colored background) |
| Set output size | Specify the output image width and height via --size |
| Check task status | When run with --nowait true, look up via taskId using surgepix-query-task |
| Download result | Returns the download link to the generated logo 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
--brand-name and --prompt are required; the rest are optional.
JPEG / JPG / PNG / WEBP — max 20MB each.png): output format. png = transparent background PNG (ideal for overlaying); jpg = colored JPG (e.g. white / brand-color background, ideal for direct display).1024x1024): output image size in WxH format. e.g. 1024x1024,1080x1080,1920x1080.Step 2: Run generate-logo
node "<skills-dir>/surgepix-generate-logo/scripts/generate_logo.mjs" \ --brand-name "<brand-name>" --prompt "<description>" \ [--reference "<path-or-url>" ...] [--format <png|jpg>] [--size <WxH>] \ [--session-id <id>] [--nowait <true|false>]
| Flag | Description |
|---|---|
--brand-name <text> | Brand name text, which will appear in the logo (required) |
--prompt <text> | Text description for the logo design (required) |
--reference <path-or-url> | Reference image (local path auto-uploaded; repeatable for multiple files) |
--format <png|jpg> | Output format: png (transparent background) / jpg (colored background), default png |
--size <WxH> | Output size in WxH format, default 1024x1024 |
--session-id <id> | Session ID; pass the sessionId (number type) from a previous run to iterate |
--nowait <true|false> | Wait mode, default false (see below) |
The request is always submitted asynchronously. --nowait false (default) makes the script poll internally until the task completes and returns the final download--nowait true makes the script return 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","imageCount":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,"hint":"..."}
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 — --brand-name or --prompt not providedunsupported_image_format — reference image format not supportedimage_too_large — reference image exceeds 20MBinvalid_param_value — invalid --size format or valuegeneration_failed — internal error; retry or simplify the descriptionCreate & Edit Visuals with AI
© 2026 SurgePix. All rights reserved. Made with ❤️ for productivity.