Communitygithub.com

テイスト蒸留

リファレンス動画群を測定し、再利用可能なスタイルパック(3D LUTによるカラーグレード、ショット長分布によるカットリズム、ヒーロースチル、スクリーンブレンド用オーバーレイプレート、生成モデル用テキストスペック)に変換します。ユーザーがリファレンスのルックをキャプチャしたい、再現可能なルックを構築したい、リファレンスからアセットを生成したい、または誰かのルックを再現したい場合に使用します。

テイスト蒸留 とは?

Taste Distillationは、リファレンス動画の視覚的スタイルを測定し、構造化された「スタイルパック」として出力するスタンドアロンスキルです。このスキルは、プロンプトによるカラーグレードの限界を克服するために設計されています。実際の測定データに基づけば、プロンプトで色を指定するよりも、測定されたLUTを適用した方がはるかに正確でコスト効率が良いことが実証されています。パックには、33^3 LUT、ショット長分布、統計情報、VLMによる説明文、キーフレームのスチル、オーバーレイプレート、GLBメッシュが含まれます。測定は純粋に数値解析(mint.py)と1回のVLM呼び出し(distill.py)で行われ、ネットワーク不要で決定論的です。このスキルは、特定のプラットフォームに依存せず、リファレンス動画があればすぐに使用できます。出力されたパックは、後続の編集工程(taste-applicationスキル)や、カラリストへの直接ハンドオフに使用できます。

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

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

テイスト蒸留 は何をしますか?

このスタンドアロンスキルは、その実装を scripts/ ディレクトリに同梱しています。生成結果またはローカルテイク編集には taste-application スキルを使用してください。各名前付きジャンルは、それぞれ独自のパックに保持してください。Flash Ethereal の測定値を、Fluid Sketch や 3D Cyber Glitch に無断で再利用してはなりません。測定値のゼロは有効なデータです。フィールドが存在しない場合と区別してください。

ローカル依存関係は scripts/requirements.txt にあります。個別に認可されたプロバイダーワークには、追加で scripts/requirements-live.txt、認証情報、および明示的な TASTE_FORGE_ALLOW_LIVE=1 が必要です。--dry-run は認証情報を読み取ったり、ジョブを送信したりしません。ワークフローがローカルエンドポイント名から保存されたと推測しないでください。実際のプロバイダー側のワークフローまたはリクエストの証拠を使用してください。

リファレンス動画をスタイルパック(後続のステージで決定論的に消費される、測定値とアセットのフォルダ)に変換します。

アクティブにするタイミング

  • 「これらのクリップのルックをキャプチャする」/「雰囲気を蒸留する」/「これを再現可能にする」
  • ユーザーがリファレンス映像を持っており、LUT、グレード、またはマッチするテンポを必要としている
  • ジャンルごとに分割されたルックのライブラリを構築している
  • 「プロンプトでスタイルを説明する」以外の回答が必要なリクエスト

核心的な発見

プロンプトではグレードを実現できません。測定なら可能です。

実際の映像で測定した結果:段階的な色方向指定を行った3回の有料生成では、ミッドトーン a* が +1.9 → +2.8 → +0.3 と変化したのに対し、ターゲットは +24.9 でした。また、コントラストはターゲット 34.7 に対して約19からほとんど動きませんでした。測定されたパックを同じ映像に適用すると、1回の決定論的パスで、クロマMAE 1.88、コントラスト 33.7 を無料で達成しました。

つまり、分割は次の通りです:モデルはコンテンツ、モーション、照明構造を提供し、パックはルックを提供します。 生成プロンプト内の色に関する単語は役に立たないどころか、コストがかかり、LUTが求めるニュートラルベースからレンダリングを遠ざけます。プロンプトでそれを明示的に述べてください:「色指定:なし。ニュートラルにレンダリング。グレーディングは後から適用します。」

パックの内容

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       マニフェスト

実行方法

python mint.py --genre <name> --refs a.mov b.mov c.mov     # オフライン、APIキー不要
python distill.py --genre <name>                            # 1回のVLM呼び出し

mint.py は純粋な数値解析です。ネットワーク不要、キー不要、決定論的なので、パックはバックアップではなく再生成できます。

重要な測定項目

クロマは輝度ゾーンごとに、グローバルではなく

カラーのアイデンティティは通常、1つの輝度帯に存在します。グローバルなa*/b*オフセットは、数学的に分割トーンを表現できません。ゾーン内でクロマを測定します(L* edges [0,15,35,55,75,100])。

実際のシグネチャ:L25でバイオレット(a +24.9、b* −17.5)、両端でほぼニュートラル。最も暗いゾーンと最も明るいゾーンのみを報告すると、それは「均一なキャスト」と呼ばれます。常に曲線全体を出力してください。

中央値 + MAD、平均値 + 標準偏差ではなく

実際のリファレンスセットにおけるクロマは、強い右裾分布を示します。実際のリールでは、ミッドトーンクロマの平均値は36.9でしたが、中央値は17.5でした。そのため、平均値ベースのLUTは、素材が正当化するよりも約3倍強い色を適用してしまいます。

コントラストはstd(L*)、白から黒を引いた値ではない

白−黒の範囲は、ほとんどの実際の映像で約100であり、何も識別できません。

背景シェアは第一級の統計量

