@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.
@@ -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;AA0OD,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"}
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.29",
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.29"
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.29"
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(() => emitTurnBoundaryStatus(runtime, turnTransport));
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 contentText3(content) {
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 contentText3(JSON.parse(encoded));
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 = contentText3(row.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 = contentText3(row.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: contentText3(row.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=395DF1A0E3F5616F64756E2164756E21
539185
+ //# debugId=9F448AA0C77E79A664756E2164756E21
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letta-ai/letta-code",
3
- "version": "0.34.29",
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.29",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letta-ai/letta-code",
3
- "version": "0.34.29",
3
+ "version": "0.34.30",
4
4
  "lettaStartupLogProtocol": 1,
5
5
  "lettaConfigDirProtocol": 1,
6
6
  "description": "Letta Code is a CLI tool for interacting with stateful Letta agents from the terminal.",
@@ -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
- Models include `google/veo-3.1`, `bytedance/seedance-2.5`, `kwaivgi/kling-v3.0-pro`, `minimax/hailuo-3`, `minimax/hailuo-3-max`, and `heygen/avatar-iv` (a talking head from one photo); the models endpoint has the full list.
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="a golden retriever playing fetch on a sunny beach"
48
- MODEL="google/veo-3.1"
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
+ ```