mcpField
M
meitu-visual-me

meitu-visual-me

github.com/meitu创意与媒体36111 次安装9 周前更新
代码仓库

关于 meitu-visual-me

meitu-visual-me 是一款基于记忆的 AI 视觉助手,可结合用户资料和日常记忆生成个性化图像与视频,并支持多种场景工作流。适合希望将个人偏好融入视觉创作的用户;首次使用会说明本地资料读取及发送至 Meitu OpenAPI 的内容。

主要功能

  1. 01结合资料与记忆生成视觉内容
  2. 02支持多种场景工作流
  3. 03提供风格化图像与视频创作
  4. 04根据反馈学习用户偏好
  5. 05可选读取本地视觉资料

适用场景

  1. 01根据个人状态生成场景图像
  2. 02为自拍更换背景或生成头像系列
  3. 03将服装参考图用于虚拟试穿
  4. 04把静态图像转换为短视频

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/meitu/meitu-skills --skill meitu-visual-me

安装后在 Claude Code 中输入/meitu-visual-me确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
channel-presets.md
feedback-loop.md
first-time-guide.md
memory-protocol.md
models.md
setup.md
style-library.md
troubleshooting.md
workflows.md

详细介绍

Meitu Visual Me

始终使用用户的语言回复。

数据免责声明:

  • 本地读取: Meitu Visual Me 可能会读取 MEMORY.md、USER.md 和 ./visual/PROFILE.md 等本地文件,以生成个性化内容。这些文件仍保存在本地,但其中的摘录、摘要或衍生信息可能会被纳入生成的提示词。
  • 上传至 meitu API: 您提供的图片(照片、参考图片)、生成的提示词,以及这些提示词中包含的任何本地个人资料、记忆或项目详情,都会发送至 Meitu OpenAPI 进行处理,且受 Meitu 隐私政策约束。
  • 首次使用授权: 首次使用时,此 Skill 会说明上述数据使用情况,包括本地个人资料、记忆或项目上下文可能被纳入提示词。您可以选择不提供照片,或不使用记忆/个人资料上下文。

概述

由记忆驱动的 AI 视觉助手。读取用户个人资料和日常记忆,生成个性化图片和视频。支持 17 种场景工作流和 28 种热门风格。先体验,再反馈,系统会自动学习您的偏好。

仅在用户明确要求使用这类个性化视觉工作流时执行;不要把泛化的“任何视觉内容创作需求”都路由到本 Skill。首次使用或涉及 profile/memory 内容时,应先说明哪些本地资料会被读取,以及哪些摘要可能进入发往 Meitu OpenAPI 的 prompt。

您说功能
“帮我画”根据您当前的状态自动选择场景并生成内容
发送一张自拍 + “换个赛博背景”更换背景,即时生成结果
“头像系列”根据一张脸生成多种风格的头像
“帮我做张 ID 卡”可选 4 种潮流风格,制作专属收藏卡
“微缩场景”将您当前的状态变成玩具微缩世界
“一键换风格”一张图片,多种风格变体
“今日卡”结合城市 + 天气 + 心情,生成每日信息卡
“帮我试穿这件”发送服装图片进行虚拟试穿
“把这张图动起来”将图片变成短视频
“合个影”与您和 OpenClaw 一起合影

依赖项

  • 工具:meitu-cli (npm install -g meitu-cli@latest)
  • 凭据:优先使用环境变量或预先配置的 ~/.meitu/credentials.json;如果操作者明确需要持久化本地设置,请运行 meitu config set-ak --value <AK> + meitu config set-sk --value <SK>
  • 用户知识(可选):./visual/(如果不存在,则跳过知识读取,直到用户选择开始使用本地视觉工作区;之后参考照片和个人资料/记忆文件将存储在 ./visual/ 下)
  • 项目文件:./(cwd,包含 openclaw.yaml、DESIGN.md 等)
  • 平台上下文(可选):USER.md、MEMORY.md、memory/今日.md、SOUL.md、IDENTITY.md(由平台注入;如果不存在则跳过)
  • 用户配置(可选):$VISUAL/config/defaults.yaml

路径别名: 下文中的 $VISUAL = {OPENCLAW_HOME}/workspace/visual/。当 ./visual/ 存在时,它指向该目录;在 OpenClaw 平台上会自动解析为 ~/.openclaw/workspace/visual/。

平台设置

OpenClaw: 用户数据位于 ~/.openclaw/workspace/visual/。平台会自动注入这些数据;运行时,./visual/ 会解析为该路径。

