kiss-cam について
kiss-cam は、2枚の参照画像から15秒間のアリーナのキスカム動画を作るスキルです。観客視点の大型ビジョン静止画を生成し、それを先頭フレームに固定した動画に実況と観客の反応を加えます。
主な機能
- 01参照画像を2枚入力
- 02観客視点の大型ビジョン静止画
- 0315秒のアリーナ動画を生成
- 04参照動画の先頭フレームを固定
- 05実況と観客の反応を収録
活用シーン
- 012人の写真から架空のアリーナキスカム動画を作成
- 02イラストやレンダリングのキャラクターを大型ビジョン動画に登場させる
MCP 対応
Pika MCPツールでアセットのアップロード、編集画像と参照動画の生成、非同期タスクの追跡を行います。有料生成の前に残高確認とユーザーの承認が必要です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ pika-labs/ pika-plugins --skill kiss-camインストール後、Claude Code で/kiss-camを入力して読み込まれたか確認します。
詳細
kiss-cam
2 回の呼び出しで構成する pika パイプラインです。観客視点のジャンボトロン静止画(gpt-image-2)を生成し、その静止画を最初のフレームに固定して、アリーナ内の15秒間のキスカム動画を作成します。PAアナウンサーの実況と観客の反応も含まれます(kling-v3-omni)。トレンドの見た目は調整済みです。両方の参照画像をそのまま渡してください。プロンプトにテキストを代入することはありません。被写体はimagesだけで指定します。${subject_a}/${subject_b}のプレースホルダーは使わないでください。ステップ1とステップ2のプロンプトは、そのまま使用するものであり、ひな型ではありません。
前提条件
ホストでpika MCPが利用できること。ツール名のプレフィックスはマウントポイントによって異なるため、ホストが公開しているものを使用してください。必要なツールは、残高確認、アセットのアップロード、画像生成、参照動画生成、および生成がインラインで完了しない場合の非同期ステータス確認です。
費用の事前確認
有料のMCP呼び出しを行う前に、identity_balance({verbose: true})を一度呼び出してください。現在の残高、直近の消費ペース、残りの利用可能期間を提示したうえで、次のメッセージをそのまま使って実行の許可を求めてください。
推定費用:約1,500~3,500クレジット(約15~35ドル)。GPT-image-2によるジャンボトロン静止画1枚、Kling v3-omni proによる15秒動画のレンダリング1~2回(変更したペイロードでのステップ2の修正再試行1回を含む)、および生成後のanalyze_mediaによるQAが含まれます。5ドルを超えるため、続行する場合は
proceed、中止する場合はcancelと返信してください。
ユーザーがproceedと返信するまで、有料のMCPツールを呼び出さないでください。ユーザーがcancelと返信した場合は、生成せずに停止してください。確認はこの1回のみです。proceedの後は、パイプラインを最初から最後まで実行します。
生成前の経過時間ガード
両方の被写体参照URLが解決し、費用確認を通過した時点で、スキルの開始からのタイマーを開始してください。最初の有料生成呼び出しであるステップ1のgenerate_image_editは、スキル開始から5分以内に呼び出す必要があります。スキル開始から5分以内にgenerate_image_editを呼び出せなかった場合は、有料生成を呼び出す前に停止し、これまでの情報とともにfailed_pre_generation_timeoutを報告してください。報告には、被写体URLのステータス、アップロードのステータス、費用確認のステータス、ステップ1のプロンプト準備状況、および具体的な阻害要因を含めてください。ジャンボトロンのプロンプト、カメラの表現、スタイル固定の文言をさらに練り続けないでください。
各準備段階の完了後と、有料生成の呼び出し直前に、次の進捗チェックポイントを1行で出力してください。
ステージ1/3完了 — 被写体の参照を解決し、アップロードしました。ステージ2/3完了 — 費用確認を通過しました。ジャンボトロン静止画のプロンプトを確定します。ステージ3/3完了 — 静止画のプロンプトを確定しました。GPT-image-2を呼び出します。
ステップ1の前に行うプロンプトと静止画確認の文言の反復は、最大2回までです。2回の反復後は、用意できた内容でgenerate_image_editを実行してください。スコアボードの詳細、アリーナの雰囲気、キスカムのグラフィック表現をさらに磨き続けないでください。
長時間実行タスクのtask_statusポーリング
長時間実行される生成呼び出しが、初期ステータスの有無にかかわらずtask_idを返した場合({task_id}、{task_id, status: "queued"}、または初期ステータスがqueued、running、processingの場合を含む)、タスクIDと開始時刻を直ちに記録してください。
- ターミナル状態(
completed | failed | cancelled)になるまで、間隔を空けずにtask_status({task_id})を呼び出してください。手動での待機やBashによるポーリングは行わないでください。ステータス呼び出しのたびにワーカーが応答を待機します。 - ステータスが
queued、running、processingの間は、60秒ごとに進捗を示す行を1行だけ出力してください。形式はSeedance i2v queued for {N}m {S}s... still processingです。GPT-image-2またはKlingのタスクをポーリングする場合は、プロバイダー/段階のラベルを置き換えてください。 completedになったら、返された結果URLを取り出して続行してください。failedまたはcancelledになったら、task_id、ステータス、最後に返されたステータスメッセージをユーザーに提示してください。- 最初の送信から合計15分経過してもターミナル状態にならない場合は、タスクが未完了であれば
task_cancel({task_id})を呼び出してから、失敗をユーザーに提示してください。キャンセル時にタスクがすでにターミナル状態だと報告された場合は、ステータスをもう一度確認し、そのターミナル状態を報告してください。 - 元のタスクが
queued、running、processingの間は、重複するリクエストを送信しないでください。
Stage 0 — 受付
引数が空で、利用可能な以前のコンテキストもない状態で呼び出された場合は、このメニューを表示して終了します。
キスカムに映す2人は誰ですか? 必須:
- 被写体Aの参照写真 — ローカルパスまたはHTTPS URL
- 被写体Bの参照写真 — ローカルパスまたはHTTPS URL
写真がすでに1枚ある場合は、不足している写真だけを尋ねます。2枚そろう前に実行すると、ステップ1で images のエントリーが欠け、一貫性のない静止画が生成されます。
- 被写体Aの参照写真 (必須) — ローカルパスまたはhttps URL。
state.subject_a_urlとして保存します。 - 被写体Bの参照写真 (必須) — ローカルパスまたはhttps URL。
state.subject_b_urlとして保存します。
それぞれ、すでに https://… URL の場合は、そのまま使用します。ローカルパスの場合は、upload_asset → presigned_url にバイト列をPUT → public_url を使用します。Claude Desktopでは、貼り付けたインライン画像はMCPに届きません。そのため、代わりにURLまたは .zip 添付ファイルを一度だけ依頼します(許可される確認はこれだけです。両方のURLがそろったら、残るのはコスト確認のみです)。
どちらの被写体も、写実的な人物、3Dレンダリングされたキャラクター、デザイナーズトイ、イラストのアバター、彫刻のフィギュアなど、どのようなビジュアルスタイルでもかまいません。この手順では参照画像のスタイルをそのまま維持します。別のスタイルで描き直さないでください。名前はどこにも使用しません。キスカムのグラフィックに名前のテロップは表示されません。ジャンボトロンに映る2人だけを描写します。
コスト透明性の確認を行った後、1行で確認を返します(「この2人のマディソン・スクエア・ガーデンのキスカムの瞬間を生成します…」)。そのまま開始してください。コスト確認の後に、はい/いいえを尋ねる確認は行いません。パイプラインを最初から最後まで実行します。
ステップ 1 — 観客視点のジャンボトロン静止画(generate_image_edit、gpt-image-2)
キスカムのグラフィック、スコアボード、レトロなフレームをフレーム 0 の静止画に焼き込みます。これは後続の生成を支える重要な要素です。こうすることで、ステップ 2 では、Kling が装飾的な UI 全体をピクセル単位で固定された焼き込み済み UI として扱い、クリップの途中でアニメーション化しなくなります。
gpt-image-2 を使う理由(フォールバックなし): 代替プロバイダーよりも LED パネルのディテール(スコアボードの数字、キスカムのタイポグラフィ、レトロな装飾の縁)が鮮明で、参照画像との類似性も強く保てます。この LED の鮮明さと類似性の組み合わせが、トレンドの魅力を生み出します。moderation_blocked が返された場合は、プロバイダーを切り替えず、同じ呼び出しを再試行してください。これまでの試行では、代替プロバイダーは類似性も LED のディテールもぼやけていました。gpt-image-2 は 1K 16:9(1792×1024)で呼び出します。Kling の後続出力は 1080p なので、ここで高解像度のバリエーションを使っても効果はありません。
再試行上限:ステップ 1 の gpt-image-2 による静止画生成は、モデレーションによる失敗やセルフチェックでの再試行も含め、合計 3 回までです。moderation_blocked もこのステップ 1 の上限に含めます。静止画生成の有料呼び出しを行う前に、state.step1_attempt_count を確認してください。
テレビ放送のオーバーレイではなく、ジャンボトロンを観客のスマートフォンで撮影した視点にする理由: 最初の試作では、ピンクのハートのキスカムグラフィックが映像に重なったテレビ放送のカットアウェイが生成されました。ユーザーからのフィードバックは、「キスカムのグラフィックがひどい。本物の動画でキスカムの瞬間がどう見えるか見て」でした。ネット上でバイラルになっている実際のキスカム動画は、ほぼすべてジャンボトロンを撮影した観客のスマートフォン映像です(オバマ政権時代の USA Basketball のキスカム、Sarah Hyland / Wells Adams のキスカムなど)。ジャンボトロンを撮影する構図は、ユーザーが「本物のキスカム」と結び付けている美的要素に合います。レトロな赤い枠、きらめくハート、筆記体の Kiss Cam スクリプト、隣接する LED スコアボードパネル、アリーナの暗がり、スマートフォンで撮影する観客がその要素です。
prompt(そのまま送信し、テンプレート置換は行いません):
A high-resolution spectator-POV phone screenshot from inside packed Madison Square Garden during a Knicks vs Bulls NBA game, filmed by a fan in the lower bowl looking up at the giant suspended Jumbotron displaying the in-arena "Kiss Cam" segment. Real fan-filmed phone footage aesthetic — TikTok / Instagram online kiss-cam clip style.
Foreground (bottom 20% of frame): silhouettes of the backs/heads of a few fans in the row in front, slightly out-of-focus, dark; a couple of phones held up filming the Jumbotron, bright phone screens visible.
Mid-ground / upper 80%: the Jumbotron dominates the upper-center, bright LED panels against the dark arena ceiling and cabling above. Slight phone-camera tilt, slightly off-center natural handheld framing. Dim arena around, hint of upper-deck silhouettes.
The Jumbotron's central LED panel displays the kiss cam segment in iconic retro arena kiss cam style:
- Thick deep crimson red glowing decorative border frame.
- Bright red sparkly cartoon heart icons glowing in the corners and along edges.
- Subtle white star pattern texture in the red border.
- At the bottom center, large flowing white cursive script "Kiss Cam" with red glow and drop shadow.
Inside the kiss cam frame on the Jumbotron, two subjects framed two-shot chest-up:
- LEFT (Subject A) is the character from the FIRST reference image — preserve their exact likeness AND exact visual style (medium, level of stylization, color palette, rendering attributes). Do not redraw in a different style. Subject A is smiling shyly with one hand near the face, looking caught-off-guard and giggling.
- RIGHT (Subject B) is the character from the SECOND reference image — preserve their exact likeness AND exact visual style. Do not redraw in a different style. Subject B is seated upright at human scale next to Subject A, head tilted slightly toward Subject A.
- Around them inside the frame: packed Knicks fans in blue-and-orange jerseys, laughing, pointing, smiling at the kiss cam.
Adjacent LED panels on the Jumbotron show: "KNICKS 57 — BULLS 61", Q4, clock "4:32", with team logos. Small "MADISON SQUARE GARDEN" / "MSG" / AT&T branding.
Phone-camera aesthetic: slight motion blur, mild handheld imperfection, slightly noisy in dark areas, bright LED slightly blown out, 16:9 aspect ratio, real spectator POV. Looks like a still pulled from a fan-filmed Instagram / TikTok kiss cam clip.
呼び出しパラメーター:
provider:gpt-image-2(重要:LED のディテールが最も鮮明で、参照画像との類似性も最も強く保てます。フォールバックプロバイダーには切り替えず、ステップ 1 の再試行上限に達していない場合に限り、モデレーションによる失敗時に同じ呼び出しを再試行してください)images:[state.subject_a_url, state.subject_b_url](順序が重要です。Subject A はインデックス 0、Subject B はインデックス 1 でなければなりません。プロンプト内の「FIRST / SECOND reference image」は配列のインデックスを指します)aspect_ratio:16:9quality:medium(速度を優先する場合のデフォルトです。現在はhighも指定できますが、呼び出しに約 2 分かかるため、忠実度が重要な場合にのみ使用してください)output_format:png
どちらの被写体についても、テキストで特徴を説明しないでください。 上記のプロンプトでは、各被写体を「FIRST/SECOND reference image のキャラクター」とだけ表現しています。これは意図的です。髪、顔、服装、アクセサリーをテキストで説明すると、参照画像と競合してずれが生じます。言葉で説明した特徴が視覚的な参照より優先され、モデルが説明に合わせて被写体を均質化してしまいます。
参照画像には、アイデンティティとスタイルに関する情報がすべて含まれています。プロンプトではスタイルを維持するためのロックだけを追加します。スタイルを明示しなくても、フォトリアル、3D レンダリング、彫刻、イラストなど、あらゆる参照スタイルで機能します。
返された URL を state.kisscam_still_url として保存してください。
ステップ 2 の前にエージェント側でセルフチェック: 画像を目視で確認してください。「Kiss Cam」の文字に誤字がある、スコアボードの見た目がおかしい、またはいずれかの被写体の類似性が崩れている場合は、ステップ 1 の上限内で再試行してください。後続のすべての処理では、この画像のピクセルが固定されます。これはエージェント自身が行うチェックです。ユーザーに確認を求めないでください。
失敗時(gpt-image-2 からの moderation_blocked。女性同士の被写体の組み合わせと「kiss cam」という表現で発生することがよくあります):ステップ 1 の再試行上限に達していない場合に限り、同じ呼び出しを再試行してください。プロバイダーを切り替えないでください。代替プロバイダーでは、類似性も LED のディテールもぼやけてしまいます。
ステップ 2 — アリーナ内のキスカム動画(generate_reference_video、kling-v3-omni)
Kling-omni の image_types: ["first_frame"] は静止画を文字どおりのフレーム 0 として固定するため、ジャンボトロン、スコアボード、キスカムのフレーム、ハート、筆記体の「Kiss Cam」テキスト、前景のファンのシルエットは、15 秒間ずっとピクセル単位で固定されます。アニメーションするのは、キスカムパネル内のコンテンツだけです。
呼び出しパラメーター:
provider:klingkling_model:kling-v3-omniduration:15aspect_ratio:16:9quality_mode:pro(1080p)reference_images:[state.kisscam_still_url](最新の値を使用してください。ステップ 1 の再生成で上書きされます)image_types:["first_frame"]sound:trueprompt_adherence:strictnegative_prompt(そのまま使用):
scene cuts, scoreboard changing, Kiss Cam text changing, graphics morphing, character turning real, character becoming 2D, identity drift, gimbal stabilized, exaggerated acting, theatrical expressions, over-acting, mugging at camera, cartoon reactions, subjects lip-syncing PA announcer dialogue, characters mouthing the announcer lines, subjects' mouths moving with off-screen voice, subjects talking to camera, on-screen lip-sync
prompt_adherence: strict と完全な negative_prompt のアンカーリストを併用することが重要です。両方を指定しないと、Kling はクリップの途中でスコアボードや「Kiss Cam」のテキストをアニメーションさせたり、被写体が過剰な演技をしたり、画面外の PA アナウンサーにリップシンクしたりする状態に戻ります。
prompt(そのまま使用、約 2400 文字。Kling のプロンプト上限は 2500 文字なので、事前に短く整えてください):
First frame: spectator-POV phone shot at MSG of the Jumbotron Kiss Cam segment. Fan-filmed TikTok / Instagram kiss-cam clip style. Handheld phone, NOT pro broadcast.
Camera: continuous handheld shot. Subtle micro-wobble. Slow smooth push-in zoom across 15s toward the kiss cam panel.
Locked: Jumbotron, scoreboard (KNICKS 57 / Q4 4:32 / BULLS 61), red kiss cam border, sparkly hearts, cursive "Kiss Cam" script, AT&T branding, dark arena, foreground fan silhouettes — all consistent.
Inside the kiss cam frame:
Both subjects are the two characters already shown on the kiss cam panel of the first-frame reference still — preserve their exact likeness AND exact visual style across all 15 seconds. Do not redraw either subject in a different style. They animate with subtle, restrained, true-to-life motion within their original style — small natural blinks, gentle breathing, slight head turns, brief micro-smiles. Neither stiff and frozen, nor over-acting. The level of expression is what a real person shows when caught unexpectedly on a stadium camera. Keep all movement subtle, believable, human.
Surrounding Knicks fans react naturally in the background.
Timeline (all reactions stay subtle and human-scale):
0-3s: Subject A notices the camera, small embarrassed half-smile, glances at Subject B. Subject B notices a beat later, soft natural realization, slight smile beginning. Fans behind react gently.
3-7s: A and B exchange a brief warm look, share a quiet small laugh. Faces relax into natural smiles.
7-11s: A and B lean in and share a gentle kiss on the lips — brief, sweet, natural, not staged. Crowd cheers softly.
11-15s: They pull apart with light natural smiles. B leans head gently on A's shoulder. Both share a small quiet laugh.
Audio (non-diegetic / OFF-SCREEN only — Subject A and Subject B stay SILENT throughout, mouths closed, do not lip-sync the dialogue below):
- Packed-arena ambient throughout.
- OFF-SCREEN gender-neutral PA announcer (NOT from either visible subject — an unseen arena voice), amplified, slightly echoey, playful.
0-3s: "Oh, kiss cam at the Garden — look at this!"
3-7s: "Hahaha — let's see if they go for it!"
7-11s: crowd erupts with "AWWWWS," cheers, claps swelling.
11-15s: PA laughing: "There it is! Big love at the Garden tonight!"
- Phone mic picks up nearby fans louder than PA echo.
Aesthetic: real spectator phone-shot, noisy darks, slightly blown LED, subtle motion blur. 16:9, 1080p.
「控えめで、抑制され、リアルな、参照スタイルに沿った動き」とする理由(「控えめな動きだけ」、特定のスタイル名、または豊かなマイクロ表情のリストではなく):
- 1 回目の反復では、「頭と目の動きだけを控えめにし、全体を通してビニール製のおもちゃのままにする」と指定して、様式化された被写体の動きを制限しましたが、凍り付いて背景に貼り付けられたように見えました。
- 2 回目の反復では、特定のスタイル(「Pixar 品質の 3D キャラクター」)を指定したため、参照画像が異なるスタイルであっても、被写体はその見た目に寄ってしまいました。
- 3 回目の反復では、「自然で表情豊かにアニメーションさせる」と、マイクロ表情の詰め込まれたリスト(「目を見開く、驚いて口を開ける、笑うと頬を上げる、両手を顔に持ってくる」)を指定したため、被写体は過剰に演技し、カメラに向かって大げさに振る舞い、芝居がかった動きになりました。
有効な指示では、スタイルを維持する制約を保ちながら、スタジアムカメラに実際に映し出された人物のような、控えめで抑制されたリアルな動きを指定します。さらに、negative_prompt に exaggerated acting / theatrical expressions / over-acting / mugging at camera / cartoon reactions を加え、3 回目の反復で起きた失敗パターンへの逆戻りを抑制します。
返された動画 URL を state.kisscam_video_url として保存してください。生成が非同期で完了する場合は、MCP ツールが返すステータスハンドルを使用してください。クライアント層のタイムアウトでは、task_id がエージェントに届かず、上流のタスクが取り残されることがあります。重複して送信しないでください。タイムアウトと上流タスクが取り残されるリスクをユーザーに伝え、復旧可能なタスクハンドルが得られるか、オペレーターから明示的な確認があるまで、再実行を待ってください。
ステップ 2 の Kling 動画生成は、合計で最大 2 回(初回レンダリングと、テキスト/スコアボードのアニメーション、人物の同一性のずれ、キスのタイミング、PA のタイミング、リップシンクのアーティファクトを修正する再試行 1 回)までです。kling-v3-omni にはシードがなく、同一の Kling ペイロードを送信しても同じジョブ/アセットになることがあります。変化を求めるだけの目的で、同一の Kling ペイロードを送信しないでください。修正の再試行前に、更新済みの state.kisscam_still_url の使用、不足している厳密なパラメーターや negative_prompt の項目の復元、または PA 音声の文言/タイミングの変更によって、ペイロードを実質的に変更してください。state.step2_attempt_count を記録してください。
失敗した場合:Kling ペイロードを変更してから、ステップ 2 の修正再試行を行ってください。動画エンジンは切り替えないでください。Seedance は 2 段階の類似性ゲートがあるため(baseball-trend の同系プロジェクトと同様)、ここでは使用できません。問題が静止画自体にある場合(ステップ 1 の自己チェック基準であるテキストのスペル、スコアボード、類似性を使って判断してください)、ステップ 1 の試行回数に余裕がある場合に限り再実行し、変更した最初のフレームとして新しい静止画を使用してください。いずれかの上限に達したら停止し、より安全な参照画像、または最善の試行結果を納品する許可を求めてください。その際、最善の静止画/動画 URL と失敗したチェック項目を提示してください。
ステップ 3 — 納品
Pika CDN URLを2つ返します。静止画URLと最終動画URLです。ホスト側のクライアントでローカルメディアマーカーが必要な場合は、両方のCDN URLにアクセスできることを確認してから、このスキルの外部でローカルプレビューを作成してください。
1行の要約:「MSGのキスカムの瞬間 — 15秒、16:9、1080p、Kling v3-omni、PAアナウンサーの実況と観客のリアクションをネイティブに収録。」
フライト後の品質ゲート
成功を宣言する前に、state.kisscam_video_urlに対してanalyze_mediaを呼び出し、構造化された判定を求めてください。
Return JSON only: {
"verdict": "clean" | "degraded" | "catastrophic",
"observations": string[],
"quality_warning": string | null,
"re_roll_suggestion": string | null
}
Check that both faces stay consistent with their references, the kiss action completes as a brief natural lip kiss, Kiss Cam text / scoreboard styling stays readable, and neither visible subject lip-syncs the off-screen PA audio.
verdictがcleanの場合は、静止画URLと最終動画URLを通常どおり返してください。verdictがdegradedの場合は、URLに加えてquality_warningも返し、公開前にユーザーが確認できるようにしてください。verdictがcatastrophicの場合は、実行を完了扱いにしないでください。成功を宣言する代わりに、判定とre_roll_suggestionを提示してください。
実行時の所要時間の目安
- ステップ 1 — gpt-image-2 medium、16:9、参照画像2枚: 約40~90秒
- ステップ 2 — kling v3-omni、pro 1080p、15秒、サウンドオン: 約3~5分
- ステップ 3 — ダウンロード+マーカー出力: 約5~10秒
- 1テイクあたりの合計所要時間: 約4~6分
ステップ1で再生成が必要になった場合は、そこで所要時間の計測をやり直します。ステップ2で再生成が必要になった場合は、動画の工程のみを繰り返します。
意味を左右するフレーズ(原文のまま維持)
これらは再検証を行わずに編集しないでください。文体上の選択ではなく、実証された挙動に影響する要素です。
画像プロンプト(ステップ 1):
spectator-POV phone screenshot ... lower bowl looking up at the giant suspended Jumbotron— これがないと、モデルは放送映像のような雰囲気を既定で選びますiconic retro arena kiss cam style+ 4 つの装飾的な箇条書き(深紅の枠、きらめくハート、星の模様、筆記体の Kiss Cam)— これらが合わさることで、特徴的なレトロな見た目になりますthe character from the FIRST / SECOND reference image— 画像に基づく固定要素です。言葉による特徴の説明に置き換えないでくださいpreserve their exact likeness AND exact visual style+Do not redraw in a different style— スタイル維持の固定要素です。どちらも重要です
Kling プロンプト(ステップ 2):
First frame: spectator-POV phone shot at MSG of the Jumbotron Kiss Cam segment— 静止画に合致するアンカーですpreserve their exact likeness AND exact visual style across all 15 seconds— クリップ全体を通したアイデンティティとスタイルの連続性を保ちますsubtle, restrained, true-to-life motion within their original style+Neither stiff and frozen, nor over-acting+The level of expression is what a real person shows when caught unexpectedly on a stadium camera— 動きのレベルを調整します(「ビニール製のおもちゃのように固まる」失敗と「芝居がかった過剰な演技」の失敗の両方を防ぎます)gentle kiss on the lips — brief, sweet, natural, not staged— キスの瞬間を固定するアンカーです(「頭」や「頬」に弱めないでください。このトレンドは唇へのキスです)Audio (non-diegetic / OFF-SCREEN only — Subject A and Subject B stay SILENT throughout, mouths closed, do not lip-sync the dialogue below)+OFF-SCREEN gender-neutral PA announcer (NOT from either visible subject — an unseen arena voice)— これらがないと、Kling は引用されたセリフを画面内の人物に割り当て、アナウンサーのセリフを Subject A または B にリップシンクさせますPhone mic picks up nearby fans louder than PA echo— 観客がスマートフォンで撮影した音声の雰囲気を演出します
Kling の negative_prompt(ステップ 2):
exaggerated acting, theatrical expressions, over-acting, mugging at camera, cartoon reactions— これらがないと、Kling は被写体がレンズに向かって大げさな表情をする「表現豊か」な失敗モードに戻りますsubjects lip-syncing PA announcer dialogue, characters mouthing the announcer lines, subjects' mouths moving with off-screen voice, subjects talking to camera, on-screen lip-sync— オフスクリーン音声のアンカーと組み合わせます。音声トラック上のセリフに合わせて画面内の口を動かすという、Kling の既定の挙動を抑制します
パラメーター:
provider: gpt-image-2(ステップ 1)— ステップ 1 の根拠を参照してくださいprompt_adherence: strict(ステップ 2)— これがないと、スコアボードと「Kiss Cam」の文字がクリップの途中で変化しますimage_types: ["first_frame"](ステップ 2)— 静止画をフレーム 0 にそのまま固定しますquality_mode: pro(ステップ 2)— 1080p の出力ですduration: 15(ステップ 2)— タイムライン上の区切り(0~3 秒/3~7 秒/7~11 秒/11~15 秒)は 15 秒を前提に記述されています。再生時間を変更すると、キスのタイミングが崩れます
エンジンの選択:gpt-image-2 + Kling のみ
ステップ 1 — gpt-image-2、フォールバックなし。 LED パネルのディテール(スコアボードの数字、キスカムのタイポグラフィ、レトロな装飾の縁)の鮮明さが実証済みで最も優れており、参照画像との類似性を保つ力も最も強力です。この組み合わせこそが、このトレンドの魅力を生み出します。moderation_blocked の応答が返された場合は、ステップ 1 の予算が残っている間、プロバイダーを切り替えずに同じ呼び出しを再試行してください。以前の試行では、代替手段を使うと類似性と LED のディテールがどちらも劣りました。
ステップ 2 — Kling、Seedance は使用しない。 Seedance には 2 段階の partner_validation_failed 422 ゲートがあります(同系の baseball-trend スキルと同じです)。入力側のゲートは、実在の人物だと識別できる参照画像を拒否します。出力側のゲートは、生成後、識別可能に見える顔が生成されたクリップに含まれている場合に拒否します。すべてのキスカム映像では、顔が多数映る満員のアリーナが舞台となるため、出力側のゲートは避けられません。このレシピを実現できるエンジンは Kling だけです。
Kling のトレードオフ:prompt は 2500 文字までです(上記のレシピは約 2400 文字に調整済みです。再び長くすると、プロンプト長のエラーが発生する可能性があります)。kling-v3-omni にはシードがありません。同一の Kling ペイロードを送信すると、同じジョブ/アセットに集約される場合があるため、修正目的で再試行する際は、最初のフレームの静止画、プロンプト、negative_prompt、または PA 音声の文言を実質的に変更してください。バリエーションを得るために、同一の Kling ペイロードを送信しないでください。
失敗時の早見表
| 症状 | 対処法 |
|---|---|
Step 1 で moderation_blocked が発生する | gpt-image-2 のセーフティゲートによるものです(女性同士の被写体の組み合わせと「kiss cam」という表現が原因であることがよくあります)。Step 1 の再試行上限内で同じ呼び出しを再実行してください。プロバイダーを切り替えてはいけません。別のプロバイダーでは、人物の類似度と LED の細部の再現が劣ります |
| Kling のプロンプトエラー:プロンプトが 2500 文字を超えている | Kling プロンプトの音声セクションまたは美的表現のセクションが再び膨らんでいます。音声ブロックまたは美的表現ブロックを削ってください。アニメーションのタイムラインから削ってはいけません |
| クリップの途中でスコアボード、「Kiss Cam」のテキスト、またはグラフィックが動く | prompt_adherence が strict に設定されていないか、negative_prompt に「scoreboard changing」/「Kiss Cam text changing」などの項目がありません。Step 2 の修正再試行を 1 回行う前に、両方のパラメーターを元に戻してペイロードに違いが出るようにしてください |
| 約 8 秒後に被写体の本人らしさが失われる | 参照画像の顔の切り抜きが小さすぎるため、Kling が固定するのに十分な顔のピクセル数がありません。Step 1 の再試行回数に余裕がある場合のみ、被写体の顔をより大きく切り抜いて Step 1 を再実行し、変更後の静止画を使って Step 2 の修正再試行を行ってください |
| 被写体が別のスタイルで描き直される(フォトリアルからイラスト風、またはその逆) | スタイル保持の固定が弱まっているか、特定のスタイル名(Pixar/アニメなど)がどちらかのプロンプトに入り込んでいます。「人物の類似度とビジュアルスタイルを正確に維持する」というアンカーを元に戻し、スタイル名をすべて削除してください |
| 場内アナウンサーが単語を誤って発音する、またはキスのタイミングを逃す | Kling のネイティブ音声は、生成ごとに 1 回の録音です。発音のヒントを追加するか、場内アナウンサーのセリフを短くするか、Step 2 の修正再試行を 1 回行う前に音声のタイミングを調整してください |
| 画面上の被写体のどちらかが、場内アナウンサーのセリフに合わせてリップシンクしたり口を動かしたりする | Kling は、音声トラック上の引用されたセリフをフレーム内の見える顔に割り当てるのがデフォルトです。画面外の音声であることを明示しないと、被写体を選んでセリフに合わせて口を動かします。音声ブロックが Audio (non-diegetic / OFF-SCREEN only — Subject A and Subject B stay SILENT throughout, mouths closed...) として記述されていること、また negative_prompt に subjects lip-syncing PA announcer dialogue, characters mouthing the announcer lines, on-screen lip-sync が含まれていることを確認してください。Step 2 の修正再試行を 1 回行う前に、これらのアンカーを元に戻してください |
| 被写体がカメラに向かって大げさな表情をする/演技が過剰になる/芝居がかった表情や漫画のような反応をする | アニメーションブロックに、同時に行う細かな表情の動きが過剰に列挙されているか、タイムラインの各ビートに「満面の笑み」「恥ずかしそうに弾む」や「目を見開く」などの誇張した表現が使われています。アニメーションブロックの「控えめで抑制された、自然な動き」という表現を元に戻し、タイムラインから感情を表す形容詞を削除してください。negative_prompt に exaggerated acting / theatrical expressions / over-acting / mugging at camera / cartoon reactions が含まれていることを確認してください |
| キスが唇ではなく、頬/額/頭に当たる | タイムラインのビートが gentle kiss on the lips から弱められています。7~11 秒のビートに唇へのキスを表す文言をそのまま戻してください。話題になっているのは唇へのキスであり、頭への軽いキスではありません |
| Kling ではなく Seedance が試行された | エンジンの選択が間違っています。kling に切り替えてください。Seedance の 2 段階の類似度ゲートがあるため、ここでは使用できません(「エンジンの選択」を参照) |
task_id が返されずに Step 2 がタイムアウトする | クライアント層のタイムアウトにより、上流タスクが孤立し、復旧に使える識別情報がありません。重複して送信しないでください。孤立した上流タスクのリスクを伝え、復旧可能なタスク識別情報が得られるか、オペレーターから明示的な確認があるまで、再実行を待ってください |
してはいけないこと
- 名前のテロップを追加しないでください。 このトレンドには名前がありません。カメラに偶然捉えられた、名前のない2人です。
- ハートのオーバーレイを重ねたテレビ中継のカットアウェイとして描写しないでください。 これは大型スクリーンに映し出された映像です。
- 「控えめな動きのみ」とだけ書かないでください(被写体の動きが止まり、ビニール製のおもちゃのように硬直します)。また、「目を見開く、口を開ける、頬を上げる」のような微表情を同時に盛り込んで、アニメーションのブロックを詰め込みすぎないでください(被写体が大げさに振る舞い、カメラに向かってふざけます)。うまく機能するフレーミングは、
subtle, restrained, true-to-life motion at the level of someone caught unexpectedly on a stadium cameraです。どちらの失敗も「subtle」という言葉に潜んでおり、動きを適切に調整するのは「true-to-life」という限定です。 - 「大きな笑顔」「恥ずかしそうに弾む」「目を見開く」「笑い返す」のような、大げさな感情を表す形容詞でタイムラインの動きを書かないでください。 「気づく」「小さく微笑む」「目を合わせる」「静かに笑い合う」のような抑えた動詞を使ってください。
- どちらのプロンプトにも、特定のスタイル(Pixar、アニメ、Disney、フォトリアルなど)を指定しないでください。 スタイルは参照画像で決まります。プロンプトでは「参照画像のスタイルを維持する」とだけ指定してください。
- キスを額や頬へのキス、「頭頂部へのキス」に和らげないでください。 このトレンドは唇へのキスです。
gentle kiss on the lips — brief, sweet, natural, not stagedという表現をそのまま使ってください。 - 音声ブロックを、OFF-SCREEN の指定なしに引用符付きのセリフだけで書かないでください。 Kling は引用されたセリフを画面に映る顔のものとして扱うため、アナウンサーのセリフが Subject A または Subject B にリップシンクされます。音声ブロックには必ず
Audio (non-diegetic / OFF-SCREEN only — Subject A and Subject B stay SILENT throughout, mouths closed, never lip-sync any dialogue below)を指定し、negative_promptにリップシンク防止の語句を追加してください。 - 物語文や場内放送のセリフで、どちらの被写体にも性別を設定しないでください。 「Subject A / Subject B」、「they/them」、または代名詞を使わない描写を用いてください。
- モデレーションに引っかかった場合、プロバイダーを切り替えないでください。 Step 1 の予算が残っている間は、同じ
gpt-image-2の呼び出しを再試行してください。 - Seedance は試さないでください。
- 音楽を生成しないでください。 音楽として使うのは、標準の場内アナウンスと観客の環境音です。
- 後処理レイヤー(
add_captions、generate_music、edit_concat、edit_text_overlay、edit_pip、および任意のedit_*)を実行しないでください。 Kling はスコア表示、テロップ、標準の実況音声を直接焼き込みます。後から何かを追加すると、キスカメラの臨場感が損なわれます。