@wji.ai/cli 0.3.0 → 0.5.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.
Files changed (61) hide show
  1. package/README.md +76 -2
  2. package/dist/commands/backreel.js +260 -0
  3. package/dist/commands/canvas.js +751 -86
  4. package/dist/commands/class.js +395 -0
  5. package/dist/commands/crew.js +205 -0
  6. package/dist/commands/npc.js +413 -0
  7. package/dist/commands/workspace.js +109 -24
  8. package/dist/core/archive.js +95 -0
  9. package/dist/core/crew.js +546 -0
  10. package/dist/core/members.js +54 -0
  11. package/dist/core/npc.js +108 -0
  12. package/dist/core/output.js +4 -2
  13. package/dist/index.js +10 -0
  14. package/package.json +1 -1
  15. package/skill/short-drama/SKILL.md +86 -8
  16. package/skill/short-drama/reference/action-bullet-time.md +47 -0
  17. package/skill/short-drama/reference/action-car-chase.md +51 -0
  18. package/skill/short-drama/reference/action-gun-fu.md +52 -0
  19. package/skill/short-drama/reference/action-historical-realist.md +50 -0
  20. package/skill/short-drama/reference/action-hk-kungfu.md +54 -0
  21. package/skill/short-drama/reference/action-street-brawl.md +49 -0
  22. package/skill/short-drama/reference/action-superhero.md +50 -0
  23. package/skill/short-drama/reference/action-wuxia-fantasy.md +51 -0
  24. package/skill/short-drama/reference/action.md +94 -0
  25. package/skill/short-drama/reference/cinematography-costume-dark.md +117 -0
  26. package/skill/short-drama/reference/cinematography-costume-idol.md +126 -0
  27. package/skill/short-drama/reference/cinematography-low-key.md +115 -0
  28. package/skill/short-drama/reference/cinematography-period-nostalgia.md +106 -0
  29. package/skill/short-drama/reference/cinematography-scifi-hard.md +63 -0
  30. package/skill/short-drama/reference/cinematography-scifi-soft.md +66 -0
  31. package/skill/short-drama/reference/cinematography-sweet-romance.md +175 -0
  32. package/skill/short-drama/reference/cinematography.md +83 -0
  33. package/skill/short-drama/reference/composition-art-first.md +74 -0
  34. package/skill/short-drama/reference/craft-shots.md +3 -1
  35. package/skill/short-drama/reference/craft-story.md +4 -1
  36. package/skill/short-drama/reference/format.md +94 -0
  37. package/skill/short-drama/reference/grammar-comedy.md +105 -0
  38. package/skill/short-drama/reference/grammar-faceslap.md +67 -0
  39. package/skill/short-drama/reference/grammar.md +103 -0
  40. package/skill/short-drama/reference/operations-cli.md +1 -1
  41. package/skill/short-drama/reference/schema.md +34 -3
  42. package/skill/short-drama/reference/stage-art.md +1 -1
  43. package/skill/short-drama/reference/stage-outline.md +21 -0
  44. package/skill/short-drama/reference/stage-script.md +10 -0
  45. package/skill/short-drama/reference/stage-storyboard.md +15 -0
  46. package/skill/short-drama/reference/story-angst.md +117 -0
  47. package/skill/short-drama/reference/story-comedy.md +136 -0
  48. package/skill/short-drama/reference/story-cultivation.md +109 -0
  49. package/skill/short-drama/reference/story-family.md +119 -0
  50. package/skill/short-drama/reference/story-horror.md +124 -0
  51. package/skill/short-drama/reference/story-mystery.md +127 -0
  52. package/skill/short-drama/reference/story-palace.md +103 -0
  53. package/skill/short-drama/reference/story-revenge.md +124 -0
  54. package/skill/short-drama/reference/story-scifi.md +112 -0
  55. package/skill/short-drama/reference/story-sweet.md +128 -0
  56. package/skill/short-drama/reference/story.md +127 -0
  57. package/skill/short-drama/scripts/selftest.mjs +809 -1
  58. package/skill/short-drama/scripts/short-drama.mjs +1608 -16
  59. package/skill/wji/SKILL.md +84 -2
  60. package/skill/wji/reference/commands.md +96 -6
  61. package/skill/wji-classroom/SKILL.md +161 -0
