stagefight

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

stagefight

stagefight 舞台打斗生成

A two-call pika pipeline: stage still (
generate_image
, gpt-image-2) → fight clip (
generate_video
, image-to-video, ~10s, 16:9). The clip is fan-filmed POV phone footage of a choreographed cosplay performance on a themed stage — two performers clash, a live-stage effect bursts, the crowd reacts. One run produces one clip for one matchup.
The core job of this skill: figure out WHO is fighting (ask the user, or suggest matchups), then AUTHOR fresh prompts in the structure of the bundled examples and generate a new video. The examples in
examples/
are the pattern to follow, not a fixed catalog — every run should produce a new matchup composed the same way. The look is calibrated and the safety framing is load-bearing: keep every fixed sentence of the two templates and fill only the marked
[SLOTS]
.
两步式pika工作流:舞台静态图
generate_image
,gpt-image-2)→ 打斗片段
generate_video
,image-to-video,约10秒,16:9)。该片段为粉丝拍摄的POV手机视角内容,呈现主题舞台上的编排好的cosplay表演——两名表演者交锋,现场舞台效果爆发,人群做出反应。每次运行针对一组对战生成一段片段
本技能的核心任务:确定对战双方是谁(询问用户,或提供对战建议),然后按照附带示例的结构撰写全新提示词并生成新视频。
examples/
中的示例是需要遵循的模板,而非固定目录——每次运行都应生成一组符合相同格式的全新对战组合。视觉效果已校准,安全框架至关重要:保留两个模板中的所有固定语句,仅填充标记的
[SLOTS]

★ Why it works — the method (this is the actual research, do not drop any of it)

★ 生效原理——核心方法(这是实际研究成果,请勿遗漏任何要点)

Raw "two people fighting" prompts get moderation-blocked. These four moves are what make fight content reliably generate, and together they ARE the trend's aesthetic:
  1. Frame it as a wholesome theatrical performance. Every clip prompt opens, verbatim: "Wholesome theatrical stage performance, choreographed cosplay, advertiser-safe." and closes with "Believable live-stage effects, not cartoon magic." This reframes combat as a stunt show, which clears the safety pass. Never describe injury, blood, real weapons connecting, or "cartoon magic" — describe choreography, props, and stage pyrotechnics.
  2. Fan-filmed audience POV. "POV handheld phone footage from the audience, raised above other people's heads filming the stage," with "a large audience in the foreground — dark silhouetted heads, many holding up phones recording." This is both the viral "I was there" aesthetic AND part of the safety (it reads as documenting a performance, not real violence).
  3. Costumed ORIGINAL characters — never real people, never named IP. Use archetypes ("a lean samurai in a straw hat", "a horned demon in black robes", "a spiky-blond-haired ninja in an orange tracksuit"). Real-person faces get moderation-blocked on both backends; named/trademarked characters drift and trip flags. Describe the cosplay (hair, costume, props), not a brand.
  4. Live-stage effect, grounded. The "wow" beat is a believable practical effect — a puff of stage smoke, green stage fire and sparks, a wall of water / geyser. Both performers recoil/brace dramatically; nobody gets hurt.
