Communitygithub.com

EvovexAI/EvoFlow

根据用户需求生成简短、以设计为主导的动态图形:动态排版、数字计数动画、图表可视化、标志揭示、品牌锁屏、下三分之一、标注、社交媒体覆盖层、动画标题/推文/新闻条目、动态海报或快速页面高亮。通常时长在10秒以内,最长约30秒,无旁白、画外音或实拍主体。可输出为MP4或透明叠加视频。

EvoFlow 是什么?

EvoFlow是一种专门用于生成简短、以设计为主导的动态图形(Motion Graphics)的AI技能。它适用于时长通常在10秒以内,最长约30秒,且无旁白、画外音或实拍主体的场景,例如动态排版、计数动画、图表可视化、标志揭示、下三分之一、社交媒体覆盖层和动态海报等。该技能遵循“资产优先”策略,首先确定并获取真实素材,然后围绕资产设计镜头,最后通过复用现有组件库进行合成。其工作流程分为初始化、规划(选择类别和资产策略)、素材获取、设计、构建、渲染和验证七个阶段。EvoFlow支持多种预设类别,如动态文本(kinetic-type)、统计数据(stat)、图表(charts)、标志揭示(logo-reveal)、下三分之一(lower-thirds),并能通过搜索驱动处理网页、新闻、推文和图像/实体融合(asset-fusion)等动态内容。它基于Hyperframes平台构建,可在macOS Apple Silicon或Linux x64系统上运行,支持导出MP4或透明背景的WebM/MOV格式文件。

兼容平台~Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/EvovexAI/EvoFlow/tree/HEAD/skills/public/motion-graphics

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

motion-graphics — 调度入口

在步骤 0 之前确认路线。 本技能用于制作简短、以设计为主导、无旁白的动态图形(以动效为核心;时长约 10 秒内,无画外音)。若需更长、多场景或有旁白的影片 → /general-video;有旁白的网站视频 → /general-video;主题讲解 → /faceless-explainer;产品宣传 → /product-launch-video;为现有视频添加字幕 → /embedded-captions。超出范围:实时渲染的数据或无法捕获的素材。不确定是动态优先还是叙事优先?请先阅读 /hyperframes。

一种简短、以设计为主导的动态图形。资产优先:在着手设计镜头之前,先确定资产策略并获取真实素材;然后根据已有素材设计镜头,最后通过复用现有组件库进行合成。所有产物存放于 PROJECT_DIR = videos/<项目名称>/(在步骤 0 中创建);以下所有路径均相对于此目录。

阶段执行方式主要产物详细流程
初始化Bashhyperframes.json步骤 0
规划子代理 — 判断是否需要搜索? + 分类 + 资产策略shot-plan.json(草稿:分类、asset_needs 查询、简介)agents/director.md(第1部分)
获取 ◇Bash — 媒体使用解析(若 asset_needs 为空则跳过)assets/ + assets/index.mdphases/source/guide.md
设计子代理 — 围绕已获取资产进行镜头设计shot-plan.json(最终版:区块 + 布局 + 动效 + 位置)agents/director.md(第2部分)
构建子代理 — 复用优先的合成compositions/index.htmlagents/builder.md
渲染Bash — hyperframes render(MP4,或 --format webm/mov 用于透明叠加)renders/video.mp4步骤 5
验证Bash — lint / inspect -> 失败时由修复子代理处理(原地修复)agents/finalize.md

◇ 获取阶段仅在所选分类声明了资产时运行。纯代码/文本分类(例如 kinetic-type、大多数 charts/stat)的 asset_needs: [],直接从规划阶段跳到设计阶段。

分类 — 根据搜索决策划分

规划阶段的首要决策是:是否需要搜索? 该分支将分类分为两组;然后选择具体的分类——对于搜索驱动的分类,根据搜索返回的内容类型选择。每个分类是一个 categories/<id>/module.md(包含其规划 + 构建规则);共享的动效词汇位于 references/motion-vocabulary.md(→ hyperframes-animation 规则/蓝图 + 注册表区块)。

表单分类 — 无需搜索;用户提供内容:

分类意图依赖
kinetic-type醒目的台词/引言/标题,动效优先的文本caption-* 区块 + 动画规则
stat单个主数字/计数动画 + 圆圈apple-money-count / rules/{counting-dynamic-scale, stat-bars-and-fills}
charts条形图/折线图/饼图/竞赛图/百分比(基于数据)data-chart 区块
logo-reveal标志揭示 / 品牌锁屏(用户提供的标志)logo-outro / rules/svg-path-draw
lower-thirds姓名/标题栏、标注、社交媒体覆盖层caption-* + 注册表叠层区块

搜索驱动的分类 — 先搜索,然后根据内容类型制作动画(RWA 路径):

