Agent skill · design visual · nexu-io
image-poster
Single-image generation skill for posters, key art, and editorial illustrations. Defaults to gpt-image-2 but is provider-agnostic — the same workflow drives Flux, Imagen, or Midjourney via the active upstream tooling. Output is one or more PNG/JPEG files saved to the project folder.
Why this skill is useful
Provides a structured workflow for generating high-quality images using specific prompts and media contracts that the AI wouldn't reliably generate on its own.
What it needs
About 2k tokens when loaded. Last updated 2026-08-07. 84,236 stars on the source repository.
What this skill does
Image Poster Skill Produce one finished image asset per turn unless the user asks for variations. Image generation rewards a tight, structured prompt — your job is to assemble that prompt from the user's brief, then dispatch. Resource map Workflow Step 0 — Read the project metadata The active project carries imageModel, imageAspect, and (optional) imageStyle notes. Use them as the upstream model + canvas + style anchor. When a value is not provided, infer a safe default from the brief and media contract. Ask only when the choice would materially change the requested result and no safe default can be inferred. Step 1 — Compose the prompt Plan in this exact order before calling any tool: 1. Subject + composition — what is in the frame, where, at what scale; eye-line and crop. 2. Lighting + mood — natural / studio / moody; warm / cool; key plus rim plus fill; time of day if outdoor. 3. Palette + textures — hex anchors when the user gave a brand palette; otherwise a 3-word mood tag (e.g. "muted ochre + ink"). 4. Camera / lens — only if the user wants photographic realism ("85mm portrait, shallow DOF") or a specific film stock. 5. What to avoid — common AI-slop patterns ("no extra fingers, no warped text, no logo placeholders"). Step 2 — Dispatch via the media contract Use the unified dispatcher — do not call upstream provider APIs by hand. Run from your shell tool: The command prints one line of JSON: {"file": {"name": "...", ...}}. The daemon writes the bytes into the project folder; the FileViewer picks it up automatically. Step 3 — Hand off Reply with a one-paragraph summary of the prompt you used and the filename returned by the dispatcher (e.g. I generated hero-poster.png with gpt-image-2 at 1:1.). Do not emit an <artifact> tag. Hard rules One image per turn unless asked for variations. Honor imageAspect exactly — the upstream cost is the same; matching the aspect avoids a re-render. No filler typography in the image itself unless the user asked for in-frame text. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills nexu-io/image-poster--fc849c