@jtdigital/renderbox-sdk 0.4.1 → 0.6.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/README.md +54 -2
- package/dist/bridge.d.ts +139 -0
- package/dist/bridge.d.ts.map +1 -0
- package/dist/bridge.js +338 -0
- package/dist/bridge.js.map +1 -0
- package/dist/graph.d.ts +28 -22
- package/dist/graph.d.ts.map +1 -1
- package/dist/graph.js +7 -7
- package/dist/graph.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/pipelines.d.ts +516 -0
- package/dist/pipelines.d.ts.map +1 -0
- package/dist/pipelines.js +16 -0
- package/dist/pipelines.js.map +1 -0
- package/dist/presets/audio.d.ts +43 -0
- package/dist/presets/audio.d.ts.map +1 -0
- package/dist/presets/audio.js +148 -0
- package/dist/presets/audio.js.map +1 -0
- package/dist/presets/index.d.ts +5 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +5 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/position.d.ts +39 -0
- package/dist/presets/position.d.ts.map +1 -0
- package/dist/presets/position.js +40 -0
- package/dist/presets/position.js.map +1 -0
- package/dist/presets/text.d.ts +90 -0
- package/dist/presets/text.d.ts.map +1 -0
- package/dist/presets/text.js +132 -0
- package/dist/presets/text.js.map +1 -0
- package/dist/presets/video.d.ts +46 -0
- package/dist/presets/video.d.ts.map +1 -0
- package/dist/presets/video.js +108 -0
- package/dist/presets/video.js.map +1 -0
- package/dist/recipes/faceRedact.d.ts.map +1 -1
- package/dist/recipes/faceRedact.js +8 -4
- package/dist/recipes/faceRedact.js.map +1 -1
- package/dist/recipes/makeSlideshow.d.ts +2 -1
- package/dist/recipes/makeSlideshow.d.ts.map +1 -1
- package/dist/recipes/makeSlideshow.js +3 -71
- package/dist/recipes/makeSlideshow.js.map +1 -1
- package/dist/streams.d.ts +791 -699
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +283 -201
- package/dist/streams.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +20 -5
|
@@ -0,0 +1,516 @@
|
|
|
1
|
+
export interface ScaleArgs {
|
|
2
|
+
height: number;
|
|
3
|
+
width: number;
|
|
4
|
+
}
|
|
5
|
+
export interface UpscaleArgs {
|
|
6
|
+
/** @default "real-esrgan-x4" */
|
|
7
|
+
model?: string;
|
|
8
|
+
/** @default 4.0 */
|
|
9
|
+
scale?: number;
|
|
10
|
+
/** Optional tile size (px) for low-VRAM / very large frames. */
|
|
11
|
+
tile_size?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface DenoiseArgs {
|
|
14
|
+
/** @default "nafnet-denoise" */
|
|
15
|
+
model?: string;
|
|
16
|
+
/** Optional 0.0–1.0 blend; omit for the model's native strength. */
|
|
17
|
+
strength?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface FrameInterpolateArgs {
|
|
20
|
+
/**
|
|
21
|
+
* Interpolation factor (2.0 = double the frame rate).
|
|
22
|
+
* @default 2.0
|
|
23
|
+
*/
|
|
24
|
+
factor?: number;
|
|
25
|
+
/** @default "rife-v4" */
|
|
26
|
+
model?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface AutoEnhanceArgs {
|
|
29
|
+
/** @default "instructir" */
|
|
30
|
+
model?: string;
|
|
31
|
+
strength?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface VqeRestoreArgs {
|
|
34
|
+
/** @default true */
|
|
35
|
+
denoise?: boolean;
|
|
36
|
+
/** @default "nafnet-denoise" */
|
|
37
|
+
denoise_model?: string;
|
|
38
|
+
/** @default true */
|
|
39
|
+
enhance?: boolean;
|
|
40
|
+
/** @default "instructir" */
|
|
41
|
+
enhance_model?: string;
|
|
42
|
+
/** @default 2.0 */
|
|
43
|
+
factor?: number;
|
|
44
|
+
/** @default "rife-v4" */
|
|
45
|
+
interp_model?: string;
|
|
46
|
+
/** @default true */
|
|
47
|
+
interpolate?: boolean;
|
|
48
|
+
/** @default 2.0 */
|
|
49
|
+
scale?: number;
|
|
50
|
+
tile_size?: number;
|
|
51
|
+
/** @default true */
|
|
52
|
+
upscale?: boolean;
|
|
53
|
+
/** @default "real-esrgan-x2" */
|
|
54
|
+
upscale_model?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface TrimArgs {
|
|
57
|
+
duration?: number;
|
|
58
|
+
end?: number;
|
|
59
|
+
/** @default 0.0 */
|
|
60
|
+
start?: number;
|
|
61
|
+
}
|
|
62
|
+
export interface TranscodeArgs {
|
|
63
|
+
/** @default "h264" */
|
|
64
|
+
codec?: string;
|
|
65
|
+
crf?: number;
|
|
66
|
+
/** @default "mp4" */
|
|
67
|
+
format?: string;
|
|
68
|
+
fps?: number;
|
|
69
|
+
height?: number;
|
|
70
|
+
/** @default "medium" */
|
|
71
|
+
preset?: string;
|
|
72
|
+
width?: number;
|
|
73
|
+
}
|
|
74
|
+
export interface TextOverlayArgs {
|
|
75
|
+
alpha?: number;
|
|
76
|
+
borderw?: number;
|
|
77
|
+
boxcolor?: string;
|
|
78
|
+
font?: string;
|
|
79
|
+
/** @default "white" */
|
|
80
|
+
fontcolor?: string;
|
|
81
|
+
/** @default 48.0 */
|
|
82
|
+
fontsize?: number;
|
|
83
|
+
/** @default "center" */
|
|
84
|
+
position?: string;
|
|
85
|
+
text: string;
|
|
86
|
+
/** @default false */
|
|
87
|
+
timecode?: boolean;
|
|
88
|
+
}
|
|
89
|
+
export interface SpeedControlArgs {
|
|
90
|
+
speed: number;
|
|
91
|
+
}
|
|
92
|
+
export interface LoudnormArgs {
|
|
93
|
+
i?: number;
|
|
94
|
+
lra?: number;
|
|
95
|
+
target?: number;
|
|
96
|
+
tp?: number;
|
|
97
|
+
}
|
|
98
|
+
export interface TranscribeArgs {
|
|
99
|
+
/** @default "srt" */
|
|
100
|
+
format?: string;
|
|
101
|
+
/** @default "parakeet-tdt-0.6b" */
|
|
102
|
+
model?: string;
|
|
103
|
+
}
|
|
104
|
+
export interface SmartCropArgs {
|
|
105
|
+
/** @default "9:16" */
|
|
106
|
+
aspect?: string;
|
|
107
|
+
height?: number;
|
|
108
|
+
/** @default "yolov8n-face" */
|
|
109
|
+
model?: string;
|
|
110
|
+
padding?: number;
|
|
111
|
+
/** @default 0.8 */
|
|
112
|
+
smoothing?: number;
|
|
113
|
+
subject?: string;
|
|
114
|
+
/** @default 0.5 */
|
|
115
|
+
threshold?: number;
|
|
116
|
+
width?: number;
|
|
117
|
+
}
|
|
118
|
+
export interface ClipArgs {
|
|
119
|
+
color_grade?: ColorGrade;
|
|
120
|
+
/** @default 5.0 */
|
|
121
|
+
duration?: number;
|
|
122
|
+
effect?: ClipEffect;
|
|
123
|
+
input: string;
|
|
124
|
+
/** @default 0.0 */
|
|
125
|
+
trim_start?: number;
|
|
126
|
+
}
|
|
127
|
+
export type ClipEffect = 'none' | 'ken_burns_zoom_in' | 'ken_burns_zoom_out' | 'ken_burns_pan_left' | 'ken_burns_pan_right' | 'fade_in' | 'fade_out' | 'vignette';
|
|
128
|
+
export type ColorGrade = 'warm' | 'cool' | 'bw';
|
|
129
|
+
export type Transition = 'cut' | 'dissolve' | 'fade_black' | 'wipe_left' | 'wipe_right';
|
|
130
|
+
export interface MontageArgs {
|
|
131
|
+
/** @default 0.0 */
|
|
132
|
+
audio_fade_in?: number;
|
|
133
|
+
/** @default 0.0 */
|
|
134
|
+
audio_fade_out?: number;
|
|
135
|
+
audio_track?: string;
|
|
136
|
+
clips: ClipArgs[];
|
|
137
|
+
/** @default 30.0 */
|
|
138
|
+
output_fps?: number;
|
|
139
|
+
/** @default [1920,1080] */
|
|
140
|
+
output_resolution?: number[];
|
|
141
|
+
transition?: Transition;
|
|
142
|
+
/** @default 1.0 */
|
|
143
|
+
transition_duration?: number;
|
|
144
|
+
}
|
|
145
|
+
export interface AudioMasteringArgs {
|
|
146
|
+
/**
|
|
147
|
+
* Integrated loudness target (LUFS), −24..−9. jt-cut sends −14
|
|
148
|
+
* (YouTube/TikTok standard).
|
|
149
|
+
* @default -14.0
|
|
150
|
+
*/
|
|
151
|
+
target_lufs?: number;
|
|
152
|
+
}
|
|
153
|
+
export interface BlurFillArgs {
|
|
154
|
+
/**
|
|
155
|
+
* Gaussian blur sigma for the background copy, 1..50.
|
|
156
|
+
* @default 20.0
|
|
157
|
+
*/
|
|
158
|
+
sigma?: number;
|
|
159
|
+
}
|
|
160
|
+
export interface SlideArgs {
|
|
161
|
+
/** @default 5.0 */
|
|
162
|
+
duration?: number;
|
|
163
|
+
input: string;
|
|
164
|
+
/** @default "gentle-zoom-in" */
|
|
165
|
+
ken_burns?: string;
|
|
166
|
+
/** @default "image" */
|
|
167
|
+
media_type?: string;
|
|
168
|
+
/** @default "dissolve" */
|
|
169
|
+
transition?: string;
|
|
170
|
+
video_duration?: number;
|
|
171
|
+
}
|
|
172
|
+
export interface SlideshowTextOverlayArgs {
|
|
173
|
+
end_sec?: number;
|
|
174
|
+
font_color?: string;
|
|
175
|
+
font_size?: number;
|
|
176
|
+
/** @default "bottom-center" */
|
|
177
|
+
position?: string;
|
|
178
|
+
/** @default "caption" */
|
|
179
|
+
preset?: string;
|
|
180
|
+
/** @default 0.0 */
|
|
181
|
+
start_sec?: number;
|
|
182
|
+
text: string;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* jt-cut's eight video-filter looks (closed enum — see
|
|
186
|
+
* `video-filters.schema.ts` on the sending side) plus the Pro manual
|
|
187
|
+
* color-adjust fields. `intensity` scales the preset look linearly from
|
|
188
|
+
* neutral (0) to the full look (100); manual fields apply on top.
|
|
189
|
+
*/
|
|
190
|
+
export interface VideoFilterArgs {
|
|
191
|
+
/** −100..100 (UI scale) → FFmpeg eq brightness −0.4..0.4. */
|
|
192
|
+
brightness?: number;
|
|
193
|
+
/** 0.5..2 (direct eq contrast). */
|
|
194
|
+
contrast?: number;
|
|
195
|
+
/** Film grain strength 0..30 (FFmpeg noise alls). */
|
|
196
|
+
grain?: number;
|
|
197
|
+
/** @default 100.0 */
|
|
198
|
+
intensity?: number;
|
|
199
|
+
preset: string;
|
|
200
|
+
/** 0..2 (direct eq saturation). */
|
|
201
|
+
saturation?: number;
|
|
202
|
+
/** Color temperature in Kelvin, 3000..10000. */
|
|
203
|
+
temperature?: number;
|
|
204
|
+
/** @default false */
|
|
205
|
+
vignette?: boolean;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Slideshow pipeline args.
|
|
209
|
+
*
|
|
210
|
+
* H7: `deny_unknown_fields` — an arg key this struct does not know is a LOUD
|
|
211
|
+
* `InvalidArgs` (Permanent compile failure at the orchestrator), never a
|
|
212
|
+
* silently dropped feature. The full jt-cut key set is implemented (audit H7
|
|
213
|
+
* product call resolved 2026-07-11: implement, don't de-UI): the encoding
|
|
214
|
+
* hints `codec`/`crf`/`profile`/`audio_codec`, `smart_crop_aspect`,
|
|
215
|
+
* `video_filter`, `audio_mastering`, `voice_cleanup`, `blur_fill`, and
|
|
216
|
+
* `auto_thumbnail`.
|
|
217
|
+
*/
|
|
218
|
+
export interface SlideshowArgs {
|
|
219
|
+
ambient_preset?: string;
|
|
220
|
+
/** @default 0.3 */
|
|
221
|
+
ambient_volume?: number;
|
|
222
|
+
/**
|
|
223
|
+
* Audio codec hint. Closed set per container: mp4 → "aac",
|
|
224
|
+
* webm → "opus", mov → "pcm_s16le".
|
|
225
|
+
*/
|
|
226
|
+
audio_codec?: string;
|
|
227
|
+
/**
|
|
228
|
+
* Master the final audio mix to a platform loudness target (EBU R128
|
|
229
|
+
* loudnorm: compression + true-peak limiting).
|
|
230
|
+
*/
|
|
231
|
+
audio_mastering?: AudioMasteringArgs;
|
|
232
|
+
/** @default false */
|
|
233
|
+
auto_duck_music?: boolean;
|
|
234
|
+
/**
|
|
235
|
+
* Emit a JPEG poster frame as a secondary output (`output.thumb.jpg`,
|
|
236
|
+
* uploaded by the worker next to the primary as `<key-stem>.thumb.jpg`,
|
|
237
|
+
* tagged `kind:"thumbnail"`). Only valid for mp4/webm/mov outputs.
|
|
238
|
+
* @default false
|
|
239
|
+
*/
|
|
240
|
+
auto_thumbnail?: boolean;
|
|
241
|
+
/**
|
|
242
|
+
* Replace letterbox/pillarbox bars with a blurred scale-to-cover copy of
|
|
243
|
+
* the media (classic blur-fill). `sigma` is the gaussian blur strength
|
|
244
|
+
* (jt-cut sends 10/20/30). Ignored for slides with a Ken Burns effect
|
|
245
|
+
* (those already fill the frame) and overridden by `smart_crop_aspect`.
|
|
246
|
+
*/
|
|
247
|
+
blur_fill?: BlurFillArgs;
|
|
248
|
+
/**
|
|
249
|
+
* Video codec hint from the platform preset. Closed set per container:
|
|
250
|
+
* mp4 → "h264", webm → "vp9", mov → "prores" (the exact combinations the
|
|
251
|
+
* jt-cut platform-preset table sends). Anything else is `InvalidArgs`.
|
|
252
|
+
*/
|
|
253
|
+
codec?: string;
|
|
254
|
+
/**
|
|
255
|
+
* Constant rate factor. Only valid with `codec` "h264" (0–51) or
|
|
256
|
+
* "vp9" (0–63).
|
|
257
|
+
*/
|
|
258
|
+
crf?: number;
|
|
259
|
+
/** @default 0.0 */
|
|
260
|
+
crossfade_duration?: number;
|
|
261
|
+
/** @default 30 */
|
|
262
|
+
fps?: number;
|
|
263
|
+
gif_dither?: string;
|
|
264
|
+
gif_fps?: number;
|
|
265
|
+
gif_width?: number;
|
|
266
|
+
/** @default 1080 */
|
|
267
|
+
height?: number;
|
|
268
|
+
music?: string;
|
|
269
|
+
/** @default 0.0 */
|
|
270
|
+
music_fade_in_sec?: number;
|
|
271
|
+
/** @default 0.0 */
|
|
272
|
+
music_fade_out_sec?: number;
|
|
273
|
+
/** @default 0.0 */
|
|
274
|
+
music_start_sec?: number;
|
|
275
|
+
/** @default 1.0 */
|
|
276
|
+
music_volume?: number;
|
|
277
|
+
/** @default "mp4" */
|
|
278
|
+
output_format?: string;
|
|
279
|
+
/**
|
|
280
|
+
* Encoder profile. h264: baseline|main|high. prores: proxy|lt|422|
|
|
281
|
+
* standard|hq|4444 (numeric prores_ks profile is derived).
|
|
282
|
+
*/
|
|
283
|
+
profile?: string;
|
|
284
|
+
slides: SlideArgs[];
|
|
285
|
+
/**
|
|
286
|
+
* Fill the output frame by scale-to-cover + CENTER crop instead of
|
|
287
|
+
* letterboxing. Value is the target aspect ("9:16" or "1:1") and must
|
|
288
|
+
* agree with `width`:`height`. v1 is a center crop — no saliency/face
|
|
289
|
+
* tracking (jt-cut's "Smart reframe" copy over-promises; noted in the
|
|
290
|
+
* H7 report). Precedence: when both `smart_crop_aspect` and `blur_fill`
|
|
291
|
+
* are set, cropping wins — a cover-cropped frame has no letterbox bars
|
|
292
|
+
* for blur_fill to fill.
|
|
293
|
+
*/
|
|
294
|
+
smart_crop_aspect?: string;
|
|
295
|
+
text_overlays?: SlideshowTextOverlayArgs[];
|
|
296
|
+
/**
|
|
297
|
+
* Color-grade preset (+ optional Pro manual adjustments) applied to the
|
|
298
|
+
* assembled slideshow before text overlays and watermark.
|
|
299
|
+
*/
|
|
300
|
+
video_filter?: VideoFilterArgs;
|
|
301
|
+
/**
|
|
302
|
+
* Clean up the uploaded voiceover: high-pass rumble cut, FFT denoise,
|
|
303
|
+
* de-esser, speech level normalization. Requires `voiceover`.
|
|
304
|
+
* @default false
|
|
305
|
+
*/
|
|
306
|
+
voice_cleanup?: boolean;
|
|
307
|
+
voice_effect?: string;
|
|
308
|
+
voiceover?: string;
|
|
309
|
+
/** @default 1.0 */
|
|
310
|
+
voiceover_volume?: number;
|
|
311
|
+
watermark?: string;
|
|
312
|
+
/** @default 1920 */
|
|
313
|
+
width?: number;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Face detector for [`FaceRedact`] / [`FaceDetect`]. Closed set — only the face
|
|
317
|
+
* detectors these presets support, so an unsupported model (an object/pose model,
|
|
318
|
+
* a typo, an un-deployed name) is rejected at submission instead of failing deep
|
|
319
|
+
* in compile or silently mis-decoding. Mirrors [`DetectionModel`]; BYO is out of
|
|
320
|
+
* scope for the curated preset.
|
|
321
|
+
*/
|
|
322
|
+
export type FaceModel = 'yolov8n-face' | 'retinaface_mv2' | 'scrfd_10g' | 'scrfd_2.5g';
|
|
323
|
+
export type RedactModeArg = 'blur' | 'pixelate' | 'black';
|
|
324
|
+
export interface FaceRedactArgs {
|
|
325
|
+
/** @default 20 */
|
|
326
|
+
blur_radius?: number;
|
|
327
|
+
mode?: RedactModeArg;
|
|
328
|
+
/** Face detector (closed set; default the legacy `yolov8n-face`). */
|
|
329
|
+
model?: FaceModel;
|
|
330
|
+
/** @default 10 */
|
|
331
|
+
pixelate_size?: number;
|
|
332
|
+
/** @default 0.5 */
|
|
333
|
+
threshold?: number;
|
|
334
|
+
}
|
|
335
|
+
export interface FaceDetectArgs {
|
|
336
|
+
/** Face detector (closed set; default the legacy `yolov8n-face`). */
|
|
337
|
+
model?: FaceModel;
|
|
338
|
+
/** @default "detections.jsonl" */
|
|
339
|
+
output?: string;
|
|
340
|
+
/** @default 0.5 */
|
|
341
|
+
threshold?: number;
|
|
342
|
+
}
|
|
343
|
+
export interface DepthBlurArgs {
|
|
344
|
+
far_plane?: number;
|
|
345
|
+
/** @default 15.0 */
|
|
346
|
+
max_blur?: number;
|
|
347
|
+
near_plane?: number;
|
|
348
|
+
}
|
|
349
|
+
export interface AutoSubtitleArgs {
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* General object detector for [`ObjectDetect`]. Closed set — only the COCO-80
|
|
353
|
+
* general detectors this pipeline supports, so an unsupported model (a face/pose
|
|
354
|
+
* model, a typo, an un-deployed name) is rejected at submission instead of
|
|
355
|
+
* failing deep in compile or silently mis-decoding. BYO models are out of scope
|
|
356
|
+
* for this curated preset.
|
|
357
|
+
*/
|
|
358
|
+
export type DetectionModel = 'dfine_x_coco' | 'dfine_l_coco' | 'yolo11x';
|
|
359
|
+
export interface ObjectDetectArgs {
|
|
360
|
+
classes?: string[];
|
|
361
|
+
model?: DetectionModel;
|
|
362
|
+
/** @default true */
|
|
363
|
+
show_confidence?: boolean;
|
|
364
|
+
/** @default 0.4 */
|
|
365
|
+
threshold?: number;
|
|
366
|
+
}
|
|
367
|
+
export interface PoseEstimateArgs {
|
|
368
|
+
max_persons?: number;
|
|
369
|
+
/** @default 0.5 */
|
|
370
|
+
threshold?: number;
|
|
371
|
+
}
|
|
372
|
+
export interface PoseDetectArgs {
|
|
373
|
+
/** Person detector (closed set; default D-FINE-X, Apache). */
|
|
374
|
+
model?: DetectionModel;
|
|
375
|
+
/** Drop skeletons whose mean keypoint score is below this (rtmlib raw scale). */
|
|
376
|
+
pose_threshold?: number;
|
|
377
|
+
/**
|
|
378
|
+
* Person-detection score threshold.
|
|
379
|
+
* @default 0.4
|
|
380
|
+
*/
|
|
381
|
+
threshold?: number;
|
|
382
|
+
}
|
|
383
|
+
export interface PeopleCountArgs {
|
|
384
|
+
/** @default 0.6 */
|
|
385
|
+
alpha?: number;
|
|
386
|
+
}
|
|
387
|
+
export interface SceneDetectArgs {
|
|
388
|
+
/** @default 0.5 */
|
|
389
|
+
intensity?: number;
|
|
390
|
+
/** @default "places365-resnet50" */
|
|
391
|
+
model?: string;
|
|
392
|
+
/** @default "auto" */
|
|
393
|
+
preset?: string;
|
|
394
|
+
transition_frames?: number;
|
|
395
|
+
}
|
|
396
|
+
export interface TextRedactArgs {
|
|
397
|
+
/** @default 20 */
|
|
398
|
+
blur_radius?: number;
|
|
399
|
+
mode?: RedactModeArg;
|
|
400
|
+
/** @default 10 */
|
|
401
|
+
pixelate_size?: number;
|
|
402
|
+
}
|
|
403
|
+
export interface SegmentArgs {
|
|
404
|
+
/** @default 20.0 */
|
|
405
|
+
blur_radius?: number;
|
|
406
|
+
}
|
|
407
|
+
export interface EvidencePackageArgs {
|
|
408
|
+
/** @default 20 */
|
|
409
|
+
blur_radius?: number;
|
|
410
|
+
redact_mode?: RedactModeArg;
|
|
411
|
+
/** @default 0.5 */
|
|
412
|
+
threshold?: number;
|
|
413
|
+
}
|
|
414
|
+
export interface DetectMqttArgs {
|
|
415
|
+
broker: string;
|
|
416
|
+
classes?: string[];
|
|
417
|
+
/** @default "dfine_x_coco" */
|
|
418
|
+
model?: string;
|
|
419
|
+
qos?: number;
|
|
420
|
+
/** @default 0.4 */
|
|
421
|
+
threshold?: number;
|
|
422
|
+
/** @default "renderbox/detections" */
|
|
423
|
+
topic?: string;
|
|
424
|
+
}
|
|
425
|
+
export interface ScooterHelmetArgs {
|
|
426
|
+
/** @default "helmet-classifier" */
|
|
427
|
+
classifier_model?: string;
|
|
428
|
+
/** @default 0.6 */
|
|
429
|
+
classifier_threshold?: number;
|
|
430
|
+
/** @default "rider-yolo" */
|
|
431
|
+
detect_model?: string;
|
|
432
|
+
/** @default 0.005 */
|
|
433
|
+
min_area?: number;
|
|
434
|
+
/** @default 10 */
|
|
435
|
+
min_track_frames?: number;
|
|
436
|
+
/** @default true */
|
|
437
|
+
show_confidence?: boolean;
|
|
438
|
+
/** @default 1.5 */
|
|
439
|
+
smoothing_window?: number;
|
|
440
|
+
/** @default 0.4 */
|
|
441
|
+
threshold?: number;
|
|
442
|
+
zone_polygon?: number[][];
|
|
443
|
+
}
|
|
444
|
+
export interface HelmetDetectMqttArgs {
|
|
445
|
+
broker: string;
|
|
446
|
+
/** @default "helmet-classifier" */
|
|
447
|
+
classifier_model?: string;
|
|
448
|
+
/** @default 0.6 */
|
|
449
|
+
classifier_threshold?: number;
|
|
450
|
+
/** @default "rider-yolo" */
|
|
451
|
+
detect_model?: string;
|
|
452
|
+
/** @default 0.005 */
|
|
453
|
+
min_area?: number;
|
|
454
|
+
/** @default 10 */
|
|
455
|
+
min_track_frames?: number;
|
|
456
|
+
qos?: number;
|
|
457
|
+
/** @default 1.5 */
|
|
458
|
+
smoothing_window?: number;
|
|
459
|
+
/** @default 0.4 */
|
|
460
|
+
threshold?: number;
|
|
461
|
+
/** @default "renderbox/detections" */
|
|
462
|
+
topic?: string;
|
|
463
|
+
zone_polygon?: number[][];
|
|
464
|
+
}
|
|
465
|
+
export interface MqttToJsonlArgs {
|
|
466
|
+
broker: string;
|
|
467
|
+
/** @default "detections.jsonl" */
|
|
468
|
+
output?: string;
|
|
469
|
+
/** @default "renderbox/detections" */
|
|
470
|
+
topic?: string;
|
|
471
|
+
}
|
|
472
|
+
/** Typed `args` for every named pipeline, keyed by `pipeline_id`. */
|
|
473
|
+
export interface PipelineArgsMap {
|
|
474
|
+
'scale': ScaleArgs;
|
|
475
|
+
'upscale': UpscaleArgs;
|
|
476
|
+
'denoise': DenoiseArgs;
|
|
477
|
+
'frame-interpolate': FrameInterpolateArgs;
|
|
478
|
+
'auto-enhance': AutoEnhanceArgs;
|
|
479
|
+
'vqe-restore': VqeRestoreArgs;
|
|
480
|
+
'trim': TrimArgs;
|
|
481
|
+
'transcode': TranscodeArgs;
|
|
482
|
+
'text-overlay': TextOverlayArgs;
|
|
483
|
+
'speed-control': SpeedControlArgs;
|
|
484
|
+
'loudnorm': LoudnormArgs;
|
|
485
|
+
'transcribe': TranscribeArgs;
|
|
486
|
+
'smart-crop': SmartCropArgs;
|
|
487
|
+
'montage': MontageArgs;
|
|
488
|
+
'slideshow': SlideshowArgs;
|
|
489
|
+
'face-redact': FaceRedactArgs;
|
|
490
|
+
'face-detect': FaceDetectArgs;
|
|
491
|
+
'depth-blur': DepthBlurArgs;
|
|
492
|
+
'auto-subtitle': AutoSubtitleArgs;
|
|
493
|
+
'object-detect': ObjectDetectArgs;
|
|
494
|
+
'pose-estimate': PoseEstimateArgs;
|
|
495
|
+
'pose-detect': PoseDetectArgs;
|
|
496
|
+
'people-count': PeopleCountArgs;
|
|
497
|
+
'scene-detect': SceneDetectArgs;
|
|
498
|
+
'text-redact': TextRedactArgs;
|
|
499
|
+
'segment': SegmentArgs;
|
|
500
|
+
'evidence-package': EvidencePackageArgs;
|
|
501
|
+
'detect-mqtt': DetectMqttArgs;
|
|
502
|
+
'scooter-helmet': ScooterHelmetArgs;
|
|
503
|
+
'helmet-detect-mqtt': HelmetDetectMqttArgs;
|
|
504
|
+
'mqtt-to-jsonl': MqttToJsonlArgs;
|
|
505
|
+
}
|
|
506
|
+
export type PipelineId = keyof PipelineArgsMap;
|
|
507
|
+
/** Edge-only pipelines (mqtt I/O) — the worker security gate rejects them
|
|
508
|
+
* on the remote fleet; submit only to local/edge runners. */
|
|
509
|
+
export declare const LOCAL_ONLY_PIPELINES: readonly PipelineId[];
|
|
510
|
+
/** The `{ pipeline_id, args }` slice of a named-pipeline JobMessage, with
|
|
511
|
+
* `args` typechecked against the pipeline's schema. */
|
|
512
|
+
export declare function pipelineArgs<P extends PipelineId>(pipelineId: P, args: PipelineArgsMap[P]): {
|
|
513
|
+
pipeline_id: P;
|
|
514
|
+
args: PipelineArgsMap[P];
|
|
515
|
+
};
|
|
516
|
+
//# sourceMappingURL=pipelines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../src/pipelines.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// GENERATED FILE — DO NOT EDIT.
|
|
2
|
+
// Regenerate from renderbox-pipelines: `cargo run --bin gen-ts-pipelines`.
|
|
3
|
+
//
|
|
4
|
+
// Typed args for renderbox's named pipelines. Each interface is rendered from
|
|
5
|
+
// the exact serde struct the pipeline's Rust builder parses, so a compile-clean
|
|
6
|
+
// submission is also a parse-clean one. Submit as `{ pipeline_id, args }` on a
|
|
7
|
+
// JobMessage (named-pipeline path — no graph_ir).
|
|
8
|
+
/** Edge-only pipelines (mqtt I/O) — the worker security gate rejects them
|
|
9
|
+
* on the remote fleet; submit only to local/edge runners. */
|
|
10
|
+
export const LOCAL_ONLY_PIPELINES = ['detect-mqtt', 'helmet-detect-mqtt', 'mqtt-to-jsonl'];
|
|
11
|
+
/** The `{ pipeline_id, args }` slice of a named-pipeline JobMessage, with
|
|
12
|
+
* `args` typechecked against the pipeline's schema. */
|
|
13
|
+
export function pipelineArgs(pipelineId, args) {
|
|
14
|
+
return { pipeline_id: pipelineId, args };
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=pipelines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipelines.js","sourceRoot":"","sources":["../src/pipelines.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,2EAA2E;AAC3E,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,kDAAkD;AAyiBlD;6DAC6D;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAA0B,CAAC,aAAa,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAElH;uDACuD;AACvD,MAAM,UAAU,YAAY,CAC1B,UAAa,EACb,IAAwB;IAExB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio presets — dynamics, effects, mastering, mixing, routing, and synthesis
|
|
3
|
+
* chains. The TS port of the Rust SDK's `presets::audio`.
|
|
4
|
+
*/
|
|
5
|
+
import type { Graph } from '../graph.js';
|
|
6
|
+
import type { AudioStream, AmixOpts, SidechaincompressOpts } from '../streams.js';
|
|
7
|
+
/** Mastering profile for {@link masterAudio}. */
|
|
8
|
+
export type MasterProfile = 'podcast' | 'music' | 'broadcast' | 'youtube';
|
|
9
|
+
/** Channel-mapping preset for {@link channelMapPreset}. */
|
|
10
|
+
export type ChannelPreset = 'mono' | 'stereo' | 'swapLr' | 'leftOnly' | 'rightOnly';
|
|
11
|
+
/** Notification tone profile for {@link notification}. */
|
|
12
|
+
export type NotificationProfile = 'beep' | 'chime' | 'ding';
|
|
13
|
+
/** Ambient background profile for {@link ambience}. */
|
|
14
|
+
export type AmbienceProfile = 'rain' | 'cafe' | 'wind' | 'ocean';
|
|
15
|
+
/** Noise gate with podcast-friendly defaults. */
|
|
16
|
+
export declare function noiseGate(input: AudioStream): AudioStream;
|
|
17
|
+
/** Limiter with mastering defaults. */
|
|
18
|
+
export declare function limiter(input: AudioStream): AudioStream;
|
|
19
|
+
/** Bandpass to simulate a radio voice (300 Hz – 5000 Hz + compression). */
|
|
20
|
+
export declare function radioVoice(input: AudioStream): AudioStream;
|
|
21
|
+
/** Bandpass to simulate a telephone voice (300 Hz – 3400 Hz). */
|
|
22
|
+
export declare function telephone(input: AudioStream): AudioStream;
|
|
23
|
+
/**
|
|
24
|
+
* Mastering chain matched to a {@link MasterProfile}:
|
|
25
|
+
* - `podcast` — speechnorm + deesser + compressor + loudnorm -16 LUFS
|
|
26
|
+
* - `music` — bass EQ + treble EQ + compand + limiter + loudnorm -14 LUFS
|
|
27
|
+
* - `broadcast` — gate + dynaudnorm + compressor + loudnorm -24 LUFS
|
|
28
|
+
* - `youtube` — speechnorm + gate + loudnorm -14 LUFS
|
|
29
|
+
*/
|
|
30
|
+
export declare function masterAudio(input: AudioStream, profile: MasterProfile): AudioStream;
|
|
31
|
+
/** Sidechain ducking with sensible defaults for voice-over-music. */
|
|
32
|
+
export declare function ducking(target: AudioStream, sidechain: AudioStream, opts?: SidechaincompressOpts): AudioStream;
|
|
33
|
+
/** Mix streams into one via `amix`. Requires at least 2 streams. */
|
|
34
|
+
export declare function audioMix(streams: AudioStream[], opts?: AmixOpts): AudioStream;
|
|
35
|
+
/** Named channel-mapping presets via {@link ChannelPreset}. */
|
|
36
|
+
export declare function channelMapPreset(input: AudioStream, preset: ChannelPreset): AudioStream;
|
|
37
|
+
/** Short notification tone from a {@link NotificationProfile}. */
|
|
38
|
+
export declare function notification(g: Graph, profile: NotificationProfile): AudioStream;
|
|
39
|
+
/** Ambient background sound (approximated with noise + filtering + echo). */
|
|
40
|
+
export declare function ambience(g: Graph, profile: AmbienceProfile, duration: number): AudioStream;
|
|
41
|
+
/** Sustained drone: multiple sine harmonics mixed together. */
|
|
42
|
+
export declare function drone(g: Graph, freq: number, harmonics: number, duration: number): AudioStream;
|
|
43
|
+
//# sourceMappingURL=audio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/presets/audio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAElF,iDAAiD;AACjD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAE1E,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;AAEpF,0DAA0D;AAC1D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5D,uDAAuD;AACvD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAMjE,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAEzD;AAED,uCAAuC;AACvC,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAEvD;AAMD,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAK1D;AAED,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAEzD;AAMD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,WAAW,CA2BnF;AAMD,qEAAqE;AACrE,wBAAgB,OAAO,CACrB,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,WAAW,EACtB,IAAI,CAAC,EAAE,qBAAqB,GAC3B,WAAW,CAQb;AAED,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAK7E;AAMD,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,GAAG,WAAW,CASvF;AAMD,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,GAAG,WAAW,CAWhF;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAqB1F;AAED,+DAA+D;AAC/D,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAW9F"}
|