mulmocast 1.2.1 → 1.2.3

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "title": "Presentation with Ani",
2
+ "title": "Presentation by Ani",
3
3
  "description": "Template for presentation with Ani.",
4
4
  "systemPrompt": "言葉づかいは思いっきりツンデレにして。Another AI will generate comic for each beat based on the image prompt of that beat. You don't need to specify the style of the image, just describe the scene. Mention the reference in one of beats, if it exists. Use the JSON below as a template. Create appropriate amount of beats, and make sure the beats are coherent and flow well.",
5
5
  "presentationStyle": {
@@ -16,7 +16,13 @@
16
16
  "speakers": {
17
17
  "Presenter": {
18
18
  "voiceId": "shimmer",
19
- "speechOptions": { "instruction": "Speak in a slightly high-pitched, curt tone with sudden flustered shifts—like a tsundere anime girl." }
19
+ "speechOptions": { "instruction": "Speak in a slightly high-pitched, curt tone with sudden flustered shifts—like a tsundere anime girl." },
20
+ "lang": {
21
+ "ja": {
22
+ "provider": "nijivoice",
23
+ "voiceId": "9d9ed276-49ee-443a-bc19-26e6136d05f0"
24
+ }
25
+ }
20
26
  }
21
27
  }
22
28
  },
@@ -26,7 +32,6 @@
26
32
  "url": "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/morning001.mp3"
27
33
  }
28
34
  },
29
- "lang": "en",
30
35
  "canvasSize": {
31
36
  "width": 1024,
32
37
  "height": 1536
@@ -7,7 +7,6 @@
7
7
  "version": "1.1",
8
8
  "credit": "closing"
9
9
  },