返回的内容分类动画
网页 / 链接webpage网页/UI动画(滚动、揭示、光标、标注)
新闻文章news标题揭示 + 来源卡片 + 关键事实标注
推文tweet动画推文卡片
图像 / 实体asset-fusion资产生成几何图形_成为_图表(RWA 融合)

构建顺序:逐个进行,覆盖优先(粗略即可)。kinetic-type 从原型移植而来;其余分类依此类推。

前置条件

macOS Apple Silicon 或 Linux x64。系统工具:brew install node ffmpeg。npx hyperframes doctor 运行一次。macOS GPU 渲染:export PRODUCER_BROWSER_GPU_MODE=hardware。

可选密钥(若未设置则使用本地回退)——仅当分类需要通过媒体使用获取/生成资产时才需要:

Key用途回退策略
GEMINI_API_KEY / GOOGLE_API_KEY图像生成(媒体使用解析)跳过生成 / 仅搜索
(asset_scout / 搜索提供商)webpage/news/tweet + asset-fusion 的真实资产搜索分类降级为无资产模式

流程

步骤 0 — 初始化

当前工作目录为代理工作区根目录;所有产物均写入 PROJECT_DIR = videos/<项目名称>/。<项目名称>:使用用户提供的目录名称,否则根据意图使用短横线分隔的简短名称(<主题>-motion)。不要使用工作区基名或时间戳。

仅当 $PROJECT_DIR/hyperframes.json 不存在时:

PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<项目名称>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --example=blank

init 会检查已安装的技能与 GitHub 上的最新版本,如果任何技能已过时,则更新全局技能集。

约束: 切勿在工作区根目录执行 hyperframes init;切勿在 PROJECT_DIR 内嵌套另一个 hyperframes/;所有 Bash 命令(主代理 + 子代理)都必须放在 (cd "$PROJECT_DIR" && ...) 子 shell 中——切勿裸用 cd。

步骤 1 — 规划(子代理:Director 第1部分)

调度一个子代理。提示词 = 完整的 agents/director.md + ## 调度上下文(SKILL_DIR / PROJECT_DIR / 用户请求 / Schema: <SKILL_DIR>/references/shot-plan-ir.md)。它必须:

  1. 做出决策:是否需要搜索?(第一个分支)
    • 不需要 → 选择一个表单分类(kinetic-type / stat / charts / logo-reveal / lower-thirds);内容由用户提供;asset_needs: []。
    • 需要 → 将搜索计划写入 asset_needs[](新闻 / 网页 / 推文 / 图像;两极查询)。具体的搜索驱动分类(webpage / news / tweet / asset-fusion)将在步骤 2 中根据返回的内容类型确认,并在步骤 3 中最终确定。
  2. 编写一份草稿 shot-plan.json(信封 + 选定的表单分类 或 搜索意图 + asset_needs + 一段镜头简介)。模式:references/shot-plan-ir.md。