Moderation ops: re-roll the same call on a block (don't immediately swap providers). If a video gen runs past ~4 min before failing, the content already cleared the safety pass — the failure is infrastructural, just retry. Do NOT bake music in via
reference_audio
— that path trips moderation; add music/SFX in post. Different Seedance backends (
ark
/
fal
) have different moderation pipelines if you need to retry.
直接使用“两人打斗”的提示词会被审核拦截。以下四个步骤能让打斗内容稳定生成,同时构成该潮流的视觉风格:
  1. 将内容定位为健康正向的戏剧表演。每个片段提示词都必须以原文开头:“健康正向的戏剧舞台表演,编排好的cosplay,符合广告合规要求。”并以“逼真的现场舞台效果,非卡通魔法。”结尾。这将打斗重新定义为特技表演,从而通过安全审核。绝不要描述受伤、流血、真实武器击中或“卡通魔法”——应描述编排动作、道具和舞台烟火效果
  2. 粉丝拍摄的观众视角“观众手持手机拍摄的POV视角,镜头举过其他观众头顶拍摄舞台,”搭配“前景是大量观众——深色剪影头部,许多人举着手机拍摄。”这既是病毒式传播的“我在场”视觉风格,也是安全策略的一部分(系统会将其识别为记录表演,而非真实暴力)。
  3. 原创戏服角色——禁止使用真实人物或知名IP。使用原型设定(“戴草帽的精瘦武士”、“穿黑袍的有角恶魔”、“橙黑运动服的金发刺猬头忍者”)。真实人物面部会在两个后端被审核拦截;知名/商标角色会偏离主题并触发审核标记。描述戏服细节(发型、服装、道具),而非品牌名称。
  4. 真实可信的现场舞台效果。“惊艳”的亮点是逼真的实用效果——一阵舞台烟雾绿色舞台火焰与火花水墙/水柱。两名表演者都需做出夸张的后退/防御动作;无人受伤。
审核应对操作:被拦截时重新提交相同请求(不要立即更换服务商)。如果视频生成耗时超过约4分钟后失败,说明内容已通过安全审核——失败是基础设施问题,只需重试。请勿通过
reference_audio
添加音乐
——此路径会触发审核;后期再添加音乐/音效。不同的Seedance后端(
ark
/
fal
)有不同的审核流程,可按需重试。

Prerequisites

前置条件

pika MCP available. Tool prefix varies by host — use whatever is exposed. Tools:
generate_image
,
generate_video
,
task_status
; optional for finishing:
generate_music
/ SFX +
edit_concat
/
edit_audio_mix
.
需具备pika MCP。工具前缀因主机而异——使用当前可用的前缀即可。所需工具:
generate_image
generate_video
task_status
;可选后期工具:
generate_music
/ 音效 +
edit_concat
/
edit_audio_mix

Stage 0 — Who's fighting? (settle this first) — One matchup → one clip.

阶段0——确定对战双方?(先完成此步骤)——一组对战对应一段片段。

  1. If the user already named two fighters — in the
    /stagefight
    args or their message (e.g. "frost mage vs ember knight", "my cat vs a dragon", "two robots") — use them, skip the menu, go straight to Compose. Don't re-ask.
  2. Otherwise ask with ONE
    AskUserQuestion
    (header:
    Matchup
    ). It MUST give the user a way to supply their own characters — make that the first option — plus exactly 3 template matchups:
    • "Pick your own two fighters"I'll name them → when chosen, ask "Who are your two fighters?" and use the answer. (The auto-added Other field also lets them type a matchup straight in.)
    • Ninja vs ninja — smoke
    • Samurai vs horned demon — green fire
    • Sorceress vs vampire (water-stage) — geyser Never auto-select a template — the whole point is the user chooses or types their own. Do NOT just print 3 suggestions as prose and proceed; present the real 4-option menu and wait.
  3. Aspect: default to
    16:9
    silently (the trend look). Only ask about
    9:16
    if the user mentions vertical/TikTok/Reels.
Once the matchup is set, compose the prompts yourself (next section), confirm in one line ("Generating your staged-fight clip — frost mage vs ember knight…"), and run end-to-end — no further yes/no gates.
  1. 如果用户已指定两名对战角色——在
    /stagefight
    参数或消息中(例如“冰霜法师 vs 火焰骑士”、“我的猫 vs 龙”、“两个机器人”)——直接使用该组合,跳过菜单,进入撰写提示词环节。无需再次询问。
  2. 否则通过一次
    AskUserQuestion
    询问
    (标题:
    对战组合
    )。必须为用户提供自定义角色的选项——将其设为第一个选项——外加恰好3组模板对战组合
    • “自定义两名对战角色”我来命名 → 选中后,询问“你的两名对战角色是谁?”并使用用户的回答。(自动添加的其他字段也允许用户直接输入对战组合。)
    • 忍者 vs 忍者 — 烟雾效果
    • 武士 vs 有角恶魔 — 绿色火焰效果
    • 女巫 vs 吸血鬼(水舞台) — 水柱效果 绝不要自动选择模板组合——核心是让用户自行选择或输入。不要仅以散文形式列出3个建议就继续;需呈现完整的4选项菜单并等待用户选择。
  3. 画幅比例:默认静默使用
    16:9
    (潮流风格)。仅当用户提及竖屏/TikTok/Reels时,才询问是否使用
    9:16
确定对战组合后,自行撰写提示词(下一章节),用一句话确认(“正在为你生成舞台打斗片段——冰霜法师 vs 火焰骑士…”),然后全程自动运行——无需额外的确认环节。

Compose the prompts (the authoring step, NEVER skip it)

撰写提示词(创作环节,请勿跳过)

You are composing for the USER'S two fighters. Start from THEM and DERIVE everything else. The ninja / samurai / sorceress examples are illustrations of the formula, not the output — if the user said "X vs Y", the video is about X vs Y. Never silently default to one of the example matchups, and never substitute a different fight than the one chosen. Defaulting to ninja/samurai/water when the user asked for something else is the #1 failure of this skill.
Derive each of the four variables FROM the chosen fighters:
  • Stage = a themed set those two characters would believably duel on — what world are they from? — + 2–4 concrete props + a backdrop + time-of-day/light. (Wizards → a stone arena; mecha → a neon dome; cowboys → a saloon street. Not a temple unless they're temple characters.)
  • Performer A (LEFT) / Performer B (RIGHT) = each as live-action cosplay: hair, costume, a prop, a stance. Archetypes only — never real people; translate any named/trademarked character into its describable costume (no brand names in the prompt).
  • Signature effect = the one believable live-stage payoff that fits THIS fight (smoke / colored fire + sparks / water geyser / dust + lantern-glow / ice shards / embers / confetti-cannon…), that both performers react to.
Worked derivation (arbitrary matchup, to show the move): user asks "robot boxer vs sumo wrestler."Stage: neon-lit night arena, holographic banners, ring ropes, sponsor lanterns, city skyline behind. → LEFT: a tall chrome humanoid robot in red boxing gloves, joints glowing, guard up. → RIGHT: a massive sumo wrestler in a ceremonial mawashi, stamping low. → Effect: a shockwave of dust and sparks as glove meets palm. → then drop those into the two templates. (Notice: nothing ninja/temple/water — every variable came from the actual fighters. Do this for whatever the user picks.)
**你需要为用户指定的两名对战角色撰写提示词。从角色出发,推导所有内容。**忍者/武士/女巫示例是公式的演示,而非最终输出——如果用户要求“X vs Y”,视频内容就围绕X vs Y展开。绝不要默认使用示例中的对战组合,也不要替换用户选择的对战组合。当用户要求其他组合时,默认使用忍者/武士/水舞台是本技能的头号失误。
从选定的对战角色推导出以下四个变量:
  • 舞台 = 符合两名角色设定的主题场景——他们来自哪个世界?—— + 2–4个具体道具 + 背景 + 时段/光线。(巫师→石质竞技场;机甲→霓虹穹顶;牛仔→酒馆街道。除非角色与寺庙相关,否则不要使用寺庙场景。)
  • 表演者A(左侧) / 表演者B(右侧) = 均为真人cosplay:发型、服装、道具、姿势。仅使用原型设定——禁止使用真实人物;将任何知名/商标角色转化为可描述的戏服(提示词中不得出现品牌名称)。
  • 标志性效果 = 符合本次对战的逼真现场舞台特效(烟雾/彩色火焰+火花/水柱/尘土+灯笼光/冰碎片/余烬/彩纸炮…),两名表演者都需对此做出反应。
推导示例(任意对战组合,演示方法):用户要求*“机器人拳击手 vs 相扑选手”*。 → 舞台:霓虹灯光的夜间竞技场,全息横幅,拳台围绳,赞助商灯笼,背景是城市天际线。 → 左侧:高大的铬合金人形机器人,戴红色拳击手套,关节发光,摆出防御姿势。 → 右侧:体型庞大的相扑选手,身着传统兜裆布,压低身体跺脚。 → 效果:手套击中手掌时产生尘土与火花的冲击波。 → 然后将这些内容填入两个模板。(注意:没有忍者/寺庙/水元素——所有变量均来自实际对战角色。无论用户选择什么组合,都照此操作。)

Step 1 — Stage still (
generate_image
, gpt-image-2)

步骤1——生成舞台静态图(
generate_image
,gpt-image-2)

Bakes the stage, both performers, and the filming crowd into frame 0 so Step 2 only has to animate the clash. Template — keep every fixed sentence, fill the
[SLOTS]
:
A recording from the audience at an outdoor theater performance at [TIME-OF-DAY/SETTING]. [STAGE: a wooden stage recreating <themed set> — <2-4 concrete set pieces, lanterns/gate/fog/water/etc>, <backdrop>]. On stage, two performers in high-quality live-action cosplay face off several meters apart: on the LEFT, [PERFORMER A — cosplay: hair, costume, prop, stance]; on the RIGHT, [PERFORMER B — cosplay: hair, costume, prop, stance]. A large audience fills the foreground — dark silhouetted heads, many holding up phones recording with glowing screens. The camera films from far back in the crowd, slightly off-center, performers small on the wide stage, slight handheld tilt. Realistic phone-camera look, faint digital noise, [natural light note]. High resolution, no text, no UI.
Call
generate_image
.
Call params:
provider: gpt-image-2
·
aspect_ratio: 16:9
(default;
9:16
if vertical) ·
quality: medium
(high exceeds the proxy timeout) ·
output_format: png
. No input image unless the user supplied a specific character sheet/costume to anchor — in that case call
generate_image_edit
instead, passing the sheet as
images
, and keep the text describing only the cosplay, not a name. On
moderation_blocked
: re-roll; if it persists, soften the costume language (more "performer/stunt", less "demon/claws"). Save the returned URL →
state.still_<n>_url
. Self-check: two costumed performers clearly facing off, crowd + phones in foreground, no text — else re-roll.
将舞台、两名表演者和拍摄人群融入初始帧,以便步骤2只需动画化交锋动作。模板——保留所有固定语句,填充
[SLOTS]
A recording from the audience at an outdoor theater performance at [TIME-OF-DAY/SETTING]. [STAGE: a wooden stage recreating <themed set> — <2-4 concrete set pieces, lanterns/gate/fog/water/etc>, <backdrop>]. On stage, two performers in high-quality live-action cosplay face off several meters apart: on the LEFT, [PERFORMER A — cosplay: hair, costume, prop, stance]; on the RIGHT, [PERFORMER B — cosplay: hair, costume, prop, stance]. A large audience fills the foreground — dark silhouetted heads, many holding up phones recording with glowing screens. The camera films from far back in the crowd, slightly off-center, performers small on the wide stage, slight handheld tilt. Realistic phone-camera look, faint digital noise, [natural light note]. High resolution, no text, no UI.
调用
generate_image
调用参数
provider: gpt-image-2
·
aspect_ratio: 16:9
(默认;竖屏时用
9:16
) ·
quality: medium
(高质量会超出代理超时限制) ·
output_format: png
除非用户提供了特定的角色设定图/戏服参考,否则无需输入图像——这种情况下调用
generate_image_edit
,将设定图作为
images
传入,提示词仅描述戏服细节,而非角色名称。若出现
moderation_blocked
:重新提交;若持续被拦截,弱化戏服描述(更多使用“表演者/特技演员”,减少“恶魔/爪子”等表述)。保存返回的URL →
state.still_<n>_url
。自检:两名穿戏服的表演者清晰对峙,前景有人群+手机,无文字——否则重新生成。

Step 2 — Fight clip (
generate_video
, image→video, 10s)

步骤2——生成打斗片段(
generate_video
,image→video,10秒)

Locks the still as the start frame and animates the clash. At 10s there's room for a fuller beat — give the
[ACTION]
a small arc (square-off → clash → the live-stage effect → recoil/second exchange → crowd erupts) rather than a single hit. Template — verbatim wrapper, fill only
[ACTION + EFFECT]
:
Wholesome theatrical stage performance, choreographed cosplay, advertiser-safe. POV handheld phone footage from the audience, frame slightly unsteady, raised above other people's heads filming the stage. [ACTION: the two performers <sprint/dash in> and <clash — martial choreography or props>, <a believable live-stage effect: stage smoke / green fire + sparks / a wall of water erupts>, then <both recoil / leap apart / brace>]. The crowd in the foreground reacts, phones held up recording. Believable live-stage effects, not cartoon magic. Realistic smartphone recording, slight digital noise, continuous handheld shot, no subtitles, no UI.
Call
generate_video
.
Call params:
image:
(or
reference_images:
) =
state.still_<n>_url
(start frame) ·
duration: 10
·
aspect_ratio: 16:9
(match Step 1) · keep
sound
default (don't force music). Poll
task_status
if it returns a task id. If it fails after ~4 min it cleared moderation — just retry; if it fails fast, soften the action wording and re-roll.
将静态图锁定为起始帧,动画化交锋动作。10秒的时长足够呈现完整的动作弧(对峙→交锋→现场舞台效果→后退/二次交锋→人群沸腾),而非单一击打动作。模板——保留固定框架,仅填充
[ACTION + EFFECT]
Wholesome theatrical stage performance, choreographed cosplay, advertiser-safe. POV handheld phone footage from the audience, frame slightly unsteady, raised above other people's heads filming the stage. [ACTION: the two performers <sprint/dash in> and <clash — martial choreography or props>, <a believable live-stage effect: stage smoke / green fire + sparks / a wall of water erupts>, then <both recoil / leap apart / brace>]. The crowd in the foreground reacts, phones held up recording. Believable live-stage effects, not cartoon magic. Realistic smartphone recording, slight digital noise, continuous handheld shot, no subtitles, no UI.
调用
generate_video
调用参数
image:
(或
reference_images:
)=
state.still_<n>_url
(起始帧) ·
duration: 10
·
aspect_ratio: 16:9
(与步骤1一致) · 保持
sound
默认(不要强制添加音乐)。若返回任务ID,调用
task_status
查询状态。如果耗时超过约4分钟后失败,说明内容已通过审核——只需重试;如果快速失败,弱化动作描述后重新提交。

Step 3 — Finish (optional)

步骤3——后期处理(可选)

  • SFX/music in post only. Crowd murmur + a whoosh/impact on the clash sells it. Generate or fetch audio and mix with
    edit_audio_mix
    never pass music as
    reference_audio
    into the video gen (trips moderation).
  • 仅在后期添加音效/音乐。人群低语+交锋时的呼啸/撞击声能提升效果。生成或获取音频后,使用
    edit_audio_mix
    混合——绝不要将音乐作为
    reference_audio
    传入视频生成环节(会触发审核)。

Example decompositions (ILLUSTRATIONS ONLY — never substitute these for the user's matchup)

示例分解(仅作演示——请勿替换用户选择的对战组合)

Read these to learn how a matchup splits into the four variables — then derive your own for whatever the user picked. Don't paste one of these unless the user chose that exact fight. The generated stills are in
examples/
(
ex1_ninja
,
ex2_samurai
,
ex3_snake
,
hero_pika
+
_contact_sheet.png
) — open them as the visual target for a good Step-1 still.
matchupstage (props, light)LEFT performerRIGHT performersignature effect
Ninja clashdusk ninja-village gate; rock formations, painted doors, paper lanterns, forestspiky-blond ninja, leaf-emblem headband, orange tracksuitspiky-black-hair ninja, dark-blue shirtdust + a puff of stage smoke
Samurai vs demonnight temple courtyard; stone lanterns, torii gate, green foglean samurai, straw hat, dark armor, katanatowering horned demon, black robes, clawsgreen stage fire + sparks
Water-stage dueldusk lake water-stage; Chinese pavilion, red pillars, lanterns, misty mountainswhite-robed sorceress, long black hair, arms raisedpale vampire, black robes, fangs, red eyesa wall of water → geyser
Hero / mascotdusk wooden stage; rock formations, lanterns, forestsmall fluffy "Pika" mascot in a tiny gitowering horned armored warrior, far largerburst of stage sparks
Each row =
[STAGE]
·
[PERFORMER A]
·
[PERFORMER B]
·
[ACTION effect]
. Your job is to fill those same four slots from the user's characters, not to reach for a row above.
阅读这些示例,学习如何将对战组合拆分为四个变量——然后针对用户选择的组合自行推导。除非用户选择了完全相同的对战组合,否则不要粘贴这些示例。生成的静态图位于
examples/
目录(
ex1_ninja
ex2_samurai
ex3_snake
hero_pika
+
_contact_sheet.png
)——打开这些图片作为步骤1静态图的视觉目标
对战组合舞台(道具、光线)左侧表演者右侧表演者标志性效果
忍者对决黄昏的忍者村大门;岩石地形、彩绘门、纸灯笼、森林金发刺猬头忍者,木叶标志头带,橙色运动服黑发刺猬头忍者,深蓝色上衣尘土+一阵舞台烟雾
武士 vs 恶魔夜间寺庙庭院;石灯笼、鸟居门、绿色雾气精瘦武士,草帽,深色铠甲,武士刀高大有角恶魔,黑袍,利爪绿色舞台火焰+火花
水舞台对决黄昏的湖面水舞台;中式亭台、红柱、灯笼、雾中山峦白袍女巫,黑色长发,抬手姿势苍白吸血鬼,黑袍,尖牙,红眼睛水墙→水柱
英雄/吉祥物黄昏的木质舞台;岩石地形、灯笼、森林穿小型道服的毛茸茸“Pika”吉祥物高大的有角装甲战士,体型悬殊舞台火花爆发
每一行对应
[舞台]
·
[表演者A]
·
[表演者B]
·
[动作效果]
。你的任务是从用户的角色出发填充这四个字段,而非直接使用上面的示例行。

One-liner recap

一句话总结

Costumed performers + a themed stage + a fan in the crowd filming + "it's just a stunt show" framing = fight footage that actually renders. One matchup → one stage still → one 10s image-to-video (16:9). Music/SFX in post, never via
reference_audio
.
戏服表演者+主题舞台+粉丝拍摄视角+“这只是特技表演”的定位=可成功生成的打斗视频。一组对战→一张舞台静态图→一段10秒的图像转视频(16:9)。音乐/音效在后期添加,绝不要通过
reference_audio
传入。