mcpField
F
fan-cam

fan-cam

github.com/fal-ai-communityクリエイティブ・メディア257274 回インストール24 週間前に更新
リポジトリ

fan-cam について

fan-camは、人物写真とイベント情報から、スポーツ中継風の観客動画を作るgenmedia CLI向けスキルです。画像編集から動画生成までの手順と、プロンプトや品質の要件を定めています。

主な機能

  1. 01写真を中継風の観客フレームに変換
  2. 02Klingでフレームを動画化
  3. 03イベントに沿った場面と反応の設計
  4. 04中継オーバーレイとプロンプトの指定
  5. 05モデルのエンドポイントと設定の確認

活用シーン

  1. 01歓喜や緊張を示す観客動画の作成
  2. 02人物写真をスポーツ中継の場面に配置

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/fal-ai-community/skills --skill fan-cam

インストール後、Claude Code で/fan-camを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
examples.md
genmedia-commands.md
prompt-contract.md

詳細

genmedia を使ったファンカム映像の制作

ユーザーが、実際のスポーツ中継で観客を映すカットのような、パーソナライズされた観戦動画を希望する場合に、このスキルを使用します。通常、入力として必要なのは、人物の写真1枚、イベントの詳細、希望するリアクションや状況です。

ランタイムには genmedia CLI を使用します。コマンド構文については、genmedia スキルを使用してください。エンドポイントの選択、モデル固有のプロンプト作成、またはパイプライン実行の詳細が重要な場合は、model-routing、fal-prompting、genmedia-workflow を読み込んでください。

プライベートな例、ローカルファイルのパス、ユーザー固有のワークフロー名、会話固有の詳細をプロンプトやドキュメントに含めないでください。このスキルは汎用的な内容にしてください。

参照資料

必要なものだけを読み込んでください。

  • 画像プロンプトと Kling のプロンプトのルールについては、references/prompt-contract.md を参照してください。
  • 実行可能な CLI コマンドのパターンについては、references/genmedia-commands.md を参照してください。
  • スポーツ別の例については、references/examples.md を参照してください。

必要な入力

実行内容に影響する不足情報だけを質問してください。

  • ユーザーの写真:ローカルパスまたは URL。人物の識別に使う参照画像です。
  • イベントの詳細:スポーツ、対戦カード、会場、リーグ、中継の状況、服装、スコアボードの案、観客の様子、具体的なシナリオ。
  • リアクションや状況:興奮している、嬉しそう、笑っている、悲しんでいる、無表情、怒っている、驚いている、緊張している、集中している、食事中、よそ見をしている、カメラに映ったことに気づいた、スタジアムのスクリーンに気づいた、祝っている、がっかりしている、またはユーザーが指定したその他の瞬間。
  • 予算や品質の希望は、ユーザーが明示的に低コスト、プレビュー、またはネイティブ 4K の最終出力を希望した場合にのみ確認してください。それ以外の場合は、標準のファンカム設定を使用してください。GPT Image 2 で quality=high を指定して 3840x2160 のフレームを編集し、その後 Kling v3 Pro を使用します。

ユーザーがローカル画像のパスを指定した場合は、genmedia upload で一度アップロードし、返された URL を再利用してください。参照画像が複数ある場合は、最初の人物画像を識別用の参照画像とし、後続の画像は会場、中継、またはスタイリングの任意の参照画像として扱ってください。

ユーザーの写真は人物の識別用の参照画像であり、Kling ですぐに使える開始フレームではありません。ユーザーが人物の写真を提供したという理由だけで、GPT Image 2 による編集を省略しないでください。パーソナライズされたファンカムでは、まず openai/gpt-image-2/edit を使って人物をリアルな 16:9 の中継シーンに配置し、その後、承認済みの生成フレームを Kling の start_image_url として使用してください。

パイプライン

デフォルトのグラフ:

photo URL -> prompt planning -> GPT Image 2 edit frame -> optional compression -> Kling v3 image-to-video -> downloaded video manifest