Claude Code / 其他 Agent: 用户数据位于当前工作目录下的 ./visual/。只有当用户继续使用基于个人资料的个性化功能,或需要长期本地记忆时,才创建或更新此本地工作区;否则跳过知识写入。

工作流中的所有 ./visual/ 路径,都会在运行时由各平台解析为对应的实际路径。

预检

每次生成前都必须通过;如果未通过,停止生成:

  1. meitu --version — 如果尚未安装,提示:npm install -g meitu-cli@latest

  2. 验证凭据:meitu auth verify --json — 如果凭据无效,将返回身份验证错误。有关凭据设置,请阅读 references/setup.md

  3. 检查 ./visual/ 目录是否存在(如果不存在,先提示首次使用的用户;不要阻止操作)

  4. 用户是否发送了图片或视频?— 不支持视频;提示用户发送截图

  5. 一次性工作区解析(结果会在整个工作流中保留): 检测模式:cwd 下有 openclaw.yaml → 项目模式;否则 → 单次模式 检查 ./visual/ 目录 → 确定 capabilities

  6. **最小化规则:**仅读取或持久化当前请求所需的个人资料、记忆或项目字段。除非用户明确希望获得此类个性化行为,否则不要创建或更新包含姓名、性别或身份详情的长期记忆/个人资料记录。

    解析后可用的变量(在后续步骤中直接引用):

    mode             = "project" (cwd has openclaw.yaml) | "one-off"
    visual           = ./visual/ path (value if exists, otherwise null)
    can_read_knowledge = visual exists
    can_record       = mode == "project" AND visual exists
    output_dir       = Resolve output_dir: openclaw.yaml → "./output/" | else → "$VISUAL/output/meitu-visual-me/"
    

    mkdir -p {output_dir} 硬性限制:output_dir 不得指向技能文件夹内


核心工作流

Preflight → [Context] → Execute → [Refine] → Deliver → [Record]
              ↑ creative tasks run this       ↑ creative     ↑ project mode
              ↑ tool tasks skip               ↑ tool skip    ↑ one-off skip
上下文
第 1 部分:路由

先路由,后阅读——先匹配工作流,再决定要阅读哪些内容以及如何继续。

第一步:匹配工作流

将用户输入与下方“工作流”部分中的触发词进行比对,匹配特定工作流。阅读 references/workflows.md 了解场景详情。

如果没有匹配项,则分为以下三种情况:

  • 描述明确(例如,“帮我画一只猫在月球上”)——无需匹配工作流;按照提示词构建规则确定风格,然后直接使用 text-to-image 生成
  • 只发送图片,没有文字——根据图片内容推荐 4 个合适的选项(例如,更换背景、风格混搭、制作身份证、图生视频),让用户选择
  • 指示模糊(例如,“帮我画”“帮我生张图”)——推荐场景:
    1. 检查 ./visual/memory/global.md 中的偏好场景——如果找到,优先推荐这些场景
    2. 没有记忆——根据一天中的时段和上下文,从 17 个工作流中选出 4 个,让用户选择

第二步:确定阅读级别和风格处理方式

工作流类型阅读级别风格处理方式包含的工作流
场景生成标准阅读遵循风格规则(如果有记忆则使用;否则提供 4 个选项)persona-diorama、daily-card、morning-grid、ootd、data-diorama、emotion-grid、relationship-board、memory-collage、real-toon
引导式生成标准阅读工作流包含内置的风格选择步骤(例如,从 4 种身份证风格中选择 1 种)id-card、style-remix、avatar-series
更换背景轻量阅读无需选择风格(场景由用户描述)swap-bg
工具操作不阅读不涉及风格,直接执行beauty、virtual-tryon
视频轻量阅读不涉及风格to-video、motion-transfer

对于图像生成,请阅读 references/style-library.md,了解风格关键词和自动匹配规则。

第三步:确定 CLI 命令

每个工作流对应的 CLI 命令都列在“工作流”部分的表格中。有关命令参数的详细信息,请阅读 references/models.md。image-edit 需要选择子模型:praline_pro(通用编辑)/gummy_pro(人像/宠物摄影、发型调整);风格化默认使用 image-style-transfer,只有明确要求高质量编辑时才应使用 image-edit --model nougat。

路由决策输出(从上下文传递至执行):

{
  "workflow": "persona-diorama",
  "command": "text-to-image",
  "read_level": "standard",
  "has_reference_image": true,
  "style": "微缩世界",
  "style_resolved": true
}
第 2 部分:加载上下文

读取级别由上方的路由表决定。零读取和轻量读取工作流无需执行此步骤。