10
- "lang": "en",
11
10
  "canvasSize": {
12
11
  "width": 1536,
13
12
  "height": 1024
@@ -88,6 +88,7 @@ const graph_tts = {
88
88
  force: [":context.force"],
89
89
  file: ":preprocessor.audioPath",
90
90
  index: ":__mapIndex",
91
+ id: ":beat.id",
91
92
  mulmoContext: ":context",
92
93
  sessionType: "audio",
93
94
  },
@@ -26,7 +26,7 @@ const graph_data = {
26
26
  agent: async (namedInputs) => {
27
27
  const { beat, context, index } = namedInputs;
28
28
  try {
29
- MulmoStudioContextMethods.setBeatSessionState(context, "caption", index, true);
29
+ MulmoStudioContextMethods.setBeatSessionState(context, "caption", index, beat.id, true);
30
30
  const captionParams = mulmoCaptionParamsSchema.parse({ ...context.studio.script.captionParams, ...beat.captionParams });
31
31
  const canvasSize = MulmoPresentationStyleMethods.getCanvasSize(context.presentationStyle);
32
32
  const imagePath = getCaptionImagePath(context, index);
@@ -46,7 +46,7 @@ const graph_data = {
46
46
  return imagePath;
47
47
  }
48
48
  finally {
49
- MulmoStudioContextMethods.setBeatSessionState(context, "caption", index, false);
49
+ MulmoStudioContextMethods.setBeatSessionState(context, "caption", index, beat.id, false);
50
50
  }
51
51
  },
52
52
  inputs: {
@@ -64,13 +64,13 @@ export const imagePluginAgent = async (namedInputs) => {
64
64
  const imagePath = getBeatPngImagePath(context, index);
65
65
  const plugin = MulmoBeatMethods.getPlugin(beat);
66
66
  try {
67
- MulmoStudioContextMethods.setBeatSessionState(context, "image", index, true);
67
+ MulmoStudioContextMethods.setBeatSessionState(context, "image", index, beat.id, true);
68
68
  const processorParams = { beat, context, imagePath, ...htmlStyle(context, beat) };
69
69
  await plugin.process(processorParams);
70
- MulmoStudioContextMethods.setBeatSessionState(context, "image", index, false);
70
+ MulmoStudioContextMethods.setBeatSessionState(context, "image", index, beat.id, false);
71
71
  }
72
72
  catch (error) {
73
- MulmoStudioContextMethods.setBeatSessionState(context, "image", index, false);
73
+ MulmoStudioContextMethods.setBeatSessionState(context, "image", index, beat.id, false);
74
74
  throw error;
75
75
  }
76
76
  };
@@ -88,6 +88,7 @@ const beat_graph_data = {
88
88
  force: [":context.force", ":forceImage"],
89
89
  file: ":preprocessor.htmlPath",
90
90
  index: ":__mapIndex",
91
+ id: ":beat.id",
91
92
  mulmoContext: ":context",
92
93
  sessionType: "html",
93
94
  },
@@ -130,6 +131,7 @@ const beat_graph_data = {
130
131
  force: [":context.force", ":forceImage"],
131
132
  file: ":preprocessor.imagePath",
132
133
  index: ":__mapIndex",
134
+ id: ":beat.id",
133
135
  mulmoContext: ":context",
134
136
  sessionType: "image",
135
137
  },
@@ -155,6 +157,7 @@ const beat_graph_data = {
155
157
  force: [":context.force", ":forceMovie"],
156
158
  file: ":preprocessor.movieFile",
157
159
  index: ":__mapIndex",
160
+ id: ":beat.id",
158
161
  sessionType: "movie",
159
162
  mulmoContext: ":context",
160
163
  },
@@ -214,6 +217,7 @@ const beat_graph_data = {
214
217
  force: [":context.force"],
215
218
  file: ":preprocessor.soundEffectFile",
216
219
  index: ":__mapIndex",
220
+ id: ":beat.id",
217
221
  sessionType: "soundEffect",
218
222
  mulmoContext: ":context",
219
223
  },
@@ -237,6 +241,7 @@ const beat_graph_data = {
237
241
  force: [":context.force"],
238
242
  file: ":preprocessor.lipSyncFile",
239
243
  index: ":__mapIndex",
244
+ id: ":beat.id",
240
245
  sessionType: "lipSync",
241
246
  mulmoContext: ":context",
242
247
  },
@@ -184,11 +184,11 @@ const localizedTextCacheAgentFilter = async (context, next) => {
184
184
  return { text: multiLingual.multiLingualTexts[targetLang].text };
185
185
  }
186
186
  try {
187
- MulmoStudioContextMethods.setBeatSessionState(mulmoContext, "multiLingual", beatIndex, true);
187
+ MulmoStudioContextMethods.setBeatSessionState(mulmoContext, "multiLingual", beatIndex, beat.id, true);
188
188
  return await next(context);
189
189
  }
190
190
  finally {
191
- MulmoStudioContextMethods.setBeatSessionState(mulmoContext, "multiLingual", beatIndex, false);
191
+ MulmoStudioContextMethods.setBeatSessionState(mulmoContext, "multiLingual", beatIndex, beat.id, false);
192
192
  }
193
193
  };
194
194
  const agentFilters = [
@@ -0,0 +1,18 @@
1
+ type BgmAsset = {
2
+ name: string;
3
+ title: string;
4
+ url: string;
5
+ suno_url: string;
6
+ date: string;
7
+ duration: string;
8
+ account: string;
9
+ original_license: string;
10
+ prompt: string;
11
+ model: string;
12
+ };
13
+ export type BgmAssets = {
14
+ license: string;
15
+ bgms: BgmAsset[];
16
+ };
17
+ export declare const bgmAssets: BgmAssets;
18
+ export {};
@@ -0,0 +1,101 @@
1
+ export const bgmAssets = {
2
+ license: "Free to distribute as the BMG of media generated by MulmoCast, including commercial use.",
3
+ bgms: [
4
+ {
5
+ name: "story001.mp3",
6
+ title: "Whispered Melody",
7
+ url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/story001.mp3",
8
+ suno_url: "https://suno.com/s/v6zer50aQJu8Y0qA",
9
+ date: "2025-06-17",
10
+ duration: "03:17",
11
+ account: "@snakajima",
12
+ original_license: "Generated by Suno with commercial use rights (PRO Plan)",
13
+ prompt: "instrumental, smooth, piano",
14
+ model: "v4.5 beta",
15
+ },
16
+ {
17
+ name: "story002.mp3",
18
+ title: "Rise and Shine",
19
+ url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/story002.mp3",
20
+ suno_url: "https://suno.com/s/mJnvyu3UXnkdAPfQ",
21
+ date: "2025-06-17",
22
+ duration: "04:04",
23
+ account: "@snakajima",
24
+ original_license: "Generated by Suno with commercial use rights (PRO Plan)",
25
+ prompt: "techno, inspiring, piano",
26
+ model: "v4.5 beta",
27
+ },
28
+ {
29
+ name: "story003.mp3",
30
+ title: "Chasing the Sunset",
31
+ url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/story003.mp3",
32
+ suno_url: "https://suno.com/s/2zGjMQ9vURJbaMZA",
33
+ date: "2025-06-17",
34
+ duration: "02:49",
35
+ account: "@snakajima",
36
+ original_license: "Generated by Suno with commercial use rights (PRO Plan)",
37
+ prompt: "piano, inspiring, sunset",
38
+ model: "v4.5 beta",
39
+ },
40
+ {
41
+ name: "story004.mp3",
42
+ title: "Whispering Keys",
43
+ url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/story004.mp3",
44
+ suno_url: "https://suno.com/s/0SFoBRsBWsncw6tu",
45
+ date: "2025-06-17",
46
+ duration: "04:00",
47
+ account: "@snakajima",
48
+ original_license: "Generated by Suno with commercial use rights (PRO Plan)",
49
+ prompt: "Piano, classical, ambient",
50
+ model: "v4",
51
+ },
52
+ {
53
+ name: "story005.mp3",
54
+ title: "Whisper of Ivory",
55
+ url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/story005.mp3",
56
+ suno_url: "https://suno.com/s/0SFoBRsBWsncw6tu",
57
+ date: "2025-06-17",
58
+ duration: "04:00",
59
+ account: "@snakajima",
60
+ original_license: "Generated by Suno with commercial use rights (PRO Plan)",
61
+ prompt: "Piano solo, classical, ambient",
62
+ model: "v4",
63
+ },
64
+ {
65
+ name: "theme001.mp3",
66
+ title: "Rise of the Flame",
67
+ url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/theme001.mp3",
68
+ suno_url: "https://suno.com/s/WhYOf8oJYhBgSKET",
69
+ date: "2025-06-20",
70
+ duration: "03:23",
71
+ account: "@snakajima",
72
+ original_license: "Generated by Suno with commercial use rights (PRO Plan)",
73
+ prompt: "Olympic Theme, classical, emotional",
74
+ model: "v4",
75
+ },
76
+ {
77
+ name: "olympic001.mp3",
78
+ title: "Olympic-style Theme Music",
79
+ url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/olympic001.mp3",
80
+ suno_url: "https://suno.com/s/32wpnmCrkFVvkTSQ",
81
+ date: "2025-07-17",
82
+ duration: "02:54",
83
+ account: "@snakajima",
84
+ original_license: "Generated by Suno with commercial use rights (PRO Plan)",
85
+ prompt: "Epic orchestral fanfare in the style of John Williams' Olympic Fanfare and Theme. Bright brass fanfare, soaring strings, powerful percussion, and heroic French horn melodies. Triumphant and majestic mood, suitable for an opening ceremony or national celebration. Emphasize dynamic builds, rich harmonies, and cinematic grandeur.",
86
+ model: "v4.5+",
87
+ },
88
+ {
89
+ name: "morning001.mp3",
90
+ title: "Morning Dance",
91
+ url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/morning001.mp3",
92
+ suno_url: "https://suno.com/s/9MTkutZYqxeyBlwK",
93
+ date: "2025-07-17",
94
+ duration: "03:52",
95
+ account: "@snakajima",
96
+ original_license: "morning, piano solo, Japanese name, sexy",
97
+ prompt: "morning, piano solo, Japanese name, sexy",
98
+ model: "v4.5+",
99
+ },
100
+ ],
101
+ };
@@ -1,3 +1,4 @@
1
1
  export * from "./promptTemplates.js";
2
2
  export * from "./scriptTemplates.js";
3
3
  export * from "./templateDataSet.js";
4
+ export * from "./bgmAssets.js";
package/lib/data/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./promptTemplates.js";
2
2
  export * from "./scriptTemplates.js";
3
3
  export * from "./templateDataSet.js";
4
+ export * from "./bgmAssets.js";
@@ -33,8 +33,8 @@ export declare const promptTemplates: ({
33
33
  presenter?: undefined;
34
34
  optimus?: undefined;
35
35
  };
36
- provider: string;
37
36
  style: string;
37
+ provider?: undefined;
38
38
  };
39
39
  movieParams: {
40
40
  provider: string;
@@ -50,8 +50,8 @@ export declare const promptTemplates: ({
50
50
  en: string;
51
51
  };
52
52
  voiceId: string;
53
+ lang?: undefined;
53
54
  speechOptions?: undefined;
54
- provider?: undefined;
55
55
  };
56
56
  Announcer?: undefined;
57
57
  Student?: undefined;
@@ -100,8 +100,8 @@ export declare const promptTemplates: ({
100
100
  presenter?: undefined;
101
101
  optimus?: undefined;
102
102
  };
103
- provider: string;
104
103
  style: string;
104
+ provider?: undefined;
105
105
  };
106
106
  movieParams: {
107
107
  model: string;
@@ -113,78 +113,17 @@ export declare const promptTemplates: ({
113
113
  speechParams: {
114
114
  speakers: {
115
115
  Presenter: {
116
+ lang: {
117
+ ja: {
118
+ provider: string;
119
+ voiceId: string;
120
+ };
121
+ };
116
122
  speechOptions: {
117
123
  instruction: string;
118
- speed?: undefined;
119
- };
120
- voiceId: string;
121
- displayName?: undefined;
122
- provider?: undefined;
123
- };
124
- Announcer?: undefined;
125
- Student?: undefined;
126
- Teacher?: undefined;
127
- };
128
- };
129
- };
130
- scriptName: string;
131
- systemPrompt: string;
132
- title: string;
133
- } | {
134
- description: string;
135
- filename: string;
136
- presentationStyle: {
137
- $mulmocast: {
138
- credit: string;
139
- version: string;
140
- };
141
- audioParams: {
142
- audioVolume: number;
143
- bgm: {
144
- kind: string;
145
- url: string;
146
- };
147
- bgmVolume: number;
148
- closingPadding: number;
149
- introPadding: number;
150
- outroPadding: number;
151
- padding: number;
152
- suppressSpeech: boolean;
153
- };
154
- canvasSize: {
155
- height: number;
156
- width: number;
157
- };
158
- imageParams: {
159
- images: {
160
- ani: {
161
- source: {
162
- kind: string;
163
- url: string;
164
124
  };
165
- type: string;
166
- };
167
- girl?: undefined;
168
- presenter?: undefined;
169
- optimus?: undefined;
170
- };
171
- provider: string;
172
- style: string;
173
- };
174
- movieParams: {
175
- model: string;
176
- provider: string;
177
- };
178
- soundEffectParams: {
179
- provider: string;
180
- };
181
- speechParams: {
182
- speakers: {
183
- Presenter: {
184
- provider: string;
185
125
  voiceId: string;
186
126
  displayName?: undefined;
187
- speechOptions?: undefined;
188
127
  };
189
128
  Announcer?: undefined;
190
129
  Student?: undefined;
@@ -248,8 +187,8 @@ export declare const promptTemplates: ({
248
187
  en: string;
249
188
  };
250
189
  voiceId: string;
190
+ lang?: undefined;
251
191
  speechOptions?: undefined;
252
- provider?: undefined;
253
192
  };
254
193
  Announcer?: undefined;
255
194
  Student?: undefined;
@@ -283,9 +222,9 @@ export declare const promptTemplates: ({
283
222
  width: number;
284
223
  };
285
224
  imageParams: {
286
- provider: string;
287
225
  style: string;
288
226
  images?: undefined;
227
+ provider?: undefined;
289
228
  };
290
229
  movieParams: {
291
230
  provider: string;
@@ -301,8 +240,8 @@ export declare const promptTemplates: ({
301
240
  en: string;
302
241
  };
303
242
  voiceId: string;
243
+ lang?: undefined;
304
244
  speechOptions?: undefined;
305
- provider?: undefined;
306
245
  };
307
246
  Announcer?: undefined;
308
247
  Student?: undefined;
@@ -348,8 +287,8 @@ export declare const promptTemplates: ({
348
287
  ani?: undefined;
349
288
  optimus?: undefined;
350
289
  };
351
- provider: string;
352
290
  style: string;
291
+ provider?: undefined;
353
292
  };
354
293
  movieParams: {
355
294
  provider: string;
@@ -365,73 +304,8 @@ export declare const promptTemplates: ({
365
304
  en: string;
366
305
  };
367
306
  voiceId: string;
307
+ lang?: undefined;
368
308
  speechOptions?: undefined;
369
- provider?: undefined;
370
- };
371
- Announcer?: undefined;
372
- Student?: undefined;
373
- Teacher?: undefined;
374
- };
375
- };
376
- };
377
- scriptName: string;
378
- systemPrompt: string;
379
- title: string;
380
- } | {
381
- description: string;
382
- filename: string;
383
- presentationStyle: {
384
- $mulmocast: {
385
- credit: string;
386
- version: string;
387
- };
388
- audioParams: {
389
- audioVolume: number;
390
- bgmVolume: number;
391
- closingPadding: number;
392
- introPadding: number;
393
- outroPadding: number;
394
- padding: number;
395
- suppressSpeech: boolean;
396
- bgm?: undefined;
397
- };
398
- canvasSize: {
399
- height: number;
400
- width: number;
401
- };
402
- imageParams: {
403
- images: {
404
- presenter: {
405
- source: {
406
- kind: string;
407
- url: string;
408
- };
409
- type: string;
410
- };
411
- girl?: undefined;
412
- ani?: undefined;
413
- optimus?: undefined;
414
- };
415
- provider: string;
416
- style: string;
417
- };
418
- movieParams: {
419
- provider: string;
420
- model?: undefined;
421
- };
422
- soundEffectParams: {
423
- provider: string;
424
- };
425
- speechParams: {
426
- speakers: {
427
- Presenter: {
428
- provider: string;
429
- speechOptions: {
430
- speed: number;
431
- instruction?: undefined;
432
- };
433
- voiceId: string;
434
- displayName?: undefined;
435
309
  };
436
310
  Announcer?: undefined;
437
311
  Student?: undefined;
@@ -483,8 +357,8 @@ export declare const promptTemplates: ({
483
357
  girl?: undefined;
484
358
  ani?: undefined;
485
359
  };
486
- provider: string;
487
360
  style: string;
361
+ provider?: undefined;
488
362
  };
489
363
  movieParams: {
490
364
  provider: string;
@@ -500,8 +374,8 @@ export declare const promptTemplates: ({
500
374
  en: string;
501
375
  };
502
376
  voiceId: string;
377
+ lang?: undefined;
503
378
  speechOptions?: undefined;
504
- provider?: undefined;
505
379
  };
506
380
  Announcer?: undefined;
507
381
  Student?: undefined;
@@ -512,13 +386,6 @@ export declare const promptTemplates: ({
512
386
  scriptName: string;
513
387
  systemPrompt: string;
514
388
  title: string;
515
- } | {
516
- description: string;
517
- filename: string;
518
- systemPrompt: string;
519
- title: string;
520
- presentationStyle?: undefined;
521
- scriptName?: undefined;
522
389
  } | {
523
390
  description: string;
524
391
  filename: string;
@@ -542,9 +409,9 @@ export declare const promptTemplates: ({
542
409
  width: number;
543
410
  };
544
411
  imageParams: {
545
- provider: string;
546
412
  style: string;
547
413
  images?: undefined;
414
+ provider?: undefined;
548
415
  };
549
416
  movieParams: {
550
417
  provider: string;
@@ -606,9 +473,9 @@ export declare const promptTemplates: ({
606
473
  width: number;
607
474
  };
608
475
  imageParams: {
609
- provider: string;
610
476
  style: string;
611
477
  images?: undefined;
478
+ provider?: undefined;
612
479
  };
613
480
  movieParams: {
614
481
  provider: string;
@@ -624,8 +491,8 @@ export declare const promptTemplates: ({
624
491
  en: string;
625
492
  };
626
493
  voiceId: string;
494
+ lang?: undefined;
627
495
  speechOptions?: undefined;
628
- provider?: undefined;
629
496
  };
630
497
  Announcer?: undefined;
631
498
  Student?: undefined;
@@ -662,9 +529,9 @@ export declare const promptTemplates: ({
662
529
  width: number;
663
530
  };
664
531
  imageParams: {
665
- provider: string;
666
532
  style: string;
667
533
  images?: undefined;
534
+ provider?: undefined;
668
535
  };
669
536
  movieParams: {
670
537
  provider: string;
@@ -680,8 +547,8 @@ export declare const promptTemplates: ({
680
547
  en: string;
681
548
  };
682
549
  voiceId: string;
550
+ lang?: undefined;
683
551
  speechOptions?: undefined;
684
- provider?: undefined;
685
552
  };
686
553
  Announcer?: undefined;
687
554
  Student?: undefined;