入力が一般的な人物写真の場合、GPT Image 2 による編集フレームが必須です。すでに承認済みの 16:9 の中継風ファンカムフレームをユーザーが明示的に提供し、そのフレームをアニメーション化するよう求めた場合に限り、この手順を省略できます。

計画手順は、このスキルを使ってエージェントが実行します。ユーザーがホスト型プランナーを明示的に求めた場合を除き、プロンプト作成だけを目的に別の LLM エンドポイントを呼び出さないでください。画像プロンプトと Kling のマルチプロンプトは、直接作成してください。

エンドポイントの選択

使用前に、必ずエンドポイントを確認してください。

genmedia models --endpoint_id openai/gpt-image-2/edit --json
genmedia models --endpoint_id fal-ai/kling-video/v3/standard/image-to-video --json
genmedia models --endpoint_id fal-ai/kling-video/v3/pro/image-to-video --json
genmedia models --endpoint_id fal-ai/kling-video/v3/4k/image-to-video --json

実行前にスキーマを確認してください。

genmedia schema openai/gpt-image-2/edit --json
genmedia schema fal-ai/kling-video/v3/pro/image-to-video --format openapi --json

Kling v3 の画像から動画へのエンドポイントでは、コンパクトなスキーマ出力に multi_prompt、start_image_url、duration、prompt、elements、shot_type、negative_prompt、cfg_scale などのトップレベルフィールドが含まれない場合があるため、--format openapi を使用してください。

コストが重要な場合は、価格を確認してください。

genmedia pricing openai/gpt-image-2/edit --json
genmedia pricing fal-ai/kling-video/v3/standard/image-to-video --json
genmedia pricing fal-ai/kling-video/v3/pro/image-to-video --json
genmedia pricing fal-ai/kling-video/v3/4k/image-to-video --json
GPT Image 2 の品質選択
  • パーソナライズされたファンカムフレームでは、デフォルトで quality=high を使用してください。GPT Image 2 の料金は low と high で大きく異なりますが、ファンカムでの人物の再現、中継シーンへの統合、読みやすいオーバーレイには、より高品質なデフォルト設定が必要です。
  • quality=low は、ユーザーが明示的に低コスト、プレビュー、高速な反復、または低コストのソーシャルメディア用の下書きを希望した場合に限り使用してください。
  • 透明性またはロスレス出力が必要な場合を除き、生成した中継フレームには output_format=jpeg を使用してください。
  • デフォルトでは 16:9 の 4K フレームサイズを使用してください。
{"width":3840,"height":2160}
Kling v3 の選択

依頼内容に基づいてエンドポイントを選択します。

  • fal-ai/kling-video/v3/pro/image-to-video:ファンカムのデフォルトエンドポイントです。通常のパーソナライズされたスポーツ中継のカットアウェイ、公開サンプル、またはユーザーが明示的に低コストを求めていない依頼に使用します。
  • fal-ai/kling-video/v3/standard/image-to-video:ユーザーが低コスト、プレビュー、最速での反復、または低価格を明示的に求めた場合にのみ使用します。
  • fal-ai/kling-video/v3/4k/image-to-video:最終版のプレミアム 4K 納品、またはユーザーが 4K 動画を明示的に求めた場合にのみ使用します。事前に料金を確認してください。

記憶だけを頼りに選択しないでください。現在のセッションで genmedia を使って、モデルのステータスとスキーマを確認してください。

ショットと長さの計画

マルチプロンプトの数と長さはエージェントが決定します。

必須ルール:

  • 各マルチプロンプトは 3 秒以上にしてください。
  • 動画の合計時間は 15 秒以内にしてください。
  • マルチプロンプトは 2~5 個にしてください。
  • トップレベルの Kling duration は、すべてのビートの長さの合計に設定してください。
  • 実際のユーザー提供または承認済みのリファレンスが Kling の elements を通じて指定されている場合、すべてのマルチプロンプトで @Element1 を参照してください。プロンプトの形式を満たすためだけに要素を追加で作り出さないでください。
  • Kling の各プロンプトは簡潔にしてください。250~430 文字を目安にしてください。

