Communitygithub.com

テイストアプリケーション

蒸留されたスタイルパックに対して新しい動画を生成し、完成作品に編集します。プランニングは参照動画から取得します。

テイストアプリケーション とは?

このスキルは、AI動画パイプラインの後半部分を担当し、「テイスト蒸留 (taste-distillation)」で測定・抽出されたスタイルパックをもとに、新しい動画を生成・編集して完成作品に仕上げます。パイプライン全体は、mint(発行)→ distill(蒸留)→ mint3d(3D生成)→ apply(適用)→ forge(鍛造)→ verify(検証)の順で動作し、最初の3ステージはキャッシュされるため、ブリーフ(指示)の反復試行では再測定が発生しません。 主な機能として、`scripts/pipeline.py` スクリプトを使用した、スタイルパックと参照動画に基づく動画生成・編集を行います。`--duration` は最善努力のカデンツ目標であり、正確な実行時間ではありません。出力は実際の `duration` と `duration_contract`(要求時間と実際の時間、不足、超過、カデンツ目標ポリシーを含む)をマニフェストに記録します。また、Blender での3Dレンダリング、Resolve でのオーバーレイ配置、fal プラットフォームのエンドポイント利用など、多様な出力手段をサポートしています。 スキルは、生成モデルが「内容・動き・構図・照明構造」を提供し、スタイルパックが「色・リズム」を提供するという明確な役割分担を前提としています。そのため、プロンプトに色彩表現を含めることや、1ショットごとに個別生成することはアンチパターンとされています。代わりに、複数ショットをまとめたテイク(約5秒)を生成し、その中から編集で切り出すことで効率を最大化します。また、カット編集時には「再エンコード必須(ストリームコピー禁止)」「参照動画のショット長分布をサンプリング」などの厳格なルールを遵守します。

対応~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/taste-application

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

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

ドキュメント

テイストアプリケーション は何をしますか?

パイプラインの後半部分です。taste-distillation は参照動画を測定し、 スタイルパックに変換します。ここではそのパックに対して生成を行い、結果をカットします。

実行と納品契約

オリジナルの実装は scripts/ に同梱されており、別途 ito-video チェックアウトは 必要ありません。ローカル処理には scripts/requirements.txt をインストールしてください。 プロバイダー実行時のみ scripts/requirements-live.txt をインストールします。 ライブでのアップロード、送信、ダウンロードには、認証情報に加えて明示的な TASTE_FORGE_ALLOW_LIVE=1 が必要です。ユーザーの承認された実行のみに設定してください。 --dry-run は認証情報不要で、ラベル付きプレースホルダーを生成します。 あいまいなプロバイダータイムアウトは、新たな有料ジョブとして再試行されません。 プロバイダーリクエストを検査してから、別の送信が正当かどうかを判断してください。

プロバイダー呼び出しなしで、既存の完成テイクを使用します:

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 は最善努力のカデンツ目標であり、正確な実行時間ではありません。 完成したショットは、意図した時間より短いまたは長い編集になる場合があります。 アセンブラーはクリップを複製したり、パディングを追加して目標に合わせることはしません。 出力マニフェストは実際の duration を保持し、要求時間と実際の時間、不足、超過、 および cadence_target ポリシーを含む duration_contract を追加します。 少なくとも出力フレーム1つ分の差は明示的に警告されます。 正確な再生時間モードは提供されていません。正確な実行時間が必要な場合は、 レシートを検査し、納品前にカットを修正または却下してください。

パイプラインは、編集可能な FCPXML と EDL がそれらを参照するため、 各実行のグレーディング済みショットファイルを保持します。 出力の衝突を拒否し、タイムラインエクスポートの失敗を報告します。 完了したレンダリングは、保存されたエディタープロジェクトやクリエイティブな承認ではありません。 ライブ編集の前後で、ソースアセットとバージョン管理されたプロジェクトチェックポイントを 保存してください。保存されたパスとダイジェストは、インメモリのタイムラインレシートとは 別に記録します。

クローン可能な Fal グラフとそのオフライン入力コンパイラは、 workflows/README.md に文書化されています。 送信前にブリーフとスタイルの方向性をコンパイルしてください。 切断されたスキーマフィールドがモデルプロンプトに影響すると想定しないでください。 有料実行の前に、現在のエンドポイントフィールドを実際のプロバイダーに対して検証してください。

