Communitygithub.com

taste-application

根据提取的风格包生成新视频并剪辑成成品片段——从参考素材中规划。

taste-application 是什么?

taste-application是视觉风格管道的后半段。它使用taste-distillation从参考素材中提取的风格包,生成新视频并剪辑成最终作品。该工具支持多个平台,包括fal、Blender和DaVinci Resolve,并提供完整的执行和交付合约。核心原则是模型负责内容、运动、构图和光照结构,而风格包负责色彩和节奏,因此生成提示中不应包含任何色彩语言。为了经济高效地匹配参考节奏,建议生成较长的take(约5秒)再从中剪辑,而不是为每个镜头单独生成。系统还包含详细的剪辑规则(如必须重新编码、不能流复制)、调色规则(如直接测量优于套用LUT、锚定色调避免直方图不匹配),以及针对fal平台行为恢复后的观察总结(如不能3D渲染、合成功能不支持叠加等)——所有这些在设计生成图时都必须提前检查。

兼容平台~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/taste-application

在你喜欢的 AI 中提问

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

文档

Taste Application

管道的后半部分。taste-distillation 将参考素材测量并提炼成风格包;此部分则根据该风格包生成内容并剪辑结果。

执行与交付合约

原始实现位于 scripts/ 目录下,无需单独的 ito-video 检出。本地处理请安装 scripts/requirements.txt。仅限供应商执行时安装 scripts/requirements-live.txt。直播上传、提交和下载需要显式设置 TASTE_FORGE_ALLOW_LIVE=1 以及凭据;仅在对用户授权的运行中设置。--dry-run 无需凭据,并生成带标签的占位符。超时不明确的供应商请求不会作为新的付费任务重试。在决定是否再次提交前,请先检查供应商请求。

使用已有的已完成的片段,无需调用任何供应商:

python scripts/pipeline.py --genre example --root stylepacks \
  --takes media/take-a.mp4 media/take-b.mp4 --duration 12 --fps 30 \
  --out out/review-v1.mp4

--duration 是一个尽力而为的节奏目标,而非精确的运行时长。完整的镜头序列可能产生较短或较长的剪辑;装配器不会重复片段或添加填充来满足目标。输出清单保留实际的 duration,并添加 duration_contract,包含请求和实际的秒数、不足、超出以及 cadence_target 策略。相差至少一个输出帧时会显式警告。不提供精确时长模式;当需要精确运行时长时,请检查收据并在交付前修改或拒绝该剪辑。

管道会保留每次运行的已评分镜头文件,因为可编辑的 FCPXML 和 EDL 会引用它们。管道会拒绝输出冲突并报告时间线导出失败。已完成的渲染并不等于已保存的编辑项目或创意批准。在直播编辑前后,请保留源资产和版本化的项目检查点;将保存的路径和摘要与内存中的时间线收据分开记录。

可克隆的 Fal 图及其离线输入编译器在 workflows/README.md 中有文档说明。在提交前编译简要说明和风格方向;不要假设一个断开连接的模式字段会影响模型提示。在进行付费运行前,请对照实际供应商验证当前端点字段。

对于 Blender,请使用完整纹理的源 GLB;重拓扑是单独命名的衍生品,绝不能替换该源。blender_prop.py 支持显式的 --width 1920 --height 1080 --fps 30 --receipt receipt.json,并保留包导出的边缘光和材质纹理。保存场景与渲染场景不同;请检查收据的状态和打包的图像。

对于 Resolve 叠加,使用 taste.resolve.apply_placements,并注入来自显式选择、带版本的目标的对象。将 source_end_mode 设置为在该主机上验证的约定。不要假设 Resolve 版本之间包含源端的特性。适配器在保留轨道之上分配重叠效果,并在每次放置后立即检查,在所有追加完成后再次检查。复合整数必须与安装的 API 匹配;对于已验证的 Studio 21 主机,Screen 是 5,而非历史构建器错误使用的 22。收据仅证明内存中的放置。保存项目,验证其检查点,然后检查精确渲染的输出,再报告交付。

何时激活

  • "以此风格制作视频" / "应用风格包" / "补充此素材"
  • 将生成的片段组装成具有真正编辑节奏的作品
  • 根据外观创建 3D 道具并将其放回视频中
  • 验证完成的成品是否确实与参考素材匹配

分工

模型提供内容、运动、构图和光照结构。风格包提供色彩和节奏。 这是经过测量的,而非风格偏好——参见 taste-distillation 了解具体数据。实际后果:

  • 生成提示包含零色彩语言。添加 "色彩:无。渲染中性。调色在之后应用。"
  • 保持两个独立的标志:--brief(发生了什么:主体、动作、地点)和 --style-steer(看起来如何)。合并它们会将风格词泄露到场景中("青色" 变成青色物体),并将主体词泄露到调色中。
  • 模型对局部的、可检查的规则的反应远优于全局规则。"背景纯黑且无光;主体朝向白色曝光过度" 有效;"极端对比度" 无效。

