Communitygithub.com

distillation-de-goût

Mesurez un ensemble de vidéos de référence dans un pack de style réutilisable – étalonnage couleur sous forme de LUT 3D, rythme de montage comme distribution de longueurs de plans, images clés, calques de fusion d'écran, et un cahier des charges textuel pour un modèle génératif. Utilisez cette compétence lorsque l'utilisateur souhaite capturer l'apparence de séquences de référence, construire un look reproductible, générer des actifs à partir de références, ou reproduire quelqu'un.

Qu'est-ce que distillation-de-goût ?

Cette compétence, nommée « Taste Distillation », permet de transformer un ensemble de vidéos de référence en un « pack de style » – un dossier structuré contenant des mesures objectives et des actifs réutilisables. Elle est conçue pour les workflows d'édition et de post-production où la couleur, le rythme et les éléments visuels doivent être capturés avec précision, sans dépendre de descriptions textuelles approximatives. La compétence produit un fichier LUT 3D (look.cube), une distribution de longueurs de plans (cadence.json), des statistiques couleur détaillées (grade.json), des images clés, des calques de fusion d'écran (plates) et un cahier des charges textuel pour un modèle génératif (spec.json). Elle fonctionne en deux étapes principales : mint.py (analyse numérique pure, sans réseau, déterministe) et distill.py (un appel à un VLM, basé sur les mesures). Les mesures clés incluent la chroma par zone de luminance, la médiane avec MAD (pas la moyenne avec l'écart type), le contraste basé sur l'écart type de L*, la part d'arrière-plan, et une détection de masque d'interface par variance temporelle. La compétence met en garde contre plusieurs anti-patterns, notamment l'utilisation de la moyenne pour la chroma, la comparaison uniquement des zones d'extrémité, et la confiance aveugle en la MAE. Elle est implémentée en Python, avec des dépendances listées dans scripts/requirements.txt. Cette compétence est idéale pour les ingénieurs vidéo, les monteurs et les coloristes qui veulent reproduire un look de manière déterministe, sans coût de génération d'image pour l'étalonnage.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/taste-distillation

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Distillation de Goût

Cette compétence autonome livre son implémentation dans scripts/ ; utilisez taste-application pour l'édition générée ou locale qui suit. Gardez chaque genre nommé dans son propre pack. Les mesures d'Éclat Flash ne doivent pas être réutilisées en silence pour Esquisse Fluide ou Glitch Cyber 3D. Une mesure nulle est une donnée valide ; distinguez-la d'un champ absent.

Les dépendances locales se trouvent dans scripts/requirements.txt. Le travail fournisseur autorisé séparément nécessite également scripts/requirements-live.txt, des identifiants et explicitement TASTE_FORGE_ALLOW_LIVE=1. --dry-run ne lit pas les identifiants ni ne soumet de travaux. Ne déduisez jamais qu'un workflow a été sauvegardé à partir d'un nom de point de terminaison local ; utilisez la preuve du workflow ou de la demande du côté du fournisseur.

Transformez des vidéos de référence en un pack de style : un dossier de mesures et d'actifs consommés de manière déterministe par les étapes ultérieures.

Quand Activer

  • "capturer l'apparence de ces clips" / "distiller l'ambiance" / "rendre cela reproductible"
  • L'utilisateur a des séquences de référence et veut une LUT, un étalonnage ou un rythme correspondant
  • Construire une bibliothèque de looks partitionnés par genre
  • Toute demande dont la réponse serait sinon "décrire le style dans un prompt"

La Découverte Fondamentale

Le prompt ne peut pas fournir un étalonnage. La mesure le peut.

Mesuré sur des séquences réelles : trois générations payantes avec une direction couleur croissante ont déplacé le a* des tons moyens de +1,9 → +2,8 → +0,3 contre une cible de +24,9, et le contraste n'a jamais quitté ~19 contre une cible de 34,7. L'application d'un pack mesuré aux mêmes séquences a atteint une MAE chroma de 1,88 et un contraste de 33,7 en un seul passage déterministe, gratuitement.

Donc la séparation est : le modèle fournit le contenu, le mouvement et la structure d'éclairage ; le pack fournit le look. Les mots de couleur dans un prompt de génération sont pires qu'inutiles — ils coûtent de l'argent et éloignent le rendu de la base neutre souhaitée par la LUT. Dites-le explicitement dans le prompt : "Couleur : aucune. Rendu neutre. L'étalonnage est appliqué après."

Ce que Contient un Pack

stylepacks/<genre>/
  grade.json      statistiques couleur mesurées (voir ci-dessous)
  cadence.json    chaque coupure de plan détectée + la distribution dérivée
  look.cube       LUT 33^3, glissez directement dans Resolve comme LUT de nœud
  spec.json       description VLM, basée sur les mesures
  grounding.txt   les faits mesurés fournis au VLM
  stills/         images pleine résolution des plans les plus longs (images de conditionnement)
  plates/         calques de fusion d'écran extraits sur fond noir
  props/          maillages GLB frappés
  pack.json       manifeste

Exécution

python mint.py --genre <nom> --refs a.mov b.mov c.mov     # hors ligne, pas de clé API
python distill.py --genre <nom>                            # un appel VLM

mint.py est une analyse numérique pure — pas de réseau, pas de clé, déterministe, donc un pack peut être régénéré plutôt que sauvegardé.

Les Mesures Qui Comptent

Chroma par zone de luminance, pas globalement

L'identité couleur vit généralement dans une bande de luminance. Un décalage global a*/b* ne peut mathématiquement pas représenter un split-toning. Mesurez la chroma à l'intérieur de zones (bords L* [0,15,35,55,75,100]).

Une signature réelle : violet à L25 (a +24,9, b* −17,5), presque neutre aux deux extrémités. Ne rapporter que les zones les plus sombres et les plus claires appelle cela "teinte uniforme" — imprimez toujours la courbe entière.

Médiane + MAD, jamais moyenne + écart type

La chroma dans les ensembles de référence réels est fortement asymétrique à droite. Sur une bobine mesurée, la chroma moyenne des tons moyens était de 36,9 contre une médiane de 17,5, donc une LUT basée sur la moyenne poussait la couleur ~3 fois plus fort que ce que le matériau justifiait.

Le contraste est l'écart type (L*), pas le blanc moins le noir

La plage blanc−noir est d'environ 100 sur presque toutes les séquences réelles et ne discrimine rien.

La part d'arrière-plan est une statistique de première classe

Enregistrez la part des pixels en dessous de L*10. Aucun moment de la distribution ne peut la voir : un clip peut avoir la bonne moyenne, le bon écart type et la bonne chroma alors que ses noirs ont été relevés vers le gris. C'est exactement ainsi qu'un étalonnage a un jour obtenu une MAE de 1,88 / un contraste de 33,7 alors que l'image réelle était un désordre violet boueux.

Masquez l'interface avant de mesurer

Les références capturées depuis l'écran portent des éléments d'interface statiques — barres de lettrage, une barre de statut, une icône de like, du texte de légende. Tout cela atterrit dans les statistiques comme si c'était le look : les barres noires gonflent le poids des ombres, un cœur rouge dévie a* vers le magenta. La variance temporelle les sépare proprement — la séquence bouge, l'interface non — donc aucun recadrage manuel n'est nécessaire. Sur du matériel réel, cela conserve environ 65% des pixels.

La cadence nécessite un seuil adaptatif

Le bon seuil du détecteur de contenu dépend du matériau : une référence d'action à fort contraste coupe assez fort pour un seuil de 30, une référence maussade cache ses coupes en dessous. Parcourez les seuils descendants et prenez le plus élevé qui récupère encore ≥90% des plans que le réglage le plus sensible trouve — cela favorise les vraies coupes par rapport au bruit. Rejetez les seuils impliquant un taux de coupe absurde (>100/min) ; les mouvements de caméra continus déclenchent le détecteur à chaque image.

Exécutez tout le balayage en un seul passage de décodage avec un StatsManager partagé. La version naïve re-décode par seuil, ce qui sur une source à 60 ips fait la différence entre quelques secondes et plusieurs minutes.

Calques de Fusion : Actifs, Pas des Captures d'Écran

Une image fixe est une image entière — la composer ne fait que mettre une deuxième image par-dessus. Un calque est le vocabulaire graphique de la référence (reflets, traînées, fragments de glitch) extrait sur fond noir afin qu'il se fonde par écran sans keying.

Deux pièges, tous deux rencontrés sur du matériel réel :

  1. Les seuils absolus échouent. Sur une référence lumineuse, une sélection L>55 ET chroma>12 prend environ 90% de l'image, et le "calque" est l'image — y compris un visage reconnaissable. Sélectionnez par centile (~top 3%) et rejetez tout calque couvrant plus d'environ 22% de l'image.
  2. Classez par séparation, pas par luminosité. "Part de pixels saturés lumineux" classe une image délavée en haut et une image noire avec un seul reflet intense — la signature réelle — près du bas. Notez p99.5(énergie) / médiane(énergie).

Masquez également avant de noter : la typographie incrustée est lumineuse, saturée et à fort contraste, donc une exécution non masquée donne un calque parfait du titre de quelqu'un d'autre.

Ancrage du VLM

Introduisez les mesures dans le prompt système avant de demander une description. Sans ancrage, un VLM rapportera "aucun étalonnage apparent, neutre" sur une séquence avec une dominante a* de +24,9. Ancré, il décrit correctement la dominante et déduit l'accent secondaire indépendamment.

Interdisez les mots de modulation (varié, mixte, dynamique, certain, souvent, neutre, ou) — un modèle ne peut pas rendre "éclairage varié". Appliquez l'interdiction dans le code, pas seulement dans le prompt : elle était violée environ une fois sur trois exécutions. Re-demander champ par champ, gardez la réponse la moins modulée après N tentatives plutôt que d'échouer.

Mise en garde à mentionner à l'utilisateur : une fois le cahier des charges ancré dans les mesures, il ne constitue plus une vérification indépendante de celles-ci.

Pièges de la Cuisson LUT

  • Une LUT ne peut encoder qu'une fonction RVB par pixel. Tout ce qui dépend de la distribution (matching d'histogramme, ancres de centile) doit être réduit à une constante avant la cuisson, sinon cela mesure silencieusement la grille LUT uniforme au lieu de la séquence.
  • cv2.cvtColor(LAB2RGB) écrète en interne, donc un test hors gamme l'utilisant rapporte 0%. Convertissez Lab→sRGB linéaire à la main ; une mesure réelle était à 83,3% hors gamme.
  • Transférez la chroma par décalage, pas par affine. L'affine divise par le σ source et dépasse — sur une séquence réelle, il a inversé b* à +11,6 contre une cible de −17,5. Le décalage a fait passer la MAE de 6,23 à 2,13.
  • La compression de gamme a coûté 3,8x le temps d'exécution pour une MAE identique. Rendez-la optionnelle.