推奨パターン:

  • シンプルなカットアウェイ:2 ビート、合計 6 秒。
  • 標準的なリアクション:3 ビート、合計 9 秒。
  • 印象的なファンカムの瞬間:4 ビート、合計 12 秒。
  • ストーリーをしっかり描くビート:5 ビート、合計 15 秒。

常に 5 ビートにする必要はありません。状況を明確に表現できる最小の数を選んでください。

シーンの計画

ファンカムは、観客のズーム映像だけである必要はありません。イベントの詳細に基づいてシーンを設計してください。

  • 決定的なポイントを見守る、緊張したファン。
  • 中継カメラに映ったとき、食べたり飲んだりしているサポーター。
  • 自分がスタジアムのスクリーンに映っていることに気付く観客。
  • タイブレーク中に静かな反応を見せるテニス観客。
  • ブザービーターに反応する、バスケットボールのコートに近い下層席のファン。
  • 画面外での追い抜きやクラッシュに反応して振り向く、レースのグランドスタンドの観客。
  • 緊迫したラウンド中の格闘技観客へのカットアウェイ。
  • ユーザーから指定があれば、ウォッチパーティーや e スポーツアリーナでのリアクション。

動画全体を生成されたフレームに沿ったものにしてください。動き、カメラの補正、観客の振る舞い、表情の変化、画面外のイベントによる臨場感を使って一連の流れを作り出してください。

放送ロゴとオーバーレイ

依頼内容に合う場合は、右上に小さなテレビチャンネルのロゴを追加してください。スポーツの種類に合った、放送映像らしい見た目にしてください。ただし、ユーザーが正確な承認済みロゴを提供するか、特定のネットワーク名を明示的に求めない限り、汎用的なものにしてください。

汎用ロゴの例:

  • FOOTBALL LIVE
  • COURT LIVE
  • BASKET LIVE
  • RACE LIVE
  • FIGHT LIVE
  • MATCH CAM

イベントに合わせて、コンパクトなスコアや時間のオーバーレイを使用してください。小さく配置し、映像になじませ、観客より目立たないようにしてください。偽のスポンサー表示、大きな UI グラフィック、不安定なテキスト、フレーム内で主張が強すぎるロゴは避けてください。

画像プロンプトの要件

GPT Image 2 の編集プロンプトでは、次の点を満たす必要があります。

  • アップロードされた写真を、本人確認の参照画像として使用します。
  • 本人の顔、年齢の印象、肌の色、髪、ひげ、メガネ、顔の骨格、左右非対称な特徴、毛穴、しわ、肌のあら、一般的な不完全さをそのまま保ちます。
  • 横長の16:9のライブテレビ放送のスクリーンショットを作成します。
  • その人物を観客席エリアに自然に配置します。
  • 選択したリアクションや状況が、わざとらしくなく見えるようにします。
  • 競技に合った会場、観客、服装、スコアボード、放送用語を含めます。
  • 現実的なテレビ映像の粗さを含めます。軽い圧縮ノイズ、わずかなモーションブラー、中心からずれたトリミング、前景による遮り、ピントの減衰、背景の人物の不完全な描写、会場の自然な照明、小さな露出の不均一さを加えます。
  • 適切な場合は、右上に小さな放送局のロゴ表示を含めます。

画像プロンプトでは、次の表現を避ける必要があります。

  • 美肌レタッチ、AIインフルエンサーの顔、顔の解剖学的特徴の変更、目の拡大、顎の輪郭の強調、顔の細身化、磁器のような肌、ろうのような肌。
  • スタジオポートレート、パスポート写真、自撮り風の構図、人物の孤立、顔の貼り付け、顔の切り抜き、空っぽの背景。
  • 偽のスポンサー表示、過度に大きなロゴ、歪んだスコアボードの文字、ユーザーが求めていない無関係な小道具、CGIの観客、複製された顔、アニメ、漫画。

Kling プロンプトの要件

