Overview
YesAlready has video or imageApply overall visual style transformation or creative effects (without modifying/replacing/removing specific content elements), covering 3 scenarios + 2 fallbacks:
- Preset style effects (video input): General default entry point, the Agent uses
promptto search the preset effect library for availableeffect_id。 - AI creative effects (image input only):
image_url+ withoutvideo_url, generate an AI creative video based on the image. - Long-video style transfer: overall style conversion such as anime/pixel/clay.
Not handled: video content replacement, video removal, video quality restoration, video canvas expansion, text-only video generation, video splicing.
API Mapping
| Scenario | API name | Required input |
|---|---|---|
| Preset style effects (video) | formula_group_v2v_creative |
video_url |
| AI creative effects (image) | formula_group_video_creative |
image_url(no video) |
| Long-video style transfer | aiflow_long_video_redrawn |
video_url |
| Fallback (v2v, video input) | video_molasses_edit |
video_url |
| Fallback (video effects, image input) | video_bonbon_img2vid_v30 |
image_url |
model mapping:auto(default, per routing rules) / molasses → video_molasses_edit / bonbon → video_bonbon_img2vid_v30。
Dependencies
- meitu-cli:
>=2.0.6 - Credentials:CONFIG AKSK →
meitu tools update; EXEC AKSK → run command - Environment variables:
MEITU_OPENAPI_TOOL_TASK_MODE=command
Path alias:
$VISUAL={OPENCLAW_HOME}/workspace/visual/
Core Workflow
Preflight → Execute → Deliver
Preflight
meitu --versionandmeitu auth verify --json- Detect
MEITU_OPENAPI_TOOL_TASK_MODE=command - output_dir: project →
./output/; one-off →$VISUAL/output/video-effect-apply/;mkdir -p
Execute
Trigger signals and routing
Core judgment dimensions:Input type (image vs video) + prompt signal words → effect dispatch。
Decision order:
-
Input type judgment (routing iron rule):
- Image-only input (no
video_url)→ force toformula_group_video_creative(fallback tovideo_bonbon_img2vid_v30) - Video input present → continue dispatching by prompt signal words
- Image-only input (no
-
Video input routing:
- The tool internally uses
promptto search the preset effect library- Available
effect_id→formula_group_v2v_creative - not found → proceed to signal word judgment
- Available
- Signal word judgment:
- Anime / pixel / clay / style transfer →
aiflow_long_video_redrawn - General / unclear → fallback
video_molasses_edit
- Anime / pixel / clay / style transfer →
- The tool internally uses
3 API routing quick reference
| API | Required input | Trigger keywords |
|---|---|---|
formula_group_v2v_creative |
video_url |
Add effects, preset style, creative玩法 |
formula_group_video_creative |
image_url no video(iron rule) |
AI creative video |
aiflow_long_video_redrawn |
video_url |
Style transfer, anime, pixel, clay |
Parameter definitions
| Parameter | Type | Required | Range | Default | Description |
|---|---|---|---|---|---|
video_url |
STRING | Conditionally required | — | — | v2v_creative / long_video_redrawn required |
image_url |
STRING | Conditionally required | — | — | video_creative required |
prompt |
STRING | Yes | — | — | The user's desired effect/style description, based on which the tool internally retrieves matches. effect_id |
model |
STRING | No | auto/molasses/bonbon |
auto |
Model selection |
Note:effect_id Not used as an external input parameter, automatically retrieved internally by the tool based on prompt .
Tool call
# 视频输入
meitu video-effect-apply --video_url {url} --prompt "{特效描述}" --json --download-dir {output_dir} --skill_name skill_video-effect-apply
# 图片输入(铁律)
meitu video-effect-apply --image_url {url} --prompt "{特效描述}" --json --download-dir {output_dir} --skill_name skill_video-effect-apply
# 显式指定 model
meitu video-effect-apply --video_url {url} --prompt "..." --model molasses --json --skill_name skill_video-effect-apply ...
Error fallback
| Scenario | Handling |
|---|---|
video_url and image_url are both missing |
Prompt "Please provide an image or video" |
| "AI creative video" is requested but no image is provided | Prompt "Please provide an image" |
| "Preset effect" is requested but no video is provided | Prompt "Please provide a video link" |
video_url / image_url is inaccessible |
Do not retry, prompt "Please provide a valid link" |
Video input retrieval effect_id no match |
Fallback video_molasses_edit |
Image input retrieval effect_id no match |
Fallback video_bonbon_img2vid_v30 |
formula_group_v2v_creative failed |
Retry once; if it still fails, use fallback video_molasses_edit |
formula_group_video_creative failed |
Retry once; if it still fails, use fallback video_bonbon_img2vid_v30 |
| "Style transfer" but the video is <3s | Call normally and inform that the short video effect may be unsatisfactory |
| Any API failure / timeout | Retry once; if it still fails, return an error |
| Content compliance interception | Return the compliance prompt directly, do not retry |
Deliver
mv {file} {output_dir}/{date}_{name}_effect-apply.mp4
Output
- Format:MP4
- Naming:
{YYYY-MM-DD}_{descriptive-name}_effect-apply.mp4 - Location: Project →
./output/; one-time →$VISUAL/output/video-effect-apply/
Baseline Task ID
t_mt1a3i5n7ba09180a6-3aef-4a4d-8acf-53b2fbb033f4