@letta-ai/letta-code 0.34.29 → 0.34.30
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/mcp-client.js +2 -2
- package/dist/mcp-client.js.map +1 -1
- package/dist/mcp-oauth.js +2 -2
- package/dist/mcp-oauth.js.map +1 -1
- package/dist/types/websocket/listener/queue.d.ts.map +1 -1
- package/letta.js +13 -10
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/skills/video-generation/SKILL.md +21 -3
- package/skills/video-generation/references/cinematography.md +217 -0
- package/skills/video-generation/references/example-prompts.md +55 -0
- package/skills/video-generation/references/storytelling.md +269 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../../src/websocket/listener/queue.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EAEb,SAAS,EACV,MAAM,uBAAuB,CAAC;AA4B/B,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EAEf,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAQA;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAWA;AA+KD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAE1E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG;IAC/D,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,eAAe,CAAC;CAC7B,GAAG,IAAI,CAwIP;
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../../src/websocket/listener/queue.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EAEb,SAAS,EACV,MAAM,uBAAuB,CAAC;AA4B/B,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EAEf,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAQA;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAWA;AA+KD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAE1E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG;IAC/D,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,eAAe,CAAC;CAC7B,GAAG,IAAI,CAwIP;AAiPD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,oBAAoB,EAC1B,iBAAiB,EAAE,CACjB,UAAU,EAAE,eAAe,EAC3B,aAAa,EAAE,aAAa,KACzB,OAAO,CAAC,IAAI,CAAC,GACjB,IAAI,CA2BN"}
|
package/letta.js
CHANGED
|
@@ -6044,7 +6044,7 @@ var package_default;
|
|
|
6044
6044
|
var init_package = __esm(() => {
|
|
6045
6045
|
package_default = {
|
|
6046
6046
|
name: "@letta-ai/letta-code",
|
|
6047
|
-
version: "0.34.
|
|
6047
|
+
version: "0.34.30",
|
|
6048
6048
|
lettaStartupLogProtocol: 1,
|
|
6049
6049
|
lettaConfigDirProtocol: 1,
|
|
6050
6050
|
description: "Letta Code is a CLI tool for interacting with stateful Letta agents from the terminal.",
|
|
@@ -211550,7 +211550,7 @@ var init_mcp_client = __esm(() => {
|
|
|
211550
211550
|
init_streamableHttp();
|
|
211551
211551
|
DEFAULT_CLIENT_INFO = {
|
|
211552
211552
|
name: "letta-code",
|
|
211553
|
-
version: "0.34.
|
|
211553
|
+
version: "0.34.30"
|
|
211554
211554
|
};
|
|
211555
211555
|
});
|
|
211556
211556
|
|
|
@@ -244499,7 +244499,7 @@ class CodexAppServerClient {
|
|
|
244499
244499
|
await this.request("initialize", {
|
|
244500
244500
|
clientInfo: {
|
|
244501
244501
|
name: "letta-code",
|
|
244502
|
-
version: "0.34.
|
|
244502
|
+
version: "0.34.30"
|
|
244503
244503
|
},
|
|
244504
244504
|
capabilities: null
|
|
244505
244505
|
});
|
|
@@ -261342,7 +261342,10 @@ async function drainQueuedMessages(runtime, socket, opts, processQueuedTurn) {
|
|
|
261342
261342
|
}
|
|
261343
261343
|
const { dequeuedBatch, queuedTurn } = consumedQueuedTurn;
|
|
261344
261344
|
emitQueuePumpBoundary(() => emitDequeuedUserMessage(turnTransport, runtime, queuedTurn, dequeuedBatch));
|
|
261345
|
-
emitQueuePumpBoundary(() =>
|
|
261345
|
+
emitQueuePumpBoundary(() => emitQueueUpdate(turnTransport, runtime, {
|
|
261346
|
+
agent_id: runtime.agentId,
|
|
261347
|
+
conversation_id: runtime.conversationId
|
|
261348
|
+
}));
|
|
261346
261349
|
const preTurnStatus = getListenerStatus(runtime.listener) === "processing" ? "processing" : "receiving";
|
|
261347
261350
|
if (opts.connectionId && runtime.listener.lastEmittedStatus !== preTurnStatus) {
|
|
261348
261351
|
runtime.listener.lastEmittedStatus = preTurnStatus;
|
|
@@ -454184,12 +454187,12 @@ function rowToolCalls(row, index, diagnostics2) {
|
|
|
454184
454187
|
}
|
|
454185
454188
|
return calls;
|
|
454186
454189
|
}
|
|
454187
|
-
function
|
|
454190
|
+
function contentText2(content) {
|
|
454188
454191
|
if (typeof content === "string") {
|
|
454189
454192
|
if (content.startsWith(CONTENT_JSON_PREFIX)) {
|
|
454190
454193
|
const encoded = content.slice(CONTENT_JSON_PREFIX.length);
|
|
454191
454194
|
try {
|
|
454192
|
-
return
|
|
454195
|
+
return contentText2(JSON.parse(encoded));
|
|
454193
454196
|
} catch {
|
|
454194
454197
|
return encoded;
|
|
454195
454198
|
}
|
|
@@ -454275,7 +454278,7 @@ var init_hermes = __esm(() => {
|
|
|
454275
454278
|
});
|
|
454276
454279
|
};
|
|
454277
454280
|
if (row.role === "user") {
|
|
454278
|
-
const content =
|
|
454281
|
+
const content = contentText2(row.content);
|
|
454279
454282
|
if (content) {
|
|
454280
454283
|
emit({
|
|
454281
454284
|
type: "message",
|
|
@@ -454295,7 +454298,7 @@ var init_hermes = __esm(() => {
|
|
|
454295
454298
|
...timestamp ? { timestamp } : {}
|
|
454296
454299
|
});
|
|
454297
454300
|
}
|
|
454298
|
-
const content =
|
|
454301
|
+
const content = contentText2(row.content);
|
|
454299
454302
|
if (content) {
|
|
454300
454303
|
emit({
|
|
454301
454304
|
type: "message",
|
|
@@ -454318,7 +454321,7 @@ var init_hermes = __esm(() => {
|
|
|
454318
454321
|
if (row.role === "tool") {
|
|
454319
454322
|
emit({
|
|
454320
454323
|
type: "tool_result",
|
|
454321
|
-
content:
|
|
454324
|
+
content: contentText2(row.content),
|
|
454322
454325
|
...typeof row.tool_call_id === "string" && row.tool_call_id ? { callId: row.tool_call_id } : {},
|
|
454323
454326
|
...timestamp ? { timestamp } : {}
|
|
454324
454327
|
});
|
|
@@ -539179,4 +539182,4 @@ function registerBunOAuthFlows() {
|
|
|
539179
539182
|
registerBunOAuthFlows();
|
|
539180
539183
|
await init_src5().then(() => exports_src2);
|
|
539181
539184
|
|
|
539182
|
-
//# debugId=
|
|
539185
|
+
//# debugId=9F448AA0C77E79A664756E2164756E21
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@letta-ai/letta-code",
|
|
3
|
-
"version": "0.34.
|
|
3
|
+
"version": "0.34.30",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"packages": {
|
|
6
6
|
"node_modules/@alcalzone/ansi-tokenize": {
|
|
@@ -5633,7 +5633,7 @@
|
|
|
5633
5633
|
},
|
|
5634
5634
|
"": {
|
|
5635
5635
|
"name": "@letta-ai/letta-code",
|
|
5636
|
-
"version": "0.34.
|
|
5636
|
+
"version": "0.34.30",
|
|
5637
5637
|
"dependencies": {
|
|
5638
5638
|
"@cursor/sdk": "1.1.0",
|
|
5639
5639
|
"@earendil-works/pi-ai": "^0.99.1",
|
package/package.json
CHANGED
|
@@ -36,7 +36,25 @@ curl -sS "${LETTA_BASE_URL%/}/v1/videos/models" \
|
|
|
36
36
|
|
|
37
37
|
Fields on each model worth knowing: `supported_resolutions`, `supported_aspect_ratios`, `supported_sizes`, `supported_durations` (often discrete like `[4,6,8]`, not a range), `supported_frame_images` (which `frame_type` values are accepted), `generate_audio` and `seed` (capability bools), `pricing_skus`, and `allowed_passthrough_parameters`. An out-of-set value returns a 400, so validate client-side.
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
## Choosing a model
|
|
40
|
+
|
|
41
|
+
Recommendation as of 2026-10-29. Video models move fast, so this will go stale; public leaderboards such as [Artificial Analysis](https://artificialanalysis.ai/video/leaderboard/text-to-video) are one rough signal of what's newer, not a verdict. Only pick models that `/v1/videos/models` lists.
|
|
42
|
+
|
|
43
|
+
- **Default, when quality matters and there's time:** `bytedance/seedance-2.5`. Top tier on the leaderboard, native audio, clips up to 30s. Renders take about 4–6 minutes.
|
|
44
|
+
- **Fast:** `minimax/hailuo-3-max` (MiniMax H3). Also top tier; renders in well under a minute. Use it for quick replies in a live thread or for iterating on a prompt, then rerun the final cut on Seedance.
|
|
45
|
+
- Other top-tier models on the endpoint include `alibaba/wan-3.0`, `black-forest-labs/flux-3-video` and `heygen/heygen-video-1`. Some providers filter prompts more strictly than others; if one rejects a prompt, try another model rather than rewording around the filter.
|
|
46
|
+
- `heygen/avatar-iv` makes a talking head from one photo.
|
|
47
|
+
|
|
48
|
+
## Writing the prompt
|
|
49
|
+
|
|
50
|
+
For a single clip, read [references/cinematography.md](references/cinematography.md).
|
|
51
|
+
For multiple shots or a sequence, read
|
|
52
|
+
[references/storytelling.md](references/storytelling.md).
|
|
53
|
+
|
|
54
|
+
For worked examples at the right level of detail, see
|
|
55
|
+
[references/example-prompts.md](references/example-prompts.md).
|
|
56
|
+
|
|
57
|
+
A timestamped shot list ending on the payoff helps multi-beat clips.
|
|
40
58
|
|
|
41
59
|
## Full workflow (drop-in)
|
|
42
60
|
|
|
@@ -44,8 +62,8 @@ Models include `google/veo-3.1`, `bytedance/seedance-2.5`, `kwaivgi/kling-v3.0-p
|
|
|
44
62
|
#!/usr/bin/env bash
|
|
45
63
|
set -euo pipefail
|
|
46
64
|
|
|
47
|
-
PROMPT="
|
|
48
|
-
MODEL="
|
|
65
|
+
PROMPT="A golden retriever bounds across wet sand at golden hour to catch a tennis ball mid-air, spray flying off its fur. Low tracking shot at dog height, 35mm, shallow depth of field, warm backlight and lens flare, waves and the ball's thud in the audio. Ends on the dog trotting back toward camera, ball in mouth."
|
|
66
|
+
MODEL="bytedance/seedance-2.5"
|
|
49
67
|
OUTPUT="video-$(date +%Y%m%d-%H%M%S).mp4"
|
|
50
68
|
base_url="${LETTA_BASE_URL%/}"
|
|
51
69
|
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
> Adapted from fal-ai-community/skills (https://github.com/fal-ai-community/skills, commit 9ca850412943251fc9a466c4c29fdaf7a303a3d8), MIT License per that repository's README. Changes: execution commands replaced with Letta's /v1/videos.
|
|
2
|
+
|
|
3
|
+
# Cinematography
|
|
4
|
+
|
|
5
|
+
Use this reference when the user needs cinematic direction, not generic "make it
|
|
6
|
+
cinematic" prompting.
|
|
7
|
+
|
|
8
|
+
Write concrete visual direction. Avoid empty prestige words and em dashes.
|
|
9
|
+
|
|
10
|
+
## Inputs to collect
|
|
11
|
+
|
|
12
|
+
Ask only for what affects the shot:
|
|
13
|
+
|
|
14
|
+
- Subject and action.
|
|
15
|
+
- Medium: still image, video, image-to-video, edit, storyboard frame.
|
|
16
|
+
- Genre and mood.
|
|
17
|
+
- Framing: close-up, medium, wide, overhead, POV, profile, locked-off.
|
|
18
|
+
- Camera motion for video: push-in, dolly, tracking, handheld, crane, drone.
|
|
19
|
+
- Lens feel: wide, normal, telephoto, macro, shallow or deep focus.
|
|
20
|
+
- Lighting: natural, practical, studio, noir, high key, low key, backlit.
|
|
21
|
+
- Output: aspect ratio, duration, first frame, last frame, download path.
|
|
22
|
+
- Preferred model, if the user wants a specific cinematography model or
|
|
23
|
+
quality/cost profile.
|
|
24
|
+
|
|
25
|
+
## Execution with Letta
|
|
26
|
+
|
|
27
|
+
Call `/v1/videos` as described in `SKILL.md`. Pick a model from `SKILL.md`'s
|
|
28
|
+
"Choosing a model" section and `/v1/videos/models`, and use only the controls
|
|
29
|
+
that endpoint reports for the selected model.
|
|
30
|
+
|
|
31
|
+
## Prompt build order
|
|
32
|
+
|
|
33
|
+
Use the SCLCAM structure:
|
|
34
|
+
|
|
35
|
+
1. Subject: who or what is in frame.
|
|
36
|
+
2. Context: location, time, weather, story moment.
|
|
37
|
+
3. Lens/framing: distance, angle, focal length feel, depth of field.
|
|
38
|
+
4. Camera motion: only for video or if motion blur is desired.
|
|
39
|
+
5. Atmosphere: haze, rain, practicals, reflections, texture.
|
|
40
|
+
6. Mood/color: palette, contrast, grade, exposure style.
|
|
41
|
+
7. Output controls: aspect ratio, duration, first-frame continuity.
|
|
42
|
+
|
|
43
|
+
Example structure:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
[subject] in [context], framed as [shot size and angle], [lens feel],
|
|
47
|
+
[lighting setup], [camera movement if video], [color grade], [texture],
|
|
48
|
+
[duration or aspect ratio], [continuity constraints]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Quality bar
|
|
52
|
+
|
|
53
|
+
Before returning, check:
|
|
54
|
+
|
|
55
|
+
- Camera movement is physically plausible for the scene.
|
|
56
|
+
- Lens, shot size, and camera angle do not contradict each other.
|
|
57
|
+
- Lighting direction is clear and consistent.
|
|
58
|
+
- Color grade supports the mood without flattening subject detail.
|
|
59
|
+
- Video prompt describes one shot unless the selected model supports multiple
|
|
60
|
+
prompts or shot lists.
|
|
61
|
+
- Downloaded video comes from `/v1/videos/{id}/content`.
|
|
62
|
+
|
|
63
|
+
If a result looks generic, improve specificity in camera, blocking, light, and
|
|
64
|
+
environment before adding more adjectives.
|
|
65
|
+
|
|
66
|
+
# Shot language reference
|
|
67
|
+
|
|
68
|
+
## Shot sizes
|
|
69
|
+
|
|
70
|
+
- Extreme close-up: one detail, texture, eye, hand, product edge.
|
|
71
|
+
- Close-up: face or object detail with emotional focus.
|
|
72
|
+
- Medium close-up: chest-up subject, useful for dialogue and portraits.
|
|
73
|
+
- Medium shot: waist-up subject, body language visible.
|
|
74
|
+
- Full shot: entire body or object, silhouette and stance readable.
|
|
75
|
+
- Wide shot: subject inside environment.
|
|
76
|
+
- Extreme wide: scale, isolation, worldbuilding, architecture.
|
|
77
|
+
|
|
78
|
+
## Angles
|
|
79
|
+
|
|
80
|
+
- Eye level: natural, direct, grounded.
|
|
81
|
+
- Low angle: power, threat, awe.
|
|
82
|
+
- High angle: vulnerability, surveillance, layout clarity.
|
|
83
|
+
- Dutch angle: unease, instability. Use sparingly.
|
|
84
|
+
- Over-the-shoulder: relationship, conversation, pursuit.
|
|
85
|
+
- POV: subjective experience.
|
|
86
|
+
- Profile: graphic composition, ritual, tension, fashion.
|
|
87
|
+
|
|
88
|
+
## Camera movement
|
|
89
|
+
|
|
90
|
+
- Slow push-in: attention, realization, premium product reveal.
|
|
91
|
+
- Pull-back: isolation, context, reveal.
|
|
92
|
+
- Dolly left or right: spatial discovery.
|
|
93
|
+
- Tracking shot: follow action with continuity.
|
|
94
|
+
- Crane up: scale reveal or emotional release.
|
|
95
|
+
- Handheld: urgency, intimacy, instability.
|
|
96
|
+
- Locked-off: control, deadpan, formalism, surveillance.
|
|
97
|
+
- Orbit: product reveal, character inspection, heightened drama.
|
|
98
|
+
- Macro glide: product texture, food, jewelry, electronics.
|
|
99
|
+
|
|
100
|
+
## Composition
|
|
101
|
+
|
|
102
|
+
- Centered symmetry: control, ritual, luxury, unease.
|
|
103
|
+
- Rule of thirds: natural editorial composition.
|
|
104
|
+
- Negative space: loneliness, premium ad copy area, tension.
|
|
105
|
+
- Foreground obstruction: secrecy, surveillance, voyeurism.
|
|
106
|
+
- Leading lines: architecture, movement, precision.
|
|
107
|
+
- Frame within frame: confinement, observation, layered space.
|
|
108
|
+
|
|
109
|
+
## Continuity language
|
|
110
|
+
|
|
111
|
+
- "same subject and wardrobe as the reference"
|
|
112
|
+
- "preserve product shape and label"
|
|
113
|
+
- "continue from the uploaded first frame"
|
|
114
|
+
- "single continuous shot"
|
|
115
|
+
- "no cutaways"
|
|
116
|
+
- "no time jump"
|
|
117
|
+
- "same lighting direction throughout"
|
|
118
|
+
|
|
119
|
+
# Lighting, lens, and color reference
|
|
120
|
+
|
|
121
|
+
## Lighting setups
|
|
122
|
+
|
|
123
|
+
- Soft key: flattering, commercial, calm.
|
|
124
|
+
- Hard key: graphic, dramatic, fashion, noir.
|
|
125
|
+
- Backlight: separation, glow, silhouette, premium edge.
|
|
126
|
+
- Rim light: subject outline, product glass, metal highlights.
|
|
127
|
+
- Practical light: lamps, signs, screens, candles in the scene.
|
|
128
|
+
- Motivated light: light that has a visible or logical source.
|
|
129
|
+
- Low key: dark frame, selective highlights, suspense.
|
|
130
|
+
- High key: bright, low contrast, beauty, comedy, clean product work.
|
|
131
|
+
- Top light: interrogation, overhead realism, harsh institutional mood.
|
|
132
|
+
- Window light: natural, intimate, documentary.
|
|
133
|
+
|
|
134
|
+
## Lens feel
|
|
135
|
+
|
|
136
|
+
- 14-20mm wide: scale, distortion, kinetic interiors, action.
|
|
137
|
+
- 24-28mm wide-normal: environmental realism, travel, documentary.
|
|
138
|
+
- 35mm: natural cinematic perspective, street, lifestyle, narrative.
|
|
139
|
+
- 50mm: classic portrait and product balance.
|
|
140
|
+
- 85mm: compressed portrait, beauty, isolation.
|
|
141
|
+
- 100mm macro: product detail, jewelry, food texture, eyes.
|
|
142
|
+
- Telephoto compression: distance, surveillance, fashion runway.
|
|
143
|
+
|
|
144
|
+
## Depth of field
|
|
145
|
+
|
|
146
|
+
- Shallow focus: isolate subject, premium portrait, product hero.
|
|
147
|
+
- Deep focus: environment and blocking stay readable.
|
|
148
|
+
- Rack focus: attention shifts between two subjects or details.
|
|
149
|
+
|
|
150
|
+
## Color and grade
|
|
151
|
+
|
|
152
|
+
- Clean neutral grade: commercial, e-commerce, architecture.
|
|
153
|
+
- Warm golden grade: nostalgia, comfort, luxury hospitality.
|
|
154
|
+
- Cool cyan shadows: thriller, tech, night exterior.
|
|
155
|
+
- Desaturated earth palette: realism, documentary, survival.
|
|
156
|
+
- High contrast monochrome: noir, fashion, graphic product.
|
|
157
|
+
- Pastel palette: beauty, wellness, light lifestyle.
|
|
158
|
+
- Sodium vapor night: urban realism, tension.
|
|
159
|
+
|
|
160
|
+
## Texture
|
|
161
|
+
|
|
162
|
+
- Fine film grain: organic image, period mood.
|
|
163
|
+
- Clean digital: tech, luxury, e-commerce, architecture.
|
|
164
|
+
- Halation: glowing highlights, dream, night practicals.
|
|
165
|
+
- Mist filter: soft bloom, romance, beauty.
|
|
166
|
+
- Crisp high shutter: action clarity.
|
|
167
|
+
- Motion blur: speed, energy, handheld realism.
|
|
168
|
+
|
|
169
|
+
# Cinematography examples
|
|
170
|
+
|
|
171
|
+
Use these as direction patterns. Replace subject, model fields, and output
|
|
172
|
+
controls with the current task.
|
|
173
|
+
|
|
174
|
+
## Noir close-up
|
|
175
|
+
|
|
176
|
+
```text
|
|
177
|
+
a detective sitting alone in a parked car at night, close-up from passenger
|
|
178
|
+
seat angle, 50mm lens feel, rain streaks on the window in foreground, hard
|
|
179
|
+
streetlight slashes across his face, low key noir lighting, deep shadows,
|
|
180
|
+
muted green and amber grade, still frame, no text
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Product macro glide
|
|
184
|
+
|
|
185
|
+
```text
|
|
186
|
+
single continuous macro glide across the brushed steel edge of a luxury watch,
|
|
187
|
+
100mm macro lens feel, black velvet surface, thin strip light reflected along
|
|
188
|
+
the bevel, shallow depth of field, slow controlled camera movement, clean dark
|
|
189
|
+
commercial grade, no extra text, no logo distortion
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Sci-fi wide shot
|
|
193
|
+
|
|
194
|
+
```text
|
|
195
|
+
small astronaut crossing a vast white salt flat toward a black monolith,
|
|
196
|
+
extreme wide shot, low horizon, 24mm lens feel, late afternoon backlight,
|
|
197
|
+
long shadow, minimal composition, cool silver color grade, quiet atmospheric
|
|
198
|
+
haze, cinematic still, no extra ships
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Handheld pursuit
|
|
202
|
+
|
|
203
|
+
```text
|
|
204
|
+
8 second handheld tracking shot following a woman running through a narrow
|
|
205
|
+
market alley at night, camera shoulder-height behind her, practical neon and
|
|
206
|
+
food stall lights, motion blur on background, subject remains readable,
|
|
207
|
+
urgent thriller pacing, one continuous shot, no cuts
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Warm interior drama
|
|
211
|
+
|
|
212
|
+
```text
|
|
213
|
+
two siblings at a kitchen table after midnight, medium-wide static frame,
|
|
214
|
+
35mm lens feel, warm practical lamp on table, cool moonlight through window,
|
|
215
|
+
subtle haze, quiet tension, naturalistic color grade, deep focus enough to
|
|
216
|
+
read both faces, no melodramatic poses
|
|
217
|
+
```
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Example prompts
|
|
2
|
+
|
|
3
|
+
Strong text-to-video prompts from model pages on fal.ai, quoted as published. Each link is the page the prompt came from. Use them as models of the level of detail that works: subject, materials, light, camera, lens, palette, timing, sound, on-screen text, and what to exclude.
|
|
4
|
+
|
|
5
|
+
## Single-shot still life: no people, light-driven
|
|
6
|
+
|
|
7
|
+
Source: [Seedance 2.5 text-to-video on fal](https://fal.ai/models/bytedance/seedance-2.5/us/text-to-video)
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
Editorial still life for a luxury perfume brand, no people or hands in frame. A single heavy-based glass bottle with a faceted amber-tinted body and a brushed brass cap, standing on a slab of honed travertine against a warm sand-toned plaster wall. Beside it, a low-profile companion object for scale — a folded cream linen card embossed with the brand mark and a single dried sprig of eucalyptus resting on the stone. A slow drip of liquid catches the light on the bottle's shoulder. Hard, directional late-afternoon sunlight from the right rakes across the scene, casting a long, sharp bottle shadow and a bright caustic refraction on the wall behind it; a soft secondary bounce lifts the shadow side. Palette of amber, ivory, warm grey, and dull gold. Eye-level camera, slight three-quarter angle to the bottle, generous negative space above and to the left for type, medium-format look, 90mm lens, shallow but controlled depth of field, subtle film grain. Quiet, architectural, restrained, tactile, with the light doing the storytelling
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Character action with a timed beat
|
|
14
|
+
|
|
15
|
+
Source: [MiniMax H3 Max text-to-video on fal](https://fal.ai/models/minimax/h3-max/text-to-video)
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
An aging warrior-monk in scorched ceremonial armor, a split ceramic mask and a humming prayer-band on his forearm + 0–4s: climbs silently along a cliffside terrace as insect-like surveyor drones comb the sun-bleached ruins, standing alone under as the camera rises over the ruined monastery. Sun-blasted post-apocalyptic sci-fi action, dust, heat haze, practical debris, sweeping crane tracking, silence broken only by wind.
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Kinetic typography with timestamped sections
|
|
22
|
+
|
|
23
|
+
Source: [H3 Max Turbo text-to-video on fal](https://fal.ai/models/minimax/h3-max-turbo/text-to-video)
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
0.00–2.50
|
|
27
|
+
Warm ivory background.
|
|
28
|
+
Large black text: **H3 MAX TURBO.**
|
|
29
|
+
Text slides in fast from the left with a clean ease-out. A thin red line grows underneath it. On the beat, the whole composition compresses slightly and snaps back.
|
|
30
|
+
|
|
31
|
+
2.50–5.50
|
|
32
|
+
The red line extends across the screen and becomes a crop transition.
|
|
33
|
+
Reveal huge stacked text:
|
|
34
|
+
|
|
35
|
+
**FASTER**
|
|
36
|
+
**THAN REAL TIME.**
|
|
37
|
+
|
|
38
|
+
Use aggressive kinetic typography: large scale, edge cropping, fast horizontal movement, strong black/ivory/red composition. Keep the text sharp when it lands.
|
|
39
|
+
|
|
40
|
+
STYLE
|
|
41
|
+
Premium 2D motion design with very subtle 2.5D card depth. Swiss editorial typography mixed with energetic commercial motion graphics. Warm ivory, black and vermilion red. Large type, strong cropping, fast masks, cards, lines, parallax, precise easing, short motion blur only during transitions. No full 3D scenes, no UI, no particles, no random objects, no glitches, no letter-by-letter animation.
|
|
42
|
+
|
|
43
|
+
"fal" must always be lowercase.
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Period commercial with dialogue and an overlay
|
|
47
|
+
|
|
48
|
+
Source: [FLUX 3 Max text-to-video on fal](https://fal.ai/models/blackforestlabs/flux-3-max/text-to-video)
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
1985 TV beer commercial, 35mm film grain, golden-hour sunset. One continuous slow push-in on a weathered cowboy leaning against a ranch porch rail, his horse tied up behind him. He pulls an ice-cold Lone Star from a cooler, cracks it open with a hiss, takes a long sip, and turns to camera with a tired grin. Warm amber tones, soft lens flare, slide guitar soundtrack.
|
|
52
|
+
Narrator (deep, gravelly): "Sunup to sundown, [pauses], he's earned every drop."
|
|
53
|
+
Cowboy (raising the bottle): "Now this is quittin' time."
|
|
54
|
+
Overlay: Lone Star logo fades in over the final frame.
|
|
55
|
+
```
|