meitu-image-fix について
meitu-image-fix は、画像とユーザーの指示から問題を診断し、meitu-cli のツールを選んで連続実行するスキルです。画質・内容・人物写真の修復に適しています。
主な機能
- 01画質・内容・人物写真の問題を診断
- 02問題に応じて修復手順を計画
- 03高画質化・編集・切り抜きを連携
- 04肌や顔立ちをレタッチ
- 05失敗した工程を飛ばして続行
活用シーン
- 01ぼやけた画像や低解像度画像を改善
- 02透かし・通行人・背景の傷を除去
- 03画像内の文字を修正、または背景を除去
- 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
事前確認
meitu --version→ インストールされていない場合はnpm install -g meitu-cli@latestを案内しますmeitu auth verify --json→ 認証情報が無効な場合は、設定方法を案内します- モードを検出します:cwd に
openclaw.yamlがある → プロジェクトモード、ない → 単発モード can_record = cwd に openclaw.yaml があり、かつ $VISUAL が存在する(どちらか一方でも欠けていれば false) - 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:blur | 1 | image-superres-enhance | meitu image-superres-enhance |
content:watermark | 2 | image-edit | meitu image-edit --model praline_pro |
content:unwanted-object | 2 | image-edit | meitu image-edit --model praline_pro |
content:text-error | 2 | image-edit | meitu image-edit --model praline_pro |
content:bg-flaw | 2 | image-edit | meitu image-edit --model praline_pro |
cutout | 2 | image-cutout | meitu image-cutout |
portrait:skin | 3 | portrait-retouch | meitu image-edit --model gummy_pro |
portrait:feature | 3 | portrait-retouch | meitu 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 screenshot | UI スクリーンショット、文字画像、イラスト、アイコン |
| 判断できない | 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_urlCREDENTIALS_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。