Agent Skillsarchitectds/modeldock › content-to-video

content-to-video

GitHub

将任意文本或内容自动转化为高质量MP4视频的全流程编排技能。涵盖内容分类、脚本生成、分镜设计、TTS配音、视觉渲染及FFmpeg组装,支持多格式与质量质检。

skills/content-to-video/SKILL.md architectds/modeldock

Trigger Scenarios

用户要求将文章、README或数据报告制作成视频 需要自动生成宣传、教程或故事类视频

Install

npx skills add architectds/modeldock --skill content-to-video -g -y
More Options

Use without installing

npx skills use architectds/modeldock@content-to-video

指定 Agent (Claude Code)

npx skills add architectds/modeldock --skill content-to-video -a claude-code -g -y

安装 repo 全部 skill

npx skills add architectds/modeldock --all -g -y

预览 repo 内 skill

npx skills add architectds/modeldock --list

SKILL.md

Frontmatter
{
    "name": "content-to-video",
    "description": "Turn arbitrary source content (README, article, story, slides, deck, data\/report, product description, tutorial text, audio\/transcript, or a bare topic) into a finished, high-quality MP4 video. Classifies the content type and user intent, picks the right pipeline, format preset (16:9 \/ 9:16 \/ 1:1), pacing, visual strategy, and TTS voice, then runs production end-to-end (message + storyboard with a per-shot tech-stack decision, narration with measured durations, HTML\/three.js or HyperFrames scenes, image-gen atmosphere and transparent sprites, asset strategy, ffmpeg assembly with subtitles, and single-frame vision QA with quality gates). Use when the user asks to \"make a video\", \"turn this into a video\", or \"produce a promo\/ explainer\/tutorial\/story\/social short\/data video\" from any content, or wants automatically-produced higher-quality video without specifying the full production plan. Supersedes the former promo-film skill; HyperFrames (HTML-to-MP4) is an optional second rendering backend."
}

Content to Video

Produce a finished, high-quality MP4 video from arbitrary source content. This skill is the router and orchestrator: classify -> plan -> produce -> QA. It bundles the full promo-film machinery (three.js/HTML scene contract, render commands, ffmpeg assembly, TTS, i18n) and adds per-content-type presets, adaptations (screen capture, data-viz, vertical format), an optional HyperFrames rendering backend, and stricter quality gates.

Pipeline

  1. CLASSIFY - Read references/classification.md. Run node scripts/classify.mjs <source> for a fast first pass. Confirm content_type, format, duration, pacing, and visual strategy (intent beats signals; follow confidence rules in classification.md).
  2. PLAN - Write the one-line message, audience, distribution, CTA. Design the storyboard with image-gen (planning reference only - panels are never final frames). Structure the film per the chosen pipeline in references/pipelines.md. For EVERY storyboard panel, decide and record the shot's tech stack - primary technique + layers - using references/tech-stack.md ("shot 3: three.js core + GSAP title + sprite embers"). A panel with no tech stack is a Q1 failure. Pass gate Q1.
  3. SCRIPT + NARRATION - Narration-first, one line per shot, into a narration JSON. Synthesize with TTS, measure real durations, write them back. PAD > FADE so speech is never cut (see references/pipeline.md).
  4. SCENES + ASSETS - Build scenes per the pipeline's visual strategy and the chosen rendering backend (below). Follow the identity rules in references/methodology.md: labeled real UI + 3D forms + text; image-gen only for atmosphere and planning panels.
  5. SOUND - After picture locks: pick BGM per sound-design.md (audition inside the cut, bed ~0.34), pin SFX with a declarative relative-frame table (genre vocabulary: whoosh/impact/riser/sparkle/transition; no game-pack timbres). If the user chose a strong-beat BGM, cut the timeline in beatF(n) per beat-sync.md and verify <= 3f error after render.
  6. RENDER + ASSEMBLE + QA - Preview 3 frames per scene, render clips, assemble with ffmpeg (Ken Burns, crossfades, audio mix with loudnorm, ASS subs) or render a HyperFrames composition, deliver BGM + no-BGM versions, then run Q2 per-shot vision checks and Q3 watch-through. Repeat per language from one parameterized builder.

Classification quick matrix

Source looks like Content type Pipeline Format
README / product / launch promo promo 16:9
article / "what is X" explainer explainer 16:9
how-to / steps / code tutorial tutorial 16:9
novel / script / dialogue story story 16:9
.pptx / .key / .pdf deck slides slides-to-video 16:9
report / metrics / charts data data-story 16:9 or 1:1
listicle / hacks / hashtags social social-vertical 9:16
audio / transcript podcast podcast-video 16:9

Full decision tree, presets, and overrides: references/classification.md. Per-pipeline structures and visual strategies: references/pipelines.md.

Choose a rendering backend

