image-poster
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseImage Poster Skill
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
资源映射
image-poster/
├── SKILL.md ← you're reading this
└── example.html ← what the resulting card looks like in Examplesimage-poster/
├── SKILL.md ← 你正在阅读的文件
└── example.html ← 示例中最终卡片的效果展示Workflow
工作流
Step 0 — Read the project metadata
步骤0 — 读取项目元数据
The active project carries , , and (optional)
notes. Use them as the upstream model + canvas + style
anchor; only ask the user to fill them in if they're marked .
imageModelimageAspectimageStyle(unknown — ask)当前项目包含、和(可选)信息。将它们作为上游模型、画布尺寸和风格基准;仅当这些信息标记为时,才需要询问用户补充。
imageModelimageAspectimageStyle(unknown — ask)Step 1 — Compose the prompt
步骤1 — 编写提示词
Plan in this exact order before calling any tool:
- Subject + composition — what is in the frame, where, at what scale; eye-line and crop.
- Lighting + mood — natural / studio / moody; warm / cool; key plus rim plus fill; time of day if outdoor.
- Palette + textures — hex anchors when the user gave a brand palette; otherwise a 3-word mood tag (e.g. "muted ochre + ink").
- Camera / lens — only if the user wants photographic realism ("85mm portrait, shallow DOF") or a specific film stock.
- What to avoid — common AI-slop patterns ("no extra fingers, no warped text, no logo placeholders").
在调用任何工具前,严格按照以下顺序规划:
- 主体与构图 —— 画面中有什么、位置在哪里、比例如何;视线方向和裁剪范围。
- 光线与氛围 —— 自然光/影棚光/氛围感光线;暖色调/冷色调;主光+轮廓光+补光;若为户外场景则需说明时间。
- 配色与纹理 —— 如果用户提供了品牌配色,使用十六进制色值;否则使用3词风格标签(例如“柔和赭石+墨色”)。
- 相机/镜头 —— 仅当用户需要照片级写实效果(如“85mm人像镜头,浅景深”)或特定胶片类型时添加。
- 避坑项 —— 常见AI生成缺陷(如“无多余手指、无扭曲文字、无Logo占位符”)。
Step 2 — Dispatch via the media contract
步骤2 — 通过媒体协议执行生成
Use the unified dispatcher — do not call upstream provider APIs by
hand. Run from your shell tool:
bash
node "$OD_BIN" media generate \
--project "$OD_PROJECT_ID" \
--surface image \
--model "<imageModel from metadata>" \
--aspect "<imageAspect from metadata>" \
--output "<short-descriptive-name>.png" \
--prompt "<the full assembled prompt from Step 1>"The command prints one line of JSON: .
The daemon writes the bytes into the project folder; the FileViewer
picks it up automatically.
{"file": {"name": "...", ...}}使用统一调度器——不要手动调用上游提供商API。在Shell工具中运行以下命令:
bash
node "$OD_BIN" media generate \
--project "$OD_PROJECT_ID" \
--surface image \
--model "<imageModel from metadata>" \
--aspect "<imageAspect from metadata>" \
--output "<short-descriptive-name>.png" \
--prompt "<the full assembled prompt from Step 1>"该命令会输出一行JSON:。守护进程会将文件写入项目文件夹,FileViewer会自动识别并展示。
{"file": {"name": "...", ...}}Step 3 — Hand off
步骤3 — 交付结果
Reply with a one-paragraph summary of the prompt you used and the
filename returned by the dispatcher (e.g. I generated
with at 1:1.). Do not emit an tag.
hero-poster.pnggpt-image-2<artifact>回复一段包含所用提示词摘要和调度器返回文件名的内容(例如:我使用生成了,比例为1:1。)。不要输出标签。
gpt-image-2hero-poster.png<artifact>Hard rules
硬性规则
- One image per turn unless asked for variations.
- Honor exactly — the upstream cost is the same; matching the aspect avoids a re-render.
imageAspect - No filler typography in the image itself unless the user asked for in-frame text. Real copy beats lorem.
- Save every render — never describe an image without producing the file. The user expects something to open in the file viewer.
- 每次生成一张图像,除非用户要求变体。
- 严格遵循比例——上游生成成本一致,匹配比例可避免重新生成。
imageAspect - 除非用户要求画面内添加文字,否则图像中不要包含填充性文字。真实文案优于占位文本。
- 保存每次生成的结果——切勿只描述图像而不生成文件。用户期望能在文件查看器中打开成品。