mulmocast 2.6.4 → 2.6.6

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 (39) hide show
  1. package/lib/actions/graph_option.d.ts +3 -0
  2. package/lib/actions/graph_option.js +18 -0
  3. package/lib/actions/image_references.d.ts +1 -0
  4. package/lib/actions/image_references.js +50 -12
  5. package/lib/actions/images.d.ts +2 -3
  6. package/lib/actions/images.js +4 -17
  7. package/lib/actions/movie.d.ts +3 -0
  8. package/lib/actions/movie.js +38 -5
  9. package/lib/agents/add_bgm_agent.d.ts +10 -0
  10. package/lib/agents/add_bgm_agent.js +26 -4
  11. package/lib/agents/movie_genai_agent.js +1 -1
  12. package/lib/agents/movie_replicate_agent.js +29 -5
  13. package/lib/types/provider2agent.d.ts +2 -0
  14. package/lib/types/provider2agent.js +78 -5
  15. package/lib/types/schema.d.ts +166 -4
  16. package/lib/types/schema.js +11 -1
  17. package/lib/utils/context.d.ts +72 -2
  18. package/lib/utils/image_plugins/html_tailwind.d.ts +5 -0
  19. package/lib/utils/image_plugins/html_tailwind.js +56 -5
  20. package/package.json +13 -12
  21. package/scripts/test/fixtures/movie_tone_high.mov +0 -0
  22. package/scripts/test/fixtures/movie_tone_low.mov +0 -0
  23. package/scripts/test/fixtures/movie_tone_mid.mov +0 -0
  24. package/scripts/test/glb/sample_2026-03-15T172907.296_compat.glb +0 -0
  25. package/scripts/test/test_audio_mix.json +91 -0
  26. package/scripts/test/test_audio_mix_beat_vol.json +100 -0
  27. package/scripts/test/test_audio_mix_ducking.json +91 -0
  28. package/scripts/test/test_audio_mix_legacy.json +90 -0
  29. package/scripts/test/test_grok.json +57 -0
  30. package/scripts/test/test_image_prompt_reference.json +55 -0
  31. package/scripts/test/test_image_references.json +74 -0
  32. package/scripts/test/test_kling_v3.json +54 -0
  33. package/scripts/test/test_kling_v3_omni.json +54 -0
  34. package/scripts/test/test_lipsync2.json +48 -52
  35. package/scripts/test/test_lipsync5.json +66 -0
  36. package/scripts/test/test_runway.json +54 -0
  37. package/scripts/test/test_threejs.json +241 -0
  38. package/scripts/test/test_threejs_glb.json +154 -0
  39. package/scripts/test/test_veo31_lite.json +39 -0
