mulmocast 0.0.1 → 0.0.2
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 +108 -12
- package/assets/html/chart.html +47 -0
- package/assets/html/mermaid.html +63 -0
- package/assets/templates/business.json +60 -6
- package/assets/templates/children_book.json +1 -3
- package/assets/templates/coding.json +103 -0
- package/lib/actions/audio.d.ts +1 -1
- package/lib/actions/audio.js +52 -81
- package/lib/actions/images.d.ts +1 -1
- package/lib/actions/images.js +48 -80
- package/lib/actions/movie.d.ts +1 -1
- package/lib/actions/movie.js +76 -76
- package/lib/actions/translate.d.ts +1 -1
- package/lib/actions/translate.js +16 -52
- package/lib/agents/add_bgm_agent.d.ts +1 -1
- package/lib/agents/add_bgm_agent.js +10 -14
- package/lib/agents/combine_audio_files_agent.d.ts +1 -1
- package/lib/agents/combine_audio_files_agent.js +40 -30
- package/lib/agents/image_google_agent.d.ts +1 -1
- package/lib/agents/image_google_agent.js +8 -11
- package/lib/agents/image_openai_agent.js +7 -14
- package/lib/agents/index.d.ts +8 -8
- package/lib/agents/index.js +13 -30
- package/lib/agents/mulmo_prompts_agent.d.ts +1 -1
- package/lib/agents/mulmo_prompts_agent.js +7 -11
- package/lib/agents/prompts_data.js +1 -4
- package/lib/agents/tts_nijivoice_agent.d.ts +1 -1
- package/lib/agents/tts_nijivoice_agent.js +8 -12
- package/lib/agents/tts_openai_agent.js +9 -16
- package/lib/agents/validate_mulmo_script_agent.d.ts +1 -1
- package/lib/agents/validate_mulmo_script_agent.js +6 -10
- package/lib/cli/args.d.ts +2 -1
- package/lib/cli/args.js +16 -14
- package/lib/cli/cli.js +64 -49
- package/lib/cli/common.js +1 -5
- package/lib/cli/tool-args.d.ts +2 -1
- package/lib/cli/tool-args.js +19 -18
- package/lib/cli/tool-cli.js +32 -51
- package/lib/methods/index.d.ts +3 -3
- package/lib/methods/index.js +3 -19
- package/lib/methods/mulmo_script.d.ts +10 -5
- package/lib/methods/mulmo_script.js +17 -11
- package/lib/methods/mulmo_script_template.d.ts +1 -1
- package/lib/methods/mulmo_script_template.js +4 -10
- package/lib/methods/mulmo_studio_context.d.ts +1 -1
- package/lib/methods/mulmo_studio_context.js +3 -9
- package/lib/tools/create_mulmo_script_from_url.d.ts +3 -0
- package/lib/tools/create_mulmo_script_from_url.js +152 -0
- package/lib/tools/create_mulmo_script_interactively.d.ts +3 -0
- package/lib/tools/create_mulmo_script_interactively.js +217 -0
- package/lib/tools/dump_prompt.js +5 -8
- package/lib/tools/prompt.js +9 -11
- package/lib/tools/seed_from_url2.d.ts +3 -0
- package/lib/tools/seed_from_url2.js +154 -0
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.js +1 -17
- package/lib/types/schema.d.ts +433 -71
- package/lib/types/schema.js +126 -111
- package/lib/types/type.d.ts +7 -3
- package/lib/types/type.js +1 -2
- package/lib/utils/const.d.ts +2 -1
- package/lib/utils/const.js +4 -6
- package/lib/utils/file.d.ts +19 -4
- package/lib/utils/file.js +78 -71
- package/lib/utils/filters.d.ts +1 -0
- package/lib/utils/filters.js +47 -26
- package/lib/utils/image_preprocess.d.ts +14 -0
- package/lib/utils/image_preprocess.js +52 -0
- package/lib/utils/inquirer.d.ts +2 -0
- package/lib/utils/inquirer.js +33 -0
- package/lib/utils/markdown.d.ts +3 -1
- package/lib/utils/markdown.js +17 -19
- package/lib/utils/plugins.d.ts +5 -0
- package/lib/utils/plugins.js +11 -0
- package/lib/utils/preprocess.d.ts +24 -7
- package/lib/utils/preprocess.js +8 -14
- package/lib/utils/string.js +4 -10
- package/lib/utils/text_hash.js +2 -39
- package/package.json +12 -6
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
#
|
|
1
|
+
# mulmocast
|
|
2
2
|
|
|
3
3
|
A CLI tool for generating podcast and video content from script files. Automates the process of creating audio, images, and video from structured script files.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install -g
|
|
8
|
+
npm install -g mulmocast
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
You'll also need to install ffmpeg:
|
|
@@ -21,11 +21,16 @@ brew install ffmpeg
|
|
|
21
21
|
|
|
22
22
|
Create a `.env` file in your project directory with the following API keys:
|
|
23
23
|
|
|
24
|
+
### Required
|
|
24
25
|
```
|
|
25
26
|
OPENAI_API_KEY=your_openai_api_key
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
```
|
|
28
|
+
### Optional
|
|
29
|
+
```
|
|
30
|
+
DEFAULT_OPENAI_IMAGE_MODEL=gpt-image-1 # for the advanced image generation model
|
|
31
|
+
GOOGLE_PROJECT_ID=your_google_project_id # for Google's image generation model
|
|
32
|
+
NIJIVOICE_API_KEY=your_nijivoice_api_key # for Nijivoice's TTS model
|
|
33
|
+
BROWSERLESS_API_TOKEN=your_browserless_api_token # to access web in mulmo-tool
|
|
29
34
|
```
|
|
30
35
|
|
|
31
36
|
## Workflow
|
|
@@ -35,14 +40,28 @@ BROWSERLESS_API_TOKEN=your_browserless_api_token # optional for scripting from w
|
|
|
35
40
|
3. Generate images with `mulmo images`
|
|
36
41
|
4. Create final video with `mulmo movie`
|
|
37
42
|
|
|
43
|
+
## Quick Start
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
# Generate script with interactive mode
|
|
47
|
+
mulmo-tool scripting -i -t children_book -o ./ -f story
|
|
48
|
+
```
|
|
49
|
+
After running this command, you'll create a story script through an interactive conversation with the AI.
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
# Generate both audio and images, then combine into video
|
|
53
|
+
mulmo movie {generated_script_file}
|
|
54
|
+
```
|
|
55
|
+
Replace `{generated_script_file}` with the output file from the previous command, such as `story-1746600802426.json`.
|
|
56
|
+
|
|
38
57
|
## Generate MulmoScript
|
|
39
58
|
|
|
40
59
|
```bash
|
|
41
60
|
# Generate script from web content
|
|
42
|
-
mulmo-tool scripting -u https://example.com
|
|
61
|
+
mulmo-tool scripting -u https://example.com
|
|
43
62
|
|
|
44
63
|
# Generate script with interactive mode
|
|
45
|
-
mulmo-tool scripting -i
|
|
64
|
+
mulmo-tool scripting -i
|
|
46
65
|
```
|
|
47
66
|
|
|
48
67
|
## Generate content from MulmoScript
|
|
@@ -51,24 +70,101 @@ Mulmo provides several commands to handle different aspects of content creation:
|
|
|
51
70
|
|
|
52
71
|
```bash
|
|
53
72
|
# Generate audio from script
|
|
54
|
-
mulmo audio
|
|
73
|
+
mulmo audio script.json
|
|
55
74
|
|
|
56
75
|
# Generate images for script
|
|
57
|
-
mulmo images
|
|
76
|
+
mulmo images script.json
|
|
58
77
|
|
|
59
78
|
# Generate both audio and images, then combine into video
|
|
60
|
-
mulmo movie
|
|
79
|
+
mulmo movie script.json
|
|
61
80
|
|
|
62
81
|
# Translate script to Japanese
|
|
63
|
-
mulmo translate
|
|
82
|
+
mulmo translate script.json
|
|
64
83
|
```
|
|
65
84
|
|
|
85
|
+
## Cache and Re-run
|
|
86
|
+
When running the same `mulmo` command multiple times, previously generated files are treated as cache. For example, audio or image files will not be regenerated if they already exist.
|
|
87
|
+
|
|
88
|
+
To force regeneration, delete the old files — including temporary files — under the output directory before re-running the command or use -f (force) option.
|
|
89
|
+
|
|
90
|
+
If you modify the text or instruction fields in a MulmoScript, mulmo will automatically detect the changes and regenerate the corresponding audio content upon re-run.
|
|
91
|
+
|
|
66
92
|
## MulmoScript Format
|
|
67
93
|
|
|
68
94
|
MulmoScript is a JSON format to define podcast or video scripts:
|
|
69
|
-
|
|
95
|
+
Schema definition: [schema.ts](./src/types/schema.ts)
|
|
96
|
+
|
|
97
|
+
## Sample MulmoScript
|
|
98
|
+
|
|
99
|
+
https://github.com/receptron/mulmocast-cli/tree/main/scripts
|
|
100
|
+
|
|
101
|
+
## Directory Structure
|
|
102
|
+
|
|
103
|
+
| Directory | Description |
|
|
104
|
+
|-------------------|-----------------------------------------------------------------------------|
|
|
105
|
+
| `output/` | Artifacts generated by commands — e.g., `.json`, audio, and video files |
|
|
106
|
+
| `output/audio/` | Temporary audio fragments used in the final audio assembly |
|
|
107
|
+
| `output/images/` | Image files generated by the `images` command |
|
|
108
|
+
| `output/cache/` | Internal cache files for various processing steps |
|
|
109
|
+
|
|
110
|
+
> These directories are automatically created as needed by the `mulmo` commands.
|
|
111
|
+
|
|
112
|
+
## Help
|
|
113
|
+
|
|
114
|
+
CLI Usage
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
$ mulmo -h
|
|
118
|
+
mulmo <action> <file>
|
|
119
|
+
|
|
120
|
+
Run mulmocast
|
|
121
|
+
|
|
122
|
+
Positionals:
|
|
123
|
+
action action to perform
|
|
124
|
+
[string] [choices: "translate", "audio", "images", "movie", "preprocess"]
|
|
125
|
+
file Mulmo Script File [string]
|
|
126
|
+
|
|
127
|
+
Options:
|
|
128
|
+
--version Show version number [boolean]
|
|
129
|
+
-v, --verbose verbose log [boolean] [required] [default: false]
|
|
130
|
+
-o, --outdir output dir [string]
|
|
131
|
+
-b, --basedir base dir [string]
|
|
132
|
+
-a, --audiodir audio dir [string]
|
|
133
|
+
-i, --imagedir image dir [string]
|
|
134
|
+
-f, --force force generate [boolean] [default: false]
|
|
135
|
+
--help Show help [boolean]
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
$ mulmo-tool -h
|
|
141
|
+
|
|
142
|
+
mulmo-tool <action>
|
|
143
|
+
|
|
144
|
+
Run mulmocast tool
|
|
145
|
+
|
|
146
|
+
Positionals:
|
|
147
|
+
action action to perform [string] [choices: "scripting", "prompt"]
|
|
148
|
+
|
|
149
|
+
Options:
|
|
150
|
+
--version Show version number [boolean]
|
|
151
|
+
-v, --verbose verbose log [boolean] [required] [default: false]
|
|
152
|
+
-o, --outdir output dir [string]
|
|
153
|
+
-b, --basedir base dir [string]
|
|
154
|
+
-u, --url URLs to reference (required when not in interactive mode)
|
|
155
|
+
[array] [default: []]
|
|
156
|
+
-i, --interactive Generate script in interactive mode with user prompts
|
|
157
|
+
[boolean]
|
|
158
|
+
-t, --template Template name to use
|
|
159
|
+
[string] [choices: "business", "children_book", "coding", "podcast_standard",
|
|
160
|
+
"sensei_and_taro"]
|
|
161
|
+
-c, --cache cache dir [string]
|
|
162
|
+
-s, --script script filename [string] [default: "script"]
|
|
163
|
+
--help Show help [boolean]
|
|
164
|
+
```
|
|
70
165
|
|
|
71
166
|
|
|
72
167
|
## Contributing
|
|
73
168
|
|
|
74
169
|
For developers interested in contributing to this project, please see [CONTRIBUTING.md](./CONTRIBUTING.md).
|
|
170
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Simple Chart.js Bar Chart</title>
|
|
7
|
+
<style>
|
|
8
|
+
body {
|
|
9
|
+
font-family: Arial, sans-serif;
|
|
10
|
+
padding: 40px; padding-top: 60px;
|
|
11
|
+
}
|
|
12
|
+
.chart-container {
|
|
13
|
+
width: ${width}px;
|
|
14
|
+
margin: 0 auto;
|
|
15
|
+
}
|
|
16
|
+
h1 {
|
|
17
|
+
text-align: center;
|
|
18
|
+
font-size: 50px;
|
|
19
|
+
color: #333;
|
|
20
|
+
margin-bottom: 80px;
|
|
21
|
+
}
|
|
22
|
+
</style>
|
|
23
|
+
<!-- Include Chart.js from CDN -->
|
|
24
|
+
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
25
|
+
</head>
|
|
26
|
+
<body>
|
|
27
|
+
<h1>${title}</h1>
|
|
28
|
+
<div class="chart-container">
|
|
29
|
+
<canvas id="myChart"></canvas>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
<!-- Plain JavaScript instead of TypeScript -->
|
|
33
|
+
<script>
|
|
34
|
+
// Wait for DOM to be fully loaded
|
|
35
|
+
document.addEventListener('DOMContentLoaded', function() {
|
|
36
|
+
// Get the canvas element
|
|
37
|
+
const ctx = document.getElementById('myChart');
|
|
38
|
+
|
|
39
|
+
// Create the data object (no TypeScript interfaces)
|
|
40
|
+
const chartData = ${chart_data};
|
|
41
|
+
|
|
42
|
+
// Initialize the chart
|
|
43
|
+
new Chart(ctx, chartData);
|
|
44
|
+
});
|
|
45
|
+
</script>
|
|
46
|
+
</body>
|
|
47
|
+
</html>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Mermaid Diagram</title>
|
|
7
|
+
<style>
|
|
8
|
+
body {
|
|
9
|
+
box-sizing: border-box;
|
|
10
|
+
font-family: Arial, sans-serif;
|
|
11
|
+
padding: 40px;
|
|
12
|
+
padding-top: 60px;
|
|
13
|
+
height: 100vh;
|
|
14
|
+
}
|
|
15
|
+
.container {
|
|
16
|
+
height: 100%;
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
}
|
|
20
|
+
h1 {
|
|
21
|
+
text-align: center;
|
|
22
|
+
font-size: 50px;
|
|
23
|
+
color: #333;
|
|
24
|
+
margin-bottom: 30px;
|
|
25
|
+
}
|
|
26
|
+
.mermaid {
|
|
27
|
+
width: 100%;
|
|
28
|
+
height: 100%;
|
|
29
|
+
margin: 0 auto;
|
|
30
|
+
display: flex;
|
|
31
|
+
justify-content: center;
|
|
32
|
+
align-items: center;
|
|
33
|
+
flex-grow: 1;
|
|
34
|
+
overflow: auto;
|
|
35
|
+
}
|
|
36
|
+
.mermaid svg {
|
|
37
|
+
max-width: 100%;
|
|
38
|
+
max-height: 100%;
|
|
39
|
+
height: auto;
|
|
40
|
+
width: auto;
|
|
41
|
+
}
|
|
42
|
+
</style>
|
|
43
|
+
<!-- Include Mermaid from CDN -->
|
|
44
|
+
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
|
|
45
|
+
<script>
|
|
46
|
+
mermaid.initialize({
|
|
47
|
+
startOnLoad: true,
|
|
48
|
+
theme: 'default',
|
|
49
|
+
flowchart: {
|
|
50
|
+
useMaxWidth: true
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
</script>
|
|
54
|
+
</head>
|
|
55
|
+
<body>
|
|
56
|
+
<div class="container">
|
|
57
|
+
<h1>${title}</h1>
|
|
58
|
+
<div class="mermaid">
|
|
59
|
+
${diagram_code}
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</body>
|
|
63
|
+
</html>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"title": "Business presentation",
|
|
3
|
-
"description": "Template for
|
|
4
|
-
"systemPrompt": "Generate a script for a business presentation of the given topic. Use textSlides or markdown to show slides or use imagePrompt to generate an appropriate image for that page. Use the JSON below as a template",
|
|
3
|
+
"description": "Template for business presentation.",
|
|
4
|
+
"systemPrompt": "Generate a script for a business presentation of the given topic. Use textSlides or markdown to show slides or use imagePrompt to generate an appropriate image for that page. Use the JSON below as a template. chartData is the data for Chart.js",
|
|
5
5
|
"script": {
|
|
6
6
|
"$mulmocast": {
|
|
7
7
|
"version": "1.0",
|
|
@@ -13,9 +13,7 @@
|
|
|
13
13
|
"height": 1024
|
|
14
14
|
},
|
|
15
15
|
"imageParams": {
|
|
16
|
-
"style": "Style appropriate for business environment."
|
|
17
|
-
"model": "gpt-image-1",
|
|
18
|
-
"size": "1536x1024"
|
|
16
|
+
"style": "Style appropriate for business environment."
|
|
19
17
|
},
|
|
20
18
|
"speechParams": {
|
|
21
19
|
"speakers": {
|
|
@@ -28,6 +26,19 @@
|
|
|
28
26
|
}
|
|
29
27
|
}
|
|
30
28
|
},
|
|
29
|
+
"textSlideParams": {
|
|
30
|
+
"cssStyles": [
|
|
31
|
+
"body { padding: 40px; padding-top: 60px; font-family: Arial, sans-serif;color:#333; font-size: 36px }",
|
|
32
|
+
"h1 { font-size: 50px; text-align: center }",
|
|
33
|
+
"ul { margin-left: 36px } ",
|
|
34
|
+
"pre { background: #eeeecc; font-size: 24px; padding:10px }",
|
|
35
|
+
"p { margin-left: 36px }",
|
|
36
|
+
"table { font-size: 36px; margin: auto; border: 1px solid gray; border-collapse: collapse }",
|
|
37
|
+
"th { border-bottom: 1px solid gray }",
|
|
38
|
+
"td, th { padding: 8px }",
|
|
39
|
+
"tr:nth-child(even) { background-color: #eee }"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
31
42
|
"lang": "en",
|
|
32
43
|
"beats": [
|
|
33
44
|
{
|
|
@@ -41,7 +52,7 @@
|
|
|
41
52
|
}
|
|
42
53
|
},
|
|
43
54
|
"textSlideParams": {
|
|
44
|
-
"cssStyles": ["h1 { margin-top:
|
|
55
|
+
"cssStyles": ["h1 { margin-top: 300px }"]
|
|
45
56
|
}
|
|
46
57
|
},
|
|
47
58
|
{
|
|
@@ -83,6 +94,49 @@
|
|
|
83
94
|
"speaker": "Presenter",
|
|
84
95
|
"text": "Our story begins with tree-dwelling primates—small mammals with forward-facing eyes and grasping hands. These ancestors lived in forests and evolved traits useful for climbing and visual depth perception.",
|
|
85
96
|
"imagePrompt": "tree-dwelling primates with forward-facing eyes in a jungle."
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"speaker": "Presenter",
|
|
100
|
+
"text": "This page shows the sales and profits of this company from January 2024 to June 2024.",
|
|
101
|
+
"image": {
|
|
102
|
+
"type": "chart",
|
|
103
|
+
"title": "Sales and Profits (from Jan to June)",
|
|
104
|
+
"chartData": {
|
|
105
|
+
"type": "bar",
|
|
106
|
+
"data": {
|
|
107
|
+
"labels": ["January", "February", "March", "April", "May", "June"],
|
|
108
|
+
"datasets": [
|
|
109
|
+
{
|
|
110
|
+
"label": "Revenue ($1000s)",
|
|
111
|
+
"data": [120, 135, 180, 155, 170, 190],
|
|
112
|
+
"backgroundColor": "rgba(54, 162, 235, 0.5)",
|
|
113
|
+
"borderColor": "rgba(54, 162, 235, 1)",
|
|
114
|
+
"borderWidth": 1
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"label": "Profit ($1000s)",
|
|
118
|
+
"data": [45, 52, 68, 53, 61, 73],
|
|
119
|
+
"backgroundColor": "rgba(75, 192, 192, 0.5)",
|
|
120
|
+
"borderColor": "rgba(75, 192, 192, 1)",
|
|
121
|
+
"borderWidth": 1
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
},
|
|
125
|
+
"options": {
|
|
126
|
+
"responsive": true,
|
|
127
|
+
"animation": false
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"speaker": "Presenter",
|
|
134
|
+
"text": "Next, let's look at a diagram of our business process flow. This illustrates the key steps from product development to sales.",
|
|
135
|
+
"image": {
|
|
136
|
+
"type": "mermaid",
|
|
137
|
+
"title": "Business Process Flow",
|
|
138
|
+
"code": "graph LR\n A[Market Research] --> B[Product Planning]\n B --> C[Development]\n C --> D[Testing]\n D --> E[Manufacturing]\n E --> F[Marketing]\n F --> G[Sales]\n G --> H[Customer Support]\n H --> A"
|
|
139
|
+
}
|
|
86
140
|
}
|
|
87
141
|
]
|
|
88
142
|
}
|
|
@@ -13,9 +13,7 @@
|
|
|
13
13
|
"height": 1024
|
|
14
14
|
},
|
|
15
15
|
"imageParams": {
|
|
16
|
-
"style": "A hand-drawn style illustration with a warm, nostalgic atmosphere. The background is rich with natural scenery—lush forests, cloudy skies, and traditional Japanese architecture. Characters have expressive eyes, soft facial features, and are portrayed with gentle lighting and subtle shading. The color palette is muted yet vivid, using earthy tones and watercolor-like textures. The overall scene feels magical and peaceful, with a sense of quiet wonder and emotional depth, reminiscent of classic 1980s and 1990s Japanese animation."
|
|
17
|
-
"model": "gpt-image-1",
|
|
18
|
-
"size": "1536x1024"
|
|
16
|
+
"style": "A hand-drawn style illustration with a warm, nostalgic atmosphere. The background is rich with natural scenery—lush forests, cloudy skies, and traditional Japanese architecture. Characters have expressive eyes, soft facial features, and are portrayed with gentle lighting and subtle shading. The color palette is muted yet vivid, using earthy tones and watercolor-like textures. The overall scene feels magical and peaceful, with a sense of quiet wonder and emotional depth, reminiscent of classic 1980s and 1990s Japanese animation."
|
|
19
17
|
},
|
|
20
18
|
"speechParams": {
|
|
21
19
|
"speakers": {
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Coding presentation",
|
|
3
|
+
"description": "Template for software and coding presentation.",
|
|
4
|
+
"systemPrompt": "Generate a script for a technical presentation of the given topic. Use markdown with a code block to show some code on a slide. Use the JSON below as a template.",
|
|
5
|
+
"script": {
|
|
6
|
+
"$mulmocast": {
|
|
7
|
+
"version": "1.0",
|
|
8
|
+
"credit": "closing"
|
|
9
|
+
},
|
|
10
|
+
"title": "Sample Title",
|
|
11
|
+
"canvasSize": {
|
|
12
|
+
"width": 1536,
|
|
13
|
+
"height": 1024
|
|
14
|
+
},
|
|
15
|
+
"imageParams": {
|
|
16
|
+
"style": "Style appropriate for software presentation."
|
|
17
|
+
},
|
|
18
|
+
"speechParams": {
|
|
19
|
+
"speakers": {
|
|
20
|
+
"Presenter": {
|
|
21
|
+
"voiceId": "shimmer",
|
|
22
|
+
"displayName": {
|
|
23
|
+
"en": "Presenter",
|
|
24
|
+
"ja": "語り手"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"lang": "en",
|
|
30
|
+
"textSlideParams": {
|
|
31
|
+
"cssStyles": [
|
|
32
|
+
"body { margin: 40px; margin-top: 60px; color:#333; font-size: 48px }",
|
|
33
|
+
"h1 { font-size: 60px; text-align: center }",
|
|
34
|
+
"ul { margin-left: 40px } ",
|
|
35
|
+
"pre { background: #eeeecc; font-size: 24px; padding:10px }",
|
|
36
|
+
"p { margin-left: 40px }",
|
|
37
|
+
"table { font-size: 40px; margin: auto; border: 1px solid gray; border-collapse: collapse }",
|
|
38
|
+
"th { border-bottom: 1px solid gray }",
|
|
39
|
+
"td, th { padding: 8px }",
|
|
40
|
+
"tr:nth-child(even) { background-color: #eee }"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"beats": [
|
|
44
|
+
{
|
|
45
|
+
"speaker": "Presenter",
|
|
46
|
+
"text": "Today we're exploring a fascinating concept that has shaped some of the most innovative companies and leaders of our time: the Reality Distortion Field. This term has become synonymous with visionary leadership and the ability to accomplish seemingly impossible goals.",
|
|
47
|
+
"image": {
|
|
48
|
+
"type": "textSlide",
|
|
49
|
+
"slide": {
|
|
50
|
+
"title": "This is the title of this slide",
|
|
51
|
+
"bullets": []
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"textSlideParams": {
|
|
55
|
+
"cssStyles": ["h1 { margin-top: 400px }"]
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"speaker": "Presenter",
|
|
60
|
+
"text": "Here is the sample code",
|
|
61
|
+
"image": {
|
|
62
|
+
"type": "markdown",
|
|
63
|
+
"markdown": ["# Markdown Table Example", "```TypeScript", "const main = () => {", " console.log('Hello World')", "}", "```"]
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"speaker": "Presenter",
|
|
68
|
+
"text": "The evolution of humans is a complex journey that spans millions of years, shaped by biology, environment, and culture. Here's a high-level summary of the key stages in human evolution",
|
|
69
|
+
"image": {
|
|
70
|
+
"type": "textSlide",
|
|
71
|
+
"slide": {
|
|
72
|
+
"title": "Human Evolution",
|
|
73
|
+
"bullets": [
|
|
74
|
+
"Early Primates",
|
|
75
|
+
"Hominids and Hominins",
|
|
76
|
+
"Australopithecus",
|
|
77
|
+
"Genus Homo Emerges",
|
|
78
|
+
"Homo erectus and Migration",
|
|
79
|
+
"Neanderthals and Other Archaic Humans",
|
|
80
|
+
"Homo sapiens"
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"speaker": "Presenter",
|
|
87
|
+
"text": "Our story begins with tree-dwelling primates—small mammals with forward-facing eyes and grasping hands. These ancestors lived in forests and evolved traits useful for climbing and visual depth perception.",
|
|
88
|
+
"image": {
|
|
89
|
+
"type": "markdown",
|
|
90
|
+
"markdown": [
|
|
91
|
+
"# Markdown Table Example",
|
|
92
|
+
"| Item | In Stock | Price |",
|
|
93
|
+
"| :---------------- | :------: | ----: |",
|
|
94
|
+
"| Python Hat | True | 23.99 |",
|
|
95
|
+
"| SQL Hat | True | 23.99 |",
|
|
96
|
+
"| Codecademy Tee | False | 19.99 |",
|
|
97
|
+
"| Codecademy Hoodie | False | 42.99 |"
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
}
|
package/lib/actions/audio.d.ts
CHANGED