Documentation menu

Cookbook — Qwen-MM-Plugins Video Edit

qwen-mm-plugins-video-edit pairs a video-editing skill with DashScope and MiniMax generation tools — image, TTS, digital human, and text/image→video. The model can generate missing assets (title cards, voiceover, B-roll, transition stills) and stitch them together with the user's real footage into a finished edit: vlogs, montages, intros, recaps, style replications, subtitled and voiced-over cuts.

Perception (actually watching the footage) comes from the sibling core capability — install both for the full loop: watch → plan → generate → assemble → review.


Generation tools

ToolModelUse it forModes / notes
qwen_imageQwen-ImageImages: generate, edit, translate text in imagetext_to_image · image_edit (1-3 input images) · image_translate (layout-preserving). Sync.
qwen_ttsQwen3-TTS-FlashVoiceover / narration10 languages, 44 system voices (Cherry, Serena, Ethan, …). ~512 tokens per call — split long scripts at sentence boundaries.
minimax_ttsMiniMax Speech 2.8 HDVoiceover / narrationMP3 URL by default; optional voice controls, audio formats, local saving, and subtitles. Requires MINIMAX_API_KEY.
wan_s2vWan2.2-S2VDigital-human lip-sync video from one portrait + audiodetect (always run first — checks the portrait) then generate. Audio ≤ 20 s; real humans and cartoon characters.
wan_t2vWan 2.7Text→video, or animate from a first (and last) frametext_to_video · first_frame · first_last_frame. 2-15 s, up to 1080p. Sync — blocks until ready.
happyhorseHappyHorse 1.0Video generation with reference fusion, and text-driven video editingtext_to_video · image_to_video · reference_to_video (fuse 1-9 reference images, cited as [Image 1]…) · video_edit (edit an existing ≤15 s clip by instruction). Async, 1-5 min typical.

Generated asset URLs expire in 24 h — pass output_dir to download immediately. Where a tool exposes seed, fix it while iterating prompts.

MiniMax voiceover

minimax_tts(
    text="Welcome to the video.",
    voice="English_expressive_narrator",
    language_type="English",
    output_dir="./assets",
    subtitle_enable=True,
)

Returns an audio URL, the saved MP3 path, and a subtitle URL. Omit output_dir for URLs only. model defaults to speech-2.8-hd, and region to global; set region="cn" for a China-region account. Region selects the API endpoint, independently of the spoken language.

Advanced settings are optional; partial objects keep the remaining defaults. For example, voice_setting={"speed": 1.2} adjusts speech speed, and audio_setting={"format": "wav"} selects WAV.

pronunciation_dict and voice_modify enable pronunciation overrides and effects; both are off by default. Use output_format="hex" to save decoded audio to output_dir or a temporary directory. Only non-streaming responses are supported (stream=False). See MiniMax's API reference for the available settings.

The editing skill

The skill is an editing director, not a command runner: it watches the source material first, writes a taste contract and a per-scene plan into a project log, generates assets sample-first (one sample must pass before any batch), assembles scene by scene, and refuses to deliver until an evidence-based review gate passes. Key behaviors:

  • Footage in → this skill. Any deliverable built from real footage the user supplies is owned here; pure motion-graphics from a brief route to the HyperFrames pipeline directly.
  • Two engines. Mechanical work (trim, mux, technical fixes) runs on FFmpeg; designed deliverables (titles, transitions, overlays, beat-synced cuts) are handed to the HyperFrames pipeline for assembly and rendering.
  • Built-in style library. Named looks (paper-collage, freeze-punch, film-reel, neon-ui-tech, …), bundled fonts / SFX / BGM, and end-to-end workflows for multi-source vlogs and style replication.
  • Verified delivery. Loudness, black-frame, and scene gates are shell scripts, not vibes — outputs land under <videos_dir>/edit/ as versioned files (final.mp4, final_v2.mp4, …).

Install

claude plugin marketplace add https://github.com/QwenLM/Qwen-MM-Plugins.git
claude plugin install qwen-mm-plugins-video-edit@qwen-mm-plugins

# recommended alongside — perception for watching the footage
claude plugin install qwen-mm-plugins-core@qwen-mm-plugins

Or use the guided installer (bash install.sh install), or launch the MCP server straight from a source checkout:

