@scenerok/sdk 0.26.0 → 0.28.0
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/package.json +1 -1
- package/skills/scenerok/SKILL.md +88 -14
- package/skills/scenerok/references/animations-catalog.md +9 -0
- package/skills/scenerok/references/animations-picker.md +3 -0
- package/skills/scenerok/references/catalog-index.json +2855 -1
- package/skills/scenerok/references/choosing.md +111 -0
- package/skills/scenerok/references/editing-actions.md +4 -2
- package/skills/scenerok/references/intent-router.md +3 -3
- package/skills/scenerok/references/look-and-feel.md +146 -0
- package/skills/scenerok/references/plugins.md +5 -1
- package/skills/scenerok/references/recipes.md +223 -0
- package/skills/scenerok/references/repertoire.md +1493 -0
- package/skills/scenerok/references/shaders-filters.md +1 -1
- package/skills/scenerok/references/text-styles.md +5 -0
- package/skills/scenerok/references/vidscript-guide.md +3 -3
- package/skills/scenerok/references/vidscript-strict.md +4 -4
- package/skills/scenerok/references/workflow.md +17 -21
|
@@ -21,7 +21,7 @@ A `filter` line grades everything on screen during its window. Add `target: clip
|
|
|
21
21
|
| `saturation` | Color intensity |
|
|
22
22
|
| `brightness` | Exposure lift/drop |
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Choose filters like any other tool (`choosing.md`). A grade (`cdl` for warmth or coolness, `vignette` around 0.3) ties mixed pictures together; effect filters (`glitch`, `chromatic`, `blur`) carry a strong look and fight readable text. Each one's look and clashes are in `repertoire.md`.
|
|
25
25
|
|
|
26
26
|
## VFX filters
|
|
27
27
|
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
`import motion from "@scenerok/basic-animations"` — use with `animate:` on `text` blocks.
|
|
4
4
|
|
|
5
|
+
Fonts: `font:` is one Google Fonts family at weight 400. Names with a weight such as
|
|
6
|
+
`"Inter Black"` or `"Inter Bold"` (in some catalog examples below) are not families and fall
|
|
7
|
+
back to a default face in renders; use a heavy family such as `"Archivo Black"` instead.
|
|
8
|
+
Type scale, palette and motion timing: `look-and-feel.md`.
|
|
9
|
+
|
|
5
10
|
## Motion primitives
|
|
6
11
|
|
|
7
12
|
| Primitive | Suits | Phase |
|
|
@@ -11,8 +11,8 @@ Contents: Agent quick start · Program structure · Statements (input, output, l
|
|
|
11
11
|
1. **Import every package function** — use `import xai from "@scenerok/xai"`, `import cf from "@scenerok/cloudflare"`, `import eleven from "@elevenlabs/music"`, and `import motion from "@scenerok/basic-animations"` before calling `xai.*`, `cf.*`, `eleven.*`, or `motion.*`.
|
|
12
12
|
2. **Validate early** — `scenerok validate file.vid` (errors show as `Line N:C — message`).
|
|
13
13
|
3. **Music package syntax** — `import eleven from "@elevenlabs/music"`, then call `eleven.music(...)`, `eleven.generateMusic(...)`, or `eleven.composeMusic(...)`.
|
|
14
|
-
4. **
|
|
15
|
-
5. **
|
|
14
|
+
4. **Choose per beat** — name each beat's job, then pick tools with `choosing.md` and `repertoire.md` (what each tool looks like, is for, and fights). `recipes.md` has complete scripts; `look-and-feel.md` has the type scale and safe areas.
|
|
15
|
+
5. **Look at a URL's pictures before choosing** — when the user gives a website or product URL, collect the page's own product images, logo and focused screenshots (`look-and-feel.md` → Sourcing imagery), then decide per beat whether to use them. Don't use a full-page screenshot as a background.
|
|
16
16
|
6. **Probe asset type and dimensions** — before placing real assets, identify image vs video with `file`; inspect width, height, and duration with `ffprobe`, `sips`, or `identify`; then scale from the measured aspect ratio and set explicit `width`, `height`, `x`, and `y`.
|
|
17
17
|
7. **Use still images directly** — `input` supports videos and images. Place still screenshots, logos, and product photos with `video image_input`; the renderer treats images as static clips for the block duration.
|
|
18
18
|
8. **Use the full media plugin toolkit** — choose still generation, text-to-video, image-to-video, reference-to-video, video extension, TTS, and music deliberately. Do not default to only `xai.imagine`.
|
|
@@ -681,7 +681,7 @@ import motion from "@scenerok/basic-animations"
|
|
|
681
681
|
[0s .. 5s] = filter "glitch", intensity: 0.5, animate: motion.fadeIn(1s)
|
|
682
682
|
```
|
|
683
683
|
|
|
684
|
-
|
|
684
|
+
Grade the whole video once (`cdl`, `vignette`, or a `lut`); effect filters are optional accents. Parameter names per filter: `editing-actions.md` → Color and finishing.
|
|
685
685
|
|
|
686
686
|
### Animation functions (`@scenerok/basic-animations`)
|
|
687
687
|
|
|
@@ -15,9 +15,9 @@ Without the owning import, calls like `xai.imagine`, `cf.video`, `xai.tts`, `ele
|
|
|
15
15
|
|
|
16
16
|
**Never** call package functions without importing the package alias first.
|
|
17
17
|
|
|
18
|
-
## Rule 2:
|
|
18
|
+
## Rule 2: Look at a URL's pictures before you choose
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
When the user gives a product or landing-page URL, collect its own pictures (product shots, logos, focused screenshots) before you decide what each beat shows: they are the only pictures that prove anything about the product. Reading only the title and price leaves you choosing without the options. Use focused, legible pieces, never a full-page screenshot as a background, and don't invent claims. How to collect and prepare them: `look-and-feel.md` → Sourcing imagery.
|
|
21
21
|
|
|
22
22
|
## Rule 2.5: Probe real asset type and dimensions before placement
|
|
23
23
|
|
|
@@ -46,7 +46,7 @@ x = (outputWidth - scaledWidth) / 2
|
|
|
46
46
|
y = safeAreaTop
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
Real assets take `animate:` like text does. When a visual should leave softly, split it:
|
|
50
50
|
|
|
51
51
|
```vidscript
|
|
52
52
|
import motion from "@scenerok/basic-animations"
|
|
@@ -211,7 +211,7 @@ let bed = eleven.music("Soft premium ad music", duration: 15, instrumental: true
|
|
|
211
211
|
[0s .. 15s] = filter "saturation", amount: 1.12
|
|
212
212
|
```
|
|
213
213
|
|
|
214
|
-
Filters are
|
|
214
|
+
Filters are tools like any other: use a grade (`cdl`, `vignette`, or a `lut` from an HTTPS URL) when the pictures need tying together, and an effect (`glitch`, `chromatic`, `blur`) when its look is the point. What each looks like and fights: `repertoire.md`. Each filter has its own parameter name (`saturation` takes `amount`, `blur` takes `radius`); a wrong name is ignored without an error. The table is in `editing-actions.md` → Color and finishing.
|
|
215
215
|
|
|
216
216
|
A `filter` line grades everything in its window. To grade one clip, add `target: clip` or write `clip.Filter("sepia", intensity: 0.6)`.
|
|
217
217
|
|
|
@@ -2,35 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
## Pipeline
|
|
4
4
|
|
|
5
|
-
1. **Understand the goal** — promo, testimonial, meme, code demo, etc.
|
|
5
|
+
1. **Understand the goal** — promo, testimonial, meme, code demo, etc. Pick the closest script in `recipes.md`
|
|
6
6
|
2. **Choose authoring** — VidScript (`.vid`) by default and for every editing action; TypeScript `@scenerok/sdk` (`.ts`, `sdk-guide.md`) only for loops or computed timing
|
|
7
|
-
3. **Plan the structure** —
|
|
8
|
-
4. **
|
|
9
|
-
5. **Probe
|
|
10
|
-
6. **
|
|
7
|
+
3. **Plan the structure** — beats of 2.5–4.5 s, each with a picture, copy, and motion (`look-and-feel.md`)
|
|
8
|
+
4. **Put the material on the table** — page images, focused screenshots, logo, footage, screen recordings, the exact numbers and words. Generated stills or clips when nothing real exists and the beat needs a picture. You can't choose a picture you never looked at
|
|
9
|
+
5. **Probe and prepare** — `file` / `ffprobe` / `sips` / `identify` (or `loadVideo` / media stdlib); crop and blur stills with ffmpeg; never guess sizes
|
|
10
|
+
6. **Decide the look** — palette, two fonts, and type sizes as `let` values (`look-and-feel.md`)
|
|
11
11
|
7. **Choose plugin modality** — still / t2v / i2v / ref2v / extend / TTS / music (`ai-models.md`, `tts.md`, `music.md`)
|
|
12
12
|
8. **Compose** — measured dimensions, `area:` / `t.grid` for text, symbolic durations (`vo.duration` / returned node `.duration`), entry/exit beats
|
|
13
13
|
9. **Validate** — `scenerok validate script.vid` or `scenerok validate scene.ts`
|
|
14
14
|
10. **Deep-validate (VidScript)** — for scripts with TTS/generated media: `scenerok validate script.vid --generate-assets --report-json` (billed; assets cache for the render). SDK plugins generate during `scenerok render` instead. Fix `offCanvas`/`wasShrunk` text, `collisions`, and unintended `audio.overlaps`, then re-validate.
|
|
15
15
|
11. **Render** — `scenerok render script.vid --watch` or `scenerok render scene.ts --watch`
|
|
16
|
-
12. **
|
|
17
|
-
13. **Deliver** — share download URL
|
|
16
|
+
12. **Look at the render** — pull one frame per beat with ffmpeg, open them, and answer the review questions in `SKILL.md`. Fix what you see and render again. `scenerok lint-video <render-id> --cost medium --json` (billed) adds an LLM review of frame grabs
|
|
17
|
+
13. **Deliver** — share the download URL once you can defend each beat
|
|
18
18
|
|
|
19
19
|
## Website URL asset workflow
|
|
20
20
|
|
|
21
|
-
When the user
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
6. Use stills as timeline inputs or feed into `xai.imageToVideo` / `xai.referenceToVideo` (VidScript or SDK).
|
|
29
|
-
7. Combine real assets with generated clips, text, and music.
|
|
30
|
-
8. Scale from measured aspect ratio; keep primary visuals in ~80–88% frame width for 9:16.
|
|
31
|
-
9. Animate assets: `motion.popIn` / SDK `popIn`, `fadeIn`, `slideY`.
|
|
32
|
-
10. Generative prompts must require **no text, logos, watermarks, or readable UI** in AI output — add copy with `text`.
|
|
33
|
-
11. Do not invent product claims — extract from site or ask the user.
|
|
21
|
+
When the user gives a product, company, landing-page or store URL, the page's
|
|
22
|
+
own pictures go in the video. Reading only the title, price and bullets is not
|
|
23
|
+
enough. Collect the image URLs and focused screenshots, probe them, crop out
|
|
24
|
+
baked-in captions, and place them as cards, bands over a blurred fill, or
|
|
25
|
+
full-frame covers: `look-and-feel.md` → Pictures and Sourcing imagery. A worked
|
|
26
|
+
example is the product promo in `recipes.md`. Don't invent product claims;
|
|
27
|
+
extract them from the page or ask.
|
|
34
28
|
|
|
35
29
|
## Best practices
|
|
36
30
|
|
|
@@ -62,7 +56,9 @@ If render fails: check `scenerok status <id>`, fix missing assets or syntax, re-
|
|
|
62
56
|
|
|
63
57
|
## Sample video types
|
|
64
58
|
|
|
65
|
-
- **Product promo** — hero
|
|
59
|
+
- **Product promo** — hero image, features, price + CTA (`recipes.md`)
|
|
60
|
+
- **Release notes** — logo, typed code, stat, outro (`recipes.md`)
|
|
61
|
+
- **Talking head** — speaker cut, punch-ins, b-roll, captions (`recipes.md`)
|
|
66
62
|
- **Social hook** — fast cuts, bold text
|
|
67
63
|
- **Testimonial** — speaker clip + quote overlay
|
|
68
64
|
- **Meme remix** — reaction clip + punchlines
|