Summary
一句话生成海报图片。支持封面图、营销图、信息图、活动海报等多种类型,自动识别行业风格,适配各平台尺寸(小红书、微信、抖音等)。有参考图时进行风格洗稿或模仿重构,无参考图时从零创意规划。当用户提到海报设计、做张海报、封面图、cover image、设计方案、文章转海报时触发。
meitu/meitu-skills
一句话生成海报图片。支持封面图、营销图、信息图、活动海报等多种类型,自动识别行业风格,适?
npx skills add meitu/meitu-skills --skill meitu-poster
一句话生成海报图片。支持封面图、营销图、信息图、活动海报等多种类型,自动识别行业风格,适配各平台尺寸(小红书、微信、抖音等)。有参考图时进行风格洗稿或模仿重构,无参考图时从零创意规划。当用户提到海报设计、做张海报、封面图、cover image、设计方案、文章转海报时触发。
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Vertical poster or Moments-style share image with strong visual impact.
2.4K installsGenerate professional poster designs using each::sense AI. Create movie posters, event posters,…
2K installsHelp users work through feelings of inadequacy and self-doubt. Use when someone feels like a fr…
1.5K installsCreate and audit editable scientific posters in macro-free PowerPoint (.pptx) from author-appro…
1.5K installsCreate professional research posters in LaTeX using beamerposter, tikzposter, or baposter. Supp…
1.5K installsOther skills from meitu/meitu-skills · top by installs.
npx skills add meitu/meitu-skills
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Parsed from SKILL.md frontmatter.
Files included with this skill beyond the listing page.
SKILL.md
26,611 B
SUMMARY.md
409 B
Art-director 级别的海报设计 Skill。分析文本输入,锚定风格方向,规划视觉层级,输出结构化 AI 生成指令并调用 meitu-cli 生成海报图片。两种模式:无参考图时从零创意规划,有参考图时风格洗稿或模仿重构。
- Install: npm install -g meitu-cli@latest(包名 meitu-cli)
- 首选环境变量:MEITUOPENAPIACCESSKEY / MEITUOPENAPISECRETKEY - 或预置凭证文件:~/.meitu/credentials.json - 如需人工初始化本地凭证,可显式执行 meitu config set-ak --value "..." + meitu config set-sk --value "..."(会写入本地文件) - 验证:meitu auth verify --json
- text-to-image — 文生图 / 参考图辅助生成 / 风格迁移 - image-poster-generate — 带文字排版的海报(输出需要嵌入文字时使用) - 完整命令目录见 [references/meitu-cli-guide.md](references/meitu-cli-guide.md)
- [references/design-constraints.md](references/design-constraints.md) - [references/industry-styles.md](references/industry-styles.md) - [references/creative-framework.md](references/creative-framework.md) - [references/meitu-cli-guide.md](references/meitu-cli-guide.md) - 这些 reference 文件是随包发布的静态材料;在 project 模式下,如 DESIGN.md 或 openclaw.yaml 显式引用品牌资产或平台规则,还可能额外读取用户启用的 $VISUAL/assets/brands/ 与 $VISUAL/rules/platforms/
{OPENCLAW_HOME}/workspace/visual/- Not found → skip all knowledge reads, skill works without it
路径别名: 下文中
$VISUAL={OPENCLAW_HOME}/workspace/visual/
流程按实际执行顺序排列:
Preflight → [Context] → Execute → Refine → Deliver → [Record]
↑ 创意型任务执行 ↑ 项目模式时执行
↑ 工具型任务跳过 [Context: 跳过] ↑ 一次性模式跳过
↑ 一次性模式跳过(仅读输入+硬约束)
meitu --version → 未安装则提示 npm install -g meitu-cli@latestmeitu auth verify --json → 凭证无效则引导配置openclaw.yaml → project mode; else → one-offcan_record = cwd 有 openclaw.yaml AND $VISUAL 存在(两者缺一即 false)
./output/ | else → $VISUAL/output/meitu-poster/mkdir -p {outputdir} 硬约束:outputdir MUST NOT 指向 skill 文件夹内部
手动创建目录(见 [references/memory-protocol.md](references/memory-protocol.md) § Project Structure) 已在项目目录中 → 跳过
mode = one-off → 跳过此步,直接到 Execute。以下仅限 project 模式:
逐步读取上下文(均 skip if missing):
→ 对每个引用尝试读全局资产(如 brand: acme → $VISUAL/assets/brands/acme/) → 读到 → 用最新版;读不到 → 用 DESIGN.md 内联兜底值
→ 对每个 type 读 $VISUAL/memory/scenes/{type}.md 注意:{type} 来自 openclaw.yaml,不是 skill 名称 → quality forbidden list 过滤生成元素,preferences 增强创意方向
需求分析
路由 — 判断场景
Creative Direction(无参考图)
品牌信息层级分类
| 层级 | 用户提供 | 动作 |
|---|---|---|
| B1 | 品牌调性 + 色彩体系 | 以调性和色彩为锚点 |
| B2 | 调性 + 色彩 + logo | 额外分析 logo 进行视觉关联 |
| Basic | 无品牌资产 | 从文本中提取气质,使用行业映射 |
| Franchise | 引用知名 IP | 锁定 IP 视觉 DNA 作为风格锚点 |
行业识别 + 风格锚定
- 用户提供 logo → 以 logo 气质为锚点,探索相邻美学 - 用户指定风格关键词 → 以该风格为锚点 - 无风格引导 → 使用行业自动映射,选择最高匹配风格
创意构思 + 深化
无参考图的创意方向模式 → 读取 [references/creative-framework.md](references/creative-framework.md) 获取完整创意方法论。按顺序执行:
输出设计方案
按 [references/output-formats.md](references/output-formats.md) 中场景 1 格式生成结构化输出:
projectmanifest、visualstylesystem、sceneelements、typographylayout、aigeneration_prompts输出前质量检查:
Poster Analyse(有参考图)
意图路由
通过分析用户意图确定模式(优先级:显式命令 > 隐式场景 > 歧义默认):
触发词不足以判断意图时 → 参考 [references/poster-analyse.md](references/poster-analyse.md) Step 0 的完整触发词表和场景示例。
逆向工程参考图
提取完整视觉 DNA:
Soul Anchor 提取(仅 Washing)
识别最不可替代、设计价值最高的单一元素:
深度思考 + 重构
- Mimicry → 跟随参考色彩 - Washing → 执行色相清洗:新色彩与参考在色轮上须差异 ≥ 90°;保留色彩关系但替换色相
- Mimicry → 风格 100% 锁定,为新内容重绘构图;文字变更输出 "change text '[A]' to '[B]'" - Washing → 坐标重置(检测参考构图,选择对立逻辑)+ 色相清洗 + 从用户文案层级构建新阅读路径
自我纠正
输出前验证:
输出设计方案
按 [references/output-formats.md](references/output-formats.md) 中场景 2 格式生成 JSON:
mission_logic — 意图 + soul 提取推理design_blueprint — 概念、风格、色彩、布局、字体、构图、检测模式content_firewall — 丢弃的参考物体 + 解锁的特征prompt — 最终英文 prompt:[New Color Palette], [reconstructed concept], [anchor description], [mutated elements]. Negative: [ignored ref objects], simple layout, template, stock photonegativeprompt — 来自 contentfirewall 和设计约束生成图片
aigenerationprompts.primary_prompt)或 Poster Analyse JSON(prompt)提取 promptnegativeprompt 中的关键禁忌转化为正向描述融入 prompt 末尾(例:"vintage, watercolor" → "contemporary modern aesthetic, clean digital rendering")。保留 JSON 中的 negative_prompt 字段用于设计方案存档。text-to-image 用小写 2k,可选 1K|2K|4K;image-poster-generate 用大写 2K,可选 auto|512|1K|2K|4K):- 优先级:用户指定 > 平台规则文件 > 内置默认 - 内置默认映射:小红书/Instagram → 3:4 | 微信朋友圈 → 1:1 | 微信公众号封面 → 16:9 | 抖音/TikTok/Stories → 9:16 | 电商横幅 → 16:9 | 未指定平台 → 3:4
| 场景 | 命令 | --image_list |
说明 |
|---|---|---|---|
| Creative Direction(无参考图) | text-to-image |
不传 | 纯文生图 |
| Poster Analyse — Mimicry | text-to-image |
必须传参考图 URL | 保留原图风格 |
| Poster Analyse — Washing + Vibe Anchor | text-to-image |
推荐传参考图 URL | 保留质感氛围 |
| Poster Analyse — Washing + Typography/Layout Anchor | text-to-image |
不传 | 避免参考图污染新布局 |
| 输出需嵌入文字排版(用户明确要求文字在图上 OR 设计方案文字与图形为 overlay/fusion 关系) | image-poster-generate |
可选 | 带文字排版 |
约束说明: - text-to-image 传 --image_list 时,不再传 --ratio - 若参考图路径下仍需强调版式方向,可把画幅意图写入 prompt,或先生成后在 Refine 阶段做比例适配 - 需要文字排版时优先 image-poster-generate,不要让 text-to-image 承担完整海报版面职责
image-poster-generate 模型选择(通过 --model 指定,默认 Praline_2):
| 优先级 | 模型 | 适用场景 | 输出风格 |
|---|---|---|---|
| 1 | Nougat |
风格化海报:卡通、3D 人偶、动漫、插画风 | 艺术化海报 |
| 2 | GummyV4.5 |
人像海报:真人作为主视觉 | 写实人物海报 |
| 3 | Praline_2(默认) |
通用商业海报:产品 + 文字排版 | 标准商业海报 |
```bash # 确保 outputdir 存在(使用 Preflight 解析的 outputdir) mkdir -p {output_dir}
# 文生图 meitu text-to-image --prompt "{prompt}" --size 2k --ratio {ratio} --json --download-dir {outputdir} --skillname skill_meitu-poster ```
``bash # 确保 outputdir 存在(使用 Preflight 解析的 outputdir) mkdir -p {outputdir} # 带参考图(Mimicry / Washing+Vibe) meitu text-to-image --imagelist "{refurl}" --prompt "{prompt}" --size 2k --json --download-dir {outputdir} --skillname skillmeitu-poster ``
``bash # 确保 outputdir 存在(使用 Preflight 解析的 outputdir) mkdir -p {outputdir} # 带文字排版的海报 meitu image-poster-generate --prompt "{prompt}" --size 2K --ratio {ratio} --json --download-dir {outputdir} --skillname skillmeitu-poster ` > 注意: --download-dir 保存的文件名为 taskid(如 tmt1a3i...-1.jpg`),Deliver 步骤负责 rename。
--json 输出:成功(ok: true)→ 文件已下载到 {output_dir};失败(ok: false)→ 按降级策略重试| 级别 | 操作 | 具体做法 |
|---|---|---|
| L1 | 移除低优先级修饰词 | 从 prompt 中删除环境氛围词(如 "dreamy haze", "ethereal glow"),保留 [核心主体] + [风格关键词] + [构图] |
| L2 | 降级枚举参数 | text-to-image: --size 2k → 更小尺寸或默认值;image-poster-generate: --size 2K → --size 1K |
| L3 | 移除可选输入 | 移除 --image_list(如有),回退到纯文生图 |
| L4 | 最小化核心要素 | prompt 仅保留 [核心主体], [介质类型], professional photography |
| L5 | 停止报错 | 先输出 CLI 原始字段 code + hint;若原始错误经 meitu-tools 归类为 ORDERREQUIRED → 提示用户充值并提供 actionurl;若归类为 CREDENTIALS_MISSING → 提示先使用环境变量或预置 ~/.meitu/credentials.json,仅在用户明确要求写入本地凭证时再执行 meitu config set-ak + meitu config set-sk |
创意型 Skill 必须有独立的迭代精炼循环:
- 认可 → 进入 Deliver - 修改意见 → 步骤 3 - 拒绝重来 → 回到 Execute 的创意规划阶段
| 反馈类型 | 示例 | 调整方式 |
|---|---|---|
| Prompt 微调 | "颜色再暖一点"、"加点光影"、"氛围感不够" | 修改 prompt 中的色彩/光影/氛围描述词,保持其他不变,重新生成 |
| 参数调整 — 换比例 | "换成竖版"、"改成 16:9"、"换个比例" | 基于已生成的图片,使用 image-edit --model pralinepro --imagelist {已生成图片 URL} --prompt "将画面调整为 {ratio} 比例,保持整体风格和内容不变" --ratio {ratio} 做海报比例适配,而非重新生成。这里的 image-edit 仅用于 poster-specific refinement,不是通用图片编辑入口 |
| 元素增删 | "去掉背景的人"、"加个 logo"、"产品再大一点" | 修改 prompt 中的场景元素描述,或切换到 image-edit 进行局部编辑 |
| 风格偏移 | "太冷了,要活泼一点"、"再高级一些" | 回到 Creative Direction / Poster Analyse 调整风格锚定,重新构建 prompt |
| 布局重构 | "文字放上面"、"换个构图"、"左右分栏" | 重写 prompt 中的构图/布局描述,可能需要重新进入深度思考 |
| 方向否定 | "完全不是我要的"、"重新来" | 回到 Execute 起点,重新分析需求和风格方向 |
- 拆分需求("是否先确定风格方向,再处理排版?") - 回退锚点("要不要从参考图重新开始?") - 提供选择(同时给出 2-3 个方向的缩略方案,让用户选定再深入)
output_dir 已在 Preflight 解析,此处仅做重命名。
- 品牌 — logo 放置符合规则,色彩准确,调性一致 - 平台 — 验证 Context 阶段加载的平台规则(尺寸、安全区、合规) - 内容安全 — 人物多样性规则,无残缺身体,最多 3 人 - 可读性 — 正文对比度 ≥ 4.5:1,总色彩 ≤ 3(不含灰阶)
mv {file} {outputdir}/{date}{name}.{ext}{date}{effect-name}design.json + {date}{effect-name}design.mdcanrecord = false → 跳过。(canrecord = cwd 有 openclaw.yaml AND $VISUAL 存在,两者缺一即 false)一次性模式下反馈仅当前对话有效。
例外: 一次性模式下用户反复表达同一偏好(如多次说"不要渐变"),MAY 提议写入 $VISUAL/rules/quality.yaml。
项目模式下:
更新 DESIGN.md(每次执行后)— 追加 Context References、Project Decisions、Iteration Log(保持最近 5 条,超出则压缩)。详见 [references/memory-protocol.md](references/memory-protocol.md) § DESIGN.md Structure。
偏好记录(仅在用户反馈时):
read $VISUAL/memory/observations/observations.yaml → scan similar key → merge or append → write back. len(projects) >= 2 → propose promotion (non-blocking) 「非阻塞」在回复末尾提议晋升到 scenes/ 或 global.md,不打断主流程
openclaw.yaml → 问范围:仅项目 → ./DESIGN.md Constraints / 全局 → quality.yaml;无 openclaw.yaml → 仅当前任务详见 [references/memory-protocol.md](references/memory-protocol.md) § Observation Lifecycle + Recording Behavior。
outputdir(命名格式 {date}{effect-name}.{ext})