MoneyPrinterTurbo Video Generator
harry0703/MoneyPrinterTurbo
Installs and runs MoneyPrinterTurbo to turn a topic or script into a finished short video with voice-over, subtitles, stock footage and music.
Generates video clips against a distilled style pack and cuts them into a finished edit, with grading, overlays, 3D props and numeric checks of the result.
$ npx skills add affaan-m/ECC --skill taste-application -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install affaan-m/ECC taste-application --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/taste-application .claude/skills/taste-application && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "taste-application" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/taste-application into .claude/skills/taste-application/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "taste-application", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/affaan-m/ECC/tree/main/skills/taste-applicationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add affaan-m/ECC --skill taste-application -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install affaan-m/ECC taste-application --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/taste-application .agents/skills/taste-application && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "taste-application" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/taste-application into .agents/skills/taste-application/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "taste-application", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add affaan-m/ECC --skill taste-application -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install affaan-m/ECC taste-application --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/taste-application .cursor/skills/taste-application && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "taste-application" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/taste-application into .cursor/skills/taste-application/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "taste-application", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/affaan-m/ECC.git --path skills/taste-application--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add affaan-m/ECC --skill taste-application -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install affaan-m/ECC taste-application --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/taste-application .gemini/skills/taste-application && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "taste-application" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/taste-application into .gemini/skills/taste-application/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "taste-application", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install affaan-m/ECC taste-applicationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add affaan-m/ECC --skill taste-application -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/taste-application .github/skills/taste-application && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "taste-application" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/taste-application into .github/skills/taste-application/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "taste-application", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add affaan-m/ECC --skill taste-application -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install affaan-m/ECC taste-application --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/taste-application .opencode/skills/taste-application && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "taste-application" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/taste-application into .opencode/skills/taste-application/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "taste-application", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
taste-applicationGenerates video clips against a distilled style pack and cuts them into a finished edit, with grading, overlays, 3D props and numeric checks of the result.
This is the second half of a style-capture pipeline: taste-distillation measures reference footage into a style pack, and this skill generates new video against that pack and assembles it. Its steps are to plan takes from the reference's cut rhythm, generate on fal, grade with the pack's measured LUT, cut at the measured cadence, weave in existing footage, composite overlay plates, create 3D props and check the result numerically.
The scripts ship in the folder, with pipeline.py as the entry point. Local processing uses requirements.txt, while live provider runs need requirements-live.txt, credentials and an explicit TASTE_FORGE_ALLOW_LIVE=1 setting, and --dry-run needs no credentials and produces labelled placeholders. Existing takes can be edited with no provider calls. The duration is a best-effort cadence target, not an exact runtime, and the output manifest records requested and actual seconds. A provider timeout is never retried as a new paid job.
Read from SKILL.md and the folder at commit 2d515e4. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 17 files in scripts/ (Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
pythonpipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
FAL_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Taste Application Video Pipeline loads about 4.9k tokens when it runs. Until then it costs about 117 tokens; SKILL.md has 2,696 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from affaan-m/ECC at commit 2d515e4, republished under its MIT licence (© affaan-m). 2,696 words, ~4,932 tokens.
.claude/skills/taste-application/SKILL.md (or your agent's skills folder). This skill also uses 86 other files; get the full folder from GitHub.The second half of the pipeline. taste-distillation measures references into a style pack; this generates against that pack and cuts the result.
The original implementation ships here in scripts/; no separate ito-video
checkout is required. Install scripts/requirements.txt for local processing.
Install scripts/requirements-live.txt only for provider execution. Live
uploads, submissions and downloads require explicit TASTE_FORGE_ALLOW_LIVE=1
in addition to credentials; set it only for the user's authorized run.
--dry-run remains credential-free and produces labelled placeholders.
An ambiguous provider timeout is not retried as a new paid job. Inspect the
provider request before deciding whether another submission is warranted.
Use existing completed takes without any provider calls:
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 is a best-effort cadence target, not an exact runtime. Complete
shots may produce a shorter or longer edit; the assembler does not duplicate
clips or add padding to meet the target. The output manifest retains actual
duration and adds duration_contract with requested and actual seconds,
shortfall, overrun, and the cadence_target policy. Differences of at least
one output frame are warned explicitly. No exact-duration mode is provided;
when an exact runtime is required, inspect the receipt and revise or reject
the cut before delivery.
The pipeline keeps each run's graded shot files because the editable FCPXML and EDL reference them. It refuses output collisions and reports timeline export failures. A completed render is not a saved editor project or creative approval. Preserve source assets and versioned project checkpoints before and after live edits; record the saved path and digest separately from the in-memory timeline receipt.
Clone-ready Fal graphs and their offline input compiler are documented in
workflows/README.md. Compile brief and style direction before submission;
do not assume a disconnected schema field affects a model prompt. Validate
current endpoint fields against the actual provider before a paid run.
For Blender, use the full textured source GLB; retopology is a separately
named derivative and never replaces that source. blender_prop.py supports
explicit --width 1920 --height 1080 --fps 30 --receipt receipt.json and
preserves pack-derived rim lighting and material textures. Saving a scene is
distinct from rendering it; inspect the receipt's state and packed images.
For Resolve overlays, use taste.resolve.apply_placements with injected
objects from an explicitly selected, versioned target. Set source_end_mode
to the convention verified on that host. Do not assume an inclusive source
end across Resolve versions. The adapter allocates overlapping effects above
preserved tracks and checks every placement immediately and again after all
appends. Composite integers must match the installed API; for the verified
Studio 21 host, Screen is 5, not the historical builder's incorrect 22.
The receipt proves in-memory placement only. Save the project, verify its
checkpoint, then inspect the exact rendered output before reporting delivery.
The model supplies content, motion, framing and lighting structure. The pack supplies colour and rhythm. This is measured, not stylistic preference — see taste-distillation for the numbers. Practical consequences:
--brief (what HAPPENS: subject, action, place)
and --style-steer (how it LOOKS). Merging them leaks style words into the
scene ("teal" becomes a teal object) and subject words into the grade.The obvious reading of "match the cadence" is one generation per shot. It is economically absurd. A reference averaging 0.78s/shot against an endpoint with a 4-second floor turns a 10s piece into 12 calls, 48 generated seconds for 10 used (21% efficiency), and twelve unrelated clips stitched into what should read as continuous.
Editors roll a longer take and cut inside it. Grouping shots into ~5s takes: 3 calls, 13 generated seconds, 77% efficiency, and consecutive shots that actually belong to each other because they came from the same generation.
Tell the model what shape you want, or it renders a slow locked-off push and six cuts inside it read as a stutter:
"Filmed as ONE continuous take with no hard cuts inside it. It will be cut into 6 pieces of roughly 0.8s in the edit, so the framing, subject and light must keep changing throughout — any 0.8s window has to stand alone as its own shot."
grade_clip_direct reached MAE 1.58 and
contrast 34.0 against 34.7.These observations and endpoint examples came from the recovered workflow. Recheck current endpoint metadata; they are not guarantees about every future provider version. The bundled graph templates record the separately verified workflow inputs, including explicit generated-audio control.
These cost real time to discover. Check them before designing a graph.
| Limit | Detail |
|---|---|
| No 3D renderer at all | fal has image-to-3d, text-to-3d, 3d-to-3d and nothing else. Every 3d-to-3d endpoint emits another mesh. There is no 3d-to-image/3d-to-video category, so a minted GLB cannot re-enter a fal video graph. Render locally, then use fal-ai/ffmpeg-api/images-to-video. |
| compose cannot overlay | fal-ai/ffmpeg-api/compose rejects a second track with "Multiple video tracks are not supported" — and it counts an image track as a video track. It sequences one video track only. Composite locally with ffmpeg. |
| compose keyframes are milliseconds | Nothing in the response says so. A run submitted in seconds is accepted and returns a video that is 1000x too short. |
| extract-frame offers first/middle/last only | No arbitrary timestamp. Use the three as three distinct conditioning images. |
| No loops, no string concat in the DAG | Per-shot fan-out has to be authored node by node, or kept local. |
| Kling 3.0 has no reference-to-video | The v3 line is text/image/motion-control only; reference-to-video lives on the o3 line: fal-ai/kling-video/o3/pro/reference-to-video. |
| Prefixes are not uniform | bytedance/*, tripo3d/*, meshy/*, minimax/*, openai/* carry no fal-ai/ prefix. kling-video, veo3.1, flux-*, hunyuan-3d, ffmpeg-api do. |
| Slot | Best | Value alternative |
|---|---|---|
| reference→video | bytedance/seedance-2.5/reference-to-video (~$0.473/s @720p) | fal-ai/kling-video/o3/pro/reference-to-video (~$0.112/s) |
| image→3D | fal-ai/hunyuan-3d/v3.1/pro/image-to-3d ($0.375, up to 8 views) | tripo3d/h3.1/image-to-3d ($0.20) |
| text→3D | fal-ai/hunyuan-3d/v3.1/pro/text-to-3d | tripo3d/h3.1/text-to-3d |
| retopology | fal-ai/hunyuan-3d/v3.1/smart-topology ($0.75) | tripo3d/tripo/remesh (~75x cheaper) |
| part split | fal-ai/hunyuan-3d/v3.1/part (FBX only) | tripo3d/tripo/segment |
| text→image | fal-ai/nano-banana-pro ($0.15 flat) | fal-ai/flux-2-pro ($0.03/MP) |
Seedance is ~4x Kling o3's price for the same 5 seconds. It earns that on multi-reference fidelity (up to 50 mixed image/video/audio refs) and does not earn it when conditioning on a single still.
Model IDs and prices drift. Verify against fal.ai/models before promising any of them.
python mint3d.py --genre <name> --from-stills 4 --retopo --render
python mint3d.py --genre <name> --prompt "a cracked chrome visor" --renderinput_image_url (front,
required), then back_image_url, left_image_url, right_image_url,
left_front_image_url, right_front_image_url, top_image_url,
bottom_image_url. There is no input_image_urls and no multi_view flag —
inventing them degrades every mint to single-view while appearing to work. A
wrong angle label is worse than omitting the view, because the model trusts it.thumbnail
PNG and a model_urls block alongside model_glb; taking the first URL works
only until the keys reorder, and a preview PNG downloads fine — nothing fails
until Blender refuses to open it.Every other stage claims a result. Check it, and check distribution shape, not just moments:
background — share of frame below L*10 vs the pack's figure. Compare to
the reference, not to the source clip: a generated source at 68% black is
blacker than any reference in a 24–55% band, so "preserve the source's blacks"
demands the wrong thing and equally excuses a lifted grade.chroma_mae — per-zone a*/b* error, using the median (matching how the
pack's targets were measured; a mean here compares a skew-sensitive statistic
to a robust one and reports a definition mismatch as an error).contrast / black_point / white_pointbanding — empty L* histogram bins between occupied ones. Counting total
empty bins does not work: a legitimately dark clip has empty highlight bins.cadence — detected mean shot length vs the reference's.Watch the units trap: OpenCV changes Lab convention with dtype. On float32, L* is 0–100 and a*/b* are signed; on uint8, L* is 0–255 and a*/b* are biased +128. Mixing them reports chroma errors in the hundreds.
python pipeline.py --genre <name> --refs a.mov b.mov \
--brief "what happens" --duration 12 \
--base-video existing.mp4 --out out/FINAL.mp4mint → distill → (mint3d) → apply → forge → verify. Stages 1–3 are cached, so
iterating on briefs never re-measures anything. --dry-run stubs every network
call: the plan, prompts, track layout and manifest all still get exercised.
| Don't | Why |
|---|---|
| One generation per shot | 21% efficiency, 12 unrelated clips |
| Put colour in the prompt | Measured not to work; pushes away from the neutral base the LUT wants |
| Stream-copy the cuts | Keyframe-only boundaries destroy sub-second rhythm |
| Cut a base video contiguously | Reassembles the original; every cut invisible |
| Trust compose to overlay | It cannot; it rejects the second track |
| Send seconds to compose | Silently 1000x too short |
| Ship on MAE alone | Add the background-share check |
The single worst defect found in a delivered cut: the finished video shipped someone else's like button, view counter and comment bubble, because the base footage was a screen recording and nothing cropped them out.
content_mask does not solve this and its bounding box makes it worse.
Temporal variance keeps interface chrome, because chrome animates - the heart
pulses, the counter ticks - so the mask marks it as moving content. Measured on
three references, the mask bbox kept 100% of the width every time while the
interface sat plainly in the right-hand margin.
The separating signal is the temporal median, not the variance. Footage moves, so the median of many frames averages into mush with almost no edge energy; chrome sits at fixed coordinates, so its edges survive intact. Sobel energy on the median frame lights up on chrome and goes quiet on content - measured, a right-hand column read 0.23 against an interior background of 0.03 on one reference and 0.31 against 0.15 on another.
Two implementation details that cost a cycle each:
A glow plate is ~4% covered by construction. Composite it at frame size and you get a small bright dot parked mid-shot - it reads as a sticker, and it was visible in a delivered cut as an unexplained coloured blob.
pad() rejects
a negative offset and cannot pad below its input size, so an oversized or
off-frame element kills the whole filtergraph.Always ship an editable timeline beside the mp4. The flattened video is a
viewing copy and the one thing a colourist cannot work with — every cut is baked
in and the shots are no longer separable. forge.py writes FCPXML 1.9 and a
CMX3600 EDL referencing the individual graded shot files, so the piece lands as a
timeline that can be re-cut and re-graded.
Validate the export, do not assume it: check that asset-clip offsets equal the
running sum of prior durations (no gaps), that every ref resolves to a declared
asset, that every media-rep src exists on disk, and that the total matches the
mp4. A timeline that imports but drifts is worse than one that fails loudly.
Two things that silently destroy the work:
look.cube is a normalising LUT
for new material and for matching — applying it to the supplied shots
double-grades them. Node 1, nothing before it, corrections after.Ship a handoff doc with the measured targets in it (scripts/HANDOFF-TEMPLATE.md
is a filled example): the zone chroma table, the cadence distribution including
rhythm variance — an editor who matches the mean but not the variance
produces something that reads completely differently — and an explicit "do not"
list.
For Blender, scripts/blender_prop.py derives its lighting from the pack:
black world with transparent film (so renders composite with no keying), key plus
rim (a key alone lets the silhouette die against black), rim colour converted
from the pack's peak-chroma zone via Lab→linear sRGB so the prop picks up the
same cast the footage is graded to. View transform Standard, not AgX/Filmic,
and no grading in Blender — AgX applies its own tone curve before the LUT ever
sees the pixels, and grading twice compounds.
scripts/ in this skill is a working implementation, not pseudocode. It has no
project-specific assumptions: point it at any reference videos and it produces a
pack.
pip install -r scripts/requirements.txt
export FAL_KEY=... # only needed for the stages that call falEvery network call is stubbed under TASTE_FORGE_DRY_RUN=1 or --dry-run, so
the plan, prompts, track layout and manifest can be inspected without spending.
© affaan-m, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 86 other files (scripts) in skills/taste-application of affaan-m/ECC.
Open the folder on GitHubat commit 2d515e4
Taste Application Video Pipeline next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Taste Application Video Pipeline this skillaffaan-m/ECC | 277k | — | ~4.9k | Automated safety check: Pass | MIT | |
| MoneyPrinterTurbo Video Generatorharry0703/MoneyPrinterTurbo | 130k | — | ~2.1k | Automated safety check: Warn | MIT | |
| Vox DirectorAlisa0808/vox-director | 2.2k | — | ~5.6k | Automated safety check: Pass | MIT | |
| VRGDG H3 Short Film Pipelinevrgamegirl19/comfyui-vrgamedevgirl | 765 | — | ~4.2k | Automated safety check: Pass | Custom licence | |
| Cassette Video EditCassette-Editor/oh-my-cassette | 119 | 1 repos | ~3.4k | Automated safety check: Pass | MIT | |
| Muapi DirectorAnil-matcha/vox-ai-motion-graphics-generator | 246 | — | ~679 | Automated safety check: Pass | None |
harry0703/MoneyPrinterTurbo
Installs and runs MoneyPrinterTurbo to turn a topic or script into a finished short video with voice-over, subtitles, stock footage and music.
Alisa0808/vox-director
Turn ONE topic into a finished Vox-style paper-collage explainer / ad video, end to end on the Atlas Cloud API + local ffmpeg — script, collage keyframes, motion, voice-over, music, captions, all…
vrgamegirl19/comfyui-vrgamedevgirl
Builds an AI short film in a local ComfyUI with the VRGDG Video Builder, MiniMax H3 scenes, reference images, a music score, QA and a final edit.
Cassette-Editor/oh-my-cassette
Edit, trim, cut, caption, subtitle, reframe, combine, add background music to, or export video, audio, and image files through Cassette.
Anil-matcha/vox-ai-motion-graphics-generator
Turn ONE topic, talking-head video, or photo into a finished Vox-style paper-collage explainer / ad video on the MuAPI platform (api.muapi.ai) + local ffmpeg — script, collage keyframes, motion…
edenfunf/reelmimic
Renders premium 3D product films in headless Blender from JSON shot specs, building the product from a photo or procedurally, then finishing titles, music and cuts.
affaan-m/ECC
Audits your installed Claude skills and commands for quality, with a quick mode for recently changed skills and a full mode that evaluates all of them through subagents.
affaan-m/ECC
Ingests, indexes, searches, edits and monitors video, audio and live streams through the VideoDB Python SDK, returning stream links, clips and timestamps.
affaan-m/ECC
Route broad documentation-governance requests to existing ECC skills and run an opt-in, read-only audit of mapped documentation roles, links, ADR indexes, and evidence references.
affaan-m/ECC
Scans installed skills for principles that recur across them and proposes rule-file changes: append, revise, add a section, create a file or leave as covered.
affaan-m/ECC
Builds DRAFT counterparty agreements from one markdown template and a small JSON spec per party, with clauses picked by the party's role.
affaan-m/ECC
Set an ECC-specific frontend design direction for production UI work.
Categories
Generates video clips against a distilled style pack and cuts them into a finished edit, with grading, overlays, 3D props and numeric checks of the result. This is the second half of a style-capture pipeline: taste-distillation measures reference footage into a style pack, and this skill generates new video against that pack and assembles it. Its steps are to plan takes from the reference's cut rhythm, generate on fal, grade with the pack's measured LUT, cut at the measured cadence, weave in existing footage, composite overlay plates, create 3D props and check the result numerically.
Taste Application Video Pipeline fits situations like: making a new video in a style captured by taste-distillation; assembling generated clips into an edit with graded shots and a timeline export; supplementing existing footage with generated shots.
Run `npx skills add affaan-m/ECC --skill taste-application -a claude-code`. Or copy the skill folder (skills/taste-application in affaan-m/ECC) into .claude/skills/taste-application in your project. Claude Code loads it when a task matches its description.
Run `npx skills add affaan-m/ECC --skill taste-application -a codex`. Or copy the skill folder (skills/taste-application in affaan-m/ECC) into .agents/skills/taste-application in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add affaan-m/ECC --skill taste-application -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/taste-application, .gemini/skills/taste-application, .github/skills/taste-application and .opencode/skills/taste-application in your project.
Going by SKILL.md and its folder, Taste Application Video Pipeline needs Python for the scripts in its folder, the command-line tools its instructions call (python and pip) and credentials named FAL_KEY. Our summary lists: Python with the packages in scripts/requirements.txt; A fal API key and TASTE_FORGE_ALLOW_LIVE=1 for live generation; A style pack produced by taste-distillation; Blender for the 3D prop step.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Taste Application Video Pipeline is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Taste Application Video Pipeline: MoneyPrinterTurbo Video Generator (harry0703/MoneyPrinterTurbo, 130k stars), Vox Director (Alisa0808/vox-director, 2.2k stars), VRGDG H3 Short Film Pipeline (vrgamegirl19/comfyui-vrgamedevgirl, 765 stars) and Cassette Video Edit (Cassette-Editor/oh-my-cassette, 119 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
affaan-m (a GitHub user) maintains it in affaan-m/ECC, which has 276,673 GitHub stars. The repository holds 683 skills in this directory. The repository was last updated on October 11, 2026.
Source: affaan-m/ECC on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.