mulmocast 1.1.10 → 1.2.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/assets/templates/html.json +11 -0
- package/lib/actions/audio.js +4 -20
- package/lib/actions/image_agents.d.ts +1 -1
- package/lib/actions/image_references.js +3 -2
- package/lib/actions/images.js +10 -30
- package/lib/agents/image_genai_agent.d.ts +5 -0
- package/lib/agents/image_genai_agent.js +52 -0
- package/lib/agents/index.d.ts +4 -3
- package/lib/agents/index.js +4 -3
- package/lib/agents/media_mock_agent.js +24 -1
- package/lib/agents/movie_genai_agent.d.ts +9 -0
- package/lib/agents/movie_genai_agent.js +86 -0
- package/lib/cli/commands/tool/scripting/builder.d.ts +1 -1
- package/lib/cli/commands/tool/story_to_script/builder.d.ts +1 -1
- package/lib/cli/helpers.js +3 -1
- package/lib/methods/mulmo_beat.js +1 -1
- package/lib/types/agent.d.ts +7 -1
- package/lib/types/schema.d.ts +33 -33
- package/lib/types/schema.js +2 -2
- package/lib/utils/context.d.ts +5 -5
- package/lib/utils/file.d.ts +1 -0
- package/lib/utils/file.js +1 -0
- package/lib/utils/filters.js +7 -1
- package/lib/utils/inquirer.js +15 -22
- package/lib/utils/prompt.d.ts +1 -1
- package/lib/utils/prompt.js +1 -1
- package/lib/utils/provider2agent.d.ts +22 -1
- package/lib/utils/provider2agent.js +35 -8
- package/lib/utils/string.js +1 -0
- package/lib/utils/utils.d.ts +1 -1
- package/lib/utils/utils.js +4 -4
- package/package.json +8 -6
- package/scripts/test/test_genai.json +47 -0
- package/scripts/test/test_hello.json +0 -3
- package/scripts/test/test_hello_bgm_0.json +21 -0
- package/scripts/test/test_hello_caption.json +38 -0
- package/scripts/test/test_hello_caption.json~ +21 -0
- package/scripts/test/test_hello_image.json +42 -0
- package/scripts/test/test_hello_image.json~ +18 -0
- package/scripts/test/test_hello_nobgm.json +21 -0
- package/scripts/test/test_media_mock.json +245 -0
- package/scripts/test/test_replicate.json +21 -1
|
@@ -19,6 +19,12 @@ export declare const provider2TTSAgent: {
|
|
|
19
19
|
defaultModel: string;
|
|
20
20
|
models: string[];
|
|
21
21
|
};
|
|
22
|
+
mock: {
|
|
23
|
+
agentName: string;
|
|
24
|
+
hasLimitedConcurrency: boolean;
|
|
25
|
+
defaultModel: string;
|
|
26
|
+
models: string[];
|
|
27
|
+
};
|
|
22
28
|
};
|
|
23
29
|
export declare const provider2ImageAgent: {
|
|
24
30
|
openai: {
|
|
@@ -31,6 +37,11 @@ export declare const provider2ImageAgent: {
|
|
|
31
37
|
defaultModel: string;
|
|
32
38
|
models: string[];
|
|
33
39
|
};
|
|
40
|
+
mock: {
|
|
41
|
+
agentName: string;
|
|
42
|
+
defaultModel: string;
|
|
43
|
+
models: string[];
|
|
44
|
+
};
|
|
34
45
|
};
|
|
35
46
|
export type ReplicateModel = `${string}/${string}`;
|
|
36
47
|
export declare const provider2MovieAgent: {
|
|
@@ -50,6 +61,11 @@ export declare const provider2MovieAgent: {
|
|
|
50
61
|
defaultModel: string;
|
|
51
62
|
models: string[];
|
|
52
63
|
};
|
|
64
|
+
mock: {
|
|
65
|
+
agentName: string;
|
|
66
|
+
defaultModel: string;
|
|
67
|
+
models: string[];
|
|
68
|
+
};
|
|
53
69
|
};
|
|
54
70
|
export declare const provider2SoundEffectAgent: {
|
|
55
71
|
replicate: {
|
|
@@ -77,7 +93,7 @@ export declare const provider2LipSyncAgent: {
|
|
|
77
93
|
export declare const provider2LLMAgent: {
|
|
78
94
|
readonly openai: {
|
|
79
95
|
readonly agentName: "openAIAgent";
|
|
80
|
-
readonly defaultModel: "gpt-
|
|
96
|
+
readonly defaultModel: "gpt-5";
|
|
81
97
|
readonly max_tokens: 8192;
|
|
82
98
|
};
|
|
83
99
|
readonly anthropic: {
|
|
@@ -95,6 +111,11 @@ export declare const provider2LLMAgent: {
|
|
|
95
111
|
readonly defaultModel: "llama3-8b-8192";
|
|
96
112
|
readonly max_tokens: 4096;
|
|
97
113
|
};
|
|
114
|
+
readonly mock: {
|
|
115
|
+
readonly agentName: "mediaMockAgent";
|
|
116
|
+
readonly defaultModel: "mock";
|
|
117
|
+
readonly max_tokens: 4096;
|
|
118
|
+
};
|
|
98
119
|
};
|
|
99
120
|
export declare const defaultProviders: {
|
|
100
121
|
tts: keyof typeof provider2TTSAgent;
|
|
@@ -22,6 +22,12 @@ export const provider2TTSAgent = {
|
|
|
22
22
|
// https://elevenlabs.io/docs/models
|
|
23
23
|
models: ["eleven_multilingual_v2", "eleven_turbo_v2_5", "eleven_turbo_v2", "eleven_flash_v2_5", "eleven_flash_v2"],
|
|
24
24
|
},
|
|
25
|
+
mock: {
|
|
26
|
+
agentName: "mediaMockAgent",
|
|
27
|
+
hasLimitedConcurrency: true,
|
|
28
|
+
defaultModel: "mock-model",
|
|
29
|
+
models: ["mock-model"],
|
|
30
|
+
},
|
|
25
31
|
};
|
|
26
32
|
export const provider2ImageAgent = {
|
|
27
33
|
openai: {
|
|
@@ -30,9 +36,14 @@ export const provider2ImageAgent = {
|
|
|
30
36
|
models: ["dall-e-3", "gpt-image-1"],
|
|
31
37
|
},
|
|
32
38
|
google: {
|
|
33
|
-
agentName: "
|
|
34
|
-
defaultModel: "imagen-
|
|
35
|
-
models: ["imagen-3.0-
|
|
39
|
+
agentName: "imageGenAIAgent",
|
|
40
|
+
defaultModel: "imagen-4.0-generate-preview-06-06",
|
|
41
|
+
models: ["imagen-3.0-generate-002", "imagen-4.0-generate-preview-06-06", "imagen-4.0-ultra-generate-preview-06-06"],
|
|
42
|
+
},
|
|
43
|
+
mock: {
|
|
44
|
+
agentName: "mediaMockAgent",
|
|
45
|
+
defaultModel: "mock-model",
|
|
46
|
+
models: ["mock-model"],
|
|
36
47
|
},
|
|
37
48
|
};
|
|
38
49
|
export const provider2MovieAgent = {
|
|
@@ -50,6 +61,7 @@ export const provider2MovieAgent = {
|
|
|
50
61
|
"google/veo-3-fast",
|
|
51
62
|
"minimax/video-01",
|
|
52
63
|
"minimax/hailuo-02",
|
|
64
|
+
"minimax/hailuo-02-fast",
|
|
53
65
|
"pixverse/pixverse-v4.5",
|
|
54
66
|
"wan-video/wan-2.2-i2v-480p-fast",
|
|
55
67
|
"wan-video/wan-2.2-t2v-480p-fast",
|
|
@@ -89,12 +101,12 @@ export const provider2MovieAgent = {
|
|
|
89
101
|
},
|
|
90
102
|
"google/veo-3": {
|
|
91
103
|
durations: [8],
|
|
92
|
-
start_image:
|
|
104
|
+
start_image: "image",
|
|
93
105
|
price_per_sec: 0.75,
|
|
94
106
|
},
|
|
95
107
|
"google/veo-3-fast": {
|
|
96
108
|
durations: [8],
|
|
97
|
-
start_image:
|
|
109
|
+
start_image: "image",
|
|
98
110
|
price_per_sec: 0.4,
|
|
99
111
|
},
|
|
100
112
|
"minimax/video-01": {
|
|
@@ -107,6 +119,11 @@ export const provider2MovieAgent = {
|
|
|
107
119
|
start_image: "first_frame_image",
|
|
108
120
|
price_per_sec: 0.08,
|
|
109
121
|
},
|
|
122
|
+
"minimax/hailuo-02-fast": {
|
|
123
|
+
durations: [6, 10], // NOTE: 512P
|
|
124
|
+
start_image: "first_frame_image",
|
|
125
|
+
price_per_sec: 0.0166,
|
|
126
|
+
},
|
|
110
127
|
"pixverse/pixverse-v4.5": {
|
|
111
128
|
durations: [5, 8],
|
|
112
129
|
start_image: "image",
|
|
@@ -126,10 +143,15 @@ export const provider2MovieAgent = {
|
|
|
126
143
|
},
|
|
127
144
|
},
|
|
128
145
|
google: {
|
|
129
|
-
agentName: "
|
|
146
|
+
agentName: "movieGenAIAgent",
|
|
130
147
|
defaultModel: "veo-2.0-generate-001",
|
|
131
148
|
models: ["veo-2.0-generate-001"],
|
|
132
149
|
},
|
|
150
|
+
mock: {
|
|
151
|
+
agentName: "mediaMockAgent",
|
|
152
|
+
defaultModel: "mock-model",
|
|
153
|
+
models: ["mock-model"],
|
|
154
|
+
},
|
|
133
155
|
};
|
|
134
156
|
export const provider2SoundEffectAgent = {
|
|
135
157
|
replicate: {
|
|
@@ -184,7 +206,7 @@ export const provider2LipSyncAgent = {
|
|
|
184
206
|
export const provider2LLMAgent = {
|
|
185
207
|
openai: {
|
|
186
208
|
agentName: "openAIAgent",
|
|
187
|
-
defaultModel: "gpt-
|
|
209
|
+
defaultModel: "gpt-5",
|
|
188
210
|
max_tokens: 8192,
|
|
189
211
|
},
|
|
190
212
|
anthropic: {
|
|
@@ -202,6 +224,11 @@ export const provider2LLMAgent = {
|
|
|
202
224
|
defaultModel: "llama3-8b-8192",
|
|
203
225
|
max_tokens: 4096,
|
|
204
226
|
},
|
|
227
|
+
mock: {
|
|
228
|
+
agentName: "mediaMockAgent",
|
|
229
|
+
defaultModel: "mock",
|
|
230
|
+
max_tokens: 4096,
|
|
231
|
+
},
|
|
205
232
|
};
|
|
206
233
|
export const defaultProviders = {
|
|
207
234
|
tts: "openai",
|
|
@@ -213,4 +240,4 @@ export const defaultProviders = {
|
|
|
213
240
|
lipSync: "replicate",
|
|
214
241
|
};
|
|
215
242
|
export const llm = Object.keys(provider2LLMAgent);
|
|
216
|
-
export const htmlLLMProvider = ["openai", "anthropic"];
|
|
243
|
+
export const htmlLLMProvider = ["openai", "anthropic", "mock"];
|
package/lib/utils/string.js
CHANGED
|
@@ -46,6 +46,7 @@ export const replacementsJa = [
|
|
|
46
46
|
{ from: "Groq", to: "グロック" },
|
|
47
47
|
{ from: "TSMC", to: "ティーエスエムシー" },
|
|
48
48
|
{ from: "NVIDIA", to: "エヌビディア" },
|
|
49
|
+
{ from: "PER", to: "ピーイーアール" },
|
|
49
50
|
{ from: "1つ", to: "ひとつ" },
|
|
50
51
|
{ from: "2つ", to: "ふたつ" },
|
|
51
52
|
{ from: "3つ", to: "みっつ" },
|
package/lib/utils/utils.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { ConfigDataDictionary, DefaultConfigData } from "graphai";
|
|
|
2
2
|
import { MulmoBeat, MulmoStudioMultiLingualData } from "../types/index.js";
|
|
3
3
|
import type { LLM } from "./provider2agent.js";
|
|
4
4
|
export declare const llmPair: (_llm?: LLM, _model?: string) => {
|
|
5
|
-
agent: "openAIAgent" | "anthropicAgent" | "geminiAgent" | "groqAgent";
|
|
5
|
+
agent: "mediaMockAgent" | "openAIAgent" | "anthropicAgent" | "geminiAgent" | "groqAgent";
|
|
6
6
|
model: string;
|
|
7
7
|
max_tokens: 8192 | 4096;
|
|
8
8
|
};
|
package/lib/utils/utils.js
CHANGED
|
@@ -54,8 +54,8 @@ export const settings2GraphAIConfig = (settings, env) => {
|
|
|
54
54
|
apiKey: getKey("IMAGE", "OPENAI_API_KEY"),
|
|
55
55
|
baseURL: getKey("IMAGE", "OPENAI_BASE_URL"),
|
|
56
56
|
},
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
imageGenAIAgent: {
|
|
58
|
+
apiKey: getKey("IMAGE", "GEMINI_API_KEY"),
|
|
59
59
|
},
|
|
60
60
|
anthropicAgent: {
|
|
61
61
|
apiKey: getKey("LLM", "ANTHROPIC_API_TOKEN"),
|
|
@@ -63,8 +63,8 @@ export const settings2GraphAIConfig = (settings, env) => {
|
|
|
63
63
|
movieReplicateAgent: {
|
|
64
64
|
apiKey: getKey("MOVIE", "REPLICATE_API_TOKEN"),
|
|
65
65
|
},
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
movieGenAIAgent: {
|
|
67
|
+
apiKey: getKey("MOVIE", "GEMINI_API_KEY"),
|
|
68
68
|
},
|
|
69
69
|
ttsNijivoiceAgent: {
|
|
70
70
|
apiKey: getKey("TTS", "NIJIVOICE_API_KEY"),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mulmocast",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.node.js",
|
|
@@ -66,15 +66,18 @@
|
|
|
66
66
|
"homepage": "https://github.com/receptron/mulmocast-cli#readme",
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@google-cloud/text-to-speech": "^6.2.0",
|
|
69
|
+
"@google/genai": "^1.13.0",
|
|
69
70
|
"@graphai/anthropic_agent": "^2.0.5",
|
|
70
71
|
"@graphai/browserless_agent": "^2.0.1",
|
|
71
72
|
"@graphai/gemini_agent": "^2.0.0",
|
|
72
73
|
"@graphai/groq_agent": "^2.0.0",
|
|
73
|
-
"@graphai/input_agents": "^1.0.
|
|
74
|
+
"@graphai/input_agents": "^1.0.2",
|
|
74
75
|
"@graphai/openai_agent": "^2.0.3",
|
|
75
76
|
"@graphai/stream_agent_filter": "^2.0.2",
|
|
76
77
|
"@graphai/vanilla": "^2.0.6",
|
|
77
78
|
"@graphai/vanilla_node_agents": "^2.0.1",
|
|
79
|
+
"@inquirer/input": "^4.2.1",
|
|
80
|
+
"@inquirer/select": "^4.3.1",
|
|
78
81
|
"@modelcontextprotocol/sdk": "^1.15.1",
|
|
79
82
|
"@tavily/core": "^0.5.9",
|
|
80
83
|
"canvas": "^3.1.2",
|
|
@@ -83,12 +86,11 @@
|
|
|
83
86
|
"fluent-ffmpeg": "^2.1.3",
|
|
84
87
|
"google-auth-library": "^10.1.0",
|
|
85
88
|
"graphai": "^2.0.13",
|
|
86
|
-
"inquirer": "^12.9.0",
|
|
87
89
|
"marked": "^16.1.2",
|
|
88
90
|
"ora": "^8.2.0",
|
|
89
|
-
"puppeteer": "^24.
|
|
91
|
+
"puppeteer": "^24.16.0",
|
|
90
92
|
"replicate": "^1.0.1",
|
|
91
|
-
"yaml": "^2.8.
|
|
93
|
+
"yaml": "^2.8.1",
|
|
92
94
|
"yargs": "^18.0.0",
|
|
93
95
|
"zod": "^3.25.76",
|
|
94
96
|
"zod-to-json-schema": "^3.24.6"
|
|
@@ -101,7 +103,7 @@
|
|
|
101
103
|
"@types/yargs": "^17.0.33",
|
|
102
104
|
"eslint": "^9.32.0",
|
|
103
105
|
"eslint-config-prettier": "^10.1.8",
|
|
104
|
-
"eslint-plugin-prettier": "^5.5.
|
|
106
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
105
107
|
"eslint-plugin-sonarjs": "^3.0.4",
|
|
106
108
|
"prettier": "^3.6.2",
|
|
107
109
|
"ts-node": "^10.9.2",
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$mulmocast": { "version": "1.1" },
|
|
3
|
+
"imageParams": {
|
|
4
|
+
"provider": "google",
|
|
5
|
+
"style": "<style>Photo realistic.</style>"
|
|
6
|
+
},
|
|
7
|
+
"movieParams": {
|
|
8
|
+
"provider": "google"
|
|
9
|
+
},
|
|
10
|
+
"lang": "en",
|
|
11
|
+
"beats": [
|
|
12
|
+
{
|
|
13
|
+
"id": "imagen_3",
|
|
14
|
+
"text": "image generated by imagen-3",
|
|
15
|
+
"imagePrompt": "a woman is walking through a busy Tokyo street at night, she is wearing dark sunglasses",
|
|
16
|
+
"imageParams": {
|
|
17
|
+
"model": "imagen-3.0-generate-002"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "imagen_4",
|
|
22
|
+
"text": "image generated by imagen-4",
|
|
23
|
+
"imagePrompt": "a woman is walking through a busy Tokyo street at night, she is wearing dark sunglasses"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "imagen_4_ultra",
|
|
27
|
+
"text": "image generated by imagen-4",
|
|
28
|
+
"imagePrompt": "a woman is walking through a busy Tokyo street at night, she is wearing dark sunglasses",
|
|
29
|
+
"imageParams": {
|
|
30
|
+
"model": "imagen-4.0-ultra-generate-preview-06-06"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "genai_veo2",
|
|
35
|
+
"text": "movie generated by veo2",
|
|
36
|
+
"duration": 5,
|
|
37
|
+
"moviePrompt": "a woman is walking through a busy Tokyo street at night, she is wearing dark sunglasses"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "genai_veo2_image",
|
|
41
|
+
"text": "movie generated by veo2 with image",
|
|
42
|
+
"duration": 5,
|
|
43
|
+
"imagePrompt": "a woman is walking through a busy Tokyo street at night, she is wearing dark sunglasses",
|
|
44
|
+
"moviePrompt": "a woman takes a selfie with her phone"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$mulmocast": {
|
|
3
|
+
"version": "1.1"
|
|
4
|
+
},
|
|
5
|
+
"audioParams": {
|
|
6
|
+
"bgmVolume": 0
|
|
7
|
+
},
|
|
8
|
+
"lang": "en",
|
|
9
|
+
"beats": [
|
|
10
|
+
{
|
|
11
|
+
"text": "Hello World",
|
|
12
|
+
"image": {
|
|
13
|
+
"type": "textSlide",
|
|
14
|
+
"slide": {
|
|
15
|
+
"title": "Hello World",
|
|
16
|
+
"bullets": ["Hello", "World"]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$mulmocast": {
|
|
3
|
+
"version": "1.1"
|
|
4
|
+
},
|
|
5
|
+
"lang": "en",
|
|
6
|
+
"captionParams": {
|
|
7
|
+
"lang": "en"
|
|
8
|
+
},
|
|
9
|
+
"movieParams": {
|
|
10
|
+
"provider": "mock"
|
|
11
|
+
},
|
|
12
|
+
"speechParams": {
|
|
13
|
+
"speakers": {
|
|
14
|
+
"Presenter": {
|
|
15
|
+
"displayName": {
|
|
16
|
+
"en": "Presenter"
|
|
17
|
+
},
|
|
18
|
+
"voiceId": "ae42d8b0-0c4b-4289-95b7-cf988569af36",
|
|
19
|
+
"provider": "mock"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"imageParams": {
|
|
24
|
+
"provider": "mock"
|
|
25
|
+
},
|
|
26
|
+
"beats": [
|
|
27
|
+
{
|
|
28
|
+
"text": "Hello World",
|
|
29
|
+
"image": {
|
|
30
|
+
"type": "textSlide",
|
|
31
|
+
"slide": {
|
|
32
|
+
"title": "Hello World",
|
|
33
|
+
"bullets": ["Hello", "World"]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$mulmocast": {
|
|
3
|
+
"version": "1.1"
|
|
4
|
+
},
|
|
5
|
+
"lang": "en",
|
|
6
|
+
"captionParams": {
|
|
7
|
+
"lang": "en"
|
|
8
|
+
},
|
|
9
|
+
"beats": [
|
|
10
|
+
{
|
|
11
|
+
"text": "Hello World",
|
|
12
|
+
"image": {
|
|
13
|
+
"type": "textSlide",
|
|
14
|
+
"slide": {
|
|
15
|
+
"title": "Hello World",
|
|
16
|
+
"bullets": ["Hello", "World"]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$mulmocast": {
|
|
3
|
+
"version": "1.1"
|
|
4
|
+
},
|
|
5
|
+
"lang": "en",
|
|
6
|
+
"movieParams": {
|
|
7
|
+
"provider": "mock"
|
|
8
|
+
},
|
|
9
|
+
"speechParams": {
|
|
10
|
+
"speakers": {
|
|
11
|
+
"Presenter": {
|
|
12
|
+
"displayName": {
|
|
13
|
+
"en": "Presenter"
|
|
14
|
+
},
|
|
15
|
+
"voiceId": "ae42d8b0-0c4b-4289-95b7-cf988569af36",
|
|
16
|
+
"provider": "mock"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"htmlImageParams": {
|
|
21
|
+
"provider": "mock"
|
|
22
|
+
},
|
|
23
|
+
"imageParams": {
|
|
24
|
+
"provider": "mock"
|
|
25
|
+
},
|
|
26
|
+
"beats": [
|
|
27
|
+
{
|
|
28
|
+
"text": "Hello World"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"text": "Hello World",
|
|
32
|
+
"moviePrompt": "fire"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"text": "Hello World",
|
|
36
|
+
"htmlPrompt": {
|
|
37
|
+
"prompt": "fire",
|
|
38
|
+
"data": []
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$mulmocast": {
|
|
3
|
+
"version": "1.1"
|
|
4
|
+
},
|
|
5
|
+
"lang": "en",
|
|
6
|
+
"audioParams": {
|
|
7
|
+
"bgmVolume": 0
|
|
8
|
+
},
|
|
9
|
+
"beats": [
|
|
10
|
+
{
|
|
11
|
+
"text": "Hello World",
|
|
12
|
+
"image": {
|
|
13
|
+
"type": "textSlide",
|
|
14
|
+
"slide": {
|
|
15
|
+
"title": "Hello World",
|
|
16
|
+
"bullets": ["Hello", "World"]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|