tesseract-agent 0.12.2 → 0.12.3
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-bundle/builtin-skills/3d-product-shots/SKILL.md +6 -6
- package/dist-bundle/builtin-skills/audio-and-voice/SKILL.md +3 -0
- package/dist-bundle/builtin-skills/canvas-design/scripts/design_check.mjs +6 -0
- package/dist-bundle/builtin-skills/chart-design/scripts/design_check.mjs +6 -0
- package/dist-bundle/builtin-skills/comic-maker/SKILL.md +5 -9
- package/dist-bundle/builtin-skills/diagram-design/scripts/design_check.mjs +6 -0
- package/dist-bundle/builtin-skills/interactive-ui/scripts/design_check.mjs +6 -0
- package/dist-bundle/builtin-skills/makers/SKILL.md +16 -3
- package/dist-bundle/builtin-skills/music-videos/SKILL.md +3 -4
- package/dist-bundle/builtin-skills/music-videos/references/ai-music-video.md +3 -3
- package/dist-bundle/builtin-skills/product-ads/SKILL.md +32 -17
- package/dist-bundle/builtin-skills/product-videos/references/assembly-and-delivery.md +2 -2
- package/dist-bundle/builtin-skills/promo-videos/SKILL.md +6 -7
- package/dist-bundle/builtin-skills/promo-videos/references/review-rubric.md +1 -1
- package/dist-bundle/builtin-skills/short-form-video/SKILL.md +8 -11
- package/dist-bundle/builtin-skills/short-form-video/references/formats-and-trends.md +1 -1
- package/dist-bundle/builtin-skills/short-form-video/references/memes.md +6 -9
- package/dist-bundle/builtin-skills/tesseract-help/SKILL.md +15 -2
- package/dist-bundle/builtin-skills/tesseract-help/references/app-control-map.md +9 -1
- package/dist-bundle/builtin-skills/tesseract-help/references/troubleshooting.md +9 -1
- package/dist-bundle/builtin-skills/thumbnails/SKILL.md +6 -5
- package/dist-bundle/builtin-skills/tutorials/SKILL.md +8 -2
- package/dist-bundle/builtin-skills/video-editing/SKILL.md +28 -37
- package/dist-bundle/builtin-skills/video-editing/references/recipes.md +7 -11
- package/dist-bundle/builtin-skills/video-generation/SKILL.md +26 -40
- package/dist-bundle/builtin-skills/video-generation/references/directing.md +52 -21
- package/dist-bundle/builtin-skills/video-generation/references/long-video.md +44 -7
- package/dist-bundle/builtin-skills/video-generation/references/presenter-video.md +10 -16
- package/dist-bundle/builtin-skills/video-generation/references/prompting.md +14 -10
- package/dist-bundle/builtin-skills/video-generation/references/series.md +44 -23
- package/dist-bundle/catalog-vectors/embeddinggemma-300m-q4@ort1.23.2.bin +0 -0
- package/dist-bundle/cli.js +24482 -17322
- package/dist-bundle/mesh-core/package.json +1 -1
- package/dist-bundle/office-page.css +1 -1
- package/dist-bundle/office-page.js +970 -970
- package/dist-bundle/office.js +1908 -803
- package/dist-bundle/pdf.js +141 -63
- package/dist-bundle/serpapi-mcp.js +15204 -9981
- package/package.json +1 -1
|
@@ -1,38 +1,59 @@
|
|
|
1
1
|
# Directing a clip or a whole piece
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
**pacing**, **lens** and **
|
|
5
|
-
every option's use, the models that follow it best, each
|
|
6
|
-
length, aperture and depth of field,
|
|
7
|
-
|
|
8
|
-
(`series_create` / `series_update`). The host checks
|
|
3
|
+
Eight named controls set how a clip is told, the way a director's notes would: **genre**, **era**,
|
|
4
|
+
**pacing**, **lens**, **film**, **lighting**, **emotion** and **camera style**. Each is an id from
|
|
5
|
+
`list_director_controls`, which also lists every option's use, the models that follow it best, each
|
|
6
|
+
pace's shot lengths, each lens's focal length, aperture and depth of field, the colour looks and the
|
|
7
|
+
named speed ramps. They go on `generate_video`, on `create_video_from_scenario` (for every scene; a
|
|
8
|
+
scene may have its own `lens`), and on a series (`series_create` / `series_update`). The host checks
|
|
9
|
+
every id before a price is quoted.
|
|
10
|
+
|
|
11
|
+
A row with `status: seed` has no proven run, so what it does to a clip is not known: say so before
|
|
12
|
+
spending on one, or pick one without that mark.
|
|
9
13
|
|
|
10
14
|
| Control | What it sets | Examples |
|
|
11
15
|
|---|---|---|
|
|
12
|
-
| `genre` | mood, light, palette, framing | `thriller`, `rom-com`, `documentary`, `noir`, `sci-fi`, `horror-lite` (spooky, never gory), `western`, `anime-inspired`, `music-video`, `commercial`, `vlog`, `nature-doc`, `sports-promo`, `fashion-film`, `period-drama`, `heist`, `comedy-sketch`, `epic-fantasy`, `product-hero`, `travel` |
|
|
13
|
-
| `era` | the decade of the wardrobe, props and picture | `
|
|
14
|
-
| `pacing` | how the action moves, and how long shots stay on screen | `slow` (6–10 s shots), `measured` (4–6), `fast` (2–4), `frantic` (under 2) |
|
|
15
|
-
| `lens` | focal length, aperture, depth of field | `fisheye`, `ultra-wide-14mm`, `wide-24mm`, `standard-35mm`, `normal-50mm`, `portrait-85mm`, `tele-135mm`, `tele-200mm`, `macro-100mm`, `
|
|
16
|
-
| `film` |
|
|
16
|
+
| `genre` | mood, light, palette, framing | `action`, `drama`, `thriller`, `rom-com`, `documentary`, `noir`, `mystery`, `sci-fi`, `horror-lite` (spooky, never gory), `war-film` (no gore), `western`, `musical`, `road-movie`, `anime-inspired`, `music-video`, `commercial`, `vlog`, `nature-doc`, `sports-promo`, `fashion-film`, `period-drama`, `heist`, `comedy-sketch`, `epic-fantasy`, `product-hero`, `travel` |
|
|
17
|
+
| `era` | the decade of the wardrobe, props and picture | `1900s` … `2010s`, `today`, `near-future` |
|
|
18
|
+
| `pacing` | how the action moves, and how long shots stay on screen | `slow` (6–10 s shots), `measured` (4–6), `fast` (2–4), `frantic` (under 2), `single-take` (one unbroken shot) |
|
|
19
|
+
| `lens` | focal length, aperture, depth of field | `fisheye`, `ultra-wide-14mm`, `wide-24mm`, `standard-35mm`, `normal-50mm`, `portrait-85mm`, `tele-135mm`, `tele-200mm`, `macro-100mm`, `tilt-shift`; by character: `clinical-sharp`, `classic-prime`, `soft-diffusion`, `swirl-bokeh`, `zoom-seventies`, `split-diopter`, `anamorphic`, `vintage-soft` |
|
|
20
|
+
| `film` | what it is shot on: grain, texture, camera | `clean-digital`, `full-frame-digital`, `film-35mm`, `film-16mm`, `film-8mm`, `super-8`, `hand-cranked`, `mono-film`, `reversal-slide`, `large-format`, `giant-screen`, `vhs-tape`, `dv-camcorder`, `broadcast-video`, `action-camera`, `phone-camera`, `webcam`, `high-iso-night` |
|
|
21
|
+
| `lighting` | where the light comes from and how hard it is | `soft-window`, `overcast-day`, `hard-noon`, `low-sun`, `blue-hour`, `moonlight`, `three-point`, `high-key`, `low-key`, `sculpted-portrait`, `beauty-butterfly`, `split-side`, `backlit-rim`, `silhouette`, `volumetric-haze`, `practical-lamps`, `candlelight`, `firelight`, `neon-signs`, `fluorescent`, `camera-flash`, `stage-spot` |
|
|
22
|
+
| `emotion` | what the person in frame feels | `joy`, `sadness`, `grief`, `anger`, `fear`, `surprise`, `disgust`, `love`, `longing`, `hope`, `pride`, `determination`, `calm`, `awe`, `shame`, `mischief`, `nervous`, `relief` |
|
|
23
|
+
| `camera_style` | how the camera behaves across a piece | `classical-steady`, `long-take-flow`, `intimate-handheld`, `symmetry-tableau`, `kinetic-chase`, `slow-dread`, `observational`, `poetic-drift`, `music-snap`, `epic-sweep`, `static-comedy`, `product-precision` |
|
|
24
|
+
|
|
25
|
+
Numbers beside the names:
|
|
26
|
+
|
|
27
|
+
- `focal_mm` (8–400) and `aperture` (f/0.95–f/22), alone or on a lens marked `anyNumbers`. A lens that
|
|
28
|
+
has its own numbers, such as `portrait-85mm`, refuses them.
|
|
29
|
+
- `emotion_strength`: `subtle`, `clear` or `strong`, or 0–100.
|
|
30
|
+
- `light`: `{ colour, brightness, diffusion, angle }`, alone or added to a named `lighting`. This is the
|
|
31
|
+
colour of a light in the scene, not a grade.
|
|
17
32
|
|
|
18
33
|
## Where each goes in the prompt
|
|
19
34
|
|
|
20
35
|
The prompt is built for you, in the order video models follow best:
|
|
21
36
|
|
|
22
|
-
1. the camera move (`camera_move`), then the lens — **in front**: camera language
|
|
23
|
-
the subject gets dropped;
|
|
37
|
+
1. the camera move (`camera_move`), the camera style, then the lens — **in front**: camera language
|
|
38
|
+
that comes after the subject gets dropped;
|
|
24
39
|
2. the prompt you wrote — the subject and the action only;
|
|
25
40
|
3. `Style:` genre; era; film — after it;
|
|
26
|
-
4. `
|
|
41
|
+
4. `Light:`, then `Performance:` (the emotion);
|
|
42
|
+
5. `Pacing:` last.
|
|
27
43
|
|
|
28
|
-
So do not repeat any of them in the prompt.
|
|
29
|
-
|
|
30
|
-
|
|
44
|
+
So do not repeat any of them in the prompt. A prompt is held to its model's own limit (PixVerse 6:
|
|
45
|
+
2,048 bytes; Vidu Q3: 2,000 characters; 2,500 characters elsewhere). Past it, clauses give way —
|
|
46
|
+
pacing first, then camera style, film, era, light, emotion, genre, then the lens; your words and the
|
|
47
|
+
camera line never. What was left out comes back with the clip: tell the person. Words too long for
|
|
48
|
+
the model on their own are refused before anything is spent.
|
|
31
49
|
|
|
32
50
|
## Choosing
|
|
33
51
|
|
|
34
52
|
- **One genre for the whole piece.** A genre per scene reads as a different film each cut. A
|
|
35
|
-
genre suggests a pace, a lens and a
|
|
53
|
+
genre suggests a pace, a lens, a look and a camera style (`suggests` in the listing): the camera
|
|
54
|
+
moves the way the genre moves. A good default, not a rule.
|
|
55
|
+
- **Pick moves from the camera style.** Each style lists the moves that belong to it; vary them per
|
|
56
|
+
shot and keep the style for the piece.
|
|
36
57
|
- **Vary the lens per shot**, like a real shoot: `ultra-wide-14mm` or `wide-24mm` to open on a
|
|
37
58
|
place, `standard-35mm` for people in it, `portrait-85mm` for faces, `macro-100mm` for food,
|
|
38
59
|
jewellery and textures, `tele-135mm` to pick someone out of a crowd.
|
|
@@ -54,7 +75,9 @@ every scene matches, and changeable later without making anything again:
|
|
|
54
75
|
|
|
55
76
|
`teal-orange`, `bleach-bypass` (silver, low colour, hard contrast), `warm-film`, `cool-noir`,
|
|
56
77
|
`pastel`, `high-contrast-mono` (true black and white), `vintage-70s`, `warm-print` (rich warm skin,
|
|
57
|
-
golden highlights), `night-blue` (also day-for-night), `golden-hour`, `clean-commercial`, `matte
|
|
78
|
+
golden highlights), `night-blue` (also day-for-night), `golden-hour`, `clean-commercial`, `matte`,
|
|
79
|
+
and more than forty others in `list_director_controls`: warm, cool, colour against colour, quiet
|
|
80
|
+
colour, loud colour, black and white, period and mood families.
|
|
58
81
|
|
|
59
82
|
- `create_video_from_scenario` → `look`: graded onto every clip when they are joined. The joined
|
|
60
83
|
edit is saved beside the video (`<name>.edl.json`): to change the look, `render_edl` that EDL
|
|
@@ -68,8 +91,16 @@ golden highlights), `night-blue` (also day-for-night), `golden-hour`, `clean-com
|
|
|
68
91
|
Keep colour words out of the prompts and the style sheet when a look is set ("teal shadows",
|
|
69
92
|
"warm grade"): they fight it.
|
|
70
93
|
|
|
94
|
+
## Reference pictures
|
|
95
|
+
|
|
96
|
+
`reference_images` takes up to 50 pictures. A model has room for few (Gemini Omni Flash 3, others 4),
|
|
97
|
+
so past that number they are shared across its slots as contact sheets, every picture a cell of a
|
|
98
|
+
grid. Nothing is thrown away, but each picture gets less detail and how well a model reads a sheet
|
|
99
|
+
has not been tested, so the clip says so. Prefer the few best pictures when they will do.
|
|
100
|
+
|
|
71
101
|
## Speed ramps
|
|
72
102
|
|
|
73
103
|
Make the clip at normal speed, then ramp it in the edit: `render_edl` segment `ramps` ease into a
|
|
74
|
-
slow-motion or frozen moment and back out (see the video-editing skill's EDL reference).
|
|
75
|
-
|
|
104
|
+
slow-motion or frozen moment and back out (see the video-editing skill's EDL reference). Ask by name
|
|
105
|
+
(`{ "preset": "hit-beat", "atSec": 2.4 }`; `ramps` in the listing) or by numbers. A model asked for a
|
|
106
|
+
ramp in the prompt rarely gives the timing you want.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Long video — 30 seconds to
|
|
1
|
+
# Long video — 30 seconds to 30 minutes
|
|
2
2
|
|
|
3
3
|
One clip is 4–15 s. Anything longer is many clips that must look like one film: the same face, the
|
|
4
4
|
same jacket, the same light, a camera that stays on the right side of the action. Models have no
|
|
@@ -26,11 +26,11 @@ piece on clean stills instead:
|
|
|
26
26
|
4. **Assemble** with cuts, a music bed or voice-over across the whole piece, captions on top
|
|
27
27
|
(`render_edl`, load `video-editing`).
|
|
28
28
|
|
|
29
|
-
### Keep the reference sheet as
|
|
29
|
+
### Keep the reference sheet as reflections
|
|
30
30
|
|
|
31
|
-
Save each recurring character, product and place as a
|
|
31
|
+
Save each recurring character, product and place as a reflection once (`reflection_save`, see SKILL.md § 2a)
|
|
32
32
|
and call it by `@name` from then on — in every keyframe prompt and every clip. The pictures then
|
|
33
|
-
travel with each request by themselves (as many as each model takes, every
|
|
33
|
+
travel with each request by themselves (as many as each model takes, every reflection's front picture
|
|
34
34
|
first) and the sheet is said word for word, so nothing drifts between the stills and the clips, or
|
|
35
35
|
between one video and the next episode. The keyframe board becomes: `generate_image` "@maya at the
|
|
36
36
|
kitchen window, medium shot, morning light from the left" for each beat; then the clips:
|
|
@@ -44,8 +44,45 @@ it up once as a series and make each episode with `series_next_episode`: [series
|
|
|
44
44
|
`create_video_from_scenario` does steps 3–4 in one call: give every scene its `first_frame_image` and
|
|
45
45
|
`last_frame_image`, pass `reference_images` and `model` once for the whole piece. A scene without its
|
|
46
46
|
own first picture continues from the previous scene's `last_frame_image` (the clean keyframe), else
|
|
47
|
-
from the last frame of its clip. Up to 8 scenes per call;
|
|
48
|
-
|
|
47
|
+
from the last frame of its clip. Up to 8 scenes per call; past that, make it as a plan in batches.
|
|
48
|
+
|
|
49
|
+
### Past 8 scenes: a plan in batches
|
|
50
|
+
|
|
51
|
+
For anything longer, up to 300 scenes and 30 minutes, use `long_video_plan`. Fifteen minutes is about
|
|
52
|
+
150 scenes of 6 s, or 60 of 15 s on a model that makes them. It is a lot of money and hours of work,
|
|
53
|
+
so the person sees and approves it in steps:
|
|
54
|
+
|
|
55
|
+
1. **Write the whole story first**: the reference sheet as reflections, the story in a few lines and every
|
|
56
|
+
scene in order, keeping the same wording for the same people. `long_video_plan` with the title, the
|
|
57
|
+
`story`, the `scenes`, the `model`, `reference_images`, `style` and direction. These stay fixed for
|
|
58
|
+
the whole piece. Long scene lists can go in several calls (`plan` and more `scenes`).
|
|
59
|
+
2. **Show the price: the whole and each batch.** Nothing is paid yet. Tell them plainly what the whole
|
|
60
|
+
comes to and that a scene made again costs again. When they agree, call `long_video_plan` again
|
|
61
|
+
with `plan` and `confirmed_total_usd`. That amount is a ceiling: nothing can spend past it.
|
|
62
|
+
3. **Each batch, keyframes first.** `long_video_batch` with `plan` tells you what to draw: the story,
|
|
63
|
+
the reflections, the last picture of the piece so far. Draw and check the batch's stills, show them,
|
|
64
|
+
then give them as `keyframes` with `stills_approved: true` for the batch's price, and call again
|
|
65
|
+
with `confirmed_cost_usd` once they say yes. Each batch gets its own yes.
|
|
66
|
+
4. **Show the batch.** It comes back joined; ask them to watch it before the next. A wrong face in
|
|
67
|
+
batch 2 is far cheaper to catch than in batch 10.
|
|
68
|
+
5. **`long_video_finish`** joins everything: the transition, the colour look on every clip, even
|
|
69
|
+
loudness all through, the music. It says if anything is still missing.
|
|
70
|
+
|
|
71
|
+
**When something goes wrong.** A scene that fails stays failed and the others stand. Say which and why,
|
|
72
|
+
then call the same batch again: only what is left is priced and made. If a prompt was refused, change
|
|
73
|
+
it with `keyframes` (`scene` and `prompt`). If several fail in a row the batch stops by itself so nothing
|
|
74
|
+
more is spent: say why, usually credit or a provider that is down. A scene "still being made" is
|
|
75
|
+
fetched on the next call and never asked for twice.
|
|
76
|
+
|
|
77
|
+
**After the app closed.** `long_video_status` lists the plans and says how far each one got, what was
|
|
78
|
+
spent and what comes next. Everything made is kept in the plan's folder. A clip being made when the app
|
|
79
|
+
closed is fetched if its job can be found; if not, it may have been charged, so it stays counted and
|
|
80
|
+
making it again costs again. Tell the person. Nothing else has to be made again.
|
|
81
|
+
|
|
82
|
+
**Past the amount confirmed.** A batch that would go past the whole is refused and says how much more it
|
|
83
|
+
needs. Only the person can raise it. Never raise it on your own.
|
|
84
|
+
|
|
85
|
+
A reflection removed since the plan was made stops the next batch. Take that reflection out of the scenes that call it, or start a new plan. Never work around it.
|
|
49
86
|
|
|
50
87
|
### For a pair that is too far apart
|
|
51
88
|
|
|
@@ -72,7 +109,7 @@ reframe; it only goes on.
|
|
|
72
109
|
| Model (`model`) | Continues | New part per step | Whole clip at most |
|
|
73
110
|
|---|---|---|---|
|
|
74
111
|
| Gemini Omni Flash | only a clip it made itself, on the same account — pass its `job_id` | 3–10 s | 40 s |
|
|
75
|
-
| PixVerse 6 (`fal-ai/pixverse/v6/text-to-video`) | any clip
|
|
112
|
+
| PixVerse 6 (`fal-ai/pixverse/v6/text-to-video`) | any clip — one a model made or the person's own footage (`job_id` or the file as `video`) | 1–15 s | no limit stated |
|
|
76
113
|
| Veo 3.1 / Veo 3.1 Fast (`fal-ai/veo3.1`, `fal-ai/veo3.1/fast`) | only a clip Veo 3.1 made | 7 s | 30 s |
|
|
77
114
|
|
|
78
115
|
By default the model that made the clip continues it; a model that cannot says so in words, before
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Two routes in Tesseract:
|
|
4
4
|
|
|
5
|
-
- **Their own picture — a talking photo:** `make_talking_photo` (below).
|
|
6
|
-
|
|
5
|
+
- **Their own picture — a talking photo:** `make_talking_photo` (below). A photo of one person, or a saved
|
|
6
|
+
reflection of a character, speaks a script in the voice they choose —
|
|
7
7
|
their own cloned voice too — or their recording, with the lips matched.
|
|
8
8
|
- **A stock presenter — HeyGen:** `list_avatars` → `generate_avatar_video` (script, an avatar or
|
|
9
9
|
talking-photo id, a HeyGen voice id, 16:9 or 9:16, background colour). It runs on the free
|
|
@@ -14,22 +14,17 @@ below apply to both.
|
|
|
14
14
|
|
|
15
15
|
## Talking photo — their own picture
|
|
16
16
|
|
|
17
|
-
1. **
|
|
18
|
-
these words, or a made-up character — then `consent=true`. A saved card (`"@name"`) carries its
|
|
19
|
-
person's consent. Never a public figure, a stranger or anyone under 18: the picture is checked
|
|
20
|
-
first and refused if so, and nothing is made when it cannot be checked (signed out).
|
|
21
|
-
2. **The picture.** One person, front-on, face clear and well lit, mouth visible, nothing in front
|
|
17
|
+
1. **The picture.** One person, front-on, face clear and well lit, mouth visible, nothing in front
|
|
22
18
|
of the face. `aspect_ratio` (`9:16`, `16:9`, `1:1`) crops it, centred, before anything is sent.
|
|
23
|
-
|
|
24
|
-
voice (`clone_voice`
|
|
25
|
-
|
|
26
|
-
4. **The model.** `best` OmniHuman v2 ($0.105/s, up to 5 min, the head, hands and body move with
|
|
19
|
+
2. **The voice.** A `script` with an ElevenLabs `voice_id` (`list_voices`), or their own cloned
|
|
20
|
+
voice (`clone_voice`, see `audio-and-voice`); or `audio_path`, a recording of them. HeyGen voice ids do not work here.
|
|
21
|
+
3. **The model.** `best` OmniHuman v2 ($0.105/s, up to 5 min, the head, hands and body move with
|
|
27
22
|
the speech) or `cheaper` Kling AI Avatar v2 Standard ($0.0562/s, up to 2 min). `direction`: a
|
|
28
23
|
few words on how they move ("warm smile, small nods, looks into the camera").
|
|
29
|
-
|
|
24
|
+
4. **Cost.** The first call returns the estimate when anything is billed to their own keys (the
|
|
30
25
|
voice; the lip-sync on their own fal key) — confirm it, then call again with
|
|
31
26
|
`confirmed_cost_usd`. On Tesseract the lip-sync comes out of their allowance.
|
|
32
|
-
|
|
27
|
+
5. **Length.** `max_seconds` (default 60) caps it; a longer script is refused before anything is
|
|
33
28
|
spent. Pilot the first sentences of a long script first.
|
|
34
29
|
|
|
35
30
|
The finished clip has the full-quality voice put back.
|
|
@@ -44,9 +39,8 @@ The finished clip has the full-quality voice put back.
|
|
|
44
39
|
3. **Voice:** `generate_avatar_video` needs a **HeyGen** `voice_id`. There is no tool that lists
|
|
45
40
|
HeyGen voices — ask the person for one from their HeyGen voice library. ElevenLabs voice ids
|
|
46
41
|
(from `list_voices`) do not work here.
|
|
47
|
-
4. **Rights:**
|
|
48
|
-
|
|
49
|
-
person's mouth that they did not say.
|
|
42
|
+
4. **Rights:** what may be made is each provider's own rules (HeyGen's, fal's, ElevenLabs'), which the person
|
|
43
|
+
agreed to with Tesseract's terms. Tesseract asks no tick of its own.
|
|
50
44
|
|
|
51
45
|
## The script
|
|
52
46
|
|
|
@@ -40,13 +40,13 @@ after the subject), so the prompt itself then describes the subject and the acti
|
|
|
40
40
|
| The beat | Moves |
|
|
41
41
|
|---|---|
|
|
42
42
|
| Hook, first second | `fast-push-in`, `crash-zoom-in`, `fpv-dive`, `zoom-bounce` |
|
|
43
|
-
| Reveal, realisation | `dolly-in`, `creep-in`, `pull-back-reveal`, `rise-over-reveal`, `tilt-up`, `focus-pull`, `focus-reveal` |
|
|
44
|
-
| Hero shot (person or product) | `orbit`, `half-orbit`, `low-orbit`, `arc-left` / `arc-right`, `turntable`, `motion-sweep` |
|
|
45
|
-
| Movement, travel | `tracking-side`, `follow-behind`, `leading-walk`, `car-mount`, `helmet-cam`, `handlebar-mount`, `fpv-fly-through`, `gimbal-glide`, `hyperlapse` |
|
|
46
|
-
| Establishing a place | `drone-flyover`, `drone-rise`, `drone-top-down`, `heli-aerial`, `crane-down`, `sweeping-crane` |
|
|
47
|
-
| Someone talks, a product is shown | `locked-off`, `near-still`, `still-top-shot`, `zoom-in`, `parallax-slide`, `handheld` |
|
|
43
|
+
| Reveal, realisation | `dolly-in`, `creep-in`, `pull-back-reveal`, `rise-over-reveal`, `reveal-from-behind`, `over-shoulder`, `tilt-up`, `focus-pull`, `focus-reveal` |
|
|
44
|
+
| Hero shot (person or product) | `orbit`, `half-orbit`, `low-orbit`, `descending-orbit`, `arc-left` / `arc-right`, `turntable`, `motion-sweep`, `probe-lens` |
|
|
45
|
+
| Movement, travel | `tracking-side`, `follow-behind`, `leading-walk`, `car-mount`, `helmet-cam`, `handlebar-mount`, `fpv-fly-through`, `gimbal-glide`, `hyperlapse`, `low-angle-tracking`, `overhead-follow`, `car-chase-tracking`, `long-take` |
|
|
46
|
+
| Establishing a place | `drone-flyover`, `drone-rise`, `drone-top-down`, `drone-orbit`, `heli-aerial`, `crane-down`, `overhead-descend`, `sweeping-crane` |
|
|
47
|
+
| Someone talks, a product is shown | `locked-off`, `near-still`, `still-top-shot`, `zoom-in`, `parallax-slide`, `handheld`, `ken-burns` (a still photo) |
|
|
48
48
|
| Tension, unease | `dutch-tilt`, `dolly-zoom`, `reverse-dolly-zoom`, `body-mount`, `high-corner`, `boat-sway` |
|
|
49
|
-
| Between two scenes | `whip-pan`, `whip-tilt`, `pass-through`, `foreground-wipe`, `eye-dive` (give the next scene as the last picture) |
|
|
49
|
+
| Between two scenes | `whip-pan`, `whip-pan-left` / `whip-pan-right`, `whip-tilt`, `pass-through`, `foreground-wipe`, `eye-dive` (give the next scene as the last picture) |
|
|
50
50
|
| Ending | `crane-up`, `dolly-out`, `creep-out`, `drone-pull-away`, `space-pull-back`, `rising-orbit`, `defocus-out` |
|
|
51
51
|
| Time | `timelapse`, `slow-motion`, `frozen-moment`, `shutter-drag`, `stop-motion`, `undercranked` |
|
|
52
52
|
|
|
@@ -59,12 +59,16 @@ after the subject), so the prompt itself then describes the subject and the acti
|
|
|
59
59
|
- `>` runs them **one after the other**: `crane-up > pan-left`, `locked-off > dolly-in`. Moves of one
|
|
60
60
|
kind and opposite moves are fine here. Give each step about three seconds of the clip.
|
|
61
61
|
- `dolly-zoom`, `reverse-dolly-zoom`, `frozen-moment`, `eye-dive` and `space-pull-back` are whole moves
|
|
62
|
-
and stand alone; `locked-off`, `near-still`, `high-corner`, `still-top-shot`, `rising-orbit
|
|
63
|
-
`barrel-roll` run together only with a speed.
|
|
62
|
+
and stand alone; `locked-off`, `near-still`, `high-corner`, `still-top-shot`, `rising-orbit`,
|
|
63
|
+
`descending-orbit`, `ken-burns` and `barrel-roll` run together only with a speed.
|
|
64
64
|
|
|
65
65
|
The tool says why when a stack does not work.
|
|
66
66
|
|
|
67
|
-
**
|
|
67
|
+
**Crew names work too.** A move is found by its id, its label or any name in its `alsoCalled`:
|
|
68
|
+
`rack focus` is `focus-pull`, `vertigo` is `dolly-zoom`, `snorricam` is `body-mount`, `bullet time` is
|
|
69
|
+
`frozen-moment`, `jib up` is `crane-up`, `steadicam` is `gimbal-glide`, `oner` is `long-take`.
|
|
70
|
+
|
|
71
|
+
**Unproven moves.** A move with `status: seed` in `list_camera_moves` has no proven run, so its
|
|
68
72
|
result is not known. Say so before spending on one, or pick a move without that mark.
|
|
69
73
|
|
|
70
74
|
**Which model.** The plain moves (dolly, crane, pan, tilt, arc, zoom, handheld, drone) work on every
|
|
@@ -121,7 +125,7 @@ distorted hands, cartoon` (for a realistic look), `camera shake` (for a static s
|
|
|
121
125
|
|
|
122
126
|
- On-screen text, logos and signs in the prompt — models misspell them. Add text in editing.
|
|
123
127
|
- Named living artists, brands and trademarks as style references; describe the look instead.
|
|
124
|
-
-
|
|
128
|
+
- Anything meant to pass as real news footage.
|
|
125
129
|
- More than ~80 words of description: the model latches onto the first details and drops the rest.
|
|
126
130
|
|
|
127
131
|
## From a keyframe (image-to-video)
|
|
@@ -8,22 +8,45 @@ re-shoot one beat of, re-voice and re-grade — never just a flat clip.
|
|
|
8
8
|
Use it when the person wants a show, a channel, a recurring format or "part 2": "a weekly short
|
|
9
9
|
with my mascot", "a bedtime story series", "episode 3 of the bakery one".
|
|
10
10
|
|
|
11
|
+
## A faceless channel
|
|
12
|
+
|
|
13
|
+
A channel told by its narrator, with nobody real on screen. `series_create` with `faceless_style`
|
|
14
|
+
(`documentary`, `explainer`, `nature`, `paper-cut`, `chalkboard`, `night-city`, `mystery`, `cosmos`) sets
|
|
15
|
+
the style sheet, the cut, the colour and the music; anything given by hand wins. It needs a `voice_id`.
|
|
16
|
+
Every beat needs a line of narration, about 15 characters for each second of the beat, and the picture
|
|
17
|
+
shows what the line says. A real person's reflection is refused (a faceless channel shows nobody real). Products, places and made-up
|
|
18
|
+
characters are fine.
|
|
19
|
+
|
|
20
|
+
## From a topic to finished episodes
|
|
21
|
+
|
|
22
|
+
When the person gives a topic rather than one idea ("three episodes on the great rivers"),
|
|
23
|
+
`series_plan_run` with the `topic`, `episodes` (1–4) and `seconds_each` gives the plan to write from and a
|
|
24
|
+
rough size of what the run costs. Write one line for each episode, show the size and the ideas, then make
|
|
25
|
+
each with `series_next_episode`, one at a time. `find_ideas` has formats to borrow.
|
|
26
|
+
|
|
27
|
+
A long episode (past 8 beats or 2 minutes) goes the same way until its beats are given:
|
|
28
|
+
`series_next_episode` then keeps it as a long video plan and shows the whole and its batches. Go on with
|
|
29
|
+
`long_video_plan` (confirm the whole), `long_video_batch` for each batch, and `long_video_finish`, which
|
|
30
|
+
reads the narration, makes the music, saves the editable project and renders it:
|
|
31
|
+
[long-video.md](long-video.md) has the steps. Write every beat at once, with its narration.
|
|
32
|
+
|
|
33
|
+
Once an episode is finished, post it with the `youtube-channel`, `facebook-instagram`, `x-account` or
|
|
34
|
+
`tiktok-account` skill (TikTok sends a draft) and mark it `series_update episode_status published`.
|
|
35
|
+
|
|
11
36
|
## Set it up once
|
|
12
37
|
|
|
13
|
-
1. **The
|
|
14
|
-
(`
|
|
15
|
-
|
|
16
|
-
a series refuses a real person's card that has neither. A **look** worth repeating (a
|
|
17
|
-
paper-cut texture, a film stock) can be a `style` card: it goes with every beat of every episode.
|
|
38
|
+
1. **The reflections first.** Every character, product and place that comes back is a saved reflection
|
|
39
|
+
(`reflection_save`, SKILL.md § 2a) — the front picture first, a short sheet. A **look** worth repeating (a
|
|
40
|
+
paper-cut texture, a film stock) can be a `style` reflection: it goes with every beat of every episode.
|
|
18
41
|
2. **The style sheet** — a few concrete lines said in every shot: medium (live action, 3D,
|
|
19
42
|
flat 2D), palette, light, texture, and what never changes ("Maya always wears
|
|
20
43
|
the green apron; the bakery's sign is always in frame in the first beat"). It is the show's
|
|
21
44
|
bible: write it once, change it only on purpose. Name the genre, era, pacing, lens and film as
|
|
22
45
|
the series' director controls (`genre`, `era`, … — ids from `list_director_controls`) and the
|
|
23
46
|
colour as its `look`, rather than in the sheet: [directing.md](directing.md).
|
|
24
|
-
3. **The format.** `short` = 9:16, a 30–60 s story; `episode` = 16:9, 60–120 s;
|
|
25
|
-
`min_seconds`, `max_seconds`. The length is the story's — the beats — without
|
|
26
|
-
outro.
|
|
47
|
+
3. **The format.** `short` = 9:16, a 30–60 s story; `episode` = 16:9, 60–120 s; `long` = 16:9, 2–15
|
|
48
|
+
minutes; or `aspect`, `min_seconds`, `max_seconds`. The length is the story's — the beats — without
|
|
49
|
+
the intro and outro. Up to 8 beats and 2 minutes is one run; longer is made in batches (below).
|
|
27
50
|
4. **The model.** One that takes reference pictures keeps faces best (`video_providers_status`,
|
|
28
51
|
`referenceImages`; Gemini Omni Flash takes 3). Every episode uses it, so they match.
|
|
29
52
|
5. **The voice.** An ElevenLabs voice id from `list_voices` — or a voice cloned with the speaker's
|
|
@@ -42,19 +65,19 @@ is set up; `series_update` changes it for the next episodes (episodes already ma
|
|
|
42
65
|
|
|
43
66
|
`series_next_episode` in three calls:
|
|
44
67
|
|
|
45
|
-
1. **The idea alone** → the plan: the
|
|
68
|
+
1. **The idea alone** → the plan: the reflections by today's `@names` with their sheets, the style, the
|
|
46
69
|
format, and the last episodes' beats. Write the beats from the idea: one continuous action per
|
|
47
|
-
beat,
|
|
70
|
+
beat, everyone in shot called by their `@name`, the same wording for them as in earlier
|
|
48
71
|
episodes, a camera move per beat (`list_camera_moves`). Narration, if the series is narrated:
|
|
49
72
|
one line per beat at most, short enough to say within it.
|
|
50
73
|
2. **Keyframes first.** Draw each beat's opening still with `generate_image` — the beat, its
|
|
51
74
|
`@names` (also in `reference_images`), the style sheet and the aspect. Check each with
|
|
52
|
-
`image_inspect` against the
|
|
75
|
+
`image_inspect` against the reflections and the last episode. **Show the person every still**; redo the
|
|
53
76
|
ones they want changed. Then call again with the beats (each with its `first_frame_image`, and
|
|
54
77
|
`last_frame_image` where a beat must end on a given picture) and `stills_approved: true` → the
|
|
55
78
|
price. Present it in plain words.
|
|
56
79
|
3. **Confirmed** → the same call with `confirmed_cost_usd`. The clips are made from keyframe to
|
|
57
|
-
keyframe with the series' model, format, style and
|
|
80
|
+
keyframe with the series' model, format, style and reflections; the narration is read in the series'
|
|
58
81
|
voice; the music made; and the episode is saved in its own folder — clips, stills, voice, music
|
|
59
82
|
and a `.tsvideo` project with the intro and outro — then rendered once and shown in the chat.
|
|
60
83
|
|
|
@@ -63,9 +86,9 @@ said yes. A price change (more beats, longer beats) means confirming again.
|
|
|
63
86
|
|
|
64
87
|
## Keep the episodes consistent
|
|
65
88
|
|
|
66
|
-
- **Same
|
|
67
|
-
own words; the
|
|
68
|
-
the
|
|
89
|
+
- **Same reflections.** Call people, products and places by `@name` only — never re-describe them in your
|
|
90
|
+
own words; the reflection's sheet is said for you. A new recurring character becomes a reflection and joins
|
|
91
|
+
the series (`series_update reflections`) before the episode it first appears in.
|
|
69
92
|
- **Same style sheet**, word for word — the series adds it to every shot. Do not restate the look
|
|
70
93
|
per beat in other words.
|
|
71
94
|
- **Same colour look on every episode.** Generated clips drift a little in colour from one to the
|
|
@@ -94,15 +117,13 @@ Before calling an episode done:
|
|
|
94
117
|
4. Once the person changes an episode in the editor, mark it `edited`; once it is out, `published`
|
|
95
118
|
(`series_update episode_number`, `episode_status`).
|
|
96
119
|
|
|
97
|
-
##
|
|
120
|
+
## A reflection removed
|
|
98
121
|
|
|
99
|
-
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
parents' consent either. No public figures, nothing sexual, nothing meant to deceive.
|
|
105
|
-
- A cloned voice only with the speaker's permission (audio-and-voice skill).
|
|
122
|
+
- When a reflection is removed (`reflection_remove`), the series refuses the next episode until its reflections are
|
|
123
|
+
updated (`series_update reflections`). Episodes already made stay as they are — tell the person, and offer to take
|
|
124
|
+
that character out of them in the editor.
|
|
125
|
+
- What may be made is each provider's own rules, which the person agreed to with Tesseract's terms; Tesseract asks
|
|
126
|
+
no tick and runs no check of its own.
|
|
106
127
|
|
|
107
128
|
## What it does not do yet — say it
|
|
108
129
|
|
|
Binary file
|