标准读取清单(优先级从高到低):

  1. ./DESIGN.md — 项目上下文(如果存在,优先读取;仅补充其中未涵盖的内容)
  2. ./openclaw.yaml — 解析短名称引用(例如,brand: "acme" → ./visual/assets/brands/acme/)
  3. ./visual/rules/quality.yaml — 禁止使用的风格
  4. ./visual/PROFILE.md — 视觉形象
  5. ./visual/memory/global.md(前 30 行)— 偏好
  6. 平台上下文(有则读取,无则跳过):USER.md、MEMORY.md、memory/今日.md、SOUL.md、Weather API

利用找到的任何信息;绝不捏造用户经历。

第 3 部分:构建提示词

公式:[构图/镜头角度] + [主体] + [动作/表情] + [场景/背景] + [风格参考] + [光线] + [用户专属细节]

硬性规则:

  1. 纯叙述风格;禁止堆砌关键词

    • ❌ woman, dress, red background, fashion, 8K, masterpiece
    • ✅ A young woman in a tailored brown dress, posing with confidence against a cherry red backdrop, fashion editorial feel with warm film grain
  2. 提供参考图时,必须在提示词中明确说明其用途(保留面部相似度/参考构图/参考风格);不能只附上图片而不作说明

  3. 将风格关键词融入叙述——挑选 1-2 个并自然地融入句子;禁止在末尾堆砌

  4. 有用户上下文时,优先融入个人细节;没有时,直接根据用户描述生成,不要因此中断。

  5. 每张生成的图片都必须有明确的风格方向。 风格确定优先级:

    • 用户本次指定了风格 → 直接采用
    • 用户未指定,但 ./visual/memory/global.md 记录了偏好的风格 → 直接采用记忆中的风格,不要再次询问
    • 用户未指定,且没有记忆 → 根据当天状态和场景,从 references/style-library.md 的风格匹配指南中挑选 4 种合适的风格,让用户在生成前选择

    绝不生成没有风格方向的“通用”图片。如果用户持续选择同一种风格,就在 Record 阶段通过观察流程记住它,并在下次直接采用。

示例 1(persona-diorama — 根据 memory/今日.md,用户今天完成了一项重要交付):

木桌上摆着一间等距视角的微缩工作室。一个小人被[从记忆中提取的物品]环绕。桌角的礼花炮正喷射出彩纸。温暖的午后阳光透过窗户洒入,整个场景像一间精心制作的玩具店微缩模型。

示例 2(swap-bg — 用户发送了一张自拍,并说“换成东京街头”):

保持人物完全不变,只将背景换成充满活力的东京街景,有霓虹招牌、繁忙的斑马线,以及沿街两侧店面散发的温暖灯光;营造夜晚氛围,并带有柔和的城市灯光

示例 3(ID card — 使用参考图,用户选择了 Cyber Neon 风格):

面部相似度是首要任务。保留准确的面部结构。一位留着黑色短发、戴黑框眼镜、穿着宽松连帽衫的年轻男子。轻度采用 3D 收藏手办渲染风格——保持接近真实的比例。生成一张 Cyber Neon 风格的竖版 ID CARD:拉丝碳纤维底板、霓虹青色与洋红色发光边框、等宽终端字体。信息区:“小明”/“独立开发者”/“杭州”——EST. 2000。侧边条:“卫衣收集者”。略微倾斜,呈现影棚布光的产品照片质感。

执行

CLI 命令决策表:

任务类型命令关键参数备注
文生图meitu text-to-image--prompt --size --ratio无参考图
使用参考图生成meitu text-to-image--image_list --prompt --size风格化/合照
替换背景/编辑内容meitu image-edit--image_list --prompt --model参见模型选择表
换脸meitu image-face-swap--head_image_url --sence_image_url --prompt头像系列
美颜增强meitu image-edit --model gummy_pro--image_list --prompt --model gummy_pro单人肖像精修
图生视频meitu image-to-video--image_list --prompt --video_duration异步任务
动作迁移meitu video-motion-transfer--image_list --reference_video_list --prompt异步任务
虚拟试穿meitu image-outfit-swap--image_url --prompt [--clothes_image_url]

image-edit 模型选择:

优先级模型适用场景输出风格
1text-to-image --image_list风格化:卡通、3D 手办、动漫、素描、艺术再创作艺术风格(非写实人脸)
2gummy_pro肖像/宠物摄影、调整发型写实肖像
3praline_pro (default)其他所有场景:文本修改、替换背景、调色、添加/移除元素、多图融合通用编辑

快速规则:“变画风”(风格变化,输出看起来不像真人)→ text-to-image --image_list;“拍写真/换发型”(肖像照)→ gummy_pro;“改内容”(修改内容)→ praline_pro