Kling プロンプトでは、次の点を満たす必要があります。

  • リクエストにユーザー提供または承認済みのKling elements エントリが実際に含まれる場合に限り、すべてのビートで @Element1 を参照します。それ以外の場合は、start_image_url に写っている観客を説明し、追加の要素を作り出さないでください。
  • Kling への送信では、常に generate_audio=true を指定します。このスキルでは generate_audio=false を使用しないでください。
  • multi_prompt を使用する場合は、end_image_url を送信しないでください。Kling は multi_prompt と end_image_url の併用を拒否します。
  • 同一人物、顔、服装、座席エリア、観客、オーバーレイ、照明、放送局のロゴ表示を維持します。
  • 放送映像として現実的な動きを加えます。小さな頭の動き、まばたき、呼吸、わずかな手の動き、食べ物や飲み物を扱うジェスチャー(含まれる場合)、近くのファンの動き、カメラの寄り、パン、横移動、カメラオペレーターによる位置補正、または観客の歓声の高まりを加えます。
  • 競技に固有の表現を使います。「フィールドまたはコート」「スタジアムまたはアリーナ」のような一般的な代替表現は使わないでください。
  • 選択したビートの長さに合わせます。
  • 話し言葉を外部のナレーションにする場合は、写っている観客が話しているように書かないでください。画面外の放送解説者、場内放送の声、または非ダイジェティックなナレーションとして表現し、写っている観客は沈黙し、リップシンクも声に合わせた口の動きもないことを明示します。
  • 顔の変形、美化、不安定なスコアボードの文字、不安定なロゴ、競技の間違い、あり得ない観客の動き、過剰なカメラ移動、突然のシーン切り替えを避けます。

ネガティブプロンプト

次のようなネガティブプロンプトを使用し、必要な場合に限り調整してください。

low quality, smeared face, distorted faces, duplicated face, deformed hands, broken fingers, fake sponsor marks, oversized logos, unstable broadcast logo, watermark, text artifacts, unstable broadcast banner, flickering scoreboard, warped scoreboard text, unreadable names, passport photo, studio portrait, glamour portrait, beauty lighting, AI influencer, beautified face, changed face, enlarged eyes, sharpened jawline, pasted face, face cutout, over-smoothed skin, plastic skin, waxy skin, CGI crowd, cloned crowd, anime, cartoon, excessive camera movement, wrong sport, wrong venue

品質ゲート

返却前に、以下を確認してください。

  • 選択したエンドポイントとスキーマを genmedia で検証しました。
  • ユーザーが明示的にエコノミーまたはプレビュー実行を指定していない限り、GPT Image 2 の編集では quality=high と image_size={"width":3840,"height":2160} を使用しました。
  • 入力が人物写真の場合、Kling を使用する前に GPT Image 2 で編集したフレームを生成し、承認を得ました。元の人物写真をファンカムの開始フレームとして Kling に直接送信していません。
  • ユーザーが明示的にエコノミー/プレビュー、またはネイティブ 4K 動画を指定していない限り、Kling では fal-ai/kling-video/v3/pro/image-to-video を使用しました。
  • マルチプロンプトの各長さは 3 秒以上です。
  • 合計の長さは 15 秒以下です。
  • Kling のトップレベルの長さは、各ビートの長さの合計と一致しています。
  • 実際の Kling elements エントリーを使用する場合、すべてのビートで @Element1 を参照しています。
  • 余分な要素を創作して追加していません。
  • Kling リクエストでは generate_audio=true を使用しています。
  • Kling リクエストで multi_prompt と end_image_url を併用していません。
  • 意図した外部ナレーションを、登場する観客のリップシンクにしていません。口の動きが、カメラに映る人物の声に聞こえないことを確認してください。
  • 生成されたフレームは Kling の画像制限内です。制限を超えている場合は、圧縮してください。
  • 人物は、見た目を美化されることなく、本人と認識できる状態です。
  • 放送局ロゴとスコアボードは、小さく、十分に安定しています。
  • 最終ファイルは --download を使用してダウンロードしました。

エンドポイント ID、リクエスト ID、モデル設定、使用したプロンプト、出力 URL、ダウンロードしたファイル、および目視で確認できる欠陥を含む簡潔なマニフェストを返してください。

コメント