@@ -0,0 +1,106 @@
1
+ # Cinematography preset `period-nostalgia` — 年代 · 怀旧
2
+
3
+ The look: **a memory shot on film.** Warm, faded colour on vintage lenses and film stock, with
4
+ grain and a soft glow. The light is the era's own: sun through a window, a bare tungsten bulb, a
5
+ green-white fluorescent tube, the flicker of an old television. Frames are steady and unhurried,
6
+ so the period details (the enamel mug, the bicycle, the calendar on the wall) have time to be
7
+ seen. The feeling is warmth with an ache: the picture should feel like something already lost.
8
+
9
+ The mechanics shared by every preset (the fields, the gates, where the phrases land, the
10
+ character-sheet exception) are in `cinematography.md`. Pair it with `register: 年代` for the lines.
11
+
12
+ ## 0. Name the decade
13
+
14
+ The preset is the *look*. The *era* is yours to state, and the details depend on it. Put the
15
+ decade in `params.lookPhrase` (e.g. `1980s`), so every segment prompt carries it, and in every
16
+ scene lighting state and frame. A 1920s 民国 drama, a 1970s 大院 drama and a 1990s 下岗 drama
17
+ share the film look and nothing else:
18
+
19
+ | era | light sources that exist | palette |
20
+ | --- | --- | --- |
21
+ | 民国 (1920s–40s) | sun, oil lamps, early bare bulbs, candles, neon on the treaty-port streets | sepia, ivory, tea brown, jade, black lacquer |
22
+ | 1960s–70s | sun, bare bulbs, kerosene lamps in the countryside, the one fluorescent tube in the office | faded army green, navy, grey, a slogan red |
23
+ | 1980s | sun, bare bulbs, fluorescent tubes, desk lamps, the first colour TVs, neon on new shopfronts | warm amber, mustard, brick red, teal, cream |
24
+ | 1990s | fluorescent tubes, shop neon, karaoke lights, CRT TVs, street lamps | cooler greens, bright signage colours over faded walls |
25
+
26
+ The validator refuses sources no older era had (LEDs, smartphones, laptops, flat screens, ring
27
+ lights). The finer calls — a fluorescent tube in a 民国 room, a colour TV in 1972 — are yours; the
28
+ review questions (§6) ask them.
29
+
30
+ ## 1. Light — the era's own sources — `light.source`, `light.direction`
31
+
32
+ Every cut names its source in `light.source`, carried verbatim in the frame with `nostalgic
33
+ period film look`.
34
+
35
+ - **Window sun is the signature.** Hard, warm shafts through a window, dust hanging in them, a
36
+ pool of light on the floor or the table. Afternoon is the nostalgic hour.
37
+ - **Bare bulbs at night**: one warm tungsten bulb hanging over the table, the room falling off
38
+ into brown shadow. A fluorescent tube is the colder, harsher office or factory version: let it
39
+ go slightly green.
40
+ - **The face is lit by an angle, not a flash.** Key from the window or the bulb at three-quarter
41
+ or from the side; at least **half** the cuts with people are `front-left` / `front-right` /
42
+ `side-*` / `back-left` / `back-right` (gated). `top` is allowed when the bare bulb really hangs
43
+ above them; it is not in the preferred half.
44
+ - **Never on a face**: `frontal` (reads as a modern flash snapshot) and `underlight` (horror).
45
+ - Shadows are warm brown, not black; contrast is gentle, like old print film.
46
+ - **Scene lighting states** contain `nostalgic period film look`, the decade and the sources:
47
+ > `nostalgic period film look, 1980s: warm late-afternoon sun slanting through the single window of the dormitory room, dust hanging in the shaft of light, a bare tungsten bulb unlit above the table, faded mint-green walls glowing where the sun lands, the corners falling into warm brown shadow. Empty room, no people.`
48
+
49
+ ## 2. Colour and texture — film, not filter
50
+
51
+ - **Grade**: warm amber highlights, faded lifted blacks, muted greens and brick reds, colours that
52
+ look sun-bleached. Say it in the frame: `faded warm film colour, soft grain, gentle halation`.
53
+ - **Film texture**: soft grain, halation around the window and the bulbs, slight softness at the
54
+ frame edges from the vintage lens. Put a lens and stock in `params.camera` if you want it named
55
+ (e.g. lens `Cooke Speed Panchro`), or in `params.lookPhrase` (`shot on 35mm film`).
56
+ - **Production design carries the era**, and this look is built to show it. Make the period
57
+ objects the scenes' **anchors** (so they appear in every generation) and the **foregrounds**:
58
+ the enamel mug with a red slogan, the thermos, the transistor radio, the wall calendar, the
59
+ bicycle, the lace doily on the TV, the coal stove, the cassette player, the lottery posters.
60
+ - Wardrobe in the character bibles is of the era: knitted vests, army-green jackets, floral
61
+ shirts, wide trousers, perms and parted hair. Faded and worn, not costume-new.
62
+
63
+ ## 3. Composition — steady, framed, lived-in
64
+
65
+ - **Let the frame sit.** More `Static Shot` and slow `Push In` than any other preset. The shot
66
+ holds, and life moves inside it.
67
+ - **Frame within a frame**: doorways of the 筒子楼 corridor, the courtyard gate of the 胡同, the
68
+ window of the bus, the hatch of the ticket office. It looks through time.
69
+ - **Medium-wide more than close-up.** The room is part of the character. Keep people in their
70
+ space with room around them; save the close-up for the emotional peak.
71
+ - **Foregrounds are period objects**, thrown out of focus: the mug, a bead curtain, laundry on the
72
+ line, a bicycle wheel, the net curtain. At least half the cuts have one (gated).
73
+ - **Tableau shots** for families and groups: people arranged around the table or the courtyard
74
+ like an old photograph, the camera at eye height, level and still.
75
+
76
+ ## 4. Lens — vintage, not necessarily wide open
77
+
78
+ This preset allows **T4** (the others stop at T2.8): the period detail is the point, and the
79
+ room should often read in focus.
80
+
81
+ | shot | focal | stop |
82
+ | --- | --- | --- |
83
+ | the room / courtyard / street tableau | 25–35mm | T2.8–T4 |
84
+ | people in their space, medium | 40–50mm | T2–T2.8 |
85
+ | the emotional close-up | 75mm | T2 |
86
+ | period-object insert | 100mm macro | T2.8 |
87
+
88
+ ## 5. Camera, motion and sound
89
+
90
+ - Gentle camera: `Static Shot`, slow `Push In`, a slow `Truck Left` / `Truck Right` along a corridor or a street, a
91
+ `Tracking Shot` alongside a bicycle. No shake.
92
+ - **Motion that breathes the era**: dust in the sunbeam, a ceiling fan turning, the curtain
93
+ lifting, steam from a teacup, the bicycle bell, the TV picture rolling.
94
+ - **Sound is half the nostalgia**: the radio, cicadas in the courtyard, the bicycle bell, the
95
+ street hawker, the train in the distance, a period song on the cassette player. Put the diegetic
96
+ music in `sound.sfx` or as the segment's `music` intent.
97
+ - **Transitions by memory**: a match cut from an object in the present to the same object then,
98
+ or a slow push into a photograph that becomes the scene.
99
+
100
+ ## 6. Review questions
101
+
102
+ - Which year is it? Would every object and light source in this frame exist that year?
103
+ - Can you point at the window or the bulb that lights the face?
104
+ - Is there a period object in the foreground or the anchors that tells you the era at a glance?
105
+ - Does the picture feel like film (grain, warm faded colour), not like a filter?
106
+ - Does the frame hold long enough for the room to be seen?
@@ -0,0 +1,63 @@
1
+ # Cinematography preset `scifi-hard` — 硬科幻
2
+
3
+ The look: **the future as engineering.** Technology is functional, heavy and worn; every light has
4
+ a physical source (an instrument panel, a work lamp, a screen, an LED strip, the sun through a
5
+ viewport); in space, one harsh sun and black shadows. The palette is cold and neutral (white,
6
+ grey, gunmetal) with amber and red warning lights. The camera is sober, almost documentary, and
7
+ scale is real: a person is small next to a machine because the machine is big, not because it
8
+ glows. The mechanics shared by every preset are in `cinematography.md`.
9
+
10
+ ## 1. Light — only what is built or natural — `light.source`, `light.direction`
11
+
12
+ Every cut names its source, carried verbatim in the frame with `grounded hard science fiction
13
+ lighting`. **No magic, floating holograms, force fields or energy glows** (gated: those sources are
14
+ refused). A display is a physical screen; a HUD is a reflection in a visor.
15
+
16
+ | place | the source | what it gives |
17
+ | --- | --- | --- |
18
+ | ship corridor, lab | overhead panel strips, work lamps | hard top and side light, pools on the deck, dark between the panels |
19
+ | cockpit, control room | instrument panels, screens | cool light from below and the side on the faces, reflections in glass |
20
+ | spacewalk, surface | one harsh sun, the planet's glow | razor-edged shadows, black sky, a rim of earthlight |
21
+ | emergency | red and amber warning beacons | rotating hard colour, the face in and out of light |
22
+ | habitat | practical lamps, a window to the planet | warmer pools in a cold structure |
23
+
24
+ - The face is keyed **hard, from one side or from above** (`side-*`, `back-*`, `top`: at least half
25
+ the cuts with people, gated). **Never** `frontal` or `ambient` on a person: space has no soft
26
+ world light.
27
+ - Shadows are deep and hard-edged; contrast is high; fill comes only from bounce off a hull or a
28
+ panel.
29
+ - **Scene lighting states** contain `grounded hard science fiction lighting` and the sources:
30
+ > `grounded hard science fiction lighting: white overhead panel strips every two metres along the ship corridor, the deck between them in shadow, amber status lights glowing at each hatch, frost on the viewport at the far end. Empty corridor, no people.`
31
+
32
+ ## 2. Design, colour and texture
33
+
34
+ - **Palette**: white, grey, gunmetal, bone, with amber and red for warnings and a single accent per
35
+ faction or ship. Low saturation; the colour comes from the warning lights.
36
+ - **Design is functional**: cables, labels, stencilled numbers, scuffed paint, tape repairs,
37
+ checklists. Make these the scene anchors and the foregrounds.
38
+ - **Wardrobe**: flight suits, pressure suits, work overalls with patches; helmets with visor
39
+ reflections.
40
+ - **Physics as drama**: silence in vacuum (only the suit's breathing and radio), floating objects in
41
+ zero-g, condensation of breath in a cold hull, the slow drift of debris.
42
+
43
+ ## 3. Composition and camera
44
+
45
+ - **Scale by comparison**: a figure beside a machine, a ship against a planet, a suit on a
46
+ hull. Wides and extreme wides establish it.
47
+ - **Symmetry of engineered spaces**: corridors, airlocks and control rooms are built symmetric;
48
+ use them (`composition: art-first` pairs well).
49
+ - **Camera**: steady, observational: `Static Shot`, slow `Push In`, `Truck Left` / `Truck Right`
50
+ along a corridor. Weightless float for zero-g (a slow drifting `Arc Shot`).
51
+ - **Lens**: 25–35mm for spaces, 50–85mm for faces behind visors, T2–T2.8.
52
+
53
+ ## 4. Sound
54
+
55
+ Hums, fans, relays, alarms, radio chatter with squelch, breathing in a helmet, silence outside.
56
+ Music sparse: a low drone, a single piano line.
57
+
58
+ ## 5. Review questions
59
+
60
+ - Could this be built? Is every light a panel, a lamp, a screen or the sun?
61
+ - Is there any floating hologram, glow or magic in the frame?
62
+ - Is the scale shown by comparison with something human?
63
+ - Is the palette cold and neutral, with colour only from warnings?
@@ -0,0 +1,66 @@
1
+ # Cinematography preset `scifi-soft` — 软科幻 · 赛博朋克 · 未来都市
2
+
3
+ The look: **the future as feeling.** Holograms float over streets, neon and glowing interfaces
4
+ colour every face, the air is thick with haze that catches beams of light, and rain turns the
5
+ ground into a mirror. Technology is imaginative, sleek and unexplained; the story is about the
6
+ people inside it. Two poles: **neon dystopia** (cyan and magenta, rain, crowds, 赛博朋克) and
7
+ **luminous utopia** (white, glass, soft gradients, gardens in towers). The mechanics shared by
8
+ every preset are in `cinematography.md`.
9
+
10
+ ## 1. Light — colour you can see — `light.source`, `light.direction`
11
+
12
+ Every cut names its glowing source, carried verbatim in the frame with `luminous soft science
13
+ fiction lighting`.
14
+
15
+ | place | the source | what it gives |
16
+ | --- | --- | --- |
17
+ | night street | neon signs, holographic billboards, shop screens | dual-tone colour on the face (cyan one side, magenta the other), reflections in the wet ground |
18
+ | apartment | a window of city light, a hologram companion, a glowing interface | colour through haze, the face lit by the interface from below and the side |
19
+ | club, market | strobes, colour washes, light strips | saturated pools and beams through smoke |
20
+ | utopia | glass ceilings, light panels, bioluminescent plants | soft gradients, white and pastel, glowing edges |
21
+ | energy tech | an energy core, a weapon charging, a portal | a moving coloured key, bloom and flare |
22
+
23
+ - **Dual-tone light is the signature**: two coloured sources, one on each side of the face. Key
24
+ from the side or behind (`side-*`, `back-*`, `backlight`: at least half the cuts with people,
25
+ gated); **never** `frontal` or `ambient` (the colour flattens).
26
+ - **Haze in every frame** so the beams show; rain or wet ground for reflections.
27
+ - **Scene lighting states** contain `luminous soft science fiction lighting` and the sources:
28
+ > `luminous soft science fiction lighting: magenta and cyan neon signs stacked up the walls of the narrow street, a holographic koi drifting above the crossing, haze catching the beams, the wet ground reflecting every colour. Empty street, no people.`
29
+
30
+ ## 2. Colour and design
31
+
32
+ - **Neon dystopia**: cyan, magenta, violet, acid green against black; grime, crowds, cables,
33
+ vending machines, noodle stalls under holograms.
34
+ - **Luminous utopia**: white, glass, pale blue and gold, soft gradients, plants and water in
35
+ architecture.
36
+ - **Design is imaginative**: floating screens, transparent phones, drones, robots with faces,
37
+ light-lined clothing. Pick 3–5 signature devices per world and make them anchors so they recur.
38
+ - **Wardrobe**: layered street wear with light strips, clear raincoats, sleek utopian uniforms.
39
+
40
+ ## 3. Composition and camera
41
+
42
+ - **The city is a character**: extreme wides of the skyline and the street canyon; the person
43
+ small under the billboards. Vertical 9:16 suits towers and stacked signs.
44
+ - **Reflections and layers**: shoot through wet glass, holograms and screens in the foreground
45
+ (soft, glowing).
46
+ - **Camera**: gliding: slow `Tracking Shot` through the crowd, `Pedestal Up` up a tower, `Arc Shot`
47
+ around a hologram; drones as camera positions.
48
+ - **Lens**: 35–85mm, T1.5–T2, so the neon turns into large coloured bokeh.
49
+
50
+ ## 4. With other axes
51
+
52
+ - `action: bullet-time` or `superhero` for 未来动作; `grammar: faceslap` for a 逆袭 in a
53
+ corporate tower; `comedy: romcom` for a robot romance; `composition: art-first` for a
54
+ contemplative future.
55
+
56
+ ## 5. Sound
57
+
58
+ Rain, crowds in many languages, synth hums, holographic chimes, drones passing. Music: synthwave,
59
+ ambient pads.
60
+
61
+ ## 6. Review questions
62
+
63
+ - Are there two colours on the face?
64
+ - Is there haze for the beams and a wet surface for the reflections?
65
+ - Are the world's signature devices in the frame?
66
+ - Is the city felt — a wide that shows how big it is?
@@ -0,0 +1,175 @@
1
+ # Cinematography preset `sweet-romance` — 甜宠 · 韩风唯美 · 浪漫
2
+
3
+ The look: **bright, soft, flattering light on the faces with a warm halo behind the hair; a
4
+ pastel, low-contrast picture with creamy highlights and a dreamy glow; two people framed so that
5
+ the space between them tells the story; shot wide open into creamy bokeh.** It is the modern
6
+ idol-romance look: the screen should feel like a warm afternoon even when the scene is sad.
7
+
8
+ The mechanics shared by every preset (the fields, the gates, where the phrases land, the
9
+ character-sheet exception) are in `cinematography.md`.
10
+
11
+ ## 1. Light — soft sources, a lit face, a halo — `light.source`, `light.direction`
12
+
13
+ Every cut names a **soft, motivated source** in `light.source`, carried verbatim in the frame
14
+ along with `soft romantic lighting`. Big and soft beats small and hard:
15
+
16
+ | time / place | the source | what it gives |
17
+ | --- | --- | --- |
18
+ | day interior | a big window, sheer curtains | soft wrap on the face, bright background that blooms |
19
+ | golden hour (the signature) | the low sun behind the couple | warm rim and halo in the hair, lens flare, glowing air |
20
+ | overcast / snow day | the whole sky, snow bounce | even, luminous, clean skin, cool-white with warm accents |
21
+ | blue hour, rooftop or riverside | the sky + warm string lights / street lamps | cool background, warm faces, bokeh balls |
22
+ | night interior (café, apartment) | warm lamps, fairy lights, candles on the table | a warm pool around the couple, the room a soft glow |
23
+ | rainy night | shop windows and signs through wet glass | coloured bokeh, a warm key from the umbrella side |
24
+
25
+ - **The face is lit and pretty.** Key the face soft from the front three-quarter (`front-left` /
26
+ `front-right`, 前侧柔光), or put the source behind and let the bounce fill the face (`back-*` /
27
+ `backlight`, 逆光). At least **half** the cuts with people use one of these (gated).
28
+ - **Always look for the halo.** The source behind the person, lighting the edges of the hair and
29
+ shoulders, is the single strongest romance cue. Stage people with the window or the sun behind
30
+ them, and write it in `light.note` ("the low sun behind her turns the loose strands of her hair
31
+ gold; her face is lit softly by the bounce off the white table").
32
+ - **Shadows are soft and open, never black.** Lift the shadow side ("the shadow side of his face
33
+ stays soft and open"). A half-lit, half-black face is the thriller look.
34
+ - **Never on a face**: `underlight` (底光) and `top` (顶光). Both carve eye sockets and chins
35
+ (gated). `side-*` (侧光) is allowed but not in the preferred half: a hard split reads as moody.
36
+ Use it for a sad beat, not a sweet one.
37
+ - **Scene lighting states** (stage 3) contain `soft romantic lighting`, name the sources, and
38
+ describe the glow:
39
+ > `soft romantic lighting: warm late-afternoon sun pouring through the tall café windows behind the counter, sheer curtains diffusing it into a soft glow, warm pendant bulbs lit above the tables, the room bright and airy with gentle open shadows, dust motes floating in the sunbeams. Empty scene, no people.`
40
+
41
+ ## 2. Colour — pastel, warm, low contrast
42
+
43
+ Colour is written into the scene lighting states and the frames, because the video model grades
44
+ from what it is told.
45
+
46
+ - **Palette**: cream, peach, blush pink, butter yellow, sky blue, mint, soft lavender. Warm whites,
47
+ never clinical.
48
+ - **Grade**: low contrast, lifted blacks, creamy (not clipped) highlights, warm-peach skin, a
49
+ slight glow around bright edges (halation). Say it in the frame: `pastel palette, creamy
50
+ highlights, lifted soft shadows, gentle glow`.
51
+ - **The couple is colour-coordinated.** Give the two leads complementary wardrobe palettes in the
52
+ character bibles (her blush and cream, his camel and soft blue), so every two-shot is
53
+ harmonious. The pair's palettes converge in the episodes where they become a couple.
54
+ - **One colour per scene** in the scene bible: the café is cream and wood, the rooftop is blue
55
+ hour with warm bulbs, the park is cherry-blossom pink, the snow scene is white-blue with warm
56
+ lamps. A scene should be recognisable from its colour alone.
57
+ - Seasons and weather are romance tools: falling petals, first snow, light rain under one
58
+ umbrella, autumn leaves, sunbeams with dust. Put them in the scene anchors, so they appear
59
+ in every generation, and in `motion` when they move.
60
+
61
+ ## 3. Composition — the distance between two people
62
+
63
+ **The space between the two leads is the story.** Use it deliberately across the drama:
64
+
65
+ | stage of the relationship | how the two-shot is built |
66
+ | --- | --- |
67
+ | strangers / enemies | far apart in the frame, often separated by something: a door frame, a pillar, a glass wall, a table |
68
+ | noticing (心动 starts) | still apart, but they share the frame, and their eyelines meet across the empty space |
69
+ | closer (暧昧) | the gap narrows, over-the-shoulder singles with the other's shoulder soft in the foreground |
70
+ | together | they share one side of the frame; the negative space is now the world around them, not between them |
71
+
72
+ - **Negative space is air, not darkness.** In this look the empty part of the frame is bright:
73
+ sky, a sunlit window, a blossom-filled park. A small couple low in a 9:16 frame under a big sky
74
+ reads as 浪漫, not lonely.
75
+ - **The 心动 close-up is centred and clean.** It is the one shot where symmetry and a centred
76
+ face are right: the audience falls for the face with the character.
77
+ - **Over-the-shoulder is the dialogue workhorse.** The other person's shoulder or hair is the soft
78
+ foreground, which keeps both people in every line.
79
+ - **Foregrounds are pretty things, thrown out of focus**: flowers on the café table, fairy
80
+ lights, falling petals or snow near the lens, rain on the glass, a curtain edge, the rim of a
81
+ cup. At least half the cuts have one (gated). Aim for most.
82
+ - **Frame within a frame**: a window, a doorway, the space under an umbrella. It gives the couple
83
+ a small private world.
84
+ - **Inserts are romance beats**: fingers almost touching, a hand on a sleeve, the shared
85
+ umbrella handle, two cups side by side. A 2-second `extreme-close` on hands does more than a
86
+ line of dialogue.
87
+
88
+ ## 4. Lens — long, fully open, the dreamiest bokeh
89
+
90
+ `init` gives this preset a faster package: `Zeiss Master Prime` at **T1.3** (the body stays the
91
+ default). Nothing is slower than **T2** (gated), so even the wides stay soft behind the couple.
92
+
93
+ | shot | focal | stop | why |
94
+ | --- | --- | --- | --- |
95
+ | the 心动 close-up / eye-lock | 85mm (or 100mm) | T1.3 | the face alone, the background dissolved into huge soft discs |
96
+ | over-the-shoulder singles | 75–85mm | T1.3 | the near shoulder melts, the face stays crisp |
97
+ | two-shot, medium | 50mm | T1.3–T1.5 | both faces sharp, the room turns to glow |
98
+ | couple in the place (wide) | 35mm | T2 | the season and the setting read, the lights behind still bloom |
99
+ | hands / object insert | 100mm macro | T1.5–T2 | one sliver of focus |
100
+
101
+ ### The dreamiest bokeh (最梦幻的散景)
102
+
103
+ A fast stop alone does not make dreamy bokeh; the frame has to give the lens **points of light to
104
+ dissolve**. At least **half** the frames of a segment say what melts into bokeh (gated: the word
105
+ `bokeh` in the frame). To get the biggest, creamiest discs:
106
+
107
+ - **Put lights behind the subject, far away**: string lights, lanterns, candles, city lights,
108
+ car tail lights in the rain, sun glinting through leaves, sparkles on water, Christmas trees.
109
+ The farther they are behind the person, the bigger the discs.
110
+ - **Go long and close**: 85mm or 100mm, the subject near the lens. Long focal + close subject +
111
+ far background is what turns each light into a large soft circle.
112
+ - **Bokeh in front too**: fairy lights, flowers, petals or snow right in front of the lens,
113
+ becoming soft glowing shapes across the edge of the frame.
114
+ - **Name it in the frame**, with its colour: `the warm string lights behind her melting into
115
+ oversized creamy golden bokeh`, `snowflakes near the lens drifting as soft white bokeh`.
116
+ - Put a diffusion filter in `params.lookPhrase` for extra glow (`soft black pro-mist diffusion,
117
+ gentle halation`). Every segment prompt then carries it.
118
+
119
+ ## 5. Camera and motion — slow, floating, lingering
120
+
121
+ The camera is gentle: slow `Push In` on a realisation, a slow `Arc Shot` circling the couple at a
122
+ confession or a kiss, a floating `Tracking Shot` walking beside them, `Static Shot` for the
123
+ lingering look. No `Shake`, no fast moves. `cameraNote.motivation` is usually `relationship` or
124
+ `stillness`.
125
+
126
+ - **Slow motion on the 心动 beat.** Write it in the cut's `motion` and `cameraNote`
127
+ ("in slow motion, her hair lifts in the breeze as she turns"). The video model understands
128
+ `slow motion`; one or two slow-motion cuts per episode, on the beats that matter.
129
+ - **Ambient motion makes it breathe**: hair and scarves in a breeze, petals or snow drifting,
130
+ curtains moving, steam from the cups, bokeh lights twinkling. Put it in `cameraNote.hold` on a
131
+ lock-off, so the frame is never dead still.
132
+ - **Hold the look.** Romance lives in the extra second: let the eye-lock cut run to the upper end
133
+ of `maxCutSeconds`.
134
+
135
+ ## 6. The 甜宠 set pieces — how to shoot them
136
+
137
+ The genre's recurring moments (撒糖 beats) are where this look pays off. Each is a short sequence
138
+ of cuts. Mark them as `turn` beats; when one is the episode's 爽点, its scene gets the seeded
139
+ `visualPlan` — fill it with the sequence below.
140
+
141
+ | moment | the cuts | light and camera | sound |
142
+ | --- | --- | --- | --- |
143
+ | 心动对视 (the eye-lock) | her CU → his CU → back to her, tighter | 85mm T1.5, halo behind each, slow `Push In`, slow motion on the last cut | music `enter` on the last cut |
144
+ | 回眸 (the look back) | wide of her walking away → MS as she turns → CU of her smile | backlight from the sun ahead of her, hair in the wind, slow motion on the turn | music `swell` |
145
+ | 意外靠近 (falls into arms / too close) | MS stumble → two-shot, faces inches apart → alternating ECUs of eyes | soft front key on both faces, `Static Shot`, hold longer than feels safe | music `silence`, a heartbeat sfx if wanted |
146
+ | 共伞 (one umbrella in the rain) | wide of rain and warm shop lights → MS two-shot under the umbrella → insert of the hand on the handle | warm shop windows as key, rain lit from behind as bokeh | rain on the umbrella (sfx), music `enter` |
147
+ | 披外套 / 围巾 (the coat or scarf) | MS as he drapes it → CU of her reaction → insert of hands on the collar | soft window or street lamp, 3/4 front key | music continues |
148
+ | 摸头杀 (hand on her head) | OTS from behind her → CU of her face as the hand lands → his smile | halo behind him, soft front on her | music `silence` as the hand lands |
149
+ | 壁咚 / 近距离对峙 | low two-shot against the wall → CU her → CU him | soft front three-quarter key, never top light, background soft | music `drop` |
150
+ | 公主抱 (the carry) | wide as he lifts her → MS walking toward camera → CU her looking up at him | backlight from the corridor or the sun, slow `Tracking Shot` backwards | music `swell` |
151
+ | 告白 / 初吻 (the confession) | two-shot apart → the gap closes → slow `Arc Shot` around them | golden hour or string lights, flare, slow motion | music `silence` on the line, `swell` as the gap closes |
152
+
153
+ Sound is part of the look. The OST is the segment's `sound.music` with cues (`enter`, `swell`,
154
+ `duck`, `drop`, `silence`, `out`) placed on the cut: it comes in or swells on the 心动 cut, and
155
+ goes to `silence` just before a confession so the line lands in a hush.
156
+
157
+ ## 7. Cast, wardrobe and sets (for the bibles)
158
+
159
+ - **Character bibles**: clean, styled, soft-textured wardrobe (knitwear, trench coats, shirts,
160
+ pastel dresses), neat hair with some movement, the pair's coordinated palettes. Styling is part
161
+ of the fantasy. With `style: photoreal` the negative-prompt rules in stage-characters still
162
+ apply; flattering comes from the light, not from banned skin words.
163
+ - **Scenes that suit the genre**: a sunlit café, a rooftop at blue hour, a riverside walk at
164
+ night, a convenience store at night (warm, not grim), a library by the window, a park in
165
+ blossom or snow, a bus stop in the rain, the male lead's clean minimal apartment. Give each one
166
+ a colour (§2) and a soft source (§1) in its lighting states.
167
+
168
+ ## 8. Review questions
169
+
170
+ - Is the face lit, soft and pretty in every cut with a person? Is there a halo in the hair?
171
+ - Could you name the source (window, sun, string lights)? Is it big and soft?
172
+ - What colour is this scene? Would you recognise it from a thumbnail?
173
+ - Where are the two people in the frame, and is that distance the right one for this episode?
174
+ - Is there something pretty and blurred in front of the lens?
175
+ - On the 心动 beat: does the camera slow down, does the music come in, does the cut linger?
@@ -0,0 +1,83 @@
1
+ # Cinematography — choosing and applying a look (`params.cinematography`)
2
+
3
+ A cinematography preset is the drama's **lighting and composition**. It sits on top of the render
4
+ style (`params.style`: photoreal, painterly, anime…) and the camera package (`params.camera`), and
5
+ the gates hold every scene lighting state, every cut and every video prompt to it. One preset
6
+ covers the whole drama, the same way one style does.
7
+
8
+ | preset | for | the look in one line | guide |
9
+ | --- | --- | --- | --- |
10
+ | `low-key` | 悬疑 · 犯罪 · 惊悚 · 复仇 · 都市暗黑 | the scene's own practicals, people in shadow, side / back / rim light, negative space | `cinematography-low-key.md` |
11
+ | `sweet-romance` | 甜宠 · 恋爱 · 韩风唯美 · 偶像剧 · 浪漫 | bright soft light on the face, a warm halo in the hair, pastel air, the distance between two people as the story | `cinematography-sweet-romance.md` |
12
+ | `period-nostalgia` | 年代 · 怀旧 · 民国 · 七八九十年代 | a memory shot on film: warm faded grade, grain, window sun and bare bulbs, steady frames full of period detail | `cinematography-period-nostalgia.md` |
13
+ | `costume-idol` | 古装偶像 · 古偶 · 仙侠 · 古装甜宠 | a luminous painted world: faces glowing through gauze, backlit silk, mist and petals, jade and moon-white | `cinematography-costume-idol.md` |
14
+ | `costume-dark` | 古装写实 · 权谋 · 武侠 · 宫斗 · 复仇 | history lit by fire: candles, torches and lattice windows, faces carved from shadow, smoke, earthy texture | `cinematography-costume-dark.md` |
15
+ | `scifi-hard` | 硬科幻 · 太空 · 工程写实 | the future as engineering: instrument panels, work lamps and one harsh sun, cold neutral palette, no magic or floating holograms | `cinematography-scifi-hard.md` |
16
+ | `scifi-soft` | 软科幻 · 赛博朋克 · 未来都市 · 科幻 | the future as feeling: holograms and neon, dual-tone colour light, haze and reflections | `cinematography-scifi-soft.md` |
17
+ | `none` | projects created before the presets, or a look the user describes that fits neither | only the base `photography` rules | — |
18
+
19
+ **Choosing.** `init` picks from `--genre` (`cinematographyForGenre`), costume and period first:
20
+
21
+ 1. 古装 / 古偶 / 仙侠 / 宫廷 / 武侠 / 权谋… → `costume-idol` when the genre also says 古偶, 仙侠,
22
+ 玄幻 or romance; `costume-dark` when it says 暗黑, 写实, 权谋, 武侠, 江湖, 宫斗, 悬疑, 复仇 or
23
+ 历史; a bare `古装` gets `costume-idol` — **confirm that one with the user**, the two looks are
24
+ opposites.
25
+ 2. 硬科幻 → `scifi-hard`; 软科幻 / 科幻 / 未来 / 赛博朋克 / 星际 → `scifi-soft` (a bare 科幻 gets
26
+ `scifi-soft` — confirm it with the user).
27
+ 3. 年代 / 怀旧 / 复古 / 民国 / 八十年代… → `period-nostalgia`.
28
+ 4. 甜宠 / 恋爱 / 爱情 / 浪漫 / 韩风 / 偶像 / romance → `sweet-romance`.
29
+ 5. Anything else → `low-key`.
30
+
31
+ Composition is a separate axis: `params.composition: art-first` (艺术优先) frames any of these
32
+ looks for negative space, symmetry and monumental scale — see `composition-art-first.md`.
33
+
34
+ `--cinematography` overrides it. When the genre mixes two (a 甜宠 with a revenge plot, a 年代 drama
35
+ that is really a thriller), ask the user which way the *picture* should lean; the story can still
36
+ be dark in a bright look. Write the choice into
37
+ `outline.guideline.visualStyle` too, so the 创作指引 and the pictures agree.
38
+
39
+ Read the preset's guide before writing the scene lighting states (stage 3) and before the first
40
+ storyboard (stage 5).
41
+
42
+ ## What every preset gates
43
+
44
+ | where | what must be there | gate |
45
+ | --- | --- | --- |
46
+ | `scenes[].lighting[].prompt` | the preset's `framePhrase`, plus the sources that light the space | `scene-design` |
47
+ | every `cut.frame` | the `framePhrase`, the direction phrase, `light.source` verbatim, the camera phrase, the foreground | `photography` |
48
+ | every `cut.light` | `direction` (never one of the preset's `bannedLight` on a person), `source`, `note` | `photography` |
49
+ | each segment | at least `preferredShare` of the cuts with people keyed from `preferredLight`; at least half with a foreground | `photography` |
50
+ | every `cut.aperture` / `params.camera.aperture` | `maxStop` or faster | `photography` |
51
+ | video prompt, `sheets` mode | the Look line carries the preset's `videoPhrase` (for `wan`: a `画面:` line with `videoPhraseZh`). `prompt segment` writes it for you | `video-prompt` |
52
+
53
+ | preset | `framePhrase` | `bannedLight` on a person | `preferredLight` (≥ 50 % of cuts with people) | `init` package | `maxStop` | also gated | refused sources |
54
+ | --- | --- | --- | --- | --- | --- | --- | --- |
55
+ | `low-key` | `low-key practical lighting` | `frontal`, `ambient` | `side-*`, `back-*`, `backlight` | default (T1.5) | T2.8 | — | — |
56
+ | `sweet-romance` | `soft romantic lighting` | `underlight`, `top` | `front-left`, `front-right`, `back-*`, `backlight` | Master Prime **T1.3** | **T2** | ≥ 50 % of frames name their `bokeh` | — |
57
+ | `period-nostalgia` | `nostalgic period film look` | `frontal`, `underlight` | `front-left`, `front-right`, `side-*`, `back-left`, `back-right` | default (T1.5) | **T4** | — | LEDs, smartphones, laptops, tablets, flat screens, ring lights |
58
+ | `costume-idol` | `ethereal costume drama lighting` | `underlight`, `top` | `front-left`, `front-right`, `back-*`, `backlight` | Master Prime **T1.3** | **T2** | ≥ 50 % `bokeh`; every segment has a `wide` / `extreme-wide` whose frame says `negative space` | anything electric |
59
+ | `costume-dark` | `low-key firelit period lighting` | `frontal`, `ambient` | `side-*`, `back-*`, `backlight` | default (T1.5) | T2.8 | every segment has a `wide` / `extreme-wide` whose frame says `negative space` | anything electric |
60
+ | `scifi-hard` | `grounded hard science fiction lighting` | `frontal`, `ambient` | `side-*`, `back-left`, `back-right`, `top` | default (T1.5) | T2.8 | — | magic, holograms, force fields, energy glows |
61
+ | `scifi-soft` | `luminous soft science fiction lighting` | `frontal`, `ambient` | `side-*`, `back-*`, `backlight` | default (T1.5) | T2.8 | — | — |
62
+
63
+ "Refused sources" is checked against `light.source` only: a frame may still say what is *not*
64
+ there.
65
+
66
+ In `keyframes` mode each keyframe is generated from its frame, so the frames carry the look and
67
+ the video prompt does not repeat it.
68
+
69
+ **The phrases never name a nationality.** "Korean drama" or 韩剧 in a look phrase pulls every
70
+ face toward that ethnicity, whatever the character sheets say. The look is described by its
71
+ light, colour and lens; the faces come from the sheets.
72
+
73
+ **Character sheets are the exception.** A sheet is an identity reference, not a shot. It keeps its
74
+ own lighting (a soft directional key in the portrait zone, flat and even in the turnaround zones;
75
+ see stage-characters), because a face the model cannot read on the sheet is a face it cannot
76
+ match. The preset is applied in the shot, not on the sheet.
77
+
78
+ ## Adding a preset
79
+
80
+ A new look is an entry in `CINEMATOGRAPHY_PRESETS` (`scripts/short-drama.mjs`) with the fields
81
+ above (plus, where the look needs them, `anachronisms`, `kit`, `bokehShare`, `widePerSegment`), a `cinematography-<key>.md` guide in the same shape as the two here (light, colour,
82
+ composition, lens, camera and motion, review questions), a row in the tables above, and selftest
83
+ cases. Add a genre pattern to `cinematographyForGenre` if `init` should pick it on its own.
@@ -0,0 +1,74 @@
1
+ # Composition `art-first` — 艺术优先
2
+
3
+ **Composition comes before coverage.** Every frame is built like a painting or a photograph:
4
+ vast negative space, rigorous symmetry, monumental scale with small figures in immense spaces,
5
+ strong geometry, a patient camera. It works in **any genre and any look**: an art-first 古装, an
6
+ art-first 硬科幻, an art-first 悬疑, an art-first 甜宠. Set it for the drama
7
+ (`params.composition: art-first`) or for one segment (`"composition": "art-first"`); a segment in
8
+ an art-first drama can step out with `"composition": "standard"` (a chaotic fight, a crowded
9
+ market).
10
+
11
+ ## 1. The devices — `cut.composition`
12
+
13
+ Every cut of an art-first segment names its devices (one or more). Each device's phrase is gated
14
+ verbatim in the frame:
15
+
16
+ | device | phrase in the frame | 中文 | use |
17
+ | --- | --- | --- | --- |
18
+ | `negative-space` | vast negative space | 大面积留白 | a small figure and a big empty field (sky, wall, snow, sea, darkness): loneliness, awe, waiting |
19
+ | `symmetry` | perfectly symmetrical composition | 严格对称构图 | the centred axis: power, ritual, order, something too perfect |
20
+ | `grand-scale` | monumental scale with small figures in an immense space | 宏大壮观的空间中人物渺小 | the world bigger than the people: a palace, a ship, a canyon, a city |
21
+ | `frame-in-frame` | framed within a frame | 框中框构图 | doors, windows, arches, mirrors: a character trapped or watched |
22
+ | `leading-lines` | strong leading lines | 强烈的引导线 | corridors, rails, roads, beams converging on the subject |
23
+ | `silhouette` | a stark silhouette against the light | 逆光中的鲜明剪影 | the shape of a person or an act, not the face |
24
+ | `layered-depth` | layered foreground, midground and background | 前中后景层次分明 | a world with depth |
25
+ | `color-block` | bold blocks of flat colour | 大块平涂色块 | graphic, painted frames |
26
+ | `top-down` | a graphic top-down view | 图形化的俯视构图 | patterns, bodies on a floor, a table from above |
27
+ | `thirds` | the subject placed on a third | 主体位于三分线 | the quiet default |
28
+
29
+ **Gated** (waivable per segment when the user asks):
30
+ - `composition-device` — every cut names at least one device, and its phrase is in the frame.
31
+ - `signature-share` — at least **half** the cuts of a segment use a signature device:
32
+ `negative-space`, `symmetry` or `grand-scale`.
33
+ - `art-wide` — every segment has at least one `wide` or `extreme-wide`.
34
+ - The prompt carries the `Composition:` line (`构图:` for `wan`); `prompt segment` writes it.
35
+
36
+ **Advisory** (`grammar-advice`): cuts average 3 s or more, so a composed frame can be seen (not in
37
+ fight or comedy segments); no handheld in an art-first segment unless it is a fight or a gag.
38
+
39
+ ## 2. How to build an art-first frame
40
+
41
+ - **Decide what the empty space means** before placing the person: the sky they will never
42
+ reach, the corridor they must walk, the wall between two people.
43
+ - **Place the figure small and exact**: on the axis for symmetry, on a third or at an edge for
44
+ negative space, low in a 9:16 frame under the sky or high above an empty floor.
45
+ - **Hold it.** The camera is `Static Shot`, or moves slowly and ends on a composed frame
46
+ (`cameraNote.endFraming` says the composition it lands on).
47
+ - **Let one element break the geometry**: the red umbrella in the grey square, the one figure
48
+ facing the other way. That is where the eye goes.
49
+ - **Colour with intent**: few colours, large areas. Pair with the look's palette.
50
+ - **Close-ups are composed too**: a face on a third with the empty side where it looks; a
51
+ symmetrical face straight to camera for a moment of truth.
52
+
53
+ Write it: `extreme wide shot, perfectly symmetrical composition down the snow-covered palace
54
+ axis, a lone figure in red kneeling at the centre, vast negative space of white on both sides`.
55
+
56
+ ## 3. With the other axes
57
+
58
+ | combination | how it plays |
59
+ | --- | --- |
60
+ | `costume-idol` / `costume-dark` | the palace axis, the court in rows, the lone figure in a snow field; the costume presets' wide-with-negative-space rule is already met |
61
+ | `scifi-hard` | engineered symmetry of corridors and airlocks, the ship dwarfed by a planet |
62
+ | `scifi-soft` | the tiny figure under a wall of holograms, the symmetrical neon street |
63
+ | `low-key` | silhouettes and one pool of light in darkness as negative space |
64
+ | `sweet-romance` | the couple small in a vast bright landscape, symmetry for the confession |
65
+ | `grammar: action` | the fight inside the geometry: wide locked-off frames, the moves readable, fewer cuts |
66
+ | `grammar: faceslap` | the hero centred on the axis, the room arranged symmetrically around the reversal |
67
+ | `grammar: comedy` | the `deadpan` style is already art-first; slapstick in symmetry is its own joke |
68
+
69
+ ## 4. Review questions
70
+
71
+ - What does the empty space mean in this frame?
72
+ - Is the figure placed exactly — on the axis, on a third, at the edge?
73
+ - Is there one element that breaks the geometry, and is it the one that matters?
74
+ - Would this frame hold up as a still photograph?
@@ -141,7 +141,9 @@ names: the frame is delivery text.
141
141
  Lighting: `light.direction` is relative to the camera; `light.note` describes what the light
142
142
  *does* on the face or the object ("the cabinet glow holds the right of his face; nothing moves
143
143
  but the light on his jaw") — the result reads more stably than the position alone, and it must
144
- say whether left / right is the screen's or the subject's.
144
+ say whether left / right is the screen's or the subject's. Under a `params.cinematography`
145
+ preset the key is a named source (`light.source`), and the preset decides which directions a
146
+ person may and should be keyed from. See `cinematography.md`.
145
147
 
146
148
  ## 7. Generability (gates `filmable`, `motion`; advice in `storyboard-advice`)
147
149
 
@@ -15,7 +15,7 @@ the focusing questions first, do not pad a synopsis around a blank.
15
15
 
16
16
  | 判断项 | 必须回答的问题 | 合格标准 | field |
17
17
  | --- | --- | --- | --- |
18
- | 题材定位 | 复仇、逆袭、甜宠、豪门、悬疑、古装、家庭伦理,还是混合? | 类型清晰,不能只写“爱情”或“都市” | `params.genre` |
18
+ | 题材定位 | 复仇、逆袭、甜宠、豪门、悬疑、古装、家庭伦理,还是混合? | 类型清晰,不能只写“爱情”或“都市” | `params.genre`, `params.story` (the genre rules: `story.md`) |
19
19
  | 受众定位 | 主要观众追求什么情绪补偿? | 能说出观众想看的爽感、痛点或幻想 | `audience` |
20
20
  | 一句话卖点 | 主角、困境、反击与最大看点,一句话 | 句子内同时有角色、冲突、反转或利益点 | `logline` |
21
21
  | 核心爽点 | 打脸、复仇、强宠、身份揭露、智商碾压还是情感释放? | 爽点可以反复变奏,不是一场戏就用完 | `satisfactionEngine` |
@@ -99,6 +99,9 @@ episodes.
99
99
 
100
100
  ## 6. Inside an episode — the formula (gate `rhythm`, stage 4)
101
101
 
102
+ The seconds below are the `short` format's. A `medium` episode hooks by 30 s and turns every
103
+ 60 s; a `movie` part turns every 90 s and only the first part needs the cold open — `format.md`.
104
+
102
105
  | 段落 | 目标 | 必须出现 | 检查问题 |
103
106
  | --- | --- | --- | --- |
104
107
  | 0–15 秒 | 立即留住观众 | 冲突、羞辱、危机、奇观、秘密、反转 | 观众不看上一集,是否仍会想继续看? |