runapi-suno 0.2.6 → 0.2.8

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.
@@ -0,0 +1,744 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RunApi
4
+ module Suno
5
+ CONTRACT = {
6
+ "add-instrumental" => {
7
+ "models" => ["suno-v4.5-plus", "suno-v5", "suno-v5.5"],
8
+ "fields_by_model" => {
9
+ "suno-v4.5-plus" => {
10
+ "model" => {
11
+ "required" => true
12
+ },
13
+ "upload_url" => {
14
+ "required" => true
15
+ },
16
+ "vocal_gender" => {
17
+ "enum" => ["male", "female"]
18
+ }
19
+ },
20
+ "suno-v5" => {
21
+ "model" => {
22
+ "required" => true
23
+ },
24
+ "upload_url" => {
25
+ "required" => true
26
+ },
27
+ "vocal_gender" => {
28
+ "enum" => ["male", "female"]
29
+ }
30
+ },
31
+ "suno-v5.5" => {
32
+ "model" => {
33
+ "required" => true
34
+ },
35
+ "upload_url" => {
36
+ "required" => true
37
+ },
38
+ "vocal_gender" => {
39
+ "enum" => ["male", "female"]
40
+ }
41
+ }
42
+ }
43
+ },
44
+ "add-vocals" => {
45
+ "models" => ["suno-v4.5-plus", "suno-v5"],
46
+ "fields_by_model" => {
47
+ "suno-v4.5-plus" => {
48
+ "lyrics" => {
49
+ "required" => true
50
+ },
51
+ "model" => {
52
+ "required" => true
53
+ },
54
+ "upload_url" => {
55
+ "required" => true
56
+ },
57
+ "vocal_gender" => {
58
+ "enum" => ["male", "female"]
59
+ }
60
+ },
61
+ "suno-v5" => {
62
+ "lyrics" => {
63
+ "required" => true
64
+ },
65
+ "model" => {
66
+ "required" => true
67
+ },
68
+ "upload_url" => {
69
+ "required" => true
70
+ },
71
+ "vocal_gender" => {
72
+ "enum" => ["male", "female"]
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "boost-style" => {
78
+ "models" => [],
79
+ "fields_by_model" => {
80
+ "_" => {}
81
+ }
82
+ },
83
+ "check-voice" => {
84
+ "models" => [],
85
+ "fields_by_model" => {
86
+ "_" => {
87
+ "task_id" => {
88
+ "required" => true
89
+ }
90
+ }
91
+ }
92
+ },
93
+ "convert-audio" => {
94
+ "models" => [],
95
+ "fields_by_model" => {
96
+ "_" => {}
97
+ }
98
+ },
99
+ "cover-audio" => {
100
+ "models" => ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5"],
101
+ "fields_by_model" => {
102
+ "suno-v4" => {
103
+ "model" => {
104
+ "required" => true
105
+ },
106
+ "persona_type" => {
107
+ "enum" => ["style", "voice"]
108
+ },
109
+ "upload_url" => {
110
+ "required" => true
111
+ },
112
+ "vocal_gender" => {
113
+ "enum" => ["male", "female"]
114
+ },
115
+ "vocal_mode" => {
116
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
117
+ "required" => true
118
+ }
119
+ },
120
+ "suno-v4.5" => {
121
+ "model" => {
122
+ "required" => true
123
+ },
124
+ "persona_type" => {
125
+ "enum" => ["style", "voice"]
126
+ },
127
+ "upload_url" => {
128
+ "required" => true
129
+ },
130
+ "vocal_gender" => {
131
+ "enum" => ["male", "female"]
132
+ },
133
+ "vocal_mode" => {
134
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
135
+ "required" => true
136
+ }
137
+ },
138
+ "suno-v4.5-all" => {
139
+ "model" => {
140
+ "required" => true
141
+ },
142
+ "persona_type" => {
143
+ "enum" => ["style", "voice"]
144
+ },
145
+ "upload_url" => {
146
+ "required" => true
147
+ },
148
+ "vocal_gender" => {
149
+ "enum" => ["male", "female"]
150
+ },
151
+ "vocal_mode" => {
152
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
153
+ "required" => true
154
+ }
155
+ },
156
+ "suno-v4.5-plus" => {
157
+ "model" => {
158
+ "required" => true
159
+ },
160
+ "persona_type" => {
161
+ "enum" => ["style", "voice"]
162
+ },
163
+ "upload_url" => {
164
+ "required" => true
165
+ },
166
+ "vocal_gender" => {
167
+ "enum" => ["male", "female"]
168
+ },
169
+ "vocal_mode" => {
170
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
171
+ "required" => true
172
+ }
173
+ },
174
+ "suno-v5" => {
175
+ "model" => {
176
+ "required" => true
177
+ },
178
+ "persona_type" => {
179
+ "enum" => ["style", "voice"]
180
+ },
181
+ "upload_url" => {
182
+ "required" => true
183
+ },
184
+ "vocal_gender" => {
185
+ "enum" => ["male", "female"]
186
+ },
187
+ "vocal_mode" => {
188
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
189
+ "required" => true
190
+ }
191
+ },
192
+ "suno-v5.5" => {
193
+ "model" => {
194
+ "required" => true
195
+ },
196
+ "persona_type" => {
197
+ "enum" => ["style", "voice"]
198
+ },
199
+ "upload_url" => {
200
+ "required" => true
201
+ },
202
+ "vocal_gender" => {
203
+ "enum" => ["male", "female"]
204
+ },
205
+ "vocal_mode" => {
206
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
207
+ "required" => true
208
+ }
209
+ }
210
+ },
211
+ "rules" => [{
212
+ "when" => {
213
+ "vocal_mode" => "auto_lyrics"
214
+ },
215
+ "required" => ["prompt"],
216
+ "forbidden" => ["lyrics", "style", "title"]
217
+ }, {
218
+ "when" => {
219
+ "vocal_mode" => "exact_lyrics"
220
+ },
221
+ "required" => ["lyrics", "style", "title"],
222
+ "forbidden" => ["prompt"]
223
+ }, {
224
+ "when" => {
225
+ "vocal_mode" => "instrumental"
226
+ },
227
+ "required" => ["style", "title"],
228
+ "forbidden" => ["prompt", "lyrics"]
229
+ }]
230
+ },
231
+ "create-mashup" => {
232
+ "models" => ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5"],
233
+ "fields_by_model" => {
234
+ "suno-v4" => {
235
+ "model" => {
236
+ "required" => true
237
+ },
238
+ "persona_type" => {
239
+ "enum" => ["style", "voice"]
240
+ },
241
+ "upload_url_list" => {
242
+ "required" => true
243
+ },
244
+ "vocal_gender" => {
245
+ "enum" => ["male", "female"]
246
+ },
247
+ "vocal_mode" => {
248
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
249
+ "required" => true
250
+ }
251
+ },
252
+ "suno-v4.5" => {
253
+ "model" => {
254
+ "required" => true
255
+ },
256
+ "persona_type" => {
257
+ "enum" => ["style", "voice"]
258
+ },
259
+ "upload_url_list" => {
260
+ "required" => true
261
+ },
262
+ "vocal_gender" => {
263
+ "enum" => ["male", "female"]
264
+ },
265
+ "vocal_mode" => {
266
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
267
+ "required" => true
268
+ }
269
+ },
270
+ "suno-v4.5-all" => {
271
+ "model" => {
272
+ "required" => true
273
+ },
274
+ "persona_type" => {
275
+ "enum" => ["style", "voice"]
276
+ },
277
+ "upload_url_list" => {
278
+ "required" => true
279
+ },
280
+ "vocal_gender" => {
281
+ "enum" => ["male", "female"]
282
+ },
283
+ "vocal_mode" => {
284
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
285
+ "required" => true
286
+ }
287
+ },
288
+ "suno-v4.5-plus" => {
289
+ "model" => {
290
+ "required" => true
291
+ },
292
+ "persona_type" => {
293
+ "enum" => ["style", "voice"]
294
+ },
295
+ "upload_url_list" => {
296
+ "required" => true
297
+ },
298
+ "vocal_gender" => {
299
+ "enum" => ["male", "female"]
300
+ },
301
+ "vocal_mode" => {
302
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
303
+ "required" => true
304
+ }
305
+ },
306
+ "suno-v5" => {
307
+ "model" => {
308
+ "required" => true
309
+ },
310
+ "persona_type" => {
311
+ "enum" => ["style", "voice"]
312
+ },
313
+ "upload_url_list" => {
314
+ "required" => true
315
+ },
316
+ "vocal_gender" => {
317
+ "enum" => ["male", "female"]
318
+ },
319
+ "vocal_mode" => {
320
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
321
+ "required" => true
322
+ }
323
+ },
324
+ "suno-v5.5" => {
325
+ "model" => {
326
+ "required" => true
327
+ },
328
+ "persona_type" => {
329
+ "enum" => ["style", "voice"]
330
+ },
331
+ "upload_url_list" => {
332
+ "required" => true
333
+ },
334
+ "vocal_gender" => {
335
+ "enum" => ["male", "female"]
336
+ },
337
+ "vocal_mode" => {
338
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
339
+ "required" => true
340
+ }
341
+ }
342
+ },
343
+ "rules" => [{
344
+ "when" => {
345
+ "vocal_mode" => "auto_lyrics"
346
+ },
347
+ "required" => ["prompt"],
348
+ "forbidden" => ["lyrics", "style", "title"]
349
+ }, {
350
+ "when" => {
351
+ "vocal_mode" => "exact_lyrics"
352
+ },
353
+ "required" => ["lyrics", "style", "title"],
354
+ "forbidden" => ["prompt"]
355
+ }, {
356
+ "when" => {
357
+ "vocal_mode" => "instrumental"
358
+ },
359
+ "required" => ["style", "title"],
360
+ "forbidden" => ["prompt", "lyrics"]
361
+ }]
362
+ },
363
+ "extend-music" => {
364
+ "models" => ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5"],
365
+ "fields_by_model" => {
366
+ "suno-v4" => {
367
+ "model" => {
368
+ "required" => true
369
+ },
370
+ "parameter_mode" => {
371
+ "enum" => ["source", "custom"]
372
+ },
373
+ "persona_type" => {
374
+ "enum" => ["style", "voice"]
375
+ },
376
+ "vocal_gender" => {
377
+ "enum" => ["male", "female"]
378
+ }
379
+ },
380
+ "suno-v4.5" => {
381
+ "model" => {
382
+ "required" => true
383
+ },
384
+ "parameter_mode" => {
385
+ "enum" => ["source", "custom"]
386
+ },
387
+ "persona_type" => {
388
+ "enum" => ["style", "voice"]
389
+ },
390
+ "vocal_gender" => {
391
+ "enum" => ["male", "female"]
392
+ }
393
+ },
394
+ "suno-v4.5-all" => {
395
+ "model" => {
396
+ "required" => true
397
+ },
398
+ "parameter_mode" => {
399
+ "enum" => ["source", "custom"]
400
+ },
401
+ "persona_type" => {
402
+ "enum" => ["style", "voice"]
403
+ },
404
+ "vocal_gender" => {
405
+ "enum" => ["male", "female"]
406
+ }
407
+ },
408
+ "suno-v4.5-plus" => {
409
+ "model" => {
410
+ "required" => true
411
+ },
412
+ "parameter_mode" => {
413
+ "enum" => ["source", "custom"]
414
+ },
415
+ "persona_type" => {
416
+ "enum" => ["style", "voice"]
417
+ },
418
+ "vocal_gender" => {
419
+ "enum" => ["male", "female"]
420
+ }
421
+ },
422
+ "suno-v5" => {
423
+ "model" => {
424
+ "required" => true
425
+ },
426
+ "parameter_mode" => {
427
+ "enum" => ["source", "custom"]
428
+ },
429
+ "persona_type" => {
430
+ "enum" => ["style", "voice"]
431
+ },
432
+ "vocal_gender" => {
433
+ "enum" => ["male", "female"]
434
+ }
435
+ },
436
+ "suno-v5.5" => {
437
+ "model" => {
438
+ "required" => true
439
+ },
440
+ "parameter_mode" => {
441
+ "enum" => ["source", "custom"]
442
+ },
443
+ "persona_type" => {
444
+ "enum" => ["style", "voice"]
445
+ },
446
+ "vocal_gender" => {
447
+ "enum" => ["male", "female"]
448
+ }
449
+ }
450
+ }
451
+ },
452
+ "generate-artwork" => {
453
+ "models" => [],
454
+ "fields_by_model" => {
455
+ "_" => {
456
+ "task_id" => {
457
+ "required" => true
458
+ }
459
+ }
460
+ }
461
+ },
462
+ "generate-lyrics" => {
463
+ "models" => [],
464
+ "fields_by_model" => {
465
+ "_" => {}
466
+ }
467
+ },
468
+ "generate-midi" => {
469
+ "models" => [],
470
+ "fields_by_model" => {
471
+ "_" => {}
472
+ }
473
+ },
474
+ "generate-persona" => {
475
+ "models" => [],
476
+ "fields_by_model" => {
477
+ "_" => {}
478
+ }
479
+ },
480
+ "generate-voice" => {
481
+ "models" => [],
482
+ "fields_by_model" => {
483
+ "_" => {
484
+ "singer_skill_level" => {
485
+ "enum" => ["beginner", "intermediate", "advanced", "professional"]
486
+ },
487
+ "task_id" => {
488
+ "required" => true
489
+ },
490
+ "verify_url" => {
491
+ "required" => true
492
+ }
493
+ }
494
+ }
495
+ },
496
+ "get-timestamped-lyrics" => {
497
+ "models" => [],
498
+ "fields_by_model" => {
499
+ "_" => {}
500
+ }
501
+ },
502
+ "regenerate-validation-phrase" => {
503
+ "models" => [],
504
+ "fields_by_model" => {
505
+ "_" => {
506
+ "task_id" => {
507
+ "required" => true
508
+ }
509
+ }
510
+ }
511
+ },
512
+ "replace-section" => {
513
+ "models" => [],
514
+ "fields_by_model" => {
515
+ "_" => {
516
+ "full_lyrics" => {
517
+ "required" => true
518
+ },
519
+ "infill_end_time" => {
520
+ "required" => true
521
+ },
522
+ "infill_start_time" => {
523
+ "required" => true
524
+ },
525
+ "lyrics" => {
526
+ "required" => true
527
+ },
528
+ "model" => {
529
+ "enum" => ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5"]
530
+ },
531
+ "tags" => {
532
+ "required" => true
533
+ },
534
+ "title" => {
535
+ "required" => true
536
+ }
537
+ }
538
+ }
539
+ },
540
+ "separate-audio-stems" => {
541
+ "models" => [],
542
+ "fields_by_model" => {
543
+ "_" => {
544
+ "audio_id" => {
545
+ "required" => true
546
+ },
547
+ "task_id" => {
548
+ "required" => true
549
+ }
550
+ }
551
+ }
552
+ },
553
+ "text-to-music" => {
554
+ "models" => ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5"],
555
+ "fields_by_model" => {
556
+ "suno-v4" => {
557
+ "duration_seconds" => {
558
+ "type" => "integer"
559
+ },
560
+ "model" => {
561
+ "required" => true
562
+ },
563
+ "persona_type" => {
564
+ "enum" => ["style", "voice"]
565
+ },
566
+ "vocal_gender" => {
567
+ "enum" => ["male", "female"]
568
+ },
569
+ "vocal_mode" => {
570
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
571
+ "required" => true
572
+ }
573
+ },
574
+ "suno-v4.5" => {
575
+ "duration_seconds" => {
576
+ "type" => "integer"
577
+ },
578
+ "model" => {
579
+ "required" => true
580
+ },
581
+ "persona_type" => {
582
+ "enum" => ["style", "voice"]
583
+ },
584
+ "vocal_gender" => {
585
+ "enum" => ["male", "female"]
586
+ },
587
+ "vocal_mode" => {
588
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
589
+ "required" => true
590
+ }
591
+ },
592
+ "suno-v4.5-all" => {
593
+ "duration_seconds" => {
594
+ "type" => "integer"
595
+ },
596
+ "model" => {
597
+ "required" => true
598
+ },
599
+ "persona_type" => {
600
+ "enum" => ["style", "voice"]
601
+ },
602
+ "vocal_gender" => {
603
+ "enum" => ["male", "female"]
604
+ },
605
+ "vocal_mode" => {
606
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
607
+ "required" => true
608
+ }
609
+ },
610
+ "suno-v4.5-plus" => {
611
+ "duration_seconds" => {
612
+ "type" => "integer"
613
+ },
614
+ "model" => {
615
+ "required" => true
616
+ },
617
+ "persona_type" => {
618
+ "enum" => ["style", "voice"]
619
+ },
620
+ "vocal_gender" => {
621
+ "enum" => ["male", "female"]
622
+ },
623
+ "vocal_mode" => {
624
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
625
+ "required" => true
626
+ }
627
+ },
628
+ "suno-v5" => {
629
+ "duration_seconds" => {
630
+ "type" => "integer"
631
+ },
632
+ "model" => {
633
+ "required" => true
634
+ },
635
+ "persona_type" => {
636
+ "enum" => ["style", "voice"]
637
+ },
638
+ "vocal_gender" => {
639
+ "enum" => ["male", "female"]
640
+ },
641
+ "vocal_mode" => {
642
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
643
+ "required" => true
644
+ }
645
+ },
646
+ "suno-v5.5" => {
647
+ "duration_seconds" => {
648
+ "type" => "integer"
649
+ },
650
+ "model" => {
651
+ "required" => true
652
+ },
653
+ "persona_type" => {
654
+ "enum" => ["style", "voice"]
655
+ },
656
+ "vocal_gender" => {
657
+ "enum" => ["male", "female"]
658
+ },
659
+ "vocal_mode" => {
660
+ "enum" => ["auto_lyrics", "exact_lyrics", "instrumental"],
661
+ "required" => true
662
+ }
663
+ }
664
+ },
665
+ "rules" => [{
666
+ "when" => {
667
+ "vocal_mode" => "auto_lyrics"
668
+ },
669
+ "required" => ["prompt"],
670
+ "forbidden" => ["lyrics", "style", "title"]
671
+ }, {
672
+ "when" => {
673
+ "vocal_mode" => "exact_lyrics"
674
+ },
675
+ "required" => ["lyrics", "style", "title"],
676
+ "forbidden" => ["prompt"]
677
+ }, {
678
+ "when" => {
679
+ "vocal_mode" => "instrumental"
680
+ },
681
+ "required" => ["style", "title"],
682
+ "forbidden" => ["prompt", "lyrics"]
683
+ }]
684
+ },
685
+ "text-to-sound" => {
686
+ "models" => ["suno-v5", "suno-v5.5"],
687
+ "fields_by_model" => {
688
+ "suno-v5" => {
689
+ "model" => {
690
+ "required" => true
691
+ },
692
+ "prompt" => {
693
+ "required" => true
694
+ },
695
+ "sound_key" => {
696
+ "enum" => ["Cm", "C#m", "Dm", "D#m", "Em", "Fm", "F#m", "Gm", "G#m", "Am", "A#m", "Bm", "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"]
697
+ },
698
+ "sound_tempo" => {
699
+ "type" => "integer"
700
+ }
701
+ },
702
+ "suno-v5.5" => {
703
+ "model" => {
704
+ "required" => true
705
+ },
706
+ "prompt" => {
707
+ "required" => true
708
+ },
709
+ "sound_key" => {
710
+ "enum" => ["Cm", "C#m", "Dm", "D#m", "Em", "Fm", "F#m", "Gm", "G#m", "Am", "A#m", "Bm", "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"]
711
+ },
712
+ "sound_tempo" => {
713
+ "type" => "integer"
714
+ }
715
+ }
716
+ }
717
+ },
718
+ "visualize-music" => {
719
+ "models" => [],
720
+ "fields_by_model" => {
721
+ "_" => {}
722
+ }
723
+ },
724
+ "voice-to-validation-phrase" => {
725
+ "models" => [],
726
+ "fields_by_model" => {
727
+ "_" => {
728
+ "language" => {
729
+ "enum" => ["en", "zh", "es", "fr", "pt", "de", "ja", "ko", "hi", "ru"]
730
+ },
731
+ "vocal_end_seconds" => {
732
+ "required" => true,
733
+ "type" => "integer"
734
+ },
735
+ "vocal_start_seconds" => {
736
+ "required" => true,
737
+ "type" => "integer"
738
+ }
739
+ }
740
+ }
741
+ }
742
+ }.freeze
743
+ end
744
+ end