Blender では、テクスチャ付きの完全なソース GLB を使用してください。 リトポロジーは別名の派生であり、そのソースを決して置き換えません。 blender_prop.py は明示的な --width 1920 --height 1080 --fps 30 --receipt receipt.json を サポートし、パック由来のリムライティングとマテリアルテクスチャを保持します。 シーンを保存することはレンダリングとは異なります。レシートの状態とパックされた画像を検査してください。

Resolve オーバーレイでは、明示的に選択されバージョン管理されたターゲットから 注入されたオブジェクトを使用して taste.resolve.apply_placements を使用します。 source_end_mode をそのホストで検証された規則に設定します。 Resolve のバージョン間でソース終了が包括的であると想定しないでください。 アダプターは、保存されたトラックの上に重なるエフェクトを割り当て、 すべての配置を即座にチェックし、すべての追加後に再度チェックします。 複合整数はインストールされた API と一致する必要があります。 検証済みの Studio 21 ホストでは、Screen は 5 であり、 歴史的なビルダーの誤った 22 ではありません。 レシートはインメモリ配置のみを証明します。 プロジェクトを保存し、そのチェックポイントを検証してから、 正確なレンダリング出力を検査して納品を報告してください。

起動タイミング

  • 「このスタイルで動画を作成」/「パックを適用」/「このフッテージを補完」
  • 生成されたクリップを、実際の編集リズムを持つものに組み立てる
  • ルックから3Dプロップを作成し、動画に戻す
  • 完成作品が実際に参照と一致することを確認する

役割分担

モデルは内容、動き、フレーミング、照明構造を提供します。パックは色とリズムを提供します。 これはスタイルの好みではなく測定値です — 詳細は taste-distillation を参照してください。 実際的な結果:

  • 生成プロンプトには色の表現を一切含めません。 「色:なし。ニュートラルにレンダリング。グレーディングは後で適用。」 を追加します。
  • 2つの別々のフラグを維持します:--brief(何が起こるか:被写体、動作、場所) と --style-steer(どのように見えるか)。これらを統合すると、スタイルの単語がシーンに 漏れ出し(「ティール」がティール色のオブジェクトになる)、被写体の単語がグレードに漏れ出します。
  • モデルは局所的でチェック可能なルールに、グローバルなルールよりもはるかによく応答します。 「背景は純粋な黒で照明なし。被写体は白に向かって明るくなる」は機能します。 「極端なコントラスト」は機能しません。

ショットではなくテイクを生成

「カデンツに合わせる」という明白な解釈は、1ショットにつき1回の生成です。 それは経済的に不合理です。平均 0.78 秒/ショットの参照を、4秒フロアのエンドポイントに対して 使用すると、10秒の作品が12回の呼び出し、10秒使用のために48秒生成(21% 効率) となり、 連続して見えるべき12の無関係なクリップを継ぎ接ぎすることになります。

編集者は長めのテイクを撮り、その中でカットします。ショットを約5秒のテイクにグループ化: 3回の呼び出し、13秒生成、77% 効率、そして同じ生成から得られたため、 互いに実際に属する連続したショットが得られます。

必要な形状をモデルに伝えないと、スローでロックされたプッシュがレンダリングされ、 その中の6回のカットは吃音として読み取れます:

「内部にハードカットのない、単一の連続テイクとして撮影。 編集で約0.8秒の6つの部分にカットされるため、フレーミング、被写体、照明は 全体を通して変化し続ける必要があります。任意の0.8秒のウィンドウが、 それ自体のショットとして独立して成立する必要があります。」

カットルール

  • 再エンコード必須。ストリームコピー禁止。 ストリームコピーはキーフレームでのみカットします。 0.78秒では、ショット長はすべての境界を最も近いGOPに丸め、パイプラインが存在する まさにそのものを破壊します。
  • 既存のフッテージを補完する場合、そのショット境界を使用します。 ベース動画を連続したピースにスライスし、順に再生すると、元の動画を再構成するだけです。 すべての「カット」はショットの途中で発生し、見えません。測定では、 20ショットのアセンブリで検出されたカットはわずか12でした。実際の境界を検出し、 連続する選択が確実に不連続になるようにN個ごとに取得します。これにより、 カット測定値が0.78秒の目標に対して1.29秒から0.83秒に改善されました。
  • ショット長を参照の分布からサンプリングし、平均からではありません。 これにより、カットは均等なクリップに平坦化される代わりに、リズムのばらつきを継承します。