uv run --extra video-edit qwen-mm-plugins-video-edit

Prerequisites

The generation tools call remote APIs — uvx installs their Python deps. Set DASHSCOPE_API_KEY for DashScope tools or MINIMAX_API_KEY for MiniMax. The editing side runs locally:

# ffmpeg + ffprobe — every local edit (cuts, frame ops, loudness / black-frame gates)
apt install ffmpeg                      # macOS: brew install ffmpeg

# Python previews (timeline / contact sheet); librosa+scipy only for music-beat-sync
pip3 install pillow numpy
pip3 install librosa scipy              # optional — beat-sync work only

# Node.js ≥ 22 + npm/npx — designed deliverables (HyperFrames handoff)
# Linux (apt ships an old Node — use NodeSource):
curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && apt install -y nodejs
# macOS: brew install node@22
# or portable, via nvm:
#   curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash && nvm install 22
node -v                                 # verify: must be >= 22
npx -y hyperframes doctor               # fetches + verifies the hyperframes CLI

# HyperFrames agent skills — the video-edit handoff routes designed deliverables into these
# (hyperframes, hyperframes-core, hyperframes-creative, hyperframes-registry, hyperframes-cli, media-use);
# installs into Claude Code & other AI tools
npx -y hyperframes skills               # install; `npx -y hyperframes skills check` verifies latest

# Headless Chrome for HyperFrames check/render (or set PUPPETEER_EXECUTABLE_PATH)
npx hyperframes browser ensure
# minimal Linux only — Chrome OS libs + CJK font:
apt install libnss3 libatk-bridge2.0-0 libgbm1 libasound2 libxkbcommon0 libgtk-3-0 fonts-noto-cjk

# GSAP, vendored per project — seek-safe motion in the render
npm install gsap && mkdir -p assets && cp node_modules/gsap/dist/gsap.min.js assets/gsap.min.js

One command checks all of it, reporting OK / MISSING / WARN per item with install hints. Run it from the skill directory — the installed plugin's skill folder, or src/capabilities/video-edit/skill/ in a source checkout:

bash scripts/check_env.sh

📖 Full dependency table, install commands, and intranet-CA notes: the skill's SKILL.md § Environment & dependencies. General setup: installation.md.

Environment variables

VariableDescription
DASHSCOPE_API_KEYRequired for qwen_image, qwen_tts, wan_s2v, wan_t2v, and happyhorse.
MINIMAX_API_KEYRequired for minimax_tts only.
DASHSCOPE_BASE_URLOptional — override the DashScope base URL (proxies/gateways).

Set these via env vars, ~/.qwen-mm-plugins/config, or the guided installer bash install.sh (bash install.sh verify checks what's set).


Cases

Each recording shows the full loop: the prompt goes in, the agent works (watch → plan → generate → assemble → review), and the final cut is played back at the end.

Case 1 — family vlog from raw father-and-son clips

Raw home footage in a directory → a warm, playful family vlog with chapter titles, stickers, cute subtitles, split screens, photo-collage moments, and soft transitions.

请将当前目录中的家庭父子互动素材剪成一支温暖、活泼、可爱且富有设计感的家庭 Vlog,围绕父子陪伴与欢乐互动组织叙事,精选自然真实的表情和动作,运用轻快剪辑、趣味分屏、照片拼贴、手绘贴纸、可爱字幕与柔和转场丰富画面层次,搭配明亮温暖的调色和轻松音乐,最终呈现真实、有爱又充满童趣的家庭时光。

Case 2 — install the plugins, then cut a tech-style city promo

One session, two prompts: the agent first installs core + video-edit from the repo URL, then turns city-night / traffic-timelapse footage into a fast-paced, futuristic promo with split screens, multi-cam grids, picture-in-picture, and animated data overlays.

帮忙安装一下这个 https://github.com/QwenLM/Qwen-MM-Plugins/ 里面的 core 和 video-edit 吧

请将当前目录中的城市夜景和车流延时素材剪成一支节奏快速、科技感与未来感强烈的城市宣传片,通过分屏、动态拼贴、画中画、多镜头网格及丰富的科技动效提升视觉层次,最终呈现高速运转、充满活力的未来都市。