参考图路由:

意图模式参考图处理方式命令
风格化(照片 → 手办/动漫等)通过 --image_list 传入,提示词描述目标风格text-to-image --image_list
替换背景通过 --image_list 传入,提示词明确说明“保持人物不变”image-edit --model praline_pro
合照(多张参考图)通过 --image_list 传入多张图片,提示词描述合照场景text-to-image --image_list img1 img2
仅分析参考图(不传给工具)将构图/风格信息提取到提示词中text-to-image(纯文生图)
换脸分别通过 --head_image_url 和 --sence_image_url 传入image-face-swap

输出目录: 使用 Preflight 中解析出的 output_dir。确保目录存在(mkdir -p)。在所有 meitu 命令中添加 --json --download-dir {output_dir}。

结果字段引用:

  • 使用 --download-dir → 使用 downloaded_files[0].saved_path 获取本地路径(也可使用 media_urls,但本地路径更可靠)
  • 不使用 --download-dir → 使用 media_urls[0] 获取结果 URL
  • 错误响应 → 首先读取 CLI 原始字段 code、hint、error_name 和 action_url;向用户说明失败情况时,根据 meitu-tools 合约将其映射为 Agent 增强字段 error_type、user_hint、next_action 和 action_link

图像输入: 通过 URL 或本地路径传入用户提供的图像。需要参考图时,检查 ./visual/assets/references/user.jpg。

命令示例:

# Text-to-image
meitu text-to-image --prompt "..." --size 2K --ratio 1:1 --json --download-dir {output_dir} --skill_name skill_meitu-visual-me
# Image editing
meitu image-edit --image_list <url> --prompt "..." --model praline_pro --json --download-dir {output_dir} --skill_name skill_meitu-visual-me
# Image-to-video (async)
meitu image-to-video --image_list <url> --prompt "..." --video_duration 5 --json --skill_name skill_meitu-visual-me

错误降级(按顺序尝试各级):

级别操作示例
L1移除低优先级修饰内容删除光照/材质描述,保留主体 + 场景 + 风格
L2降级枚举参数--size 4K → --size 2K(text-to-image);--size 2K → --size 1K(image-poster-generate);--ratio 9:16 → --ratio 1:1
L3移除可选输入移除参考图,改用纯文生图
L4精简至核心元素仅保留主体 + 风格,移除其他所有内容
L5停止并报告错误告知用户具体错误,建议检查凭据或联系支持团队
连续失败 2 次后升级一级。其他错误请参阅 references/troubleshooting.md。
优化(创意任务必须执行,工具任务跳过)

工具任务(beauty、virtual-tryon、image-superres-enhance)→ 跳过此步骤,直接进入交付。

创意任务的迭代优化循环:

  1. 展示结果 — 展示生成的图像,并简要说明设计思路(为何选择这种风格、构图和配色)
  2. 等待反馈 — 有三种可能的方向:
    • 用户认可(“好” / “不错”)→ 进入交付
    • 用户要求修改(“背景换一下” / “颜色太亮”)→ 第 3 步
    • 用户完全否定(“完全不对” / “重新来”)→ 返回执行并重新生成
  3. 调整并重新生成 — 根据反馈修改提示词或参数 → 重新运行 CLI 命令 → 返回第 1 步
  4. 迭代上限 — 建议最多进行 3 轮。超过 3 轮后,主动建议调整需求方向、拆分子任务或尝试不同的工作流

注意: 不要连续生成多张图像而不展示结果。每次生成后都要等待用户反馈。

交付

文件已位于正确目录中(执行阶段使用预检的 output_dir);只需重命名:

文件重命名: mv {downloaded} {output_dir}/{YYYY-MM-DD}_{description}.{ext}

路径显示规则: 向用户展示文件路径时,优先使用 ~/.openclaw/... 格式。某些聊天平台(例如,企业微信 MEDIA)只能识别以 ~/ 为前缀的路径;绝对路径会导致图像/文件无法显示。内部处理可以使用绝对路径。

企业微信交付: 对于企业微信渠道(channel=openclaw-weixin),使用 MEDIA:visual/output/meitu-visual-me/{filename}.jpg(相对路径)。

交付后: 交付后,等待用户反馈再进行下一次生成。如果用户提供风格/偏好反馈,则进入记录步骤。当用户说“适配各平台”时,读取 references/channel-presets.md。

DESIGN.md 维护: 如果 DESIGN.md 的 Iteration Log 条目超过 5 条,则进行精简:保留最近的 5 条,并将较早的条目归档到 ./drafts/design-history.md。

