taste-distillation
Lets your agent analyze videos to create a style pack. This includes colors, cutting rhythm, and visual elements that can be reused to create new videos with the same look.
What it does
This tool analyzes reference videos to create a 'style pack'. This pack contains information about colors, editing rhythm (shot length), and other visual elements, allowing you to consistently reproduce a look in new projects.
When to use it
- ✓When you want to copy the look of a specific video.
- ✓To create a visual style that can be reused across multiple projects.
- ✓To turn visual references into a set of editing tools.
Example of what to ask your AI
“I want this video to have the same visual style and editing rhythm as this other reference video.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool examines reference videos to extract data about colors, shot durations, and other visual details. This data is then organized into a 'style pack' that can be applied to new videos.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add affaan-m/ECC --skill taste-distillationOr download just the file:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/taste-distillation/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Taste Distillation
This standalone skill ships its implementation in scripts/; use
taste-application for the subsequent generated or local-take edit. Keep each
named genre in its own pack. Measurements from Flash Ethereal must not be
silently reused for Fluid Sketch or 3D Cyber Glitch. A measured zero is valid
data; distinguish it from an absent field.
Local dependencies are in scripts/requirements.txt. Separately authorized
provider work also needs scripts/requirements-live.txt, credentials and
explicit TASTE_FORGE_ALLOW_LIVE=1. --dry-run does not read credentials or
submit jobs. Never infer that a workflow was saved from a local endpoint name;
use the actual provider-side workflow or request evidence.
Turn reference videos into a style pack: a folder of measurements and assets that later stages consume deterministically.
When to Activate
- "capture the look of these clips" / "distill the vibe" / "make this repeatable"
- User has reference footage and wants a LUT, a grade, or matching pacing
- Building a library of looks partitioned by genre
- Any request where the answer would otherwise be "describe the style in a prompt"
The Core Finding
Prompting cannot deliver a grade. Measurement can.
Measured on real footage: three paid generations with escalating colour direction moved midtone a* from +1.9 → +2.8 → +0.3 against a +24.9 target, and contrast never left ~19 against a 34.7 target. Applying a measured pack to the same footage hit chroma MAE 1.88 and contrast 33.7 in one deterministic pass, for free.
So the split is: the model supplies content, motion and lighting structure; the pack supplies the look. Colour words in a generation prompt are worse than useless — they cost money and push the render away from the neutral base the LUT wants. Say so explicitly in the prompt: "Colour: none. Render neutral. Grading is applied afterwards."
What a Pack Contains
stylepacks/<genre>/
grade.json measured colour statistics (see below)
cadence.json every detected shot boundary + the derived distribution
look.cube 33^3 LUT, drag straight into Resolve as a node LUT
spec.json VLM description, grounded in the measurements
grounding.txt the measured facts fed to the VLM
stills/ full-res frames from the longest shots (conditioning images)
plates/ screen-blend overlay elements lifted onto black
props/ minted GLB meshes
pack.json manifest
Running It
python mint.py --genre <name> --refs a.mov b.mov c.mov # offline, no API key
python distill.py --genre <name> # one VLM call
mint.py is pure numeric analysis — no network, no key, deterministic, so a pack
can be regenerated rather than backed up.
The Measurements That Matter
Chroma by luminance zone, not globally
Colour identity usually lives in one luminance band. A global a*/b* offset
mathematically cannot represent split-toning. Measure chroma inside zones
(L* edges [0,15,35,55,75,100]).
A real signature: violet at L*25 (a* +24.9, b* −17.5), near-neutral at both ends. Reporting only the darkest and lightest zones calls that "uniform cast" — always print the whole curve.
Median + MAD, never mean + std
Chroma in real reference sets is strongly right-skewed. On one measured reel the mean midtone chroma was 36.9 against a median of 17.5, so a mean-based LUT pushed colour ~3x harder than the material warranted.
Contrast is std(L*), not white minus black
The white−black range is ~100 on almost any real footage and discriminates nothing.
Background share is a first-class statistic
Record the share of pixels below L*10. No moment of the distribution can see it: a clip can hold the right mean, std and chroma while its blacks have been lifted into grey. This is exactly how a grade once scored MAE 1.88 / contrast 33.7 while the actual frame was a muddy purple mess.
Mask the interface before measuring
Screen-recorded references carry static furniture — letterbox bars, a status bar, a like icon, caption text. All of it lands in the statistics as if it were the look: black bars inflate shadow weight, a red heart skews a* toward magenta. Temporal variance separates them cleanly — the footage moves, the interface does not — so no hand-tuned crop is needed. On real material this keeps ~65% of pixels.
Cadence needs an adaptive threshold
…
FAQ
What is a 'style pack'?
It's a collection of files that capture the visual characteristics of reference videos, such as colors and editing rhythm, so they can be consistently applied to other videos.
Why can't I just describe the style in a prompt?
Describing colors and rhythm in a text prompt is imprecise and can even hinder the result. This tool measures the actual characteristics of the videos to ensure accuracy.
What does the 'style pack' contain?
It contains measured color data, information about shot cut boundaries, a LUT file (for color grading), and other visual elements like hero stills and overlay plates.
Details
Original description by the author
Measure a set of reference videos into a reusable style pack - colour grade as a 3D LUT, cut rhythm as a shot-length distribution, hero stills, screen-blend overlay plates, and a text spec for a generative model. Use when the user wants to capture the look of reference footage, build a repeatable look, mint assets from references, or reproduce someone's grade and pacing.
repo: affaan-m/ECC
Popularity
- GitHub stars
- 280k
- Ranking position
- #292
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
accessibility
Helps your agent create interfaces that everyone can use. Ensures websites and apps work well for people with disabilities, like those who are blind or have reduced mobility.
affaan-m/ECC
agent-architecture-audit
Makes your agent check if everything is working correctly. It finds and fixes problems in AI systems, ensuring they perform as expected.
affaan-m/ECC
agent-eval
Helps your agent compare different AI coding tools. It measures which one is faster, cheaper, and more reliable for specific tasks.
affaan-m/ECC
agent-harness-construction
Makes your agent better understand how to perform tasks. It optimizes the tools and instructions the agent uses to increase its chances of success.
affaan-m/ECC
Similar skills
slack-gif-creator
Helps your agent create animated GIFs optimized for Slack. Provides tools and concepts for effective animations.
anthropics/skills
video-downloader
Downloads videos from online platforms. Allows saving videos for offline viewing, editing, or archiving.
nexu-io/open-design
youtube-clipper
Has your agent automatically clip and edit YouTube videos. Selects highlights, adds captions, and exports the clip.
nexu-io/open-design