Communitygithub.com

taste-distillation

참조 비디오 세트를 재사용 가능한 스타일 팩(3D LUT 색보정, 컷 리듬 샷 길이 분포, 히어로 스틸, 스크린 블렌드 오버레이 플레이트, 생성 모델용 텍스트 스펙)으로 측정합니다. 사용자가 참조 영상의 룩을 캡처하거나, 반복 가능한 룩을 구축하거나, 참조에서 에셋을 생성하거나, 다른 사람의 스타일을 재현하려 할 때 사용합니다.

taste-distillation란 무엇인가요?

Taste Distillation 스킬은 참조 비디오 클립 세트를 입력받아 정량적 측정값과 생성된 에셋을 포함하는 '스타일 팩'을 만듭니다. 이 팩에는 측정된 색상 통계, 3D LUT 파일(방송용 색보정 소프트웨어와 호환 가능), 샷 경계 및 길이 분포, 키프레임 스틸, 화면 블렌드 오버레이 플레이트, 측정값에 기반한 VLM 설명 텍스트가 포함됩니다. 이 프로세스는 측정이 프롬프트 기반 생성을 능가한다는 발견을 바탕으로 설계되었습니다. 즉, 측정된 등급은 비용, 대기 시간 및 품질에서 빈번히 실패하는 프롬프트와 달리 결정론적이며 무료로 정확한 룩 일치를 제공합니다. 이 스킬은 측정값이 중립 및 일관성을 유지하도록 보장하기 위해 평균 대신 중앙값 및 MAD, 전역 통계 대신 루미넌스 영역별 색도, 적응형 컷 감지 임계값, 화면 기록에서 정적 UI 요소를 마스킹하는 시간적 분산 등 여러 견고한 측정 접근 방식을 사용합니다. 또한 생성 모델을 안내하기 위해 측정값을 시스템 프롬프트에 접지시키고, 'varied', 'mixed', 'neutral'과 같은 모호한 용어를 코드 수준에서 금지합니다. 결과물은 후속 스타일 적용 또는 색보정사에게 직접 전달할 수 있는 완전히 로컬이며 재현 가능한 아티팩트입니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/taste-distillation

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Taste Distillation (취향 증류)

이 독립형 스킬은 scripts/ 디렉토리에 구현체를 제공합니다. 이후 생성된 또는 로컬 테이크 편집에는 taste-application을 사용하세요. 각 명명된 장르는 자체 팩에 보관하세요. Flash Ethereal의 측정값을 Fluid Sketch 또는 3D Cyber Glitch에 대해 묵시적으로 재사용하지 마십시오. 측정된 0은 유효한 데이터입니다. 빈 필드와 구분하십시오.

로컬 종속성은 scripts/requirements.txt에 있습니다. 별도로 승인된 제공자 작업을 위해서는 scripts/requirements-live.txt, 자격 증명 및 명시적인 TASTE_FORGE_ALLOW_LIVE=1이 필요합니다. --dry-run은 자격 증명을 읽거나 작업을 제출하지 않습니다. 워크플로가 로컬 엔드포인트 이름에서 저장되었다고 추론하지 마십시오. 실제 제공자측 워크플로 또는 요청 증거를 사용하십시오.

참조 비디오를 스타일 팩으로 변환합니다. 즉, 이후 단계에서 결정론적으로 소비하는 측정값과 에셋이 포함된 폴더입니다.

활성화 시기 (When to Activate)

  • "이 클립들의 룩을 캡처해 줘" / "분위기를 증류해 줘" / "이걸 반복 가능하게 만들어 줘"
  • 사용자가 참조 영상을 가지고 있고 LUT, 그레이드 또는 일치하는 페이싱을 원할 때
  • 장르별로 구분된 룩 라이브러리를 구축할 때
  • 답변이 원래 "프롬프트로 스타일을 설명해"였을 모든 요청

핵심 발견 (The Core Finding)

프롬프트는 그레이드를 전달할 수 없습니다. 측정만이 가능합니다.

실제 영상에서 측정된 결과: 세 번의 유료 생성에서 색상 방향을 강화했을 때 미드톤 a*가 +1.9 → +2.8 → +0.3으로 이동한 반면, 목표는 +24.9였습니다. 대비는 34.7 목표에 대해 ~19를 벗어나지 않았습니다. 측정된 팩을 동일한 영상에 적용한 결과, 크로마 MAE는 1.88, 대비는 33.7로 단 한 번의 결정론적 패스에 무료로 달성되었습니다.

따라서 분할은 다음과 같습니다: 모델은 콘텐츠, 모션 및 조명 구조를 제공하고, 팩은 룩을 제공합니다. 생성 프롬프트의 색상 단어는 쓸모없을 뿐만 아니라 비용이 들며 렌더를 LUT가 원하는 중립 기준에서 멀어지게 만듭니다. 프롬프트에 명시적으로 말하십시오: "색상: 없음. 중립으로 렌더링. 그레이딩은 이후 적용됨."

