mcpField
M
meitu-image-fix

meitu-image-fix

github.com/meituクリエイティブ・メディア36122 回インストール9 週間前に更新
リポジトリ

meitu-image-fix について

meitu-image-fix は、画像とユーザーの指示から問題を診断し、meitu-cli のツールを選んで連続実行するスキルです。画質・内容・人物写真の修復に適しています。

主な機能

  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-image-fix

インストール後、Claude Code で/meitu-image-fixを入力して読み込まれたか確認します。

詳細

Meitu Image Fix

概要

問題のある画像を受け取り、画質・人物・コンテンツの3種類の問題を自動診断し、最適な修復パイプラインを計画して、meitu-cli ツールチェーンを順に呼び出して修復します。中核となる価値は診断+連携です。ユーザーはどのツールを使うべきか知る必要はなく、「修正して」と伝えるだけで済みます。

依存関係

  • meitu-cli (>=2.0.6): npm install -g meitu-cli@latest
  • 認証情報: env MEITU_OPENAPI_ACCESS_KEY / MEITU_OPENAPI_SECRET_KEY を優先するか、~/.meitu/credentials.json を事前に用意します。ローカルの認証情報への書き込みをユーザーが明示的に要求した場合に限り、meitu config set-ak / meitu config set-sk を実行します。

パスのエイリアス: 以下では、$VISUAL = {OPENCLAW_HOME}/workspace/visual/ です。

コアワークフロー

Preflight → [Context: 跳过] → Execute (诊断 → 规划 → 逐步执行) → Deliver
              ↑ 工具型 skill,无创意上下文需求,始终跳过 Context
事前確認
  1. meitu --version → インストールされていない場合は npm install -g meitu-cli@latest を案内します
  2. meitu auth verify --json → 認証情報が無効な場合は、設定方法を案内します
  3. モードを検出します:cwd に openclaw.yaml がある → プロジェクトモード、ない → 単発モード can_record = cwd に openclaw.yaml があり、かつ $VISUAL が存在する(どちらか一方でも欠けていれば false)
  4. output_dir を解決します:openclaw.yaml がある → ./output/ | それ以外 → $VISUAL/output/meitu-image-fix/ mkdir -p {output_dir}
コンテキスト

ツール型スキルであり、創作コンテキストは不要なため、常に Context をスキップして Execute に進みます。

実行

診断:画像を見る+ユーザーの話を聞く

次の2つの情報源から問題を判断します。

視覚分析(Read ツールで画像を読み取り、マルチモーダル認識で問題を特定します):

観察された現象ラベル
解像度が低い/明らかにぼやけている/圧縮によるギザギザが目立つ/ノイズが多いquality:blur
透かしが見える/半透明の文字が重なっているcontent:watermark
画面内に、被写体以外の通行人や雑物があるcontent:unwanted-object
文字に誤字があるcontent:text-error
背景に問題がある(雑然としている/破損している/撮影時の意図しないものが写り込んでいる)content:bg-flaw
顔が見え、肌のきめが粗い/くすんでいる/ニキビ跡が目立つportrait:skin
顔が見え、顔立ちを調整できるportrait:feature

ユーザーの意図の解析(ユーザーの発言をラベルに直接対応付けます):

ユーザーの表現ラベル
「鮮明に」「超高画質」「高画質」「ぼやけている」「画質が悪い」「古い写真」quality:blur
「透かしを消して」「透かし」content:watermark
「通行人を消して」「雑物を取り除いて」「XXを消して」content:unwanted-object
「文字を変更して」「誤字を直して」「XをYに変更して」content:text-error
「背景をきれいに修正して」「背景が雑然としている」content:bg-flaw
「肌をなめらかに」「美顔」「ニキビを消して」「明るくして」「肌」portrait:skin
「整った印象に」「顔立ちを調整して」portrait:feature
「背景を消して」「切り抜いて」「透明な背景」cutout
「修正して」「処理して」(曖昧な指示)視覚分析のみに依存

2つの情報源を統合し、最終的な問題リストを作成します。

修復パイプラインの計画

実行順序(厳守——順序を誤ると効果に重大な影響があります):