@@ -0,0 +1,91 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "title": "Audio Mix Manual Test (fixtures)",
6
+ "lang": "en",
7
+ "canvasSize": {
8
+ "width": 320,
9
+ "height": 180
10
+ },
11
+ "speechParams": {
12
+ "speakers": {
13
+ "Presenter": {
14
+ "provider": "openai",
15
+ "voiceId": "shimmer"
16
+ }
17
+ }
18
+ },
19
+ "audioParams": {
20
+ "bgmVolume": 0,
21
+ "movieVolume": 0.3
22
+ },
23
+ "beats": [
24
+ {
25
+ "speaker": "Presenter",
26
+ "text": "Low tone with narration.",
27
+ "image": {
28
+ "type": "movie",
29
+ "source": {
30
+ "kind": "path",
31
+ "path": "fixtures/movie_tone_low.mov"
32
+ }
33
+ }
34
+ },
35
+ {
36
+ "speaker": "Presenter",
37
+ "duration": 3.0,
38
+ "image": {
39
+ "type": "movie",
40
+ "source": {
41
+ "kind": "path",
42
+ "path": "fixtures/movie_tone_low.mov"
43
+ }
44
+ }
45
+ },
46
+ {
47
+ "speaker": "Presenter",
48
+ "text": "Mid tone with narration.",
49
+ "image": {
50
+ "type": "movie",
51
+ "source": {
52
+ "kind": "path",
53
+ "path": "fixtures/movie_tone_mid.mov"
54
+ }
55
+ }
56
+ },
57
+ {
58
+ "speaker": "Presenter",
59
+ "duration": 3.0,
60
+ "image": {
61
+ "type": "movie",
62
+ "source": {
63
+ "kind": "path",
64
+ "path": "fixtures/movie_tone_mid.mov"
65
+ }
66
+ }
67
+ },
68
+ {
69
+ "speaker": "Presenter",
70
+ "text": "High tone with narration.",
71
+ "image": {
72
+ "type": "movie",
73
+ "source": {
74
+ "kind": "path",
75
+ "path": "fixtures/movie_tone_high.mov"
76
+ }
77
+ }
78
+ },
79
+ {
80
+ "speaker": "Presenter",
81
+ "duration": 3.0,
82
+ "image": {
83
+ "type": "movie",
84
+ "source": {
85
+ "kind": "path",
86
+ "path": "fixtures/movie_tone_high.mov"
87
+ }
88
+ }
89
+ }
90
+ ]
91
+ }
@@ -0,0 +1,100 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "title": "Audio Mix Beat Volume Test (fixtures)",
6
+ "lang": "en",
7
+ "canvasSize": {
8
+ "width": 320,
9
+ "height": 180
10
+ },
11
+ "speechParams": {
12
+ "speakers": {
13
+ "Presenter": {
14
+ "provider": "openai",
15
+ "voiceId": "shimmer"
16
+ }
17
+ }
18
+ },
19
+ "audioParams": {
20
+ "bgmVolume": 0,
21
+ "movieVolume": 0.5
22
+ },
23
+ "beats": [
24
+ {
25
+ "speaker": "Presenter",
26
+ "text": "Low tone, beat movieVolume 0.1.",
27
+ "audioParams": {
28
+ "movieVolume": 0.1
29
+ },
30
+ "image": {
31
+ "type": "movie",
32
+ "source": {
33
+ "kind": "path",
34
+ "path": "fixtures/movie_tone_low.mov"
35
+ }
36
+ }
37
+ },
38
+ {
39
+ "speaker": "Presenter",
40
+ "text": "Low tone, script default 0.5.",
41
+ "image": {
42
+ "type": "movie",
43
+ "source": {
44
+ "kind": "path",
45
+ "path": "fixtures/movie_tone_low.mov"
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "speaker": "Presenter",
51
+ "text": "Mid tone, beat movieVolume 1.0.",
52
+ "audioParams": {
53
+ "movieVolume": 1.0
54
+ },
55
+ "image": {
56
+ "type": "movie",
57
+ "source": {
58
+ "kind": "path",
59
+ "path": "fixtures/movie_tone_mid.mov"
60
+ }
61
+ }
62
+ },
63
+ {
64
+ "speaker": "Presenter",
65
+ "text": "Mid tone, script default 0.5.",
66
+ "image": {
67
+ "type": "movie",
68
+ "source": {
69
+ "kind": "path",
70
+ "path": "fixtures/movie_tone_mid.mov"
71
+ }
72
+ }
73
+ },
74
+ {
75
+ "speaker": "Presenter",
76
+ "text": "High tone, beat movieVolume 0.0, should be silent.",
77
+ "audioParams": {
78
+ "movieVolume": 0.0
79
+ },
80
+ "image": {
81
+ "type": "movie",
82
+ "source": {
83
+ "kind": "path",
84
+ "path": "fixtures/movie_tone_high.mov"
85
+ }
86
+ }
87
+ },
88
+ {
89
+ "speaker": "Presenter",
90
+ "text": "High tone, script default 0.5.",
91
+ "image": {
92
+ "type": "movie",
93
+ "source": {
94
+ "kind": "path",
95
+ "path": "fixtures/movie_tone_high.mov"
96
+ }
97
+ }
98
+ }
99
+ ]
100
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "title": "Audio Mix Ducking Test (fixtures)",
6
+ "lang": "en",
7
+ "canvasSize": {
8
+ "width": 320,
9
+ "height": 180
10
+ },
11
+ "speechParams": {
12
+ "speakers": {
13
+ "Presenter": {
14
+ "provider": "openai",
15
+ "voiceId": "shimmer"
16
+ }
17
+ }
18
+ },
19
+ "audioParams": {
20
+ "bgmVolume": 0,
21
+ "ducking": { "ratio": 0.3 }
22
+ },
23
+ "beats": [
24
+ {
25
+ "speaker": "Presenter",
26
+ "text": "Low tone with narration.",
27
+ "image": {
28
+ "type": "movie",
29
+ "source": {
30
+ "kind": "path",
31
+ "path": "fixtures/movie_tone_low.mov"
32
+ }
33
+ }
34
+ },
35
+ {
36
+ "speaker": "Presenter",
37
+ "duration": 3.0,
38
+ "image": {
39
+ "type": "movie",
40
+ "source": {
41
+ "kind": "path",
42
+ "path": "fixtures/movie_tone_low.mov"
43
+ }
44
+ }
45
+ },
46
+ {
47
+ "speaker": "Presenter",
48
+ "text": "Mid tone with narration.",
49
+ "image": {
50
+ "type": "movie",
51
+ "source": {
52
+ "kind": "path",
53
+ "path": "fixtures/movie_tone_mid.mov"
54
+ }
55
+ }
56
+ },
57
+ {
58
+ "speaker": "Presenter",
59
+ "duration": 3.0,
60
+ "image": {
61
+ "type": "movie",
62
+ "source": {
63
+ "kind": "path",
64
+ "path": "fixtures/movie_tone_mid.mov"
65
+ }
66
+ }
67
+ },
68
+ {
69
+ "speaker": "Presenter",
70
+ "text": "High tone with narration.",
71
+ "image": {
72
+ "type": "movie",
73
+ "source": {
74
+ "kind": "path",
75
+ "path": "fixtures/movie_tone_high.mov"
76
+ }
77
+ }
78
+ },
79
+ {
80
+ "speaker": "Presenter",
81
+ "duration": 3.0,
82
+ "image": {
83
+ "type": "movie",
84
+ "source": {
85
+ "kind": "path",
86
+ "path": "fixtures/movie_tone_high.mov"
87
+ }
88
+ }
89
+ }
90
+ ]
91
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "title": "Audio Mix Legacy Test (fixtures)",
6
+ "lang": "en",
7
+ "canvasSize": {
8
+ "width": 320,
9
+ "height": 180
10
+ },
11
+ "speechParams": {
12
+ "speakers": {
13
+ "Presenter": {
14
+ "provider": "openai",
15
+ "voiceId": "shimmer"
16
+ }
17
+ }
18
+ },
19
+ "audioParams": {
20
+ "bgmVolume": 0
21
+ },
22
+ "beats": [
23
+ {
24
+ "speaker": "Presenter",
25
+ "text": "Low tone with narration.",
26
+ "image": {
27
+ "type": "movie",
28
+ "source": {
29
+ "kind": "path",
30
+ "path": "fixtures/movie_tone_low.mov"
31
+ }
32
+ }
33
+ },
34
+ {
35
+ "speaker": "Presenter",
36
+ "duration": 3.0,
37
+ "image": {
38
+ "type": "movie",
39
+ "source": {
40
+ "kind": "path",
41
+ "path": "fixtures/movie_tone_low.mov"
42
+ }
43
+ }
44
+ },
45
+ {
46
+ "speaker": "Presenter",
47
+ "text": "Mid tone with narration.",
48
+ "image": {
49
+ "type": "movie",
50
+ "source": {
51
+ "kind": "path",
52
+ "path": "fixtures/movie_tone_mid.mov"
53
+ }
54
+ }
55
+ },
56
+ {
57
+ "speaker": "Presenter",
58
+ "duration": 3.0,
59
+ "image": {
60
+ "type": "movie",
61
+ "source": {
62
+ "kind": "path",
63
+ "path": "fixtures/movie_tone_mid.mov"
64
+ }
65
+ }
66
+ },
67
+ {
68
+ "speaker": "Presenter",
69
+ "text": "High tone with narration.",
70
+ "image": {
71
+ "type": "movie",
72
+ "source": {
73
+ "kind": "path",
74
+ "path": "fixtures/movie_tone_high.mov"
75
+ }
76
+ }
77
+ },
78
+ {
79
+ "speaker": "Presenter",
80
+ "duration": 3.0,
81
+ "image": {
82
+ "type": "movie",
83
+ "source": {
84
+ "kind": "path",
85
+ "path": "fixtures/movie_tone_high.mov"
86
+ }
87
+ }
88
+ }
89
+ ]
90
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "$mulmocast": { "version": "1.1" },
3
+ "movieParams": {
4
+ "provider": "replicate",
5
+ "model": "xai/grok-imagine-video"
6
+ },
7
+ "audioParams": {
8
+ "bgmVolume": 0
9
+ },
10
+ "captionParams": {
11
+ "lang": "en"
12
+ },
13
+ "lang": "en",
14
+ "beats": [
15
+ {
16
+ "text": "Testing xai/grok-imagine-video — text-to-video, image-to-video, and duration varieties.",
17
+ "image": {
18
+ "type": "textSlide",
19
+ "slide": {
20
+ "title": "xai/grok-imagine-video test"
21
+ }
22
+ }
23
+ },
24
+ {
25
+ "id": "grok-t2v-5s",
26
+ "text": "Text-to-video, 5 seconds: a red fox trots through a snowy forest at dawn, pawprints left behind",
27
+ "duration": 5,
28
+ "moviePrompt": "a red fox trots through a snowy forest at dawn, pawprints left behind, soft golden light filtering through pine trees"
29
+ },
30
+ {
31
+ "id": "grok-t2v-8s",
32
+ "text": "Text-to-video, 8 seconds: timelapse of storm clouds forming over a mountain range",
33
+ "duration": 8,
34
+ "moviePrompt": "timelapse of dark storm clouds rolling in over a rugged mountain range, lightning flashes in the distance, dramatic cinematic lighting"
35
+ },
36
+ {
37
+ "id": "grok-t2v-10s",
38
+ "text": "Text-to-video, 10 seconds: bustling Tokyo crossing at night",
39
+ "duration": 10,
40
+ "moviePrompt": "aerial dolly shot over Shibuya crossing at night, neon lights reflecting on wet pavement, crowds of people crossing in all directions"
41
+ },
42
+ {
43
+ "id": "grok-i2v-5s",
44
+ "text": "Image-to-video, 5 seconds: ocean waves animated from a still image",
45
+ "duration": 5,
46
+ "imagePrompt": "a calm tropical beach at sunset, crystal-clear turquoise water, golden sand, photorealistic",
47
+ "moviePrompt": "gentle waves lapping the shore, palm trees swaying softly in the breeze, camera slowly pushing forward"
48
+ },
49
+ {
50
+ "id": "grok-i2v-8s",
51
+ "text": "Image-to-video, 8 seconds: city skyline coming to life",
52
+ "duration": 8,
53
+ "imagePrompt": "futuristic city skyline at dusk, glass skyscrapers with glowing windows, photorealistic",
54
+ "moviePrompt": "lights in the skyscraper windows flicker on one by one as night falls, slow upward pan along the tallest tower"
55
+ }
56
+ ]
57
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$mulmocast": { "version": "1.1" },
3
+ "title": "Image Prompt Reference Tests",
4
+ "lang": "en",
5
+ "canvasSize": { "width": 1280, "height": 720 },
6
+ "imageParams": {
7
+ "images": {
8
+ "base_photo": {
9
+ "type": "image",
10
+ "source": { "kind": "url", "url": "https://images.unsplash.com/photo-1557682250-33bd709cbe85?w=1280&h=720&fit=crop" }
11
+ },
12
+ "from_prompt": {
13
+ "type": "imagePrompt",
14
+ "prompt": "A beautiful mountain landscape at sunset, photorealistic"
15
+ },
16
+ "stylized_by_name": {
17
+ "type": "imagePrompt",
18
+ "prompt": "Transform this image into a watercolor painting style",
19
+ "referenceImageName": "base_photo"
20
+ },
21
+ "stylized_by_source": {
22
+ "type": "imagePrompt",
23
+ "prompt": "Create an anime version of this gradient background",
24
+ "referenceImage": { "kind": "url", "url": "https://images.unsplash.com/photo-1557682250-33bd709cbe85?w=1280&h=720&fit=crop" }
25
+ },
26
+ "chained_ref": {
27
+ "type": "imagePrompt",
28
+ "prompt": "Add snow-capped peaks to this mountain scene",
29
+ "referenceImageName": "from_prompt"
30
+ }
31
+ }
32
+ },
33
+ "beats": [
34
+ {
35
+ "text": "Pattern 1: imagePrompt without reference (baseline)",
36
+ "imagePrompt": "A simple landscape",
37
+ "imageNames": ["from_prompt"]
38
+ },
39
+ {
40
+ "text": "Pattern 2: referenceImageName — reference another imageRefs key",
41
+ "imagePrompt": "A simple landscape",
42
+ "imageNames": ["stylized_by_name"]
43
+ },
44
+ {
45
+ "text": "Pattern 3: referenceImage — direct source",
46
+ "imagePrompt": "A simple landscape",
47
+ "imageNames": ["stylized_by_source"]
48
+ },
49
+ {
50
+ "text": "Pattern 4: chained reference — imagePrompt referencing another imagePrompt",
51
+ "imagePrompt": "A simple landscape",
52
+ "imageNames": ["chained_ref"]
53
+ }
54
+ ]
55
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "$mulmocast": { "version": "1.1" },
3
+ "imageParams": {
4
+ "provider": "google",
5
+ "images": {
6
+ "character": {
7
+ "type": "imagePrompt",
8
+ "prompt": "a young woman with short black hair wearing a red leather jacket and dark sunglasses, standing on a neon-lit Tokyo street at night, photo realistic"
9
+ },
10
+ "black_cat": {
11
+ "type": "imagePrompt",
12
+ "prompt": "small black cat"
13
+ }
14
+ }
15
+ },
16
+ "movieParams": {
17
+ "provider": "google",
18
+ "model": "veo-3.1-generate-preview"
19
+ },
20
+ "lang": "en",
21
+ "beats": [
22
+ {
23
+ "id": "veo31_asset_and_style",
24
+ "text": "veo-3.1 with both ASSET and STYLE reference images",
25
+ "moviePrompt": "the woman runs through narrow alleyways, neon signs blurring in the rain",
26
+ "movieParams": {
27
+ "model": "veo-3.1-generate-preview",
28
+ "referenceImages": [
29
+ { "imageName": "character", "referenceType": "ASSET" },
30
+ { "imageName": "black_cat", "referenceType": "ASSET" }
31
+ ]
32
+ }
33
+ },
34
+ {
35
+ "id": "veo31_replicate_asset_reference",
36
+ "text": "google/veo-3.1 (replicate) with reference images",
37
+ "moviePrompt": "the woman walks through a crowded neon-lit Tokyo street at night, rain falling gently around her",
38
+ "movieParams": {
39
+ "provider": "replicate",
40
+ "model": "google/veo-3.1",
41
+ "referenceImages": [
42
+ { "imageName": "character", "referenceType": "ASSET" },
43
+ { "imageName": "black_cat", "referenceType": "ASSET" }
44
+ ]
45
+ }
46
+ },
47
+ {
48
+ "id": "kling_v3_omni_asset_reference",
49
+ "text": "kling-v3-omni-video with character ASSET reference image",
50
+ "moviePrompt": "the woman walks through a crowded neon-lit Tokyo street at night, rain falling gently around her",
51
+ "movieParams": {
52
+ "provider": "replicate",
53
+ "model": "kwaivgi/kling-v3-omni-video",
54
+ "referenceImages": [
55
+ { "imageName": "character", "referenceType": "ASSET" },
56
+ { "imageName": "black_cat", "referenceType": "ASSET" }
57
+ ]
58
+ }
59
+ },
60
+ {
61
+ "id": "grok_r2v_reference",
62
+ "text": "xai/grok-imagine-r2v with character and cat reference images",
63
+ "moviePrompt": "the woman walks through a crowded neon-lit Tokyo street at night, rain falling gently around her, the black cat weaving between her feet",
64
+ "movieParams": {
65
+ "provider": "replicate",
66
+ "model": "xai/grok-imagine-r2v",
67
+ "referenceImages": [
68
+ { "imageName": "character", "referenceType": "ASSET" },
69
+ { "imageName": "black_cat", "referenceType": "ASSET" }
70
+ ]
71
+ }
72
+ }
73
+ ]
74
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "$mulmocast": { "version": "1.1" },
3
+ "movieParams": {
4
+ "provider": "replicate",
5
+ "model": "kwaivgi/kling-v3-video"
6
+ },
7
+ "imageParams": {
8
+ "provider": "google"
9
+ },
10
+ "audioParams": {
11
+ "bgmVolume": 0
12
+ },
13
+ "captionParams": {
14
+ "lang": "en"
15
+ },
16
+ "lang": "en",
17
+ "beats": [
18
+ {
19
+ "text": "Testing kwaivgi/kling-v3-video — text-to-video and image-to-video varieties.",
20
+ "image": {
21
+ "type": "textSlide",
22
+ "slide": {
23
+ "title": "kwaivgi/kling-v3-video test"
24
+ }
25
+ }
26
+ },
27
+ {
28
+ "id": "kling-v3-t2v-5s",
29
+ "text": "Text-to-video, 5 seconds: a red fox trots through a snowy forest at dawn, pawprints left behind",
30
+ "duration": 5,
31
+ "moviePrompt": "a red fox trots through a snowy forest at dawn, pawprints left behind, soft golden light filtering through pine trees"
32
+ },
33
+ {
34
+ "id": "kling-v3-t2v-10s",
35
+ "text": "Text-to-video, 10 seconds: bustling Tokyo crossing at night",
36
+ "duration": 10,
37
+ "moviePrompt": "aerial dolly shot over Shibuya crossing at night, neon lights reflecting on wet pavement, crowds of people crossing in all directions"
38
+ },
39
+ {
40
+ "id": "kling-v3-i2v-5s",
41
+ "text": "Image-to-video, 5 seconds: ocean waves animated from a still image",
42
+ "duration": 5,
43
+ "imagePrompt": "a calm tropical beach at sunset, crystal-clear turquoise water, golden sand, photorealistic",
44
+ "moviePrompt": "gentle waves lapping the shore, palm trees swaying softly in the breeze, camera slowly pushing forward"
45
+ },
46
+ {
47
+ "id": "kling-v3-i2v-10s",
48
+ "text": "Image-to-video, 10 seconds: city skyline coming to life",
49
+ "duration": 10,
50
+ "imagePrompt": "futuristic city skyline at dusk, glass skyscrapers with glowing windows, photorealistic",
51
+ "moviePrompt": "lights in the skyscraper windows flicker on one by one as night falls, slow upward pan along the tallest tower"
52
+ }
53
+ ]
54
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "$mulmocast": { "version": "1.1" },
3
+ "movieParams": {
4
+ "provider": "replicate",
5
+ "model": "kwaivgi/kling-v3-omni-video"
6
+ },
7
+ "imageParams": {
8
+ "provider": "google"
9
+ },
10
+ "audioParams": {
11
+ "bgmVolume": 0
12
+ },
13
+ "captionParams": {
14
+ "lang": "en"
15
+ },
16
+ "lang": "en",
17
+ "beats": [
18
+ {
19
+ "text": "Testing kwaivgi/kling-v3-omni-video — text-to-video and image-to-video varieties.",
20
+ "image": {
21
+ "type": "textSlide",
22
+ "slide": {
23
+ "title": "kwaivgi/kling-v3-omni-video test"
24
+ }
25
+ }
26
+ },
27
+ {
28
+ "id": "kling-omni-t2v-5s",
29
+ "text": "Text-to-video, 5 seconds: a red fox trots through a snowy forest at dawn, pawprints left behind",
30
+ "duration": 5,
31
+ "moviePrompt": "a red fox trots through a snowy forest at dawn, pawprints left behind, soft golden light filtering through pine trees"
32
+ },
33
+ {
34
+ "id": "kling-omni-t2v-10s",
35
+ "text": "Text-to-video, 10 seconds: bustling Tokyo crossing at night",
36
+ "duration": 10,
37
+ "moviePrompt": "aerial dolly shot over Shibuya crossing at night, neon lights reflecting on wet pavement, crowds of people crossing in all directions"
38
+ },
39
+ {
40
+ "id": "kling-omni-i2v-5s",
41
+ "text": "Image-to-video, 5 seconds: ocean waves animated from a still image",
42
+ "duration": 5,
43
+ "imagePrompt": "a calm tropical beach at sunset, crystal-clear turquoise water, golden sand, photorealistic",
44
+ "moviePrompt": "gentle waves lapping the shore, palm trees swaying softly in the breeze, camera slowly pushing forward"
45
+ },
46
+ {
47
+ "id": "kling-omni-i2v-10s",
48
+ "text": "Image-to-video, 10 seconds: city skyline coming to life",
49
+ "duration": 10,
50
+ "imagePrompt": "futuristic city skyline at dusk, glass skyscrapers with glowing windows, photorealistic",
51
+ "moviePrompt": "lights in the skyscraper windows flicker on one by one as night falls, slow upward pan along the tallest tower"
52
+ }
53
+ ]
54
+ }