@nodetool-ai/agents 0.8.4-a24.2 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/.nodetool-build-stamp +1 -1
  2. package/dist/_skills/LICENSE-iart-motion-design-skills +21 -0
  3. package/dist/_skills/README.md +211 -0
  4. package/dist/_skills/api-agents/SKILL.md +58 -0
  5. package/dist/_skills/api-apps/SKILL.md +54 -0
  6. package/dist/_skills/api-assets/SKILL.md +66 -0
  7. package/dist/_skills/api-collections/SKILL.md +33 -0
  8. package/dist/_skills/api-games/SKILL.md +81 -0
  9. package/dist/_skills/api-media/SKILL.md +131 -0
  10. package/dist/_skills/api-memory/SKILL.md +72 -0
  11. package/dist/_skills/api-models/SKILL.md +78 -0
  12. package/dist/_skills/api-scripts/SKILL.md +79 -0
  13. package/dist/_skills/api-settings/SKILL.md +49 -0
  14. package/dist/_skills/api-sketches/SKILL.md +61 -0
  15. package/dist/_skills/api-storyboards/SKILL.md +94 -0
  16. package/dist/_skills/api-timelines/SKILL.md +151 -0
  17. package/dist/_skills/api-web/SKILL.md +57 -0
  18. package/dist/_skills/api-workflows/SKILL.md +123 -0
  19. package/dist/_skills/beat-sync-editing/SKILL.md +208 -0
  20. package/dist/_skills/caption-titles/SKILL.md +94 -0
  21. package/dist/_skills/color-motion/SKILL.md +185 -0
  22. package/dist/_skills/commercial-beat-sheet/SKILL.md +338 -0
  23. package/dist/_skills/elevenlabs-audio-prompting/SKILL.md +163 -0
  24. package/dist/_skills/explainer-storyboard/SKILL.md +63 -0
  25. package/dist/_skills/flux-2-klein-prompting/SKILL.md +107 -0
  26. package/dist/_skills/frame-composition/SKILL.md +291 -0
  27. package/dist/_skills/game-direction/SKILL.md +99 -0
  28. package/dist/_skills/gpt-image-2-prompting/SKILL.md +161 -0
  29. package/dist/_skills/hailuo-prompting/SKILL.md +107 -0
  30. package/dist/_skills/kling-video-prompting/SKILL.md +188 -0
  31. package/dist/_skills/launch-commercial/SKILL.md +267 -0
  32. package/dist/_skills/launch-kit/SKILL.md +120 -0
  33. package/dist/_skills/logo-reveal/SKILL.md +225 -0
  34. package/dist/_skills/manimgx/SKILL.md +123 -0
  35. package/dist/_skills/minimax-h3-prompting/SKILL.md +134 -0
  36. package/dist/_skills/motion-ad/SKILL.md +281 -0
  37. package/dist/_skills/motion-background/SKILL.md +145 -0
  38. package/dist/_skills/motion-curves/SKILL.md +302 -0
  39. package/dist/_skills/motion-direction/SKILL.md +259 -0
  40. package/dist/_skills/motion-graphics/SKILL.md +217 -0
  41. package/dist/_skills/motion-principles/SKILL.md +255 -0
  42. package/dist/_skills/music-video-treatment/SKILL.md +40 -0
  43. package/dist/_skills/nano-banana-pro-prompting/SKILL.md +133 -0
  44. package/dist/_skills/native-game/SKILL.md +310 -0
  45. package/dist/_skills/native-game-reference/SKILL.md +879 -0
  46. package/dist/_skills/nodetool-3d-scene/SKILL.md +110 -0
  47. package/dist/_skills/nodetool-api-reference/SKILL.md +338 -0
  48. package/dist/_skills/nodetool-app-builder/SKILL.md +291 -0
  49. package/dist/_skills/nodetool-browser-agent/SKILL.md +119 -0
  50. package/dist/_skills/nodetool-chat-cli/SKILL.md +184 -0
  51. package/dist/_skills/nodetool-custom-node-developer/SKILL.md +294 -0
  52. package/dist/_skills/nodetool-deployment/SKILL.md +195 -0
  53. package/dist/_skills/nodetool-js-scripting/SKILL.md +223 -0
  54. package/dist/_skills/nodetool-model-provider-config/SKILL.md +348 -0
  55. package/dist/_skills/nodetool-rag-indexing/SKILL.md +153 -0
  56. package/dist/_skills/nodetool-sketch/SKILL.md +138 -0
  57. package/dist/_skills/nodetool-skill-author/SKILL.md +125 -0
  58. package/dist/_skills/nodetool-troubleshooter/SKILL.md +370 -0
  59. package/dist/_skills/nodetool-video-post/SKILL.md +149 -0
  60. package/dist/_skills/nodetool-workflow-builder/SKILL.md +295 -0
  61. package/dist/_skills/product-commercial/SKILL.md +132 -0
  62. package/dist/_skills/qwen-image-prompting/SKILL.md +122 -0
  63. package/dist/_skills/script-video/SKILL.md +106 -0
  64. package/dist/_skills/seedance-2-prompting/SKILL.md +194 -0
  65. package/dist/_skills/seedream-prompting/SKILL.md +117 -0
  66. package/dist/_skills/short-film/SKILL.md +123 -0
  67. package/dist/_skills/stable-audio-prompting/SKILL.md +130 -0
  68. package/dist/_skills/storyboard-core/SKILL.md +716 -0
  69. package/dist/_skills/timeline-edit-ops/SKILL.md +736 -0
  70. package/dist/_skills/trailer-template/SKILL.md +291 -0
  71. package/dist/_skills/ugc-video/SKILL.md +186 -0
  72. package/dist/_skills/veo-3-prompting/SKILL.md +140 -0
  73. package/dist/_skills/video-audio-continuity/SKILL.md +90 -0
  74. package/dist/_skills/video-clone/SKILL.md +96 -0
  75. package/dist/_skills/video-workflow/SKILL.md +119 -0
  76. package/dist/_skills/wan-2-6-prompting/SKILL.md +107 -0
  77. package/dist/app-build/bridge.d.ts.map +1 -1
  78. package/dist/app-build/bridge.js +44 -17
  79. package/dist/app-build/bridge.js.map +1 -1
  80. package/dist/capabilities/apps.d.ts.map +1 -1
  81. package/dist/capabilities/apps.js +55 -13
  82. package/dist/capabilities/apps.js.map +1 -1
  83. package/dist/capabilities/apps.specs.d.ts.map +1 -1
  84. package/dist/capabilities/apps.specs.js +5 -3
  85. package/dist/capabilities/apps.specs.js.map +1 -1
  86. package/dist/capabilities/game-asset-browser.d.ts.map +1 -1
  87. package/dist/capabilities/game-asset-browser.js +6 -1
  88. package/dist/capabilities/game-asset-browser.js.map +1 -1
  89. package/dist/capabilities/game.d.ts +1 -1
  90. package/dist/capabilities/game.d.ts.map +1 -1
  91. package/dist/capabilities/game.js +71 -56
  92. package/dist/capabilities/game.js.map +1 -1
  93. package/dist/capabilities/game.specs.js +1 -1
  94. package/dist/capabilities/game.specs.js.map +1 -1
  95. package/dist/capabilities/game3d.d.ts.map +1 -1
  96. package/dist/capabilities/game3d.js +14 -19
  97. package/dist/capabilities/game3d.js.map +1 -1
  98. package/dist/capabilities/gameAssertions.d.ts +52 -0
  99. package/dist/capabilities/gameAssertions.d.ts.map +1 -0
  100. package/dist/capabilities/gameAssertions.js +32 -0
  101. package/dist/capabilities/gameAssertions.js.map +1 -0
  102. package/dist/capabilities/models.d.ts.map +1 -1
  103. package/dist/capabilities/models.js +9 -0
  104. package/dist/capabilities/models.js.map +1 -1
  105. package/dist/capabilities/storyboards.d.ts.map +1 -1
  106. package/dist/capabilities/storyboards.js +36 -11
  107. package/dist/capabilities/storyboards.js.map +1 -1
  108. package/dist/capabilities/storyboards.specs.d.ts.map +1 -1
  109. package/dist/capabilities/storyboards.specs.js +11 -1
  110. package/dist/capabilities/storyboards.specs.js.map +1 -1
  111. package/dist/capabilities/workflows.d.ts.map +1 -1
  112. package/dist/capabilities/workflows.js +1 -0
  113. package/dist/capabilities/workflows.js.map +1 -1
  114. package/dist/capabilities/workflows.specs.d.ts.map +1 -1
  115. package/dist/capabilities/workflows.specs.js +4 -3
  116. package/dist/capabilities/workflows.specs.js.map +1 -1
  117. package/dist/evals/surfaces/game.d.ts.map +1 -1
  118. package/dist/evals/surfaces/game.js +29 -1
  119. package/dist/evals/surfaces/game.js.map +1 -1
  120. package/dist/game-authoring.d.ts +120 -0
  121. package/dist/game-authoring.d.ts.map +1 -1
  122. package/dist/game-build-integrity.d.ts +12 -0
  123. package/dist/game-build-integrity.d.ts.map +1 -0
  124. package/dist/game-build-integrity.js +78 -0
  125. package/dist/game-build-integrity.js.map +1 -0
  126. package/dist/game-examples.d.ts +44 -3
  127. package/dist/game-examples.d.ts.map +1 -1
  128. package/dist/game-examples.js +60 -10
  129. package/dist/game-examples.js.map +1 -1
  130. package/dist/system-skills.d.ts +1 -1
  131. package/dist/system-skills.js +1 -1
  132. package/dist/tools/builtin-tools.d.ts.map +1 -1
  133. package/dist/tools/builtin-tools.js +2 -0
  134. package/dist/tools/builtin-tools.js.map +1 -1
  135. package/package.json +19 -19
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: game-direction
3
+ description: "Set the feel, level pacing, and art direction before building or revising a native game. Use for a new game, a showcase, a visual overhaul, or a game that plays correctly but feels flat. Pairs with native-game, which owns every tool and schema contract."
4
+ ---
5
+
6
+ # Direct a native game
7
+
8
+ Lock a short direction spec before the first game edit or asset generation.
9
+ State the spec in the conversation, then build within the requested scope.
10
+ For an existing game, read it and preserve its established direction unless
11
+ the brief asks for a change. `native-game` owns the tool and schema contracts.
12
+
13
+ ## Direction spec
14
+
15
+ | Decision | Record before building |
16
+ |---|---|
17
+ | Player promise | The action that should feel satisfying, the challenge, and the observable win condition |
18
+ | Style string | One exact reusable string naming medium, palette, edge treatment, lighting, and texture |
19
+ | Layer plan | Sky, far background, midground, play layer, and foreground, with their depth, contrast, and parallax |
20
+ | Feel parameters | Movement speed, acceleration and braking, jump height and duration, coyote ticks, buffer ticks, and feedback timing |
21
+ | Pacing sheet | Ordered teaching beats, their safe practice area, challenge, recovery, and finish |
22
+ | Asset plan | Hero poses, aligned frames, terrain edge variants, effects, sound cues, music, and fonts |
23
+ | Proof route | Start scene, required targets, win signal, expected duration, and captures at the teaching beat and hardest section |
24
+
25
+ For a small prototype, keep each row to one sentence and use only the layers
26
+ and assets the brief needs. The jump, coyote and layer rows assume a side-view
27
+ platformer. For a top-down game (the 2D default), record movement speed,
28
+ acceleration, braking and facing instead of jump rows, and replace the depth
29
+ layers with ground, props, overhead decoration and lighting. For a 3D
30
+ exploration game, record the controller speed, jump, follow-camera offset
31
+ and pitch limits, and plan sky, lighting and landmarks instead of parallax layers.
32
+ A showcase needs a visible depth plan and a finished art pass. Load
33
+ `native-game` for the build loop, `native-game-reference` for the document
34
+ fields, and `list_example_games` and `get_example_game` for shipped references. Study Kindle for a platformer
35
+ with animated poses, terrain edges, parallax, lights, sound cues, and a grade.
36
+ Use its decisions as a benchmark for the brief, without copying its theme.
37
+
38
+ ## One style string
39
+
40
+ Repeat the locked style string verbatim in every visual prompt. Add the asset's
41
+ role, dimensions, framing, and transparency requirements after that string.
42
+ Pass one installed style reference as `reference_slot` on `generate_game_asset`
43
+ when the selected model accepts an input image.
44
+ Changing the palette or edge treatment for one asset requires updating the
45
+ spec and the related assets.
46
+
47
+ Keep the player's silhouette readable against the play layer. Background
48
+ contrast and detail should fall with distance. Foreground decoration must leave
49
+ hazards and landing surfaces visible. Check the composition at the target
50
+ screen size, including touch controls and HUD.
51
+
52
+ ## Game feel
53
+
54
+ Measure timings in ticks at the engine's 60 Hz rate. For a side-view prototype,
55
+ start with 6–8 coyote ticks and 6–8 buffer ticks, then tune them against the
56
+ actual level. Coyote time permits a jump shortly after leaving support. A jump
57
+ buffer remembers a press shortly before landing. Implement these in persistent
58
+ script state using `entity.touching.down` and `justPressed`.
59
+
60
+ Set jump velocity and gravity from the intended height and airtime. Holding
61
+ jump may preserve ascent while release cuts it. Make braking fast enough to
62
+ land on the narrowest required platform. Decide whether air steering and wall
63
+ jumps are part of the game before laying out challenges that need them.
64
+
65
+ Give an action a clear response. A jump can use a pose change, a sound cue, and
66
+ a brief dust puff. A landing can compress the sprite, then restore it. A hit
67
+ needs an immediate flash or recoil and a clear recovery window. Keep squash,
68
+ stretch, and screen effects visual so the collider remains predictable. Use
69
+ `setVisual`, animation clips, particles, and event-driven audio through the
70
+ contracts in `native-game`. Avoid repeated camera motion that obscures a jump.
71
+
72
+ ## Level pacing
73
+
74
+ Write the pacing sheet before placing the level. Each row identifies the
75
+ mechanic, what the player sees before committing, and where a failed attempt
76
+ returns them. Introduce a mechanic in safety, ask for one clear use, then
77
+ combine it with an earlier mechanic. Put recovery after a demanding section.
78
+ Keep checkpoints near the section they protect and make their activation
79
+ visible and audible.
80
+
81
+ Place the first required target where normal play teaches movement. Show the
82
+ next landing or objective before asking for a blind commitment. Optional
83
+ collectibles can reward risk, but the win route must remain readable without
84
+ them unless collection is the stated objective. Test the narrowest clearance,
85
+ longest jump, moving platform timing, and respawn state individually.
86
+
87
+ ## Finish and proof
88
+
89
+ Obtain the proof route with autoplay or a written route, replay it, and
90
+ assert the win as `native-game` § Build and revise describes. For a custom
91
+ scripted goal, assert the game's own victory signal, not only a target contact.
92
+
93
+ Capture the start, a representative play section, the busiest frame, and the
94
+ finish using the proof route. Captures return image refs, so call
95
+ `view_image` on each frame before judging it. Inspect the images against the
96
+ locked layer plan, silhouette contrast, terrain joins, foot alignment, HUD, lighting, and grade.
97
+ Schema validation proves structure. An executed route proves that route can
98
+ reach its observed target. Visual quality requires inspecting the rendered
99
+ frames. Report which of these checks passed and what remains unverified.
@@ -0,0 +1,161 @@
1
+ ---
2
+ name: gpt-image-2-prompting
3
+ description: Prompt OpenAI's GPT Image 2 — the five-slot Scene/Subject/Details/Use case/Constraints template it responds to, the change-versus-preserve shape for edits, labelled multi-image compositing, and how to get text on an image to render verbatim. Use whenever the model id contains gpt-image-2 (openai/gpt-image-2, openai/gpt-image-2/edit, openai/gpt-image-2/text-to-image, kie's gpt-image-2-text-to-image and gpt-image-2-image-to-image) on generate_image, edit_image or a TextToImage node. Not for GPT Image 1, 1-mini, 1.5 or 2.5.
4
+ ---
5
+
6
+ # GPT Image 2 → five slots, in order
7
+
8
+ The model responds to structure: scene, subject, specific details, intended
9
+ artifact, constraints, in that order, with line breaks between sections once
10
+ the prompt runs past a short paragraph. Everything else sits on top of that
11
+ spine.
12
+
13
+ Reach it with `find_model` for `text_to_image` or `image_to_image`, then
14
+ `generate_image` / `edit_image`. `generate_image` forwards only the prompt, a
15
+ negative prompt, the size and a quality string, and `edit_image` only the
16
+ images, the prompt, a negative prompt, a target size and a strength. Output
17
+ format and `background` exist only on the route's own node: find it with
18
+ `search_nodes`, read its fields with `get_node_info`, and run it with
19
+ `run_node`.
20
+
21
+ ## The template
22
+
23
+ ```
24
+ Scene:
25
+ [where this happens, time of day, background, environment]
26
+
27
+ Subject:
28
+ [who or what is the main focus]
29
+
30
+ Important details:
31
+ [materials, clothing, texture, lighting, camera angle, lens feel, composition, mood]
32
+
33
+ Use case:
34
+ [editorial photo / product mockup / poster / UI screen / infographic / concept frame]
35
+
36
+ Constraints:
37
+ [no watermark / no logos / no extra text / preserve face / preserve layout]
38
+ ```
39
+
40
+ Five slots, five problems people usually blur together: where the image exists,
41
+ what it is about, what must be visible, what kind of finished artifact you
42
+ want, and what must not drift. The fifth is where mediocre prompts fail
43
+ silently — describe the idea without bounding it and the model gets inventive
44
+ in directions you will regret.
45
+
46
+ Filled in:
47
+
48
+ ```
49
+ Scene:
50
+ A quiet classical museum gallery in soft afternoon light.
51
+
52
+ Subject:
53
+ A woman in her 30s standing casually in front of a large oil painting.
54
+
55
+ Important details:
56
+ Natural smile, realistic skin texture, beige knit sweater, dark jeans, white
57
+ sneakers, eye-level full-body framing, marble floor reflections, warm neutral
58
+ colour balance, shallow depth of field, believable indoor ambient light.
59
+
60
+ Use case:
61
+ Editorial lifestyle photograph.
62
+
63
+ Constraints:
64
+ No watermark, no logos, no extra people in the foreground, no heavy retouching.
65
+ ```
66
+
67
+ ## Rules
68
+
69
+ 1. **Visual facts over vague praise.** Drop stunning, incredible, epic,
70
+ masterpiece, insane detail. Use overcast daylight, brushed aluminium,
71
+ chipped paint, clean kerning, 50mm feel, soft bounce light, worn canvas.
72
+ 2. **Style tags need visual targets.** "Minimalist brutalist editorial luxury
73
+ premium" is noise. "Cream background, heavy black condensed sans serif,
74
+ asymmetrical type block, one hero object, generous negative space, studio
75
+ tabletop lighting" is a layout.
76
+ 3. **Say the real thing.** Transit kiosk. Boarding pass. Preserve the face.
77
+ Mood language buries the brief.
78
+ 4. **Separate change from preserve in edits.** "Change only X", "keep
79
+ everything else the same", and repeat the preserve list on every pass.
80
+ 5. **Treat text as typography.** Wrap literal copy in quotes or ALL CAPS, mark
81
+ it EXACT TEXT, and specify font class, size, colour and placement. Add "no
82
+ extra words" and "no duplicate text".
83
+ 6. **One revision per turn.** Small iterative edits beat one giant rewrite.
84
+
85
+ ## Three modes
86
+
87
+ **Generate from scratch** — the five-slot template above. One clean pass lands
88
+ believable mundane realism once the prompt locks the lighting, the camera
89
+ behaviour and the environment details.
90
+
91
+ **Edit one image** — two columns, plus a physical-realism line:
92
+
93
+ ```
94
+ Change:
95
+ Replace the parked car with a vintage bicycle.
96
+
97
+ Preserve:
98
+ The house, fence, driveway concrete, landscaping, lighting direction, and time
99
+ of day, exactly.
100
+
101
+ Constraints:
102
+ Match the bicycle's scale and shadow pattern to the existing scene. No extra
103
+ objects, no redesign, no watermark.
104
+ ```
105
+
106
+ The preserve list carries the edit. Inventory what must stay — awning, brick
107
+ facade, mullions, reflections, sidewalk, every person on it — and the edit
108
+ stays in scope.
109
+
110
+ **Combine multiple images** — label every input by role and reference the
111
+ labels in the instruction. fal's edit route and kie's image-to-image route take
112
+ up to 16 reference images; the other routes state no cap.
113
+
114
+ ```
115
+ Image 1: base scene to preserve.
116
+ Image 2: jacket reference.
117
+ Image 3: boots reference.
118
+
119
+ Dress the person from Image 1 using the jacket from Image 2 and the boots from
120
+ Image 3. Preserve the face, body shape, pose, background, lighting, and framing
121
+ from Image 1. Fit the garments naturally with realistic folds, drape, occlusion
122
+ and contact shadows. No extra accessories.
123
+ ```
124
+
125
+ Unlabelled inputs make the model guess which image is content and which is
126
+ reference, and it guesses wrong.
127
+
128
+ ## What it is good at
129
+
130
+ - **Photoreal editorial.** Describe the photograph, not the fantasy: lens,
131
+ framing, time of day, light source, surface wear, an ordinary background
132
+ detail, one believable imperfection.
133
+ - **Product.** Material accuracy, lighting consistency, label fidelity. A flat
134
+ inventory of physical objects plus one piece of print that must stay legible
135
+ is the entire recipe.
136
+ - **UI and screenshots.** Name the screen type, the hierarchy, the exact copy,
137
+ the state, and the layout logic. "Clean survival HUD along the bottom,
138
+ believable UI spacing" does the layout work; remove those clauses and the HUD
139
+ collapses into noise.
140
+ - **Text in image.** Give the copy verbatim, then typography, then layout, then
141
+ "render the text verbatim / no extra words / no duplicate text". For a still
142
+ that will sit on a timeline or seed a video clip, leave the copy off and add
143
+ it as a text clip afterwards (`caption-titles`) so it stays editable.
144
+ - **Style transfer.** "Same style" is not enough. Name the parts: chunky pixel
145
+ forms, limited arcade palette, bright glow accents, clean silhouette edges.
146
+ - **Drawing to photo.** Say whether the drawing is a suggestion or a contract:
147
+ "preserve the exact layout, horizon line, proportions, river path, mountain
148
+ placement, tree placement, and overall perspective".
149
+ - **Character consistency.** First prompt establishes the anchor. Second prompt
150
+ repeats the anchor details verbatim and adds "do not redesign the character".
151
+
152
+ Transparency needs a route with a `background` field set to `transparent`:
153
+ kie's (only at 1K resolution, per its field note) or Replicate's
154
+ `openai/gpt-image-2`, with PNG or WebP output. The fal and AtlasCloud routes
155
+ have no `background` field.
156
+
157
+ Check the render rather than assuming it: `critique_image`, or
158
+ `score_image_adherence` when the prompt has copy or a layout to hold.
159
+
160
+ Adapted from fal's GPT Image 2 prompting guide:
161
+ https://fal.ai/learn/tools/prompting-gpt-image-2
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: hailuo-prompting
3
+ description: Prompt MiniMax's Hailuo video line — the chronological beat order it animates from, the fifteen bracketed camera commands the Director endpoints accept and the three-per-bracket rule, when to switch prompt_optimizer off, why there is no negative prompt to fall back on, and prompting the delta on image-to-video. Use whenever the model id names Hailuo or MiniMax video-01 (fal-ai/minimax/hailuo-2.3/pro/text-to-video, fal-ai/minimax/hailuo-02/pro/image-to-video, fal-ai/minimax/hailuo-02-fast/image-to-video, fal-ai/minimax/video-01-director, fal-ai/minimax/video-01-subject-reference, hailuo/2-3-image-to-video-pro, minimax/hailuo-2.3, minimax/hailuo-02-fast, and the direct MiniMax provider's MiniMax-Hailuo-2.3, MiniMax-Hailuo-02, T2V-01-Director, I2V-01-Director and S2V-01) on generate_video, animate_image, generate_video_from_references or a TextToVideo node. Not for MiniMax H3, which has its own guide.
4
+ ---
5
+
6
+ # Hailuo → a sequence of beats, in order
7
+
8
+ Hailuo animates the order it reads. It has no negative prompt, no shot list and
9
+ no CFG dial, so every control you get is in the wording: what happens, in what
10
+ order, and how the camera behaves while it happens. Clips run 6 or 10 seconds
11
+ (10 s is unavailable at 1080p on Hailuo 02).
12
+
13
+ Reach it with `find_model` for `text_to_video` or `image_to_video`, then
14
+ `generate_video` / `animate_image`. Those forward only the prompt (and the
15
+ image), the duration, the aspect ratio and the resolution. `prompt_optimizer`
16
+ exists only on the route's own node: find it with `search_nodes`, read its
17
+ fields with `get_node_info`, and run it with `run_node`.
18
+
19
+ ## Write the action as beats
20
+
21
+ Break one motion into the beats it is made of and connect them with sequencing
22
+ words — first, then, as, finally. The model animates that order.
23
+
24
+ > A skateboarder rolls toward a handrail in an empty underground car park.
25
+ > First he crouches low over the deck, then he pops the tail and the board
26
+ > snaps up under him, and as he lands on the rail the trucks grind along the
27
+ > steel, sparks trailing behind. Finally he drops off the end and rolls out of
28
+ > frame past a pillar.
29
+
30
+ Compare "a skateboarder does a trick on a rail", which gives the model the
31
+ whole choreography to invent and no reason to resolve it the way you meant.
32
+
33
+ Emotional beats work the same way. "She reads the letter with growing concern,
34
+ tears well up, then she crumples the paper and throws it" is three animatable
35
+ states; "she is sad about the letter" is one adjective.
36
+
37
+ ## Camera
38
+
39
+ On the Director endpoints (`video-01-director` and its image-to-video form,
40
+ and MiniMax's own `T2V-01-Director` and `I2V-01-Director`), camera moves are
41
+ commands in square brackets. Fifteen are supported:
42
+
43
+ `[Truck left]` `[Truck right]` `[Pan left]` `[Pan right]` `[Push in]`
44
+ `[Pull out]` `[Pedestal up]` `[Pedestal down]` `[Tilt up]` `[Tilt down]`
45
+ `[Zoom in]` `[Zoom out]` `[Shake]` `[Tracking shot]` `[Static shot]`
46
+
47
+ Two placement rules carry all of it. Commands inside one bracket happen at the
48
+ same time, capped at three: `[Truck left, Pan right, Zoom in]`. Commands at
49
+ different points in the prompt happen in that order:
50
+
51
+ ```
52
+ [Static shot] The chef sets the plate down under the pass light. [Push in]
53
+ He wipes the rim with a cloth, then looks up. [Tilt up, Pan right] The dining
54
+ room comes into view behind him.
55
+ ```
56
+
57
+ The bracket contract is documented for the Director endpoints only, so on
58
+ every other Hailuo endpoint write camera direction as prose — "a slow tracking
59
+ shot follows her", "the camera racks focus from the leaves to her face".
60
+
61
+ ## prompt_optimizer
62
+
63
+ It rewrites your prompt with an LLM before generation. It defaults to true on
64
+ every fal and Replicate Hailuo and video-01 route and to false on kie's Hailuo
65
+ 02 routes. kie's Hailuo 2.3, the AtlasCloud routes and the direct MiniMax video
66
+ models have no such field. Leave it on for a short prompt: it fills in the
67
+ detail you did not write. Switch it off once your prompt is a deliberate brief
68
+ — it will otherwise rewrite away the specific wardrobe, the specific light, and
69
+ the beat order you just spent effort on.
70
+
71
+ ## Image to video
72
+
73
+ The frame is already decided. Prompt only what changes: motion, camera, light
74
+ over time, environment animation. Naming the subject briefly to anchor the
75
+ reference is fine — "the red-haired woman turns slowly to face camera" — but a
76
+ paragraph re-describing the still is a paragraph not spent on the delta.
77
+
78
+ Keep the framing consistent with the source. Asking a close-up input for a wide
79
+ establishing move is how you get a hallucinated body.
80
+
81
+ `video-01-subject-reference` (and MiniMax's own `S2V-01`, reached through
82
+ `generate_video_from_references`) holds a face across the clip from one
83
+ reference image; describe the person's action, not their appearance.
84
+
85
+ ## No negative prompt
86
+
87
+ There is no field, and "no text, no watermark, not blurry" in the prompt is
88
+ read as content. Say what should be there instead. Empty sky, not "no birds".
89
+ A bare concrete wall, not "no graffiti".
90
+
91
+ ## Symptoms
92
+
93
+ | What went wrong | What to change |
94
+ | :--- | :--- |
95
+ | The action resolves in the wrong order | Number the beats with first / then / as / finally |
96
+ | The camera drifts | Use a bracketed command on a Director endpoint, or name the move in prose |
97
+ | Your specifics disappeared | Set `prompt_optimizer` false on the route's node |
98
+ | A body appears where the input image was cropped | Match the prompt's framing to the input |
99
+ | The thing you excluded shows up anyway | Rewrite the exclusion as a positive description |
100
+
101
+ Grade the render with `analyze_video` and `detect_video_scenes`, and
102
+ `understand_video` when you need a written read of what landed.
103
+
104
+ Adapted from MiniMax's camera-movement contract as documented on the fal
105
+ Director endpoints, and Akool's Hailuo prompt guide:
106
+ https://fal.ai/models/fal-ai/minimax/video-01-director/api
107
+ https://akool.com/blog-posts/minimax-hailuo-video-prompt-guide
@@ -0,0 +1,188 @@
1
+ ---
2
+ name: kling-video-prompting
3
+ description: Prompt Kuaishou's Kling video line from 2.5-turbo onward — which version exposes a shot list, tagged elements, native audio and a CFG dial at all, one shot per entry in multi_prompt rather than one paragraph, characters tagged @Element1/@Element2 so a face survives a cut, the labelled dialogue format native audio lip-syncs to, a negative prompt aimed at the artifacts Kling actually produces, and what motion-control takes instead of a prompt. Use whenever the model id names Kling 2.5-turbo, 2.6, v3, O1 or O3 (fal-ai/kling-video/v3/pro/text-to-video, fal-ai/kling-video/o3/pro/reference-to-video, fal-ai/kling-video/v2.6/pro/image-to-video, kling-3.0-omni/text-to-video, kling-2.6/text-to-video, kwaivgi/kling-v3.0-pro, kwaivgi/kling-video-o3-pro, kwaivgi/kling-o1) on generate_video, animate_image, generate_video_from_references or a TextToVideo node. Not for Kling 1.x, 2.0 or 2.1, and not for Kling Image.
4
+ ---
5
+
6
+ # Kling → write shots, not paragraphs
7
+
8
+ The newer Kling versions take a shot list rather than a prompt: one call
9
+ carries several shots, generates native audio with lip sync, and holds a tagged
10
+ character across every cut. A single dense paragraph throws all three away and
11
+ comes back as one drifting take.
12
+
13
+ Which of those you get depends on the version and on the provider, so check
14
+ the route before you write. On fal:
15
+
16
+ | Version (fal) | Shot list | Tagged elements | Native audio (`generate_audio`) | cfg_scale / negative prompt |
17
+ | :--- | :--- | :--- | :--- | :--- |
18
+ | 2.5-turbo | — | — | — | yes |
19
+ | 2.6 | — | — | on by default | negative prompt; `cfg_scale` on text-to-video only |
20
+ | O1 | — | reference and video-to-video routes | — | — |
21
+ | v3 | yes | image-to-video routes | on by default | yes |
22
+ | v3 turbo | `multi_prompt` only | — | — | — |
23
+ | O3 | yes | reference and video-to-video routes | **off** by default | — |
24
+
25
+ The other providers name and default the same controls differently:
26
+
27
+ - **kie** — audio is `sound` (default false) on `kling-2.6/*` and
28
+ `kling-3.0/video`, and `audio` (default false) on `kling-3.0-omni/*`.
29
+ `kling-3.0/video` takes `multi_shots` with up to 12 `multi_prompt` entries
30
+ and up to 3 `kling_elements`. The omni routes take `customize_multi_shots` /
31
+ `prefer_multi_shots`, up to 6 `multi_prompt` entries, and `elements`.
32
+ `kling/v3-turbo-*` takes only a prompt and a duration.
33
+ - **AtlasCloud** — audio is `sound`, on by default except on the O3
34
+ reference-to-video routes. There is no `multi_prompt`: the shot switch is
35
+ `multi_shot` with `shot_type` `customize` or `intelligence`. `cfg_scale` and
36
+ `negative_prompt` exist on v2.6 and v3.0, not O3. `kling-v3.0-turbo/*` takes
37
+ only a prompt and a duration.
38
+ - **Replicate** — `generate_audio` is off by default on `kling-v3-video` and
39
+ `kling-v3-omni-video`, and on by default on `kling-v2.6`.
40
+
41
+ Native audio belongs to the call that made it. Several separately generated
42
+ clips cut together drop their sound at each join — `video-audio-continuity`
43
+ covers the two builds that avoid it.
44
+
45
+ Reach it with `find_model` for `text_to_video` or `image_to_video`, then
46
+ `generate_video` / `animate_image`. The reference-to-video routes take
47
+ `generate_video_from_references` with `find_model` for `reference_to_video`;
48
+ it sends plain reference images and videos, not tagged elements. Those tools
49
+ forward the prompt (and the media), a negative prompt (not `animate_image`),
50
+ the duration, the aspect ratio and the resolution. The shot list, `elements`,
51
+ `cfg_scale`, the audio switch and an end frame exist only on
52
+ the route's own node: find it with `search_nodes`, read its fields with
53
+ `get_node_info`, and run it with `run_node`. Each run is a paid generation,
54
+ so confirm the scope with the user before rendering several.
55
+
56
+ Clips run 3–15 seconds on v3 and O3 and 5 or 10 on most 2.x routes, 720p to
57
+ 4K, in 16:9, 9:16 or 1:1. The prompt caps at 2500 characters on most fal
58
+ routes, 3072 on fal's v3 turbo and kie's omni routes, and 1000 on kie's 2.6.
59
+
60
+ ## One shot per prompt
61
+
62
+ On v3 and O3, `multi_prompt` takes the shots and `prompt` takes a single shot;
63
+ they are mutually exclusive, so send one or the other. With fal's `shot_type`
64
+ set to `customize` (or kie omni's `customize_multi_shots` true), your shot
65
+ boundaries are used verbatim; with `intelligent` (or `prefer_multi_shots`) the
66
+ model cuts the narrative itself. Pick customize whenever you know the beats.
67
+ The provider list above gives each route's shot fields and caps.
68
+
69
+ On 2.5-turbo, 2.6 and O1 there is no shot list — one call is one shot, and a
70
+ sequence is several calls cut together in the timeline. Writing three labelled
71
+ shots into a single `prompt` there gets you one confused take.
72
+
73
+ Two to five sentences per shot is the working range. Each one names framing,
74
+ subject action, and camera behaviour:
75
+
76
+ ```
77
+ Shot 1 (4s): Wide. A courier in a wet orange jacket steps off a tram into
78
+ a night market, steam rising off the food stalls. Camera locked off.
79
+ Shot 2 (3s): Close on her hands unfolding a paper note, the ink running.
80
+ Slow push-in, shallow focus.
81
+ Shot 3 (5s): Medium tracking shot alongside her as she pushes through the
82
+ crowd toward a lit doorway, neon reflections sliding over the jacket.
83
+ ```
84
+
85
+ Repeat the subject description in every shot that contains it. A pronoun in
86
+ shot 3 is a new person.
87
+
88
+ ## Elements keep a face across the cut
89
+
90
+ `elements` takes reference images or a reference video per character or object;
91
+ the prompt addresses them as `@Element1`, `@Element2`. Which routes carry it is
92
+ in the table and provider list above. On the reference-to-video endpoints,
93
+ style references come in separately through `images` and are addressed as
94
+ `@Image1`. Elements plus reference images cap at four when a video reference is
95
+ in play; kie's omni endpoint takes up to seven image subjects, or three video
96
+ character subjects.
97
+
98
+ ```
99
+ @Element1 sets the espresso cup down on the counter beside @Element2 without
100
+ looking up. Medium two-shot, warm window light from the left.
101
+ ```
102
+
103
+ Tagging is what gives Kling three or more distinct characters in one clip
104
+ without their faces blending. Describe each element once, then refer to it by
105
+ tag only.
106
+
107
+ ## Dialogue and native audio
108
+
109
+ Native audio's switch and default differ per route (the table and provider list
110
+ above). On fal an O3 clip comes back silent unless you set `generate_audio`.
111
+ It produces dialogue with lip sync, plus ambience. Direct it with a labelled
112
+ line:
113
+
114
+ ```
115
+ [Detective Voss, low and tired]: "You left the light on."
116
+ Immediately, [Marla, brittle, too fast]: "I was coming back."
117
+ ```
118
+
119
+ Four rules the format depends on:
120
+
121
+ - **Labels are unique and constant.** `Detective Voss` in every line, never
122
+ "he" and never "the detective".
123
+ - **Bind each line to an action.** Write the action first, then the line. An
124
+ unanchored line drifts off the picture.
125
+ - **Sequence with a linking word.** "Immediately", "after a beat", "as she
126
+ turns" — without one, two lines overlap into mush.
127
+ - **Case matters for English speech.** fal's guide says to write it lowercase
128
+ and reserve capitals for acronyms and proper nouns, which is how the model
129
+ decides to spell a word out.
130
+
131
+ fal's guide says Chinese and English are voiced natively and anything else is
132
+ translated to English before it is spoken, so write the line in the language
133
+ you want heard.
134
+
135
+ ## Controls
136
+
137
+ | Parameter | Where it exists | What to do with it |
138
+ | :--- | :--- | :--- |
139
+ | `cfg_scale` | 2.5-turbo, fal 2.6 text-to-video, AtlasCloud 2.6, v3 (not turbo) | 0.5 default; 0.3 for a freer read, 0.7 only when spatial layout is fixed |
140
+ | `negative_prompt` | 2.5-turbo, 2.6, v3 (not turbo) | fal's default is "blur, distort, and low quality"; add what you see — sliding feet, extra fingers, warped faces, jittery camera |
141
+ | `duration` | every route | 3–15s on v3 and O3; each shot in a multi-shot list gets its own |
142
+ | `generate_audio` / `sound` / `audio` | 2.6, v3, O3 (not turbo) | Off costs less per second; leave it off when you are scoring in the timeline anyway |
143
+
144
+ Negative prompts earn their place here more than on most lines: Kling's
145
+ failures are limb and contact artifacts during fast motion, and naming the one
146
+ you are actually seeing suppresses it. O1, O3 and v3 turbo expose neither
147
+ dial, so on those the prompt is the whole instrument — spend the words the parameters would
148
+ have saved.
149
+
150
+ ## Image to video
151
+
152
+ The image is the anchor. Prompt only the change — camera move, what the subject
153
+ does next, how the light shifts. Re-describing what is already in the frame
154
+ spends words and invites the model to re-render it slightly differently.
155
+ A start image plus an end image (`end_image_url` on fal, `tail_image_url` on
156
+ fal's 2.5-turbo, `end_image` on AtlasCloud and Replicate) gives you a move with
157
+ a fixed landing frame. `animate_image` sends one image, so an end frame needs
158
+ the route's own node. Aspect ratio follows the input image; the parameter is
159
+ ignored.
160
+
161
+ ## Motion control is not a prompt job
162
+
163
+ The motion-control endpoints copy character motion from a reference video onto
164
+ a reference image, and the prompt only colours the result. What decides the
165
+ output is `character_orientation`: `video` matches the reference clip's
166
+ orientation and handles complex motion up to 30 s; `image` matches the still
167
+ and follows camera movement better, capped at 10 s. The reference image needs
168
+ an unobstructed figure occupying more than 5% of the frame.
169
+
170
+ ## Symptoms
171
+
172
+ | What went wrong | What to change |
173
+ | :--- | :--- |
174
+ | One drifting take instead of beats | Move the shots into the route's shot list with customize set, or move to v3/O3 if your version has no shot list |
175
+ | A clip came back silent | That route's audio switch defaults to false — check the provider list |
176
+ | A character changes face at the cut | Give them an element and tag every mention |
177
+ | Two lines of dialogue collide | Add a linking word and bind each line to an action |
178
+ | Sliding feet, bent fingers | Name that artifact in `negative_prompt` |
179
+ | Composition ignores a stated layout | Raise `cfg_scale` toward 0.7 |
180
+ | Spoken line comes out in the wrong language | Write the line in Chinese or English — everything else is translated |
181
+
182
+ Grade the render with `analyze_video` and `detect_video_scenes` rather than
183
+ watching it, and `understand_video` when you need a written read of what
184
+ landed.
185
+
186
+ Adapted from fal's Kling 3.0 prompting guide and Kling 3.0 Pro usage notes:
187
+ https://blog.fal.ai/kling-3-0-prompting-guide/
188
+ https://fal.ai/learn/tools/how-to-use-kling-3-0-pro