Anti-Patterns

Ne pas fairePourquoi
Régler sur des séquences de test synthétiquesA coûté quatre conclusions erronées distinctes sur un projet ; la séquence réelle a toutes renversées
Faire confiance à la MAE seule1,88 MAE ressemblait à un succès sur une image visiblement cassée
Utiliser la moyenne/écart type pour la chromaAsymétrique à droite ; pousse ~3x trop fort
Comparer uniquement les zones d'extrémitéLes deux extrémités sont presque neutres par construction
Décrire le look et s'arrêterLe cahier des charges est pour le contenu et la structure ; le pack est pour la couleur

Passage de Relais

Le pack est l'interface. Une fois qu'il existe, utilisez la compétence taste-application pour générer et assembler par rapport à lui, ou donnez look.cube directement à un coloriste.

Code Inclus

scripts/ dans cette compétence est une implémentation fonctionnelle, pas du pseudo-code. Elle n'a pas d'hypothèses spécifiques au projet : pointez-la vers n'importe quelles vidéos de référence et elle produit un pack.

pip install -r scripts/requirements.txt
export FAL_KEY=...            # nécessaire uniquement pour les étapes qui appellent fal

Chaque appel réseau est bouchonné sous TASTE_FORGE_DRY_RUN=1 ou --dry-run, donc le plan, les prompts, la disposition des pistes et le manifeste peuvent être inspectés sans dépenses.

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/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

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.

Skills associés