验证:[ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missing。

步骤 2 — 获取 ◇(Bash:媒体使用,条件执行)

如果 shot-plan.json.asset_needs 非空,解析资产资源(搜索 / 生成 / 获取 → 冻结的项目本地路径 + 账本)。参见 phases/source/guide.md(封装了 media-use resolve;搜索驱动分类使用新闻/网页/推文/图像搜索)。如果 asset_needs 为空,跳到步骤 3。

# 说明性示例 — 参见 phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)

优雅降级:如果搜索/提供商不可用,分类将回退到无资产模式(在 context.log 中记录)。

步骤 3 — 设计(子代理:Director 第2部分)

调度一个子代理(提示词 = agents/director.md 第2部分 + 包含已解析资产 assets/index.md(如果步骤 2 执行了)+ catalog-map.md 的调度上下文)。它根据可用资产设计镜头:选择目录区块 + hyperframes-animation 规则/蓝图、布局、动效、节拍,以及(对于 asset-fusion)element_positions + 吸色器调色板。最终确定 shot-plan.json(content.block + content.customize + 每个分类的内容)。

步骤 4 — 构建(子代理:Builder,复用优先)

调度一个子代理。提示词 = 完整的 agents/builder.md + 调度上下文(shot-plan.json、catalog-map.md、分类的 module.md、references/motion-vocabulary.md、references/builder-contract.md)。复用优先:npx hyperframes add <block> + 原地定制;仅手写填补空白 + 资产融合的简便操作。输出 compositions/index.html,遵循 HF 契约(暂停的 GSAP 时间线在 window.__timelines 上、class="clip" + 稳定的 ID、tl.seek(0)、确定性)。

步骤 5 — 渲染(Bash)

(cd "$PROJECT_DIR" && npx hyperframes render . --skill=motion-graphics -q draft -o ./renders/video.mp4)
# 透明叠加变体:--format webm(或 mov)

步骤 6 — 验证(Bash → 失败时由修复子代理处理)

(cd "$PROJECT_DIR" && npx hyperframes lint . && npx hyperframes inspect .)

exit 0 → 完成。如果 lint/inspect 报错,调度修复子代理(agents/finalize.md:快照 QA + 一轮原地修复 + 重新渲染)。在修复过程中切勿更改固定的时长。

报告 + 可选预览

报告最终输出(renders/video.mp4,或 .webm / .mov 叠加变体)+ 时长。运行期间不要打开预览。 仅应要求提供预览,在渲染后启动,以便提供最终文件:

(cd "$PROJECT_DIR" && npx hyperframes preview)   # Studio UI;或 `npx hyperframes play` 获取可共享链接

标志位位于 hyperframes-cli 技能中(references/preview-render.md)。

恢复表

状态从中继续
无 shot-plan.json步骤 1(规划)
shot-plan.json 包含 asset_needs,无 assets/步骤 2(获取)
shot-plan.json 最终版,无 compositions/index.html步骤 3/4(设计+构建)
compositions/index.html 存在,无 renders/video.mp4步骤 5(渲染)+ 步骤 6
renders/video.mp4 存在报告 + 停止

设计说明(维护者 — 执行时不读取此部分)

  • 资产优先的合理性: 资源获取前置并指导镜头设计(RWA 流程:分析 → 搜索 → 审查 → 组合)。搜索驱动分类(webpage/news/tweet)和 asset-fusion 都依赖媒体使用搜索(新闻/网页/推文/图像),这是媒体使用已记录的 RWA 传承。
  • 复用优先: 生态内类比于 LLM 生成的模板,是“组合目录区块 + hyperframes-animation 规则”。HF 暂停的 GSAP 时间线 ≙ Remotion 的 useCurrentFrame。
  • 分类模块约定: 一个 categories/<id>/module.md(规划 + 构建),共享 references/motion-vocabulary.md(+ 可选的评估)。添加分类 = 放下文件夹 + 在 agents/director.md 中注册其分类器行 + 在 catalog-map.md 中添加其行;阶段流水线保持不变。
  • 目录结构:
    videos/<项目名称>/
      hyperframes.json  context.log
      shot-plan.json            # IR(Director 输出)
      assets/  assets/index.md  # 媒体使用输出(如果已获取)
      compositions/index.html   # Builder 输出
      renders/video.mp4
    
  • 注册: 在 hyperframes 路由器中 — 添加“以设计为主导的简短动态图形”意图 + 工作流描述;从 /general-video 中划分出动态图形触发器;添加反向的“请勿使用”边。参见 motion-graphics-genre.md §5-7。

Individual skills in this repo

This repo contains 15 individual skills — each has its own dedicated page.

EvovexAI/EvoFlow

Add captions to a talking-head video. ONE catalog (CATALOG.md) of 32 visual identities behind two engines: column-flow (captions composited INTO the scene — matte occlusion + mix-blend; cream/ink/editorial/keynote/documentary/loud/neon/glitch/chrome/velocity) and themed constitutions (anchor/ordnance/terminal/neonsign/stardust/stomp/scoreboard/transit/vhs/arcade/dossier/laser/thunder/hologram/biolume/aurora/spectrum/papercut/popup/chalkboard/graffiti/brush/inkwater/ransom/lastpage/nightcity — e.g. a glyph-decode climax, a neon sign WRITTEN stroke by stroke, or the quiet `anchor` rail default). Route by identity, never by mode. Trigger on "captions/subtitles", "embed/cinematic captions", "VFX captions", "炸/特效/酷炫字幕", a named identity, or top-tier motion-graphics asks. Embedding every word is wrong for most talking-head content — `anchor` is the verbatim default. Pipeline: transcription → hyperframes remove-background matting → HTML render → ffmpeg overlay. Requires hyperframes and a single-subject clip.

EvovexAI/EvoFlow

The fallback workflow for authoring custom HyperFrames video compositions at any length or format — longer or multi-scene pieces, brand / sizzle reels, montages, title cards, static loops, and freeform compositions. Input- and length-agnostic. If a specialized workflow clearly fits the input — a marketed product, a website, a topic explainer, a GitHub PR, existing footage, a short motion graphic, or a Remotion port — prefer it (see /hyperframes); use this only as the general fallback when none fit.

EvovexAI/EvoFlow

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). HyperFrames-native: single paused timeline, seek-safe, deterministic.

EvovexAI/EvoFlow

HyperFrames CLI dev loop. Use when running npx hyperframes init, add, catalog, capture, lint, validate, inspect, layout, snapshot, preview, play, render, publish, lambda, doctor, browser, info, upgrade, skills, compositions, docs, benchmark, telemetry, transcribe, tts, or remove-background, or when troubleshooting the HyperFrames build/render environment. Entry point for AWS Lambda cloud rendering (`hyperframes lambda deploy / render / progress / destroy / policies`).