Phase 1: image-superres-enhance 先提升画质,后续操作在清晰图上效果更好
Phase 2: image-edit / cutout    内容修复在高清底图上精度更高
Phase 3: image-edit(gummy_pro)  人像精修放最后,避免被前面步骤的重编码破坏

パイプラインのルーティング表:

問題ラベルPhaseツールコマンド
quality:blur1image-superres-enhancemeitu image-superres-enhance
content:watermark2image-editmeitu image-edit --model praline_pro
content:unwanted-object2image-editmeitu image-edit --model praline_pro
content:text-error2image-editmeitu image-edit --model praline_pro
content:bg-flaw2image-editmeitu image-edit --model praline_pro
cutout2image-cutoutmeitu image-cutout
portrait:skin3portrait-retouchmeitu image-edit --model gummy_pro
portrait:feature3portrait-retouchmeitu image-edit --model gummy_pro

Phase 2 で複数の edit 操作がある場合は、1つずつ順番に実行します(各操作では直前の手順の出力 URL を使用します)。 cutout と他の Phase 2 操作を併用する場合は、先に edit を行い、その後 cutout を実行します(背景の除去はコンテンツを修復した後に行います)。

パイプラインをユーザーに確認する(複数ステップの修復時):

診断結果と計画した手順を列挙し、確認を得てから実行します:

診断結果:画像がぼやけている+透かしがある+顔の肌のきめが粗い 修復計画:① 超高画質化 → ② 透かしの除去 → ③ 自然な美顔処理 開始してよいですか?

ユーザーが単一の問題だけを挙げており、診断に曖昧さがない場合 → 確認をスキップして、そのまま実行します。

手順ごとの実行

連鎖呼び出しの仕組み: 各ステップに --json を追加し、返された JSON の media_urls[0] を解析して、次のステップの --image_list 入力として使用します。最後のステップにのみ --download-dir {output_dir} を追加してローカルに保存します。--download-dir を追加すると、JSON 出力に downloaded_files 配列が追加されます。downloaded_files[0].saved_path からダウンロードしたファイルの完全なパスを取得し、Deliver フェーズで rename します。

URL の受け渡しに失敗した場合のフォールバック:次のステップで media_urls[0] を --image_list 入力として使用できず(UPLOAD_ERROR)、失敗した場合は、まずシステムの一時ディレクトリにダウンロードしてからローカルパスで再試行します:

curl -sL -o /tmp/meitu-fix-step{N}.{ext} {url}
meitu <command> --image_list /tmp/meitu-fix-step{N}.{ext} ...

中間ファイルは必ず /tmp/ またはシステムの一時ディレクトリに保存し、スキルフォルダーやソースファイルのあるディレクトリへの保存は禁止です。パイプライン完了後にクリーンアップします:rm -f /tmp/meitu-fix-step*.{ext}。


Phase 1: 超高画質化 — image-superres-enhance

画像の被写体に基づいて --prompt の内容説明を作成します:

主体の種類--prompt判断基準
人物が中心portrait photo顔が視覚的な焦点になっている
商品/物品e-commerce product image製品、食べ物、実物のクローズアップ
グラフィック/スクリーンショットtext document or UI screenshotUI スクリーンショット、文字画像、イラスト、アイコン
判断できないgeneral image判断できない場合のデフォルトの説明
meitu image-superres-enhance --image_url {input} --prompt "{content_description}" --json --skill_name skill_meitu-image-fix

解析:ok: true → media_urls[0] を次のステップに渡します。 ok: false → エラーを記録し、元画像を使って後続の手順を続行します(アップスケールの失敗でパイプラインを停止しません)。


Phase 2: コンテンツの修復 — image-edit / image-cutout

コンテンツの問題ごとに edit 指示を1つ作成し、1つずつ順番に実行します:

問題--prompt の例注意事項
透かし"去除图片中的水印"透かしの面積が大きい場合は、2回の処理が必要になることがあります
通行人/雑物"消除画面中的路人" / "去掉右下角的杂物"位置を具体的に説明すると、より効果的です
文字の誤り"将文字'XXX'改为'YYY'"変更前と変更後のテキストを指定します
背景の問題"修复背景中的破损区域"対象範囲を具体的に説明します
meitu image-edit --image_list {prev_url} --prompt "{instruction}" --model praline_pro --json --skill_name skill_meitu-image-fix