グレーディングルール

  • 焼き込みLUTよりも直接測定:クリップを測定し、そのL* CDFに一致させ、 ゾーンクロマを適用します。grade_clip_direct は MAE 1.58、コントラスト 34.0(目標 34.7 に対して)を達成しました。
  • クリップのヒストグラムが参照と異なる場合は、CDF一致ではなくアンカリング。 68% 黒の生成クリップをビジーな参照ヒストグラムに強制すると、背景全体が黒から持ち上げられました。 背景保存率は 26.0%(CDF)対 69.0%(アンカー)に低下しました。MAEとコントラストは どちらも依然として優れていました。デフォルトはアンカートーンです。
  • バッチサイズは重要です。 48フレームを一度にグレーディングするとプロセスがOOMで強制終了されました。 6が安全です。

復元されたfalプラットフォームの動作

これらの観察結果とエンドポイント例は、復元されたワークフローからのものです。 現在のエンドポイントメタデータを再確認してください。これらは将来のすべてのプロバイダーバージョンについて 保証するものではありません。バンドルされたグラフテンプレートは、個別に検証されたワークフロー入力( 明示的な生成オーディオ制御を含む)を記録しています。

これらを発見するには実際の時間がかかります。グラフを設計する前にチェックしてください。

制限詳細
3Dレンダラーは一切なしfalには image-to-3d、text-to-3d、3d-to-3d しかありません。すべての 3d-to-3d エンドポイントは別のメッシュを出力します。3d-to-image/3d-to-video カテゴリは存在しないため、生成されたGLBはfalの動画グラフに再入力できません。ローカルでレンダリングし、fal-ai/ffmpeg-api/images-to-video を使用してください。
composeはオーバーレイ不可fal-ai/ffmpeg-api/compose は2番目のトラックを拒否します:「複数の動画トラックはサポートされていません」 — そして image トラックを動画トラックとしてカウントします。1つの動画トラックのみをシーケンスします。ffmpegでローカルに合成してください。
composeのキーフレームはミリ秒応答にはそのように記載されていません。秒単位で送信された実行は受け入れられ、1000倍短い動画を返します。
extract-frameは最初/中間/最後のみ提供任意のタイムスタンプはありません。3つを3つの異なる条件付け画像として使用します。
DAGにループや文字列連結なしショットごとのファンアウトは、ノードごとに作成するか、ローカルに保持する必要があります。
Kling 3.0にreference-to-videoなしv3ラインはテキスト/画像/モーションコントロールのみ。reference-to-videoは o3 ラインにあります:fal-ai/kling-video/o3/pro/reference-to-video。
プレフィックスは統一されていないbytedance/*、tripo3d/*、meshy/*、minimax/*、openai/* には fal-ai/ プレフィックスがありません。kling-video、veo3.1、flux-*、hunyuan-3d、ffmpeg-api にはあります。

エンドポイントの選択

スロットベストコスト重視の代替
reference→videobytedance/seedance-2.5/reference-to-video(~$0.473/秒 @720p)fal-ai/kling-video/o3/pro/reference-to-video(~$0.112/秒)
image→3Dfal-ai/hunyuan-3d/v3.1/pro/image-to-3d($0.375、最大8ビュー)tripo3d/h3.1/image-to-3d($0.20)
text→3Dfal-ai/hunyuan-3d/v3.1/pro/text-to-3dtripo3d/h3.1/text-to-3d
リトポロジーfal-ai/hunyuan-3d/v3.1/smart-topology($0.75)tripo3d/tripo/remesh(約75倍安い)
パーツ分割fal-ai/hunyuan-3d/v3.1/part(FBXのみ)tripo3d/tripo/segment
text→imagefal-ai/nano-banana-pro($0.15定額)fal-ai/flux-2-pro($0.03/MP)

Seedance は同じ5秒で Kling o3 の約4倍の価格です。これはマルチリファレンスの忠実度(最大50の画像/動画/音声参照を混在)で価値を発揮し、 単一の静止画で条件付けする場合には価値を発揮しません。

モデルIDと価格は変動します。それらを約束する前に、fal.ai/models で確認してください。

3Dブランチ

python mint3d.py --genre <name> --from-stills 4 --retopo --render
python mint3d.py --genre <name> --prompt "a cracked chrome visor" --render
  • 最初にクリーンプレートを生成。参照静止画から取得しないでください。 エンドポイントの入力要件は、シンプルな背景、単一オブジェクト、オブジェクトがフレームの50%以上です。 参照リールはその逆(コラージュ、ワイドショット、複数の被写体、焼き込みグラフィック)であり、 彫刻ノイズを生成します。テキスト→単一オブジェクトプレート→メッシュは約$0.15余分にかかりますが、 使用可能なメッシュと破棄されるメッシュの違いです。
  • マルチビューは角度ごとの名前付きフィールドであり、リストではありません。 input_image_url(前面、必須)、その後 back_image_url、left_image_url、right_image_url、 left_front_image_url、right_front_image_url、top_image_url、 bottom_image_url。input_image_urls や multi_view フラグはありません — それらを発明すると、動作しているように見せかけながら、すべてのミントをシングルビューに劣化させます。 間違った角度ラベルは、ビューを省略するよりも悪いです。モデルがそれを信頼するからです。
  • GLBを位置ではなくキーで指定します。 応答には thumbnail PNG と model_urls ブロックが model_glb と共に含まれます。 最初のURLを取得することは、キーが並び替えられるまでしか機能せず、プレビューPNGは正常に ダウンロードされるため、Blenderがそれを開くことを拒否するまで何も失敗しません。
  • PBRマップを要求します。 それらがないと、メッシュは塗装されたボール紙のようにライティングされます。
  • リトポロジー化は、誰かが編集またはリギングする場合に行います。 生成されたメッシュは密度が高く、混沌としています。
  • ローカルでレンダリングしてループを閉じます。 ターンテーブルがフレームになれば、それはフッテージであり、下流のすべてのステージは すでにフッテージを処理します — グレーディング、カット、エレメントとしてのスクリーニング、 または条件付け参照としてのアップロード。バイナリがPATHにある場合はBlenderを使用します。 デフォルトとして依存関係の軽いソフトウェアラスタライザーを維持します。 ヘッドレスGLコンテキストは、コンテナで最も一般的に欠落しているものであり、 ワークステーションでしか動作しないレンダラーはパイプラインの一部ではありません。

検証してから信頼

他のすべてのステージは結果を主張します。それをチェックし、モーメントだけでなく分布形状をチェックします:

  • background — L*10未満のフレームの割合、パックの数値と比較します。 参照と比較し、ソースクリップとは比較しません:68%黒の生成ソースは、 24~55%の帯域のどの参照よりも黒いため、「ソースの黒を保存する」は間違ったことを要求し、 同様に持ち上げられたグレードを許容します。
  • chroma_mae — ゾーンごとのa*/b*誤差、中央値を使用します(パックのターゲットが 測定された方法と一致します。ここで平均を使用すると、歪みに敏感な統計をロバストな統計と比較し、 定義の不一致を誤差として報告します)。
  • contrast / black_point / white_point
  • banding — 占有されているL*ヒストグラムビンの間の空のビン。 空のビンの総数をカウントすることは機能しません:正当に暗いクリップには空のハイライトビンがあります。
  • cadence — 検出された平均ショット長と参照の比較。