팩 구성 (What a Pack Contains)

stylepacks/<genre>/
  grade.json      측정된 색상 통계 (아래 참조)
  cadence.json    감지된 모든 샷 경계 + 파생된 분포
  look.cube       33^3 LUT, Resolve에 노드 LUT로 직접 드래그
  spec.json       VLM 설명, 측정값에 기반
  grounding.txt   VLM에 제공된 측정된 사실
  stills/         가장 긴 샷의 전체 해상도 프레임 (컨디셔닝 이미지)
  plates/         검정 위에 추출된 스크린 블렌드 오버레이 요소
  props/          생성된 GLB 메시
  pack.json       매니페스트

실행 방법 (Running It)

python mint.py --genre <name> --refs a.mov b.mov c.mov     # 오프라인, API 키 불필요
python distill.py --genre <name>                            # VML 호출 한 번

mint.py는 순수한 수치 분석입니다. 네트워크, 키, 결정론적 작업이 없으므로 팩을 백업 대신 재생성할 수 있습니다.

중요한 측정값 (The Measurements That Matter)

전역이 아닌 루미넌스 영역별 크로마 (Chroma by luminance zone, not globally)

색상 정체성은 보통 하나의 루미넌스 밴드에 있습니다. 전역 a*/b* 오프셋은 수학적으로 split-toning을 나타낼 수 없습니다. 영역 내에서 크로마를 측정하십시오 (L* 에지 [0,15,35,55,75,100]).

실제 시그니처: L*25에서 바이올렛 (a* +24.9, b* −17.5), 양쪽 끝은 거의 중립. 가장 어둡고 가장 밝은 영역만 보고하면 "균일한 색조"로 나타납니다. 항상 전체 곡선을 출력하십시오.

평균 + 표준편차 대신 중앙값 + MAD (Median + MAD, never mean + std)

실제 참조 세트의 크로마는 강한 오른쪽 편향을 가집니다. 한 측정 릴에서 평균 미드톤 크로마는 36.9였고 중앙값은 17.5였습니다. 따라서 평균 기반 LUT는 재료가 정당화하는 것보다 ~3배 더 강하게 색상을 밀어냅니다.

대비는 흰색-검정이 아닌 std(L*) (Contrast is std(L*), not white minus black)

거의 모든 실제 영상에서 흰색-검정 범위는 ~100이며 아무것도 구분하지 못합니다.

배경 비율은 일급 통계량 (Background share is a first-class statistic)

L*10 미만 픽셀의 비율을 기록하십시오. 분포의 어떤 모멘트도 이를 볼 수 없습니다. 클립이 올바른 평균, 표준편차 및 크로마를 가질 수 있지만 검은색이 회색으로 올라갔을 수 있습니다. 이것이 바로 MAE 1.88 / 대비 33.7을 기록하면서 실제 프레임이 진흙탕 보라색이었던 등급이 발생한 방식입니다.

측정 전 인터페이스 마스킹 (Mask the interface before measuring)

화면 녹화 참조에는 정적 요소(레터박스 바, 상태 표시줄, 좋아요 아이콘, 캡션 텍스트)가 포함됩니다. 이 모든 것이 통계에 룩인 것처럼 포함됩니다. 검은색 막대는 그림자 가중치를 부풀리고, 빨간 하트는 a*를 마젠타 방향으로 왜곡합니다. 시간적 분산은 이를 깔끔하게 분리합니다 — 영상은 움직이고 인터페이스는 움직이지 않습니다. 따라서 수동 조정된 크롭이 필요하지 않습니다. 실제 자료에서 이는 ~65%의 픽셀을 유지합니다.

케이던스는 적응형 임계값 필요 (Cadence needs an adaptive threshold)

올바른 콘텐츠 감지기 임계값은 재료에 따라 다릅니다. 고대비 액션 참조는 30에서도 충분히 컷을 감지하지만, 분위기 있는 영상은 컷을 숨깁니다. 하강하는 임계값을 스윕하고 가장 민감한 설정이 찾는 샷의 ≥90%를 여전히 복구하는 가장 높은 임계값을 취하십시오. 이는 실제 컷을 노이즈보다 선호합니다. 터무니없는 컷 속도(>100/분)를 암시하는 임계값은 거부하십시오. 연속적인 카메라 움직임은 모든 프레임에서 감지기를 트리거합니다.

전체 스윕을 공유된 StatsManager로 한 번의 디코드 패스로 실행하십시오. 기본 버전은 임계값당 다시 디코드하며, 60fps 소스에서는 초와 분의 차이를 만듭니다.

오버레이 플레이트: 스크린샷이 아닌 에셋 (Overlay Plates: Assets, Not Screenshots)

스틸은 전체 프레임입니다. 하나를 합성하면 단순히 다른 그림을 위에 놓는 것입니다. 플레이트는 참조의 그래픽 어휘(플레어, 스트릭, 글리치 조각)를 검정 위에 추출하여 키잉 없이 스크린 블렌드되도록 한 것입니다.