L*10未満のピクセルの割合を記録します。分布のモーメントではそれを捉えられません。クリップは正しい平均、標準偏差、クロマを保持しながら、黒がグレーに持ち上げられている可能性があります。これはまさに、あるグレードがMAE 1.88 / コントラスト 33.7 を記録しながら、実際のフレームが濁った紫色の混乱だった理由です。

測定前にインターフェースをマスクする

スクリーンレコードされたリファレンスには、静的な家具(レターボックスバー、ステータスバー、いいねアイコン、キャプションテキスト)が含まれています。これらはすべて、それがルックであるかのように統計に影響します。黒いバーはシャドウの重みを増大させ、赤いハートはa*をマゼンタ方向に歪めます。時間的分散はこれらをきれいに分離します。映像は動き、インターフェースは動きません。そのため、手動で調整されたクロップは不要です。実際の素材では、これにより約65%のピクセルが保持されます。

カデンスには適応的閾値が必要

適切なコンテンツ検出器の閾値は素材に依存します。ハイコントラストのアクションリファレンスは30でも十分にカットを検出しますが、ムーディーなリファレンスはその下にカットを隠します。降順の閾値をスイープし、最も感度の高い設定で見つかるショットの≥90%を依然として回復する最も高い閾値を採用します。これにより、ノイズよりも実際のカットに偏ります。不合理なカット率(>100/分)を暗示する閾値は拒否します。連続的なカメラ移動は、検出器を毎フレーム誤動作させます。

スイープ全体を共有の StatsManager による1回のデコードパスで実行します。ナイーブなバージョンは閾値ごとに再デコードするため、60fpsソースでは秒と分の差が生じます。

オーバーレイプレート:スクリーンショットではなくアセット

スチルはフレーム全体です。スチルを合成すると、ただ別の画像を上に重ねるだけです。プレートは、リファレンスのグラフィックボキャブラリ(フレア、ストリーク、グリッチフラグメント)を黒ベースに抽出したもので、キーイングなしでスクリーンブレンドできます。

実際の素材で遭遇した2つの落とし穴:

  1. 絶対閾値は失敗する。 明るいリファレンスでは、L>55 AND chroma>12 の選択範囲がフレームの約90%を占め、「プレート」は画像そのものになります。認識可能な顔も含まれます。パーセンタイル(約上位3%)で選択し、フレームの約22%以上を覆うプレートは拒否します。
  2. 明るさではなく、分離度でランク付けする。 「明るく飽和したピクセルの割合」でランク付けすると、くすんだフレームが上位になり、1つの強烈なフレアがある黒いフレーム(実際のシグネチャ)が下位になります。スコアは p99.5(energy) / median(energy) を使用します。

また、スコアリング前にマスクします。焼き付きタイポグラフィは明るく、飽和しており、ハイコントラストです。そのため、マスクなしの実行では、誰かのタイトルカードの完璧なプレートが生成されます。

VLMのグラウンディング

説明を求める前に、測定値をシステムプロンプトにフィードします。グラウンディングされていない場合、VLMは +24.9のa*キャストがある映像に対して「カラーグレーディングなし、ニュートラル」と報告します。グラウンディングされていれば、キャストを正しく説明し、セカンダリアクセントを独立して推測します。

曖昧な単語(varied、mixed、dynamic、some、often、neutral、or)を禁止します。モデルは「変化に富んだ照明」をレンダリングできません。コードで禁止を強制し、プロンプトだけに頼らないでください。 おおよそ3回に1回の実行で違反が発生していました。フィールドごとに再質問し、N回の試行後に最も曖昧でない回答を保持し、失敗しないようにします。

ユーザーに伝えるべき注意点:仕様が測定値にグラウンディングされると、それはもはや測定値に対する独立したチェックではなくなります。

LUTベイク処理の注意点

  • LUTはピクセルごとのRGB関数のみエンコードできます。分布に依存するもの(ヒストグラムマッチング、パーセンタイルアンカー)は、ベイク処理前に定数に減らす必要があります。そうしないと、映像ではなく均一なLUTグリッドを静かに測定することになります。
  • cv2.cvtColor(LAB2RGB) は内部的にクランプするため、それを使用した色域外テストは0%を報告します。手動でLab→線形sRGBに変換してください。実際の測定では83.3%が色域外でした。
  • クロマ転送はオフセットで行い、アフィンでは行わないでください。アフィンはソースのσで割るため、オーバーシュートします。実際の映像では、b*をターゲットの−17.5に対して+11.6に反転させました。オフセットはMAEを6.23から2.13に改善しました。
  • ガマット圧縮は、同一のMAEに対して3.8倍の実行時間を要しました。オプトインにしてください。

アンチパターン

してはいけないこと理由
合成テスト映像に対してチューニングする1つのプロジェクトで4つの誤った結論を招き、実際の映像がそのすべてを覆した
MAEだけを信頼する視覚的に壊れたフレームで1.88のMAEが成功のように見えた
クロマに平均/標準偏差を使用する右裾分布のため、約3倍強くプッシュする
エンドポイントゾーンのみを比較する両端は構築上ほぼニュートラルである
ルックを説明して終了するスペックはコンテンツと構造のため、パックは色のためである

引き継ぎ

パックがインターフェースです。パックが存在すれば、taste-application スキルを使用して生成および組み立てを行うか、look.cube をカラリストに直接渡します。

同梱コード

このスキルの 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/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.

関連スキル