@nodetool-ai/agents 0.8.4-a24.3 → 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.
- package/dist/.nodetool-build-stamp +1 -1
- package/dist/_skills/LICENSE-iart-motion-design-skills +21 -0
- package/dist/_skills/README.md +211 -0
- package/dist/_skills/api-agents/SKILL.md +58 -0
- package/dist/_skills/api-apps/SKILL.md +54 -0
- package/dist/_skills/api-assets/SKILL.md +66 -0
- package/dist/_skills/api-collections/SKILL.md +33 -0
- package/dist/_skills/api-games/SKILL.md +81 -0
- package/dist/_skills/api-media/SKILL.md +131 -0
- package/dist/_skills/api-memory/SKILL.md +72 -0
- package/dist/_skills/api-models/SKILL.md +78 -0
- package/dist/_skills/api-scripts/SKILL.md +79 -0
- package/dist/_skills/api-settings/SKILL.md +49 -0
- package/dist/_skills/api-sketches/SKILL.md +61 -0
- package/dist/_skills/api-storyboards/SKILL.md +94 -0
- package/dist/_skills/api-timelines/SKILL.md +151 -0
- package/dist/_skills/api-web/SKILL.md +57 -0
- package/dist/_skills/api-workflows/SKILL.md +123 -0
- package/dist/_skills/beat-sync-editing/SKILL.md +208 -0
- package/dist/_skills/caption-titles/SKILL.md +94 -0
- package/dist/_skills/color-motion/SKILL.md +185 -0
- package/dist/_skills/commercial-beat-sheet/SKILL.md +338 -0
- package/dist/_skills/elevenlabs-audio-prompting/SKILL.md +163 -0
- package/dist/_skills/explainer-storyboard/SKILL.md +63 -0
- package/dist/_skills/flux-2-klein-prompting/SKILL.md +107 -0
- package/dist/_skills/frame-composition/SKILL.md +291 -0
- package/dist/_skills/game-direction/SKILL.md +99 -0
- package/dist/_skills/gpt-image-2-prompting/SKILL.md +161 -0
- package/dist/_skills/hailuo-prompting/SKILL.md +107 -0
- package/dist/_skills/kling-video-prompting/SKILL.md +188 -0
- package/dist/_skills/launch-commercial/SKILL.md +267 -0
- package/dist/_skills/launch-kit/SKILL.md +120 -0
- package/dist/_skills/logo-reveal/SKILL.md +225 -0
- package/dist/_skills/manimgx/SKILL.md +123 -0
- package/dist/_skills/minimax-h3-prompting/SKILL.md +134 -0
- package/dist/_skills/motion-ad/SKILL.md +281 -0
- package/dist/_skills/motion-background/SKILL.md +145 -0
- package/dist/_skills/motion-curves/SKILL.md +302 -0
- package/dist/_skills/motion-direction/SKILL.md +259 -0
- package/dist/_skills/motion-graphics/SKILL.md +217 -0
- package/dist/_skills/motion-principles/SKILL.md +255 -0
- package/dist/_skills/music-video-treatment/SKILL.md +40 -0
- package/dist/_skills/nano-banana-pro-prompting/SKILL.md +133 -0
- package/dist/_skills/native-game/SKILL.md +310 -0
- package/dist/_skills/native-game-reference/SKILL.md +879 -0
- package/dist/_skills/nodetool-3d-scene/SKILL.md +110 -0
- package/dist/_skills/nodetool-api-reference/SKILL.md +338 -0
- package/dist/_skills/nodetool-app-builder/SKILL.md +291 -0
- package/dist/_skills/nodetool-browser-agent/SKILL.md +119 -0
- package/dist/_skills/nodetool-chat-cli/SKILL.md +184 -0
- package/dist/_skills/nodetool-custom-node-developer/SKILL.md +294 -0
- package/dist/_skills/nodetool-deployment/SKILL.md +195 -0
- package/dist/_skills/nodetool-js-scripting/SKILL.md +223 -0
- package/dist/_skills/nodetool-model-provider-config/SKILL.md +348 -0
- package/dist/_skills/nodetool-rag-indexing/SKILL.md +153 -0
- package/dist/_skills/nodetool-sketch/SKILL.md +138 -0
- package/dist/_skills/nodetool-skill-author/SKILL.md +125 -0
- package/dist/_skills/nodetool-troubleshooter/SKILL.md +370 -0
- package/dist/_skills/nodetool-video-post/SKILL.md +149 -0
- package/dist/_skills/nodetool-workflow-builder/SKILL.md +295 -0
- package/dist/_skills/product-commercial/SKILL.md +132 -0
- package/dist/_skills/qwen-image-prompting/SKILL.md +122 -0
- package/dist/_skills/script-video/SKILL.md +106 -0
- package/dist/_skills/seedance-2-prompting/SKILL.md +194 -0
- package/dist/_skills/seedream-prompting/SKILL.md +117 -0
- package/dist/_skills/short-film/SKILL.md +123 -0
- package/dist/_skills/stable-audio-prompting/SKILL.md +130 -0
- package/dist/_skills/storyboard-core/SKILL.md +716 -0
- package/dist/_skills/timeline-edit-ops/SKILL.md +736 -0
- package/dist/_skills/trailer-template/SKILL.md +291 -0
- package/dist/_skills/ugc-video/SKILL.md +186 -0
- package/dist/_skills/veo-3-prompting/SKILL.md +140 -0
- package/dist/_skills/video-audio-continuity/SKILL.md +90 -0
- package/dist/_skills/video-clone/SKILL.md +96 -0
- package/dist/_skills/video-workflow/SKILL.md +119 -0
- package/dist/_skills/wan-2-6-prompting/SKILL.md +107 -0
- package/dist/app-build/bridge.d.ts.map +1 -1
- package/dist/app-build/bridge.js +44 -17
- package/dist/app-build/bridge.js.map +1 -1
- package/dist/capabilities/apps.d.ts.map +1 -1
- package/dist/capabilities/apps.js +55 -13
- package/dist/capabilities/apps.js.map +1 -1
- package/dist/capabilities/apps.specs.d.ts.map +1 -1
- package/dist/capabilities/apps.specs.js +5 -3
- package/dist/capabilities/apps.specs.js.map +1 -1
- package/dist/capabilities/game-asset-browser.d.ts.map +1 -1
- package/dist/capabilities/game-asset-browser.js +6 -1
- package/dist/capabilities/game-asset-browser.js.map +1 -1
- package/dist/capabilities/game.d.ts +1 -1
- package/dist/capabilities/game.d.ts.map +1 -1
- package/dist/capabilities/game.js +71 -56
- package/dist/capabilities/game.js.map +1 -1
- package/dist/capabilities/game.specs.js +1 -1
- package/dist/capabilities/game.specs.js.map +1 -1
- package/dist/capabilities/game3d.d.ts.map +1 -1
- package/dist/capabilities/game3d.js +14 -19
- package/dist/capabilities/game3d.js.map +1 -1
- package/dist/capabilities/gameAssertions.d.ts +52 -0
- package/dist/capabilities/gameAssertions.d.ts.map +1 -0
- package/dist/capabilities/gameAssertions.js +32 -0
- package/dist/capabilities/gameAssertions.js.map +1 -0
- package/dist/capabilities/models.d.ts.map +1 -1
- package/dist/capabilities/models.js +9 -0
- package/dist/capabilities/models.js.map +1 -1
- package/dist/capabilities/storyboards.d.ts.map +1 -1
- package/dist/capabilities/storyboards.js +36 -11
- package/dist/capabilities/storyboards.js.map +1 -1
- package/dist/capabilities/storyboards.specs.d.ts.map +1 -1
- package/dist/capabilities/storyboards.specs.js +11 -1
- package/dist/capabilities/storyboards.specs.js.map +1 -1
- package/dist/capabilities/workflows.d.ts.map +1 -1
- package/dist/capabilities/workflows.js +1 -0
- package/dist/capabilities/workflows.js.map +1 -1
- package/dist/capabilities/workflows.specs.d.ts.map +1 -1
- package/dist/capabilities/workflows.specs.js +4 -3
- package/dist/capabilities/workflows.specs.js.map +1 -1
- package/dist/evals/surfaces/game.d.ts.map +1 -1
- package/dist/evals/surfaces/game.js +29 -1
- package/dist/evals/surfaces/game.js.map +1 -1
- package/dist/game-authoring.d.ts +120 -0
- package/dist/game-authoring.d.ts.map +1 -1
- package/dist/game-build-integrity.d.ts +12 -0
- package/dist/game-build-integrity.d.ts.map +1 -0
- package/dist/game-build-integrity.js +78 -0
- package/dist/game-build-integrity.js.map +1 -0
- package/dist/game-examples.d.ts +44 -3
- package/dist/game-examples.d.ts.map +1 -1
- package/dist/game-examples.js +60 -10
- package/dist/game-examples.js.map +1 -1
- package/dist/system-skills.d.ts +1 -1
- package/dist/system-skills.js +1 -1
- package/dist/tools/builtin-tools.d.ts.map +1 -1
- package/dist/tools/builtin-tools.js +2 -0
- package/dist/tools/builtin-tools.js.map +1 -1
- 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
|