记录

can_record = false → 跳过整个部分。 在一次性模式下,所有反馈仅对当前对话有效。

默认零写入 — 生成后不写入任何内容;仅在用户主动提供反馈时才写入:

用户说操作
“好” / “喜欢这个风格”将观察结果追加到 ./visual/memory/observations/observations.yaml(自动写入,无需用户确认)。如果该观察结果的 projects >= 2,在回复末尾非阻塞地提及:“顺便说一下,你在 N 个项目中都偏好 X。要将它保存为通用偏好吗?”用户确认 → 写入 memory/global.md 或 memory/scenes/{scene}.md,删除该观察结果;用户忽略 → 不做任何操作
“不要 XX 风格”有 openclaw.yaml → 询问:“只在这个项目中跳过 XX,还是今后所有项目都不使用 XX?”仅限当前项目 → 追加到 ./DESIGN.md 的 Constraints;今后所有项目 → 追加到 ./visual/rules/quality.yaml(需要用户确认)。没有 openclaw.yaml → 仅适用于当前任务,不写入
“我是男的”(身份事实)写入 ./visual/PROFILE.md
发送新的参考照片保存为 ./visual/assets/references/user.jpg
“换个背景重生”重新运行当前任务,不写入

如果用户没有说任何内容,不写入任何内容,也不读取 observations.yaml(零开销)。

一次性模式例外: 当用户在一次性模式下反复表达相同偏好时(例如,多次说“不要渐变”),Agent 可以主动提议:

“你已经几次提到不要渐变了。要将它添加到全局禁用列表吗?” → 用户同意 → 写入 $VISUAL/rules/quality.yaml(需要确认) → 用户不同意 → 仅对当前对话有效

正向反馈记录路径:

  1. 读取 $VISUAL/memory/observations/observations.yaml(如果不存在则创建)
  2. 扫描语义相似的键 → 合并或创建新键
  3. 写回文件
  4. 如果 len(projects) >= 2 → 提议提升为长期偏好(非阻塞)

提升提议模板:

“你在 N 个项目中都偏好 X。要保存它吗? → 保存到 {scope_hint} 场景 [默认] → 保存到全局偏好 → 不保存”

如果 scope_hint 不为 null → 默认保存到 scenes/{scope_hint}.md;如果为 null → 默认保存到 global.md。 用户确认 → 写入目标文件 + 删除观察条目。用户忽略 → 不做任何操作。

处理反馈时,读取 references/feedback-loop.md 了解写入格式详情;读取 references/memory-protocol.md 了解观察结果的生命周期和分类


首次使用指南

如果 ./visual/ 目录不存在,表示这是新用户。读取 references/first-time-guide.md 执行入门流程。


工作流(17)

所有工作流的详情,请读取 references/workflows.md

生成
触发词工作流命令
微缩场景、个人场景persona-dioramatext-to-image
今日卡、城市打卡daily-cardtext-to-image
早安、晨间四宫格morning-gridtext-to-image
OOTD、今天穿什么ootdtext-to-image
数据场景、今日数据data-dioramatext-to-image
九宫格、情绪九宫格emotion-gridtext-to-image
关系板、关系拼贴relationship-boardtext-to-image
记忆拼贴memory-collagetext-to-image
合影、合个影real-toontext-to-image
ID 卡、收藏卡id-cardtext-to-image
一键换风格、换风格、风格万花筒style-remixtext-to-image --image_list(风格化) / image-edit --model praline_pro(保留结构编辑)
编辑
触发词工作流命令
换背景(替换背景)、改背景(更改背景)swap-bgimage-edit --model praline_pro
头像系列、换头像(更换头像)avatar-seriestext-to-image → image-face-swap
美颜、磨皮(平滑肌肤)beautyimage-edit --model gummy_pro
视频与试穿
触发词工作流命令
动起来(让画面动起来)、图生视频(图片转视频)to-videoimage-to-video
做这个动作motion-transfervideo-motion-transfer
试穿、试衣(试穿衣服)virtual-tryonimage-outfit-swap

参考资料

文件阅读时机
references/workflows.md执行特定场景工作流时
references/models.md需要详细命令参数时
references/style-library.md生成图像时(用户指定风格或需要自动匹配时)
references/channel-presets.md需要适配多个平台时
references/feedback-loop.md处理用户反馈写入格式时
references/memory-protocol.md处理观察生命周期和偏好分类时
references/troubleshooting.md遇到错误时
references/setup.md首次配置时
references/first-time-guide.md./visual/ 不存在时(新用户引导)

评论

支持 Markdown