生成 TAKE,而非镜头

"匹配节奏" 的直观理解是每个镜头生成一次。这在经济上是荒谬的。一个平均 0.78 秒/镜头的参考素材,配合每秒成本 4 秒的端点,一个 10 秒的作品需要 12 次调用,生成 48 秒,只使用 10 秒(21% 效率),并且将 12 个不相关的片段拼接成应该看起来连续的内容。

剪辑师会拍摄更长的 take 并在其中剪辑。将镜头分组为约 5 秒的 take:3 次调用,生成 13 秒,77% 效率,并且连续的镜头实际上彼此关联,因为它们来自同一次生成。

告诉模型你想要的形状,否则它会渲染一个缓慢的锁定推镜,而内部的六次剪辑读起来像结巴:

"拍摄为一次连续的 take,内部无硬切。它将在编辑中被剪成 6 段约 0.8 秒的片段,因此构图、主体和光照必须在整个过程中持续变化——任何 0.8 秒的窗口都必须能够独立作为一个镜头。"

剪辑规则

  • 必须重新编码,绝不能流复制。 流复制仅在关键帧上剪切,在 0.78 秒的镜头中,这意味着每个镜头边界都会四舍五入到最近的 GOP——破坏了管道存在的根本目的。
  • 当补充现有素材时,使用其自身的镜头边界。 将基础视频切片成连续的片段并按顺序播放只会重新组装原始内容:每个"剪辑"都落在镜头中间,变得不可见。经测量,一个 20 镜头的组装只检测到 12 个剪辑。检测真实边界并每第 N 个取一个,确保连续选取保证不连续。这使剪辑测量值从目标 0.78 秒的 1.29 秒降低到 0.83 秒。
  • 从参考素材的分布中采样镜头长度,而不是从其平均值,这样剪辑继承了节奏的方差,而不是扁平化为均匀的片段。

调色规则

  • 当你有片段时,直接测量优于套用 LUT:测量它,匹配其 L* CDF,应用区域色度。grade_clip_direct 达到了 MAE 1.58 和对比度 34.0(目标 34.7)。
  • 当片段的直方图与参考不同时,使用锚定,而非 CDF 匹配。 将一个 68% 黑的生成片段强制匹配到一个繁忙的参考直方图上,会将整个背景从黑色中提升出来:背景保留率从 69.0%(锚定)降至 26.0%(CDF),而 MAE 和对比度看起来仍然很好。默认使用锚定色调。
  • 批处理大小很重要。 一次对 48 帧进行调色会导致进程因内存不足被杀死;6 帧是安全的。

恢复的 fal 平台行为

这些观察结果和端点示例来自恢复的工作流。请重新检查当前端点元数据;它们并非对所有未来供应商版本的保证。附带的图模板记录了单独验证的工作流输入,包括显式的生成音频控制。

这些是花费真实时间发现的。在设计图之前检查它们。