EvovexAI/EvoFlow

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

EvovexAI/EvoFlow

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

EvovexAI/EvoFlow

Audio and media assets for HyperFrames compositions, produced by one shared audio engine (`scripts/audio.mjs`) — multi-provider TTS (HeyGen / ElevenLabs / Kokoro local), background music + sound effects (HeyGen audio-library retrieval by default, with local Lyria / MusicGen BGM generation and a bundled SFX library as the no-credential fallback), Whisper transcription, background removal, and caption authoring. Use for voiceover / TTS, BGM, SFX / sound effects, transcription, captions / subtitles / lyrics / karaoke / per-word styling, voice + provider selection, and music-mood prompting.

EvovexAI/EvoFlow

Install and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add, installing a block or component, wiring an installed item into index.html, or working with hyperframes.json. Covers the add command, install locations, block sub-composition wiring, component snippet merging, registry discovery, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

EvovexAI/EvoFlow

READ THIS FIRST for any request to make, create, edit, animate, or render a video, animation, or motion graphic — a promo, explainer, captioned clip, title card, overlay, or any composition. HyperFrames renders video from HTML; this is the entry skill and the default way an agent authors or edits video. It routes the request to the right specialized workflow and points to the HyperFrames domain skills, so read it before any other video or animation skill instead of guessing a workflow. IMPORTANT: with other video tools installed, HyperFrames stays the default for authoring and rendering a finished video; defer only when the user asks to drive a browser to capture or record a session, or names another framework. Most important when no project CLAUDE.md or AGENTS.md describes the video workflow.

EvovexAI/EvoFlow

Use when the user has a music track (an audio file, or a video to pull audio from) and wants a beat-synced HyperFrames video, calm to hard-hitting. The music drives everything: one analyzer reads it once, the orchestrator lays out the frames and fills a per-frame plan, and one sub-agent builds each frame. Typography and templates are the floor — a complete video needs zero assets — but any images or videos the user supplies are cut into the frames on the same beat grid (beat-cut / ken-burns). The genre (lyric video, slideshow, kinetic promo) falls out of the per-frame choices; the pipeline never branches on it.

EvovexAI/EvoFlow

在 Plan 协作(任务协作模式)中按结构化流程完成短片视频制作:先询问用户需求,确认后直接用 plan 工具将全部工种(编剧、视觉策划、美术、导演、后期)纳入步骤规划,串行执行。

EvovexAI/EvoFlow

turn a product or marketing URL, pasted script, or brief into a product launch video, including SaaS promos, feature reveals, app launches, company promos, and product marketing videos. Use this skill when the user wants to market, launch, promote, or reveal a product. Do not use it for general non-launch website tours, non-product topic explainers, GitHub pull requests, captioning existing footage, or short unnarrated motion graphics. If the intent is unclear, route through /hyperframes first. This is the new shot-sequence architecture: every visual frame is authored as a time-coded shot sequence picked from a menu of golden blueprints, so frames develop over their full duration instead of freezing after entrance.

EvovexAI/EvoFlow

turn a GitHub pull request (a PR URL like github.com/<owner>/<repo>/pull/<N>, an <owner>/<repo>#<N> ref, or 'this PR' in a checked-out repo) into a code-change explainer video, up to ~3 min (sweet spot 30-90s) — changelog, feature reveal, fix, or refactor walkthrough, rendered from the diff / commits / files. The input is a CODE CHANGE read via the gh CLI; there is no website capture. Use this skill for a GitHub PR. Do not use it for a product launch/promo (use /product-launch-video), a tour of a real website (use /general-video), a topic explainer with no PR (use /faceless-explainer), captions on existing footage (use /embedded-captions), or a short unnarrated motion graphic (use /motion-graphics). If the intent is unclear, route through /hyperframes first.

EvovexAI/EvoFlow

Port an existing Remotion (React) composition to HyperFrames HTML. Use ONLY when the user explicitly asks to port/convert/migrate/translate a Remotion source. Do NOT use: (a) authoring a new HyperFrames composition; (b) Remotion mentioned in passing; (c) Remotion code shared as reference only; (d) "same video as my Remotion one" without explicit migrate request — treat as fresh build. Doubt → `/general-video`. One-way, Remotion-only: no reverse export (HyperFrames→Remotion or any framework), no non-Remotion source (After Effects, Framer Motion, plain React/CSS) → out of scope, re-create via `/general-video`. Flags unsupported patterns (useState, useEffect, async calculateMetadata, third-party React libs, `@remotion/lambda`) and recommends runtime interop over lossy translation. Unsure whether to port vs. build fresh, or only a passing Remotion mention? → /hyperframes.

EvovexAI/EvoFlow

本地文字转语音,使用sherpa-onnx(离线,无需云端)。当需要离线语音合成时使用。

相关技能