単位の罠に注意:OpenCVはdtypeによってLabの規則を変更します。float32では、 Lは0~100、a/bは符号付きです。uint8では、Lは0~255、a*/b*は+128バイアスされます。 これらを混在させると、数百のクロマ誤差が報告されます。

完全なチェーン

python pipeline.py --genre <name> --refs a.mov b.mov \
  --brief "what happens" --duration 12 \
  --base-video existing.mp4 --out out/FINAL.mp4

mint → distill → (mint3d) → apply → forge → verify。ステージ1~3はキャッシュされるため、 ブリーフの反復で再測定は発生しません。--dry-run はすべてのネットワーク呼び出しをスタブします。 計画、プロンプト、トラックレイアウト、マニフェストはすべて引き続き実行されます。

アンチパターン

避けるべきこと理由
ショットごとに1回生成21% 効率、12の無関係なクリップ
プロンプトに色を入れる機能しないと測定済み。LUTが求めるニュートラルベースから遠ざかる
カットをストリームコピーキーフレームのみの境界がサブ秒のリズムを破壊
ベース動画を連続してカット元の動画を再構成。すべてのカットが見えない
composeがオーバーレイできると信じるできない。2番目のトラックを拒否
秒をcomposeに送信黙って1000倍短くなる
MAEだけで納品背景シェアのチェックを追加

借用したフッテージはキャプチャアプリのUIを引き継ぐ

納品されたカットで見つかった最悪の欠陥:完成した動画が、他の誰かの「いいね」ボタン、 ビューカウンター、コメントバブルをそのまま表示していた。なぜならベース

…(省略)

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.

関連スキル