限制详情
完全没有 3D 渲染器fal 有 image-to-3d、text-to-3d、3d-to-3d,没有其他。每个 3d-to-3d 端点都会输出另一个网格。没有 3d-to-image/3d-to-video 类别,因此生成的 GLB 无法重新进入 fal 视频图。在本地渲染,然后使用 fal-ai/ffmpeg-api/images-to-video。
compose 无法叠加fal-ai/ffmpeg-api/compose 拒绝第二个轨道,提示 "不支持多个视频轨道"——并且它将 image 轨道计为视频轨道。它仅支持一个视频轨道的序列。在本地使用 ffmpeg 合成。
compose 关键帧是毫秒响应中没有说明。以秒为单位提交的运行会被接受,但返回的视频长度会短 1000 倍。
extract-frame 仅提供第一/中间/最后一帧不支持任意时间戳。将这三帧用作三个不同的条件图像。
DAG 中无循环、无字符串拼接每个镜头的扇出必须逐节点编写,或保持在本地。
Kling 3.0 无参考转视频v3 系列仅支持文本/图像/运动控制;参考转视频位于 o3 系列:fal-ai/kling-video/o3/pro/reference-to-video。
前缀不统一bytedance/*、tripo3d/*、meshy/*、minimax/*、openai/* 没有 fal-ai/ 前缀。kling-video、veo3.1、flux-*、hunyuan-3d、ffmpeg-api 则有。

端点选择

插槽最佳选择性价比替代
参考→视频bytedance/seedance-2.5/reference-to-video(约 $0.473/s @720p)fal-ai/kling-video/o3/pro/reference-to-video(约 $0.112/s)
图像→3Dfal-ai/hunyuan-3d/v3.1/pro/image-to-3d($0.375,最多 8 视图)tripo3d/h3.1/image-to-3d($0.20)
文本→3Dfal-ai/hunyuan-3d/v3.1/pro/text-to-3dtripo3d/h3.1/text-to-3d
重拓扑fal-ai/hunyuan-3d/v3.1/smart-topology($0.75)tripo3d/tripo/remesh(约便宜 75 倍)
部件分割fal-ai/hunyuan-3d/v3.1/part(仅 FBX)tripo3d/tripo/segment
文本→图像fal-ai/nano-banana-pro($0.15 固定)fal-ai/flux-2-pro($0.03/MP)

Seedance 的价格是 Kling o3 在相同 5 秒时长下的约 4 倍。它在多参考保真度方面(最多 50 个混合图像/视频/音频参考)值得这个价格,但在仅基于单张静态图像进行条件化时不值得。

模型 ID 和价格会变化。在承诺任何内容之前,请对照 fal.ai/models 进行验证。

3D 分支

python mint3d.py --genre <name> --from-stills 4 --retopo --render
python mint3d.py --genre <name> --prompt "一个破裂的铬色面罩" --render
  • 首先生成干净的画面;不要从参考静态图像中提取。 端点要求的输入是简单背景、单一物体、物体占画面超过 50%。参考素材恰恰相反——拼贴画、广角镜头、多个主体、烧入的图形——它们会产生杂乱无章的噪声。文本→单一物体画面→网格成本约 $0.15,是可用网格和废弃网格之间的区别。
  • 多视图是每个角度的命名字段,而非列表。 input_image_url(正面,必需),然后是 back_image_url、left_image_url、right_image_url、left_front_image_url、right_front_image_url、top_image_url、bottom_image_url。没有 input_image_urls 也没有 multi_view 标志——发明它们会将每次生成降级为单视图,同时看似正常工作。错误的角度标签比省略视图更糟糕,因为模型信任它。
  • 通过键来引用 GLB,而非位置。 响应包含一个 thumbnail PNG 和一个 model_urls 块以及 model_glb;获取第一个 URL 仅在键重新排序之前有效,而预览 PNG 下载正常——直到 Blender 拒绝打开它之前,一切都不会失败。
  • 请求 PBR 贴图。 没有它们,网格看起来像涂漆的纸板。
  • 进行重拓扑,如果有人将编辑或装配它。生成的网格密集且混乱。
  • 在本地渲染以闭合循环。 一旦转盘变成帧,它就是视频素材,下游的每个阶段都已经处理视频素材——对其进行调色、剪辑、作为元素筛选,或作为条件参考上传。当有二进制文件在 PATH 上时使用 Blender;保持一个依赖轻量的软件光栅化器作为默认选项,因为无头 GL 上下文是容器中最常缺失的东西,而仅在工作站上工作的渲染器不属于管线。

验证,然后相信

每个其他阶段都会声称一个结果。检查它,并且检查分布形状,而不仅仅是矩:

  • background——低于 L*10 的帧占比,与风格包的数字进行比较。与源片段进行比较是错误的:一个 68% 黑的生成源比任何在 24–55% 范围内的参考都更黑,因此"保留源的黑色"要求了错误的东西,并且同样会容忍一个被提亮的调色。
  • chroma_mae——每个区域的 a*/b* 误差,使用中位数(与风格包目标测量方式匹配;使用均值会报告一个对偏斜敏感的统计量与一个稳健统计量的比较,并将定义不匹配报告为错误)。
  • contrast / black_point / white_point
  • banding——位于已占用 L* 直方图区间之间的空区间。计算空区间总数不起作用:一个合法的暗片会有空的明亮区间。
  • cadence——检测到的平均镜头长度与参考的比较。

注意单位陷阱:OpenCV 会根据 dtype 改变 Lab 约定。在 float32 上,L* 是 0–100,a*/b* 是有符号的;在 uint8 上,L* 是 0–255,a*/b* 是偏置的 +128。混合它们报告数百的色度误差。

完整链

python pipeline.py --genre <name> --refs a.mov b.mov \
  --brief "发生了什么" --duration 12 \
  --base-video existing.mp4 --out out/FINAL.mp4

mint → distill → (mint3d) → apply → forge → verify。阶段 1-3 是缓存的,因此迭代 brief 时无需重新测量任何内容。--dry-run 会模拟每个网络调用:计划、提示、轨道布局和清单都会得到执行。

反模式

不要做原因
每个镜头一次生成21% 效率,12 个不相关的片段
在提示中包含色彩经测量不起作用;推动远离 LUT 所需的基色
流复制剪切仅关键帧边界会破坏亚秒级节奏
连续剪切基础视频重新组装原始内容;每个剪辑都不可见
信任 compose 可以叠加它不能;它会拒绝第二个轨道
向 compose 发送秒数静默地缩短 1000 倍
仅凭 MAE 交付增加背景占比检查

借用的素材会携带录制应用的 UI

在已交付剪辑中发现的最严重缺陷:完成的视频包含别人的点赞按钮、观看计数器和评论气泡,因为基础

…

[内容已截断]

Individual skills in this repo

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

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

相关技能