실제 자료에서 발생한 두 가지 함정:

  1. 절대 임계값은 실패합니다. 밝은 참조에서 L>55 AND 크로마>12 선택은 프레임의 ~90%를 차지하며, "플레이트"는 사진입니다. 여기에는 알아볼 수 있는 얼굴이 포함됩니다. 백분위수(~상위 3%)로 선택하고 프레임의 ~22% 이상을 덮는 플레이트는 거부하십시오.
  2. 밝기가 아닌 분리도로 순위를 매기십시오. "밝고 채도가 높은 픽셀의 비율"은 세탁된 프레임을 상위에, 하나의 강렬한 플레어가 있는 검은 프레임(실제 시그니처)을 하위에 배치합니다. p99.5(에너지) / 중앙값(에너지)로 점수를 매기십시오.

또한 점수 매기기 전에 마스킹하십시오. 각인된 타이포그래피는 밝고 채도가 높으며 대비가 높으므로 마스킹되지 않은 실행은 다른 사람의 타이틀 카드의 완벽한 플레이트를 생성합니다.

VLM 접지 (Grounding the VLM)

설명을 요청하기 전에 측정값을 시스템 프롬프트에 주입하십시오. 접지되지 않은 VLM은 +24.9 a* 색조가 있는 영상에 대해 "눈에 띄는 색보정 없음, 중립"이라고 보고합니다. 접지되면 색조를 올바르게 설명하고 보조 악센트를 독립적으로 추론합니다.

모호한 단어(varied, mixed, dynamic, some, often, neutral, or)를 금지하십시오. 모델은 "다양한 조명"을 렌더링할 수 없습니다. 프롬프트뿐만 아니라 코드에서도 금지를 적용하십시오. 실행 3회 중 약 1회에서 위반되었습니다. 필드별로 다시 질문하고, N번 시도 후 가장 덜 모호한 답변을 유지하십시오. 실패하지 마십시오.

사용자에게 언급할 가치가 있는 주의 사항: 스펙이 측정값에 접지되면 더 이상 측정값에 대한 독립적인 확인이 아닙니다.

LUT 베이킹 주의 사항 (LUT Baking Gotchas)

  • LUT는 픽셀별 RGB 함수만 인코딩할 수 있습니다. 분포에 의존하는 모든 것(히스토그램 매칭, 백분위수 앵커)은 베이킹 전에 상수로 축소되어야 합니다. 그렇지 않으면 영상 대신 균일한 LUT 그리드를 묵시적으로 측정합니다.
  • cv2.cvtColor(LAB2RGB)는 내부적으로 클램핑되므로, 이를 사용한 OOG(Out Of Gamut) 테스트는 0%를 보고합니다. Lab→linear sRGB를 수동으로 변환하십시오. 실제 측정값은 83.3% OOG였습니다.
  • 크로마 전송은 오프셋으로, 아핀(affine)이 아닙니다. 아핀은 소스 σ로 나누어 과도하게 확대됩니다. 실제 영상에서 b*를 −17.5 목표에 대해 +11.6으로 뒤집었습니다. 오프셋은 MAE를 6.23에서 2.13으로 낮췄습니다.
  • 영역 압축(Gamut compression)은 동일한 MAE에 대해 3.8배의 런타임 비용이 발생했습니다. 선택 사항으로 만드십시오.

안티 패턴 (Anti-Patterns)

하지 말아야 할 것이유
합성 테스트 영상에 대해 튜닝한 프로젝트에서 네 가지 잘못된 결론을 초래했으며, 실제 영상이 모든 것을 뒤집었음
MAE만 신뢰1.88 MAE는 시각적으로 손상된 프레임에서 성공으로 보였음
크로마에 평균/표준편차 사용오른쪽 편향, ~3배 과도하게 밀어냄
엔드포인트 영역만 비교양쪽 끝은 구성상 거의 중립임
룩을 설명하고 멈춤스펙은 콘텐츠와 구조를 위한 것이며, 팩은 색상을 위한 것임

핸드오프 (Handoff)

팩은 인터페이스입니다. 일단 존재하면 taste-application 스킬을 사용하여 생성 및 조립하거나 look.cube를 색보정사에게 직접 전달하십시오.

번들 코드 (Bundled Code)

이 스킬의 scripts/는 의사 코드가 아닌 작동하는 구현입니다. 프로젝트별 가정이 없습니다. 모든 참조 비디오를 가리키면 팩을 생성합니다.

pip install -r scripts/requirements.txt
export FAL_KEY=...            # fal을 호출하는 단계에만 필요

모든 네트워크 호출은 TASTE_FORGE_DRY_RUN=1 또는 --dry-run 아래에 스텁되어 있으므로, 계획, 프롬프트, 트랙 레이아웃 및 매니페스트를 비용 없이 검사할 수 있습니다.

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.

관련 스킬