arca-marketing-video 2.4.0 → 2.6.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/README.md +23 -19
- package/bin/cli.js +67 -0
- package/package.json +9 -4
- package/skills/carousel-generator/SKILL.md +4 -4
- package/skills/shorts-editor/SKILL.md +3 -3
- package/skills/storyboard-prompt/SKILL.md +13 -9
- package/skills/video-prompt/SKILL.md +61 -10
- /package/{assets → skills/_arca-marketing-assets/assets}/characters.png +0 -0
- /package/{assets → skills/_arca-marketing-assets/assets}/design-guide.png +0 -0
- /package/{assets → skills/_arca-marketing-assets/assets}/final-cta.png +0 -0
- /package/{assets → skills/_arca-marketing-assets/assets}/logo.png +0 -0
- /package/{brand.md → skills/_arca-marketing-assets/brand.md} +0 -0
package/README.md
CHANGED
|
@@ -1,32 +1,41 @@
|
|
|
1
1
|
# arca-marketing-video
|
|
2
2
|
|
|
3
|
-
A brand-driven short-form marketing
|
|
4
|
-
|
|
3
|
+
A brand-driven short-form marketing kit: **four installable Claude Code skills** that share one
|
|
4
|
+
editable brand profile and asset set. Use any skill on its own, or chain them.
|
|
5
|
+
|
|
6
|
+
## Install (into Claude Code)
|
|
5
7
|
|
|
6
8
|
```
|
|
7
|
-
|
|
9
|
+
npx arca-marketing-video # installs into ./.claude/skills (this project)
|
|
10
|
+
npx arca-marketing-video --global # installs into ~/.claude/skills (all projects)
|
|
8
11
|
```
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
That copies the four skills into your `.claude/skills/` so Claude Code auto-discovers them.
|
|
14
|
+
(If `.claude/skills/` didn't exist before, restart Claude Code once so it starts watching it.)
|
|
15
|
+
|
|
16
|
+
> `npm install arca-marketing-video` alone does **not** register the skills — Claude Code only
|
|
17
|
+
> scans `.claude/skills/`, not `node_modules/`. Run the `npx` command above.
|
|
18
|
+
|
|
19
|
+
## The four skills
|
|
11
20
|
|
|
12
21
|
| Skill | Use when you want to… |
|
|
13
22
|
| --- | --- |
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
23
|
+
| `carousel-generator` | Make a 3–5 slide Instagram carousel (4:5) |
|
|
24
|
+
| `storyboard-prompt` | Pressure-test a video idea → a clean frames-only 3×3 grid + a text breakdown |
|
|
25
|
+
| `video-prompt` | Turn a storyboard into vertical video (drives the Wyren MCP; rebuilds schematic boards with Wyren clips + HyperFrames graphics) |
|
|
26
|
+
| `shorts-editor` | Cut / caption / add graphics to existing footage → a high-retention short |
|
|
18
27
|
|
|
19
|
-
|
|
20
|
-
editor also ships `silence_cut.py` and `composition.template.html`.
|
|
28
|
+
After installing, each appears as a skill (e.g. `/carousel-generator`).
|
|
21
29
|
|
|
22
30
|
## Shared brand profile + assets
|
|
23
31
|
|
|
24
|
-
|
|
32
|
+
All four skills read brand specifics from one place, so the kit is reusable for any brand:
|
|
25
33
|
|
|
26
|
-
- `brand.md` — the brand profile
|
|
27
|
-
- `assets/` — `logo.png`, `characters.png`, `design-guide.png`, `final-cta.png`
|
|
34
|
+
- `_arca-marketing-assets/brand.md` — the brand profile
|
|
35
|
+
- `_arca-marketing-assets/assets/` — `logo.png`, `characters.png`, `design-guide.png`, `final-cta.png`
|
|
28
36
|
|
|
29
|
-
|
|
37
|
+
This `_arca-marketing-assets/` folder has no `SKILL.md`, so Claude Code ignores it as a skill; the
|
|
38
|
+
skills reference it via `../_arca-marketing-assets/…`. To retarget to another brand, swap those files.
|
|
30
39
|
|
|
31
40
|
## Natural chain
|
|
32
41
|
|
|
@@ -35,11 +44,6 @@ storyboard-prompt → video-prompt → shorts-editor (original video)
|
|
|
35
44
|
carousel-generator (independent)
|
|
36
45
|
```
|
|
37
46
|
|
|
38
|
-
## Retarget to another brand
|
|
39
|
-
|
|
40
|
-
Replace `brand.md` with your own profile (keep the field structure) and swap the files in
|
|
41
|
-
`assets/`. No skill edits needed.
|
|
42
|
-
|
|
43
47
|
## License
|
|
44
48
|
|
|
45
49
|
MIT
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
// Installs the four Arca marketing skills into a Claude Code skills directory.
|
|
5
|
+
// npx arca-marketing-video -> ./.claude/skills (this project)
|
|
6
|
+
// npx arca-marketing-video --global -> ~/.claude/skills (all projects)
|
|
7
|
+
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
const os = require('os');
|
|
11
|
+
|
|
12
|
+
const args = process.argv.slice(2);
|
|
13
|
+
|
|
14
|
+
if (args.includes('-h') || args.includes('--help')) {
|
|
15
|
+
process.stdout.write(`
|
|
16
|
+
arca-marketing-video — install the marketing skills into Claude Code
|
|
17
|
+
|
|
18
|
+
Usage:
|
|
19
|
+
npx arca-marketing-video Install into ./.claude/skills (this project)
|
|
20
|
+
npx arca-marketing-video --global Install into ~/.claude/skills (all projects)
|
|
21
|
+
npx arca-marketing-video --help Show this help
|
|
22
|
+
|
|
23
|
+
Installs: carousel-generator, storyboard-prompt, video-prompt, shorts-editor
|
|
24
|
+
(plus a shared brand profile + assets the skills read).
|
|
25
|
+
`);
|
|
26
|
+
process.exit(0);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const isGlobal = args.includes('--global') || args.includes('-g');
|
|
30
|
+
const baseDir = isGlobal ? os.homedir() : process.cwd();
|
|
31
|
+
const skillsRoot = path.join(baseDir, '.claude', 'skills');
|
|
32
|
+
const srcSkills = path.join(__dirname, '..', 'skills');
|
|
33
|
+
|
|
34
|
+
if (typeof fs.cpSync !== 'function') {
|
|
35
|
+
process.stderr.write('Error: Node 16.7+ is required (fs.cpSync). Please upgrade Node.\n');
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const skillsRootExisted = fs.existsSync(skillsRoot);
|
|
40
|
+
fs.mkdirSync(skillsRoot, { recursive: true });
|
|
41
|
+
|
|
42
|
+
const entries = fs
|
|
43
|
+
.readdirSync(srcSkills, { withFileTypes: true })
|
|
44
|
+
.filter((d) => d.isDirectory());
|
|
45
|
+
|
|
46
|
+
const installedSkills = [];
|
|
47
|
+
for (const dir of entries) {
|
|
48
|
+
const from = path.join(srcSkills, dir.name);
|
|
49
|
+
const to = path.join(skillsRoot, dir.name);
|
|
50
|
+
fs.rmSync(to, { recursive: true, force: true });
|
|
51
|
+
fs.cpSync(from, to, { recursive: true });
|
|
52
|
+
if (!dir.name.startsWith('_')) installedSkills.push(dir.name);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
process.stdout.write(`\n✓ Installed ${installedSkills.length} Arca marketing skills into ${skillsRoot}\n`);
|
|
56
|
+
for (const name of installedSkills.sort()) process.stdout.write(` • ${name}\n`);
|
|
57
|
+
process.stdout.write(` (+ shared brand profile & assets in _arca-marketing-assets)\n`);
|
|
58
|
+
|
|
59
|
+
if (!skillsRootExisted) {
|
|
60
|
+
process.stdout.write(
|
|
61
|
+
`\nNote: .claude/skills was just created — restart Claude Code once so it starts watching the folder.\n\n`
|
|
62
|
+
);
|
|
63
|
+
} else {
|
|
64
|
+
process.stdout.write(
|
|
65
|
+
`\nThe skills are available now — Claude Code detects skill changes live.\n\n`
|
|
66
|
+
);
|
|
67
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arca-marketing-video",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "Brand-driven short-form marketing content kit: four
|
|
3
|
+
"version": "2.6.0",
|
|
4
|
+
"description": "Brand-driven short-form marketing content kit: four installable Claude Code skills (carousel generator, storyboard prompt, video prompt, shorts editor) plus a shared brand profile and assets. Run `npx arca-marketing-video` to install them into .claude/skills.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"skill",
|
|
7
7
|
"claude",
|
|
@@ -18,10 +18,15 @@
|
|
|
18
18
|
],
|
|
19
19
|
"author": "aobalitaan",
|
|
20
20
|
"license": "MIT",
|
|
21
|
+
"bin": {
|
|
22
|
+
"arca-marketing-video": "bin/cli.js"
|
|
23
|
+
},
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": ">=16.7"
|
|
26
|
+
},
|
|
21
27
|
"files": [
|
|
28
|
+
"bin/",
|
|
22
29
|
"skills/",
|
|
23
|
-
"brand.md",
|
|
24
|
-
"assets/",
|
|
25
30
|
"README.md",
|
|
26
31
|
"LICENSE"
|
|
27
32
|
]
|
|
@@ -6,7 +6,7 @@ description: Use when creating an Instagram (or LinkedIn) image carousel of 3–
|
|
|
6
6
|
# Carousel Generator
|
|
7
7
|
|
|
8
8
|
## Brand profile (read first)
|
|
9
|
-
Read
|
|
9
|
+
Read `../_arca-marketing-assets/brand.md` first and apply it throughout: name-usage rules, tone, audience, positioning, color palette, persona, visual world, recurring objects, and logo rules. Brand assets live in `../_arca-marketing-assets/assets/` (`logo.png`, `characters.png`, `design-guide.png`, `final-cta.png`). Use the supplied logo only — never invent or distort it. Swap `../_arca-marketing-assets/brand.md` + `../_arca-marketing-assets/assets/` to retarget this skill to another brand.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -18,15 +18,15 @@ INTAKE — ASK FIRST:
|
|
|
18
18
|
Before writing anything, ask the user for the inputs you need, then wait for their answers:
|
|
19
19
|
1. TOPIC / CONCEPT — the vague idea or angle for this carousel.
|
|
20
20
|
2. TARGET MARKET / AUDIENCE — who this is for and what they struggle with.
|
|
21
|
-
3. BRAND PROFILE — the attached or pasted
|
|
21
|
+
3. BRAND PROFILE — the attached or pasted ../_arca-marketing-assets/brand.md (brand name, positioning, tone, visual world, colors, persona, recurring objects, hook/CTA examples).
|
|
22
22
|
If the user leaves something blank, make smart assumptions and state them briefly. Do not stall unless the topic is impossible to understand.
|
|
23
23
|
|
|
24
24
|
INPUTS / VARIABLES TO FILL IN:
|
|
25
|
-
- BRAND PROFILE: [attach or paste
|
|
25
|
+
- BRAND PROFILE: [attach or paste ../_arca-marketing-assets/brand.md]
|
|
26
26
|
- TOPIC: [the vague topic or concept]
|
|
27
27
|
- TARGET MARKET: [the audience this carousel targets]
|
|
28
28
|
|
|
29
|
-
All brand specifics — brand name and how to write it, audience, positioning, core idea, tone, visual world, color palette, persona, and recurring objects — come from the attached BRAND PROFILE (
|
|
29
|
+
All brand specifics — brand name and how to write it, audience, positioning, core idea, tone, visual world, color palette, persona, and recurring objects — come from the attached BRAND PROFILE (../_arca-marketing-assets/brand.md). Read it first and apply it throughout. Do not hardcode any single brand’s details into this template.
|
|
30
30
|
|
|
31
31
|
BRAND, AUDIENCE, POSITIONING, AND TONE:
|
|
32
32
|
See the attached BRAND PROFILE. Follow its name-usage rules, target audience, positioning, "should feel like / should not feel like" guidance, and tone exactly.
|
|
@@ -12,8 +12,8 @@ on-screen graphics / zooms / SFX layered in, or a brand splash / end card.
|
|
|
12
12
|
Built on HyperFrames + ffmpeg + faster-whisper.
|
|
13
13
|
|
|
14
14
|
## Brand profile (read first)
|
|
15
|
-
Read
|
|
16
|
-
uses
|
|
15
|
+
Read `../_arca-marketing-assets/brand.md` for the brand's colors, logo rules, and persona. The brand-splash end card
|
|
16
|
+
uses `../_arca-marketing-assets/assets/final-cta.png`; the logo (`../_arca-marketing-assets/assets/logo.png`) may appear as a subtle
|
|
17
17
|
in-world mark. `silence_cut.py` and `composition.template.html` are co-located in this skill folder.
|
|
18
18
|
This skill is the final edit stage after `video-prompt` (or runs standalone on any raw footage).
|
|
19
19
|
|
|
@@ -55,7 +55,7 @@ Neither signal alone works:
|
|
|
55
55
|
- **Graphic chips:** glass pill + inline-SVG icon + short label, in the **lower-mid torso band (~y1170 of 1920)** — below the face, above the captions. "Over the people" is fine; over the face is not. One per beat, pop in / hold / pop out.
|
|
56
56
|
- **Zoom punch-ins:** scale the plate wrapper (base ~1.04) to ~1.10-1.14 on emphasis lines, ease back. Never scale below 1.0 (reveals letterbox edges). Cover-fit the plate.
|
|
57
57
|
- **SFX:** riser on the very first frame; soft whoosh on hard cuts / speaker changes; pop on each chip entrance. Keep dialogue front (SFX vol 0.25-0.35). Mixkit free SFX (`mixkit.co/free-sound-effects/<cat>/` → `assets.mixkit.co/.../<id>-preview.mp3`) is a reliable no-key source.
|
|
58
|
-
- **Brand splash:** 3s end card (a still image — use
|
|
58
|
+
- **Brand splash:** 3s end card (a still image — use `../_arca-marketing-assets/assets/final-cta.png`), brought in by a quick white flash + one signature SFX, with a subtle ken-burns zoom. Reserve that SFX for the splash only.
|
|
59
59
|
|
|
60
60
|
## Gotchas
|
|
61
61
|
| Symptom | Fix |
|
|
@@ -6,7 +6,7 @@ description: Use when pressure-testing a short-form video idea and turning it in
|
|
|
6
6
|
# Storyboard Prompt
|
|
7
7
|
|
|
8
8
|
## Brand profile (read first)
|
|
9
|
-
Read
|
|
9
|
+
Read `../_arca-marketing-assets/brand.md` first and apply its name-usage rules, tone, audience, persona, logo rules, and colors throughout. Brand assets live in `../_arca-marketing-assets/assets/` (`logo.png`, `characters.png`, `design-guide.png`, `final-cta.png`). Use the supplied logo only — never invent or distort it. The natural next step after this skill is `video-prompt` (turn the storyboard into video). Swap `../_arca-marketing-assets/brand.md` + `../_arca-marketing-assets/assets/` to retarget to another brand.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -25,7 +25,7 @@ Before doing anything, ask the user for the inputs you need, then wait for their
|
|
|
25
25
|
1. RAW CONCEPT — the video idea to pressure-test and storyboard.
|
|
26
26
|
2. VIDEO TYPE / STYLE — UGC / phone-shot (default), cinematic / movie-trailer, animation, motion-graphics, product film, skit, etc. This drives the LOOK and the first-5-seconds cold-open strategy.
|
|
27
27
|
3. TARGET MARKET / AUDIENCE — who this is for.
|
|
28
|
-
4. BRAND PROFILE — the attached or pasted
|
|
28
|
+
4. BRAND PROFILE — the attached or pasted ../_arca-marketing-assets/brand.md (brand name, positioning, tone, persona, logo rules, colors).
|
|
29
29
|
5. TARGET FORMAT — TikTok / Instagram Reels / YouTube Shorts.
|
|
30
30
|
6. PREFERRED LENGTH — or let you recommend one.
|
|
31
31
|
Ask first. Only make smart, briefly stated assumptions for whatever is still missing. Do not stall unless the concept is impossible to understand.
|
|
@@ -59,10 +59,10 @@ Raw concept:
|
|
|
59
59
|
[PASTE THE CONCEPT HERE]
|
|
60
60
|
|
|
61
61
|
Brand:
|
|
62
|
-
[BRAND NAME — see the attached brand profile (
|
|
62
|
+
[BRAND NAME — see the attached brand profile (../_arca-marketing-assets/brand.md)]
|
|
63
63
|
|
|
64
64
|
Brand profile:
|
|
65
|
-
[ATTACH OR PASTE
|
|
65
|
+
[ATTACH OR PASTE ../_arca-marketing-assets/brand.md — positioning, tone, persona, logo rules, colors]
|
|
66
66
|
|
|
67
67
|
Logo asset:
|
|
68
68
|
Use the attached brand logo if available.
|
|
@@ -322,7 +322,7 @@ For each hook, provide:
|
|
|
322
322
|
- how to make it more visual
|
|
323
323
|
- whether it can be understood without sound
|
|
324
324
|
- stickiness: is the line catchy, sharp, and quotable (a phrase the viewer could repeat)?
|
|
325
|
-
- brand fit: does the message ladder to the brand's positioning, audience, and tone (per
|
|
325
|
+
- brand fit: does the message ladder to the brand's positioning, audience, and tone (per ../_arca-marketing-assets/brand.md)?
|
|
326
326
|
|
|
327
327
|
Then score the hooks on three axes — scroll-stop power, stickiness, and brand fit — rank the top 3, and choose the single strongest hook (highest combined, never high scroll-stop but off-brand).
|
|
328
328
|
|
|
@@ -332,7 +332,7 @@ The chosen hook must be:
|
|
|
332
332
|
- fast
|
|
333
333
|
- emotionally clear
|
|
334
334
|
- catchy and memorable — a line or image worth repeating, not just clear
|
|
335
|
-
- on-brand — in the brand's voice and aligned to its message (see
|
|
335
|
+
- on-brand — in the brand's voice and aligned to its message (see ../_arca-marketing-assets/brand.md), never generic
|
|
336
336
|
- a true promise that sets up the brand's value (not a clever line that goes nowhere)
|
|
337
337
|
- easy to execute in the chosen video type
|
|
338
338
|
- not corporate
|
|
@@ -414,13 +414,13 @@ Create an ending that naturally connects back to the first frame if possible.
|
|
|
414
414
|
|
|
415
415
|
BRAND MESSAGING ALIGNMENT (non-negotiable)
|
|
416
416
|
Pull the brand's positioning, core idea, tone, target audience, audience pain, and hook/CTA examples
|
|
417
|
-
from
|
|
417
|
+
from ../_arca-marketing-assets/brand.md, and make the polished concept ladder to them:
|
|
418
418
|
- The hook and core promise must speak to the brand's exact audience and the specific pain it solves —
|
|
419
419
|
not a generic version of the topic.
|
|
420
420
|
- The payoff must implicitly prove the brand's value (the transformation the brand enables), so the
|
|
421
421
|
viewer connects the idea to what the brand does — without it feeling like an ad.
|
|
422
422
|
- Tone must match the brand's voice: keep its do's and avoid its don'ts (no hype / buzzwords / cringe,
|
|
423
|
-
or whatever
|
|
423
|
+
or whatever ../_arca-marketing-assets/brand.md specifies).
|
|
424
424
|
- The CTA should echo the brand's CTA style and lead softly and naturally to the brand.
|
|
425
425
|
- Treat the brand's hook/CTA examples as a springboard, not copy-paste — write a fresher, sharper line.
|
|
426
426
|
State in ONE line how the chosen hook + payoff + CTA map to the brand's message.
|
|
@@ -700,7 +700,11 @@ The grid:
|
|
|
700
700
|
edge-to-edge or with a thin uniform gutter, so every frame crops out cleanly on its own.
|
|
701
701
|
- Frames in beat order (frame 1 = top-left). Each frame is a different moment (the 9 beats below).
|
|
702
702
|
- Render the frames in the chosen VIDEO TYPE's look (UGC phone-shot by default — raw, imperfect,
|
|
703
|
-
human per Phases 6 and 9; cinematic / animation / product film per the declared type).
|
|
703
|
+
human per Phases 6 and 9; cinematic / animation / product film per the declared type). For UGC, the
|
|
704
|
+
frames must read like stills grabbed from a phone video, NOT stock/AI photos — apply Phases 6 & 9
|
|
705
|
+
(real skin texture, non-model casting, mixed practical light, off-center handheld framing, lived-in
|
|
706
|
+
clutter); avoid even studio light, model-perfect symmetric faces, plastic skin, and staged centering.
|
|
707
|
+
(`video-prompt` reuses these frames as start frames, so the realism has to start here.)
|
|
704
708
|
|
|
705
709
|
The frames must contain NO:
|
|
706
710
|
- panel numbers, labels, titles, or letters
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: video-prompt
|
|
3
|
-
description: Use when turning a storyboard into a finished vertical short-form video of any type (UGC, cinematic / movie-trailer, animation, product film, etc.). Handles both photographic storyboards (clean and use as start frames) and schematic / annotated plans (do NOT upscale 1:1 — rebuild patterned to them using Wyren clips for live footage + HyperFrames for on-screen graphics). Drives the Wyren MCP — picks image/video models and resolutions, optimizes the TikTok first 5 seconds, and keeps character faces consistent across shots. Triggers on "make the video from this storyboard", "generate the short", "render the clips". Part of the arca-marketing-video kit.
|
|
3
|
+
description: Use when turning a storyboard into a finished vertical short-form video of any type (UGC, cinematic / movie-trailer, animation, product film, etc.). Handles both photographic storyboards (clean and use as start frames) and schematic / annotated plans (do NOT upscale 1:1 — rebuild patterned to them using Wyren clips for live footage + HyperFrames for on-screen graphics). Drives the Wyren MCP — picks image/video models and resolutions, forces phone-camera realism on the start frames (so they don't look like stock/AI photos), generates multi-angle coverage so the edit can cut fast like real UGC, optimizes the TikTok first 5 seconds, and keeps character faces consistent across shots. Triggers on "make the video from this storyboard", "generate the short", "render the clips". Part of the arca-marketing-video kit.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Video Prompt
|
|
7
7
|
|
|
8
8
|
## Brand profile (read first)
|
|
9
|
-
Read
|
|
9
|
+
Read `../_arca-marketing-assets/brand.md` first and apply its name-usage, persona, logo rules, and colors. Brand assets live in `../_arca-marketing-assets/assets/` — feed `../_arca-marketing-assets/assets/characters.png` (persona) and `../_arca-marketing-assets/assets/logo.png` to the image/video models for consistency; use the supplied logo only, never invent or distort it. **This skill drives the Wyren MCP — load the `wyren` skill before any `mcp__wyren__*` call.** It pairs with `storyboard-prompt` (upstream) and `shorts-editor` (downstream edit). Swap `../_arca-marketing-assets/brand.md` + `../_arca-marketing-assets/assets/` to retarget to another brand.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -16,7 +16,7 @@ INTAKE — ASK FIRST:
|
|
|
16
16
|
Before generating, ask the user for any of these that are not already provided, then wait for their answers:
|
|
17
17
|
1. STORYBOARD REFERENCE — the storyboard image (and shot notes if available). Note whether it is PHOTOGRAPHIC frames or a SCHEMATIC / annotated plan (panel numbers, notes boxes, mock UI) — see STORYBOARD INTERPRETATION; it changes how the video is built.
|
|
18
18
|
2. VIDEO TYPE / STYLE — UGC / phone-shot (default), cinematic / movie-trailer, animation, motion-graphics, product film, skit, etc. Should match the storyboard's declared type. Drives the LOOK and the first-5-seconds cold open. If UGC, the phone-shot styling below applies; if not, follow that type's craft.
|
|
19
|
-
3. BRAND PROFILE — the attached or pasted
|
|
19
|
+
3. BRAND PROFILE — the attached or pasted ../_arca-marketing-assets/brand.md (brand name, logo rules, persona, colors).
|
|
20
20
|
4. TARGET MARKET / AUDIENCE — who this is for.
|
|
21
21
|
5. VIDEO SEGMENT — FULL VIDEO / PART 1 / PART 2.
|
|
22
22
|
6. TARGET DURATION.
|
|
@@ -115,11 +115,34 @@ Step A — produce a start frame per shot (image model, `imageAI` node):
|
|
|
115
115
|
for that shot from the character profile + the panel's brief (scene, action, framing), so the frame
|
|
116
116
|
is real-looking footage, not a redraw of the mockup. The panel's mock UI becomes a HyperFrames
|
|
117
117
|
overlay later, not part of this start frame.
|
|
118
|
+
|
|
119
|
+
PHONE-CAMERA REALISM FOR START FRAMES (UGC types — non-negotiable)
|
|
120
|
+
The #1 failure mode is a start frame that looks like a polished STOCK PHOTO or AI render (even soft
|
|
121
|
+
studio light, model-perfect symmetric faces, plastic skin, centered staged composition, sterile clean
|
|
122
|
+
room). The video model inherits the start frame's look, so a stock-looking frame produces a stock-
|
|
123
|
+
looking clip. Fix it at the frame.
|
|
124
|
+
- Apply the SAME proven realism rules this skill already specifies for the footage — PHONE-SHOT VISUAL
|
|
125
|
+
STYLE, CHARACTER REALISM, FRAMING, LIGHTING, and DEPTH OF FIELD (all below) — to the START FRAME
|
|
126
|
+
too. The frame is a paused still from that same casual phone video, NOT a separate photo shoot. In
|
|
127
|
+
particular reuse: natural skin texture / pores / asymmetry, non-model casting, candid mid-action
|
|
128
|
+
expression (CHARACTER REALISM); mixed practical light, uneven exposure, blown-out window, mild
|
|
129
|
+
noise (LIGHTING); off-center imperfect handheld framing (FRAMING); normal phone depth of field, no
|
|
130
|
+
creamy bokeh (DEPTH OF FIELD); real lived-in clutter (ENVIRONMENT).
|
|
131
|
+
- Add explicit phone-camera tokens to the image prompt: "shot on an iPhone, candid vertical phone
|
|
132
|
+
snapshot, amateur, mild phone HDR, slight grain, imperfect framing."
|
|
133
|
+
- Always include a negative prompt: stock photo, AI render, 3D render, glossy, airbrushed, retouched,
|
|
134
|
+
model, supermodel, perfect skin, symmetrical, studio lighting, softbox, beauty lighting, creamy
|
|
135
|
+
bokeh, shallow depth of field, hyperdetailed, 8k, cinematic, magazine, advertisement, clean, sterile,
|
|
136
|
+
staged.
|
|
137
|
+
- Applies whether you upscale a photo (path A) or design a fresh frame (path B). If the source/look is
|
|
138
|
+
already stock-ish (the common failure), explicitly degrade it toward phone realism — grain, uneven
|
|
139
|
+
light, candid expression, off-center framing — BEFORE generating the clip. (NON-UGC types: follow
|
|
140
|
+
that type's craft instead — this phone-realism bar is for UGC.)
|
|
118
141
|
- **Keep the face.** When upscaling/cleaning with the image model, instruct it to PRESERVE the
|
|
119
142
|
existing person's identity — same face, hair, age, build, and wardrobe — and only improve quality
|
|
120
143
|
(sharpen, denoise, fix artifacts). Do not let it redraw or beautify into a different face. Use an
|
|
121
144
|
image-edit-capable model (Nanobanana / Nanobanana Pro accept image input) and pass the panel plus
|
|
122
|
-
the character profile (and
|
|
145
|
+
the character profile (and `../_arca-marketing-assets/assets/characters.png`) as references, with a prompt like "enhance and
|
|
123
146
|
clean this frame, keep the exact same face and person, do not change identity." This face-preserving
|
|
124
147
|
upscale is what makes the per-shot start frames consistent across a multishot/multi-clip video.
|
|
125
148
|
- Image models (category "image"): Nanobanana (Gemini 2.5 Flash Image, 1K, image input, default),
|
|
@@ -127,7 +150,7 @@ Step A — produce a start frame per shot (image model, `imageAI` node):
|
|
|
127
150
|
persona/logo consistent), Imagen 4 Fast / Standard / Ultra (text-only, 1K–2K, no image input).
|
|
128
151
|
- Image sizes: 1K / 2K / 4K depending on model. Aspect ratios: 1:1, 4:3, 9:16, 16:9.
|
|
129
152
|
- Default: Nanobanana Pro at 2K (image input + multi-reference keeps character + logo locked).
|
|
130
|
-
To feed the persona and logo, pass
|
|
153
|
+
To feed the persona and logo, pass `../_arca-marketing-assets/assets/characters.png` and `../_arca-marketing-assets/assets/logo.png` as reference images.
|
|
131
154
|
|
|
132
155
|
Step B — generate the clips (video model, `videoAI` node):
|
|
133
156
|
- Video models (category "video") and their key knobs:
|
|
@@ -169,8 +192,8 @@ FIRST, before generating any shot. Do this for each recurring character (e.g. th
|
|
|
169
192
|
|
|
170
193
|
Step 0 — build a character profile BEFORE any shot:
|
|
171
194
|
1. Generate a character profile / face reference with the image model. Use **Nanobanana Pro**
|
|
172
|
-
(up to 14 reference images, up to 4K) seeded with
|
|
173
|
-
description from
|
|
195
|
+
(up to 14 reference images, up to 4K) seeded with `../_arca-marketing-assets/assets/characters.png` and the persona
|
|
196
|
+
description from `../_arca-marketing-assets/brand.md`. Produce a clean reference: a front face + a 3/4 face (and a
|
|
174
197
|
head-to-waist) of the SAME person — consistent face, hair, skin, age, build, and wardrobe —
|
|
175
198
|
rendered in the casual phone-UGC look (natural skin texture, real lighting), NOT glamour/studio.
|
|
176
199
|
One profile image per recurring character.
|
|
@@ -225,10 +248,10 @@ Storyboard breakdown or shot notes:
|
|
|
225
248
|
[PASTE BREAKDOWN HERE]
|
|
226
249
|
|
|
227
250
|
Brand:
|
|
228
|
-
[BRAND NAME — see brand profile (
|
|
251
|
+
[BRAND NAME — see brand profile (../_arca-marketing-assets/brand.md)]
|
|
229
252
|
|
|
230
253
|
Brand profile:
|
|
231
|
-
[ATTACH OR PASTE
|
|
254
|
+
[ATTACH OR PASTE ../_arca-marketing-assets/brand.md — brand name, logo rules, persona, colors]
|
|
232
255
|
|
|
233
256
|
Logo asset:
|
|
234
257
|
Use the supplied brand logo only if available.
|
|
@@ -343,6 +366,33 @@ Avoid:
|
|
|
343
366
|
Every shot should answer:
|
|
344
367
|
“Why would someone keep watching right now?”
|
|
345
368
|
|
|
369
|
+
FAST CUTS & MULTI-ANGLE COVERAGE (the UGC editing engine)
|
|
370
|
+
|
|
371
|
+
A single continuous clip per beat reads as a slow AI ad. Real engaging TikTok/Reels UGC is CUT FAST
|
|
372
|
+
and constantly SWITCHES ANGLE and shot size. This operationalizes the "new beat every 2–4s" rule and
|
|
373
|
+
the CAMERA RULES + TRANSITIONS sections below for GENERATION — and it overrides the one-shot-per-panel
|
|
374
|
+
default in SHOT-BY-SHOT EXECUTION: a storyboard panel is a BEAT, usually several shots, not one clip.
|
|
375
|
+
You cannot cut between angles you never generated.
|
|
376
|
+
|
|
377
|
+
Rules:
|
|
378
|
+
- Cut roughly every 1–2.5s. No talking shot holds longer than ~3s without a cut, angle change, or
|
|
379
|
+
reframe. The whole video should feel like many short shots, not a few long ones.
|
|
380
|
+
- Cover each beat from MULTIPLE angles / shot sizes, then cut between them. Generate 2–3 variations per
|
|
381
|
+
beat drawn from the FRAMING + CAMERA move set: wide/establishing → medium close-up → tight close-up →
|
|
382
|
+
over-the-shoulder → desk-level POV → reaction insert. Vary framing on EVERY cut (never two same-size
|
|
383
|
+
shots back to back).
|
|
384
|
+
- Use the video model's multishot where available (Kling V3 multiShot up to 6 shots) to get angle
|
|
385
|
+
changes inside one generation; otherwise generate several short clips per beat with different framings
|
|
386
|
+
and assemble them.
|
|
387
|
+
- Intercut B-roll / insert shots between talking shots — hands on the keyboard, the screen, the paper
|
|
388
|
+
packet, a face reaction, an object. These inserts let you cut on every sentence and hide jumps.
|
|
389
|
+
- Punctuate with the proven TRANSITIONS vocabulary (jump cuts, reaction cuts, quick whip-pans, match
|
|
390
|
+
cuts, camera repositioning) and snap zooms / handheld punch-ins — never slow dissolves or cinematic moves.
|
|
391
|
+
- Keep continuity locked across the angle changes (same person/face, wardrobe, set, lighting) via the
|
|
392
|
+
character profile — fast cuts must not become a different person.
|
|
393
|
+
- The actual cutting/assembly is finished in the editor (`shorts-editor` skill): generate enough angle
|
|
394
|
+
coverage here so that stage can cut fast. Hand it one long clip per beat and it cannot.
|
|
395
|
+
|
|
346
396
|
PHONE-SHOT VISUAL STYLE
|
|
347
397
|
|
|
348
398
|
SCOPE: this section (and the CAMERA / FRAMING / LIGHTING / DEPTH OF FIELD / CHARACTER REALISM /
|
|
@@ -811,7 +861,8 @@ Avoid:
|
|
|
811
861
|
|
|
812
862
|
SHOT-BY-SHOT EXECUTION
|
|
813
863
|
|
|
814
|
-
|
|
864
|
+
Each storyboard panel is a BEAT — realize it as several short shots from different angles, not one
|
|
865
|
+
held clip (see FAST CUTS & MULTI-ANGLE COVERAGE). For each panel:
|
|
815
866
|
|
|
816
867
|
- preserve the main action
|
|
817
868
|
- preserve the emotional beat
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|