Two scene-authoring backends; pick per pipeline and content:

  • Bundled machinery (default): three.js/HTML scenes with a deterministic frame(t) contract + build_film.py assembly. Best for cinematic 3D, real-UI heroes, particles. Promo/explainer/story/tutorial/slides default here.
  • HyperFrames: HTML + GSAP timelines rendered by the hyperframes CLI. Best for kinetic motion graphics, vertical social, data charts, and caption/overlay-heavy pieces. See references/hyperframes.md (verified commands, composition contract, --variables/--batch for language variants). The official HyperFrames skills are installed locally (hyperframes, hyperframes-core, hyperframes-animation, hyperframes-cli, ...) - delegate composition authoring to them via references/hyperframes.md.

Both share the same upstream (classification, narration JSON with measured durations, Q1-Q3 gates) - only scene authoring and the render command change.

Bundled machinery (read these first)

  • references/methodology.md - the full method: decisions, failure modes, asset sourcing, checklists. Read it before starting any film.
  • references/pipeline.md - scene contract, render/build commands, timing math (FADE/PAD/TAIL), ffmpeg filtergraph, TTS, i18n.
  • references/tech-stack.md - per-shot tech-stack catalog and decision rule; read it at storyboard time, panel by panel.
  • references/sprites.md - image-gen sprite playbook (chroma-key, slicing, atlases, manifests, frame-sequence puppets); read before any sprite layer.
  • references/sound-design.md - BGM + SFX + mix: genre-based vocabulary, declarative relative-frame SFX table, volume math, two-version delivery. Read at sound stage; picture locks before sound.
  • references/beat-sync.md - when the user picks a strong-beat BGM: analyze the grid first (librosa), write the timeline in beatF(n), verify cut errors <= 3f on the rendered cut.

Scene contract: every scene is a standalone HTML page at 1920x1080 exposing window.__modeldock = { frame(t), duration, frameAsync?(t) } and __ready. Render environment: headless MS Edge via Playwright (SwiftShader flags), local static server with HTTP Range (206). Scripts (adapt config, do not edit the engine):

  • scripts/classify.mjs - classify source content -> production recommendation.
  • scripts/build_film.py - ffmpeg assembly (Ken Burns, xfade, audio mix, ASS subs, --lang).
  • scripts/render-clip.mjs - render an animated scene to an mp4 clip at 25 fps.
  • scripts/preview-scenes.mjs - sample 0.3/0.55/0.8 frames per scene, capture page/console errors, write 3-up strips.
  • scripts/qa-frames.mjs - extract per-shot and mid-fade frames for QA.
  • scripts/static-server-range.mjs - minimal static server with Range support.

Non-negotiable rules

  • Narration drives the timeline; measure real TTS durations, never guess.
  • PAD > FADE (e.g. 1.5s vs 1.0s) so speech finishes before the next shot.
  • Never let image-gen carry product identity: no "device" heroes. Identity = labeled real UI + clear 3D forms + text sprites. image-gen is for atmosphere backgrounds, concept stills, validated hub layouts, and transparent-background decorative sprites (smoke, embers, glow orbs, sparkles, dust, generic non-brand icons). Sprites are powerful in animation, but they never carry identity.
  • Plan-stage image-gen designs the OUTLINE and STORYBOARD (one panel per planned shot, plus 2-3 style anchors when shots share a look). Panels are planning references, never final frames.
  • Composite image layers with heavy blur + radial feather mask; never hard crop edges (they read as panels/windows).
  • Vision-QA one image per call, never contact strips (cross-frame misreads).
  • Real UI footage: object-fit contain so controls are never cropped.
  • Keep the builder parameterized by language (--lang).
  • Windows: never pass non-ASCII text through a PowerShell pipe; read UTF-8 files from disk or write with Node fs utf8 + unicode escapes.
  • A static server used for video scenes must support HTTP Range (206).
  • Add a data: favicon link to every scene so console-error checks stay clean.

Quality gates (the "better" in better video)

Three gates; do not proceed past a failing gate. QA on single frames only.

  • Q1 - Plan: one-line message is a sentence, audience + distribution stated, CTA defined, every claim has a visible proof point, storyboard reviewed, voice sample signed off.
  • Q2 - Production (per shot, single frames): labeled identity, no modem/router reading, text readable and in safe margins, no hard edges / double exposure, clean transition midpoints, footage shows all key controls.
  • Q3 - Final (watch with audio): no cut speech, audio clean, subtitles fit and match, correct aspect/fps/duration, h264 yuv420p +faststart.

Full checklists and failure handling: references/quality.md.

Language variants

One builder, per-language narration JSON and audio, shared language-neutral scenes, translated text stills and subs. With HyperFrames, per-language text can live in --variables/--batch instead of duplicated compositions. Never pass non-ASCII text through a PowerShell pipe.

QA loop

  1. Q1 before production; fix the flow while a panel costs one generation.
  2. Preview every scene: zero page/console errors (HyperFrames: check + --strict render).
  3. Q2 per shot on single frames; check transition midpoints.
  4. Q3 watch-through with audio; only then deliver.

Version History

  • 54f30cb Current 2026-08-12 08:59

Metadata

Files
0
Version
3e1309a
Hash
438fa8a0
Indexed
2026-08-12 08:59

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-12 23:06
浙ICP备14020137号-1 $お客様$