每步取 media_urls[0] 传给下一步。

如果问题是去背景(cutout):

meitu image-cutout --image_url {prev_url} --json --skill_name skill_meitu-image-fix

仅人物、宠物、商品、图标、印章可执行该步骤;明确知道主体模型时可追加 --model_type 0、--model_type 1 或 --model_type 2,否则省略并自动选型。


Phase 3: 人像精修 — image-edit(gummy_pro)

meitu image-edit --image_list {prev_url} --prompt "{portrait_retouch_prompt}" --model gummy_pro --json --skill_name skill_meitu-image-fix
用户诉求portrait_retouch_prompt
自然修饰 / 轻微瑕疵 / 日常照natural portrait retouch, improve skin texture and facial details, keep facial structure unchanged
明确要求强效 / 瑕疵严重 / 商业用途strong but realistic portrait retouch, smoother skin and cleaner facial details, keep facial structure unchanged
未明确说明默认使用自然修饰 prompt

约束:portrait retouch 仅适用于真实单人肖像。以下情况跳过此步骤并告知用户:

  • 多人图片
  • 非真实人像(卡通、插画、简笔画、AI 绘图风格)
  • 人脸过小或不清晰

服务端拒绝时直接跳过即可。

同时有 portrait:skin 和 portrait:feature → 一次 image-edit --model gummy_pro 即可覆盖(不需要调两次)。


最后一步下载: 管线最后一个命令加 --download-dir {output_dir},直接保存结果文件到本地。

错误处理

每步独立处理,单步失败不阻塞管线:

L1: 简化 prompt — 移除修饰语,保留核心指令(edit 步骤适用)
L2: 省略可选参数 — 如裁剪掉非必要修饰,让服务端按默认路由处理
L3: 跳过当前步骤 — 用上一步结果继续后续管线
L4: 连续 2 步失败 → 停止管线,将最后一个成功步骤的结果下载到 {output_dir} 交付,并说明哪些步骤未完成
L5: 首步即失败 → 检查凭证/余额,报错含 code + hint

特殊错误码:

  • ORDER_REQUIRED → 提示用户充值,提供 action_url
  • CREDENTIALS_MISSING → 提示配置 AK/SK
Deliver

output_dir 已在 Preflight 预解析,Execute 最后一步的 --download-dir 已直接写入该目录,Deliver 仅做 rename。

mv {output_dir}/{task_id_file} {output_dir}/{date}_{effect}.{ext}

Record(项目模式 MUST / 一次性模式跳过)

can_record = cwd 有 openclaw.yaml AND $VISUAL 存在(两者缺一即 false)→ false 时跳过。一次性模式下反馈仅当前对话有效。

User approved style → read $VISUAL/memory/observations/observations.yaml → scan similar key → merge or append → write back. len(projects) >= 2 → propose promotion (non-blocking) → 非阻塞提议晋升(在回复末尾提及:"你在 N 个项目中都偏好 X,要保存吗?")→ confirmed → write target + delete observation

User rejected ("不要 XX") → has openclaw.yaml → ask scope → project: DESIGN.md Constraints / universal: quality.yaml(需用户确认) no openclaw.yaml → current task only

No feedback → skip entirely(不读 observations.yaml,zero overhead)。

Output

  • 格式:与输入一致(jpg→jpg, png→png),cutout 输出 png(含透明通道)
  • 命名:{date}_{修复摘要}.{ext}
    • 单一修复:2026-03-23_upscale.jpg
    • 串联修复:2026-03-23_upscale+remove-watermark+beauty.jpg
  • 位置:由 Deliver 步骤决定

Boundaries

本 skill 只做修复——让一张已有的图变得更好。不做创作类任务:

不做转交
风格转绘(变漫画/油画/3D)image-style-transfer(或经 meitu-tools 直调)
换背景/换场景(创意替换)image-background-replace 或 meitu-visual-me 的背景替换工作流
海报排版/加文字布局meitu-poster
AI 写真/人像生成image-portrait-generate 或 meitu-visual-me

边界判断:用户意图是"修好这张图的问题" → 本 skill。用户意图是"把这张图变成另一种东西" → 告知用户并建议对应 skill。

コメント