venice-video-harness 2.4.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/CHANGELOG.md +28 -0
- package/LICENSE +21 -0
- package/README.md +598 -0
- package/dist/assembly/manifest-builder.d.ts +8 -0
- package/dist/assembly/manifest-builder.d.ts.map +1 -0
- package/dist/assembly/manifest-builder.js +196 -0
- package/dist/assembly/manifest-builder.js.map +1 -0
- package/dist/assembly/remotion-scaffold.d.ts +14 -0
- package/dist/assembly/remotion-scaffold.d.ts.map +1 -0
- package/dist/assembly/remotion-scaffold.js +292 -0
- package/dist/assembly/remotion-scaffold.js.map +1 -0
- package/dist/assembly/types.d.ts +67 -0
- package/dist/assembly/types.d.ts.map +1 -0
- package/dist/assembly/types.js +5 -0
- package/dist/assembly/types.js.map +1 -0
- package/dist/characters/describer.d.ts +32 -0
- package/dist/characters/describer.d.ts.map +1 -0
- package/dist/characters/describer.js +309 -0
- package/dist/characters/describer.js.map +1 -0
- package/dist/characters/extractor.d.ts +27 -0
- package/dist/characters/extractor.d.ts.map +1 -0
- package/dist/characters/extractor.js +274 -0
- package/dist/characters/extractor.js.map +1 -0
- package/dist/characters/reference-manager.d.ts +95 -0
- package/dist/characters/reference-manager.d.ts.map +1 -0
- package/dist/characters/reference-manager.js +346 -0
- package/dist/characters/reference-manager.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +310 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +22 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +66 -0
- package/dist/config.js.map +1 -0
- package/dist/editing/aligner.d.ts +44 -0
- package/dist/editing/aligner.d.ts.map +1 -0
- package/dist/editing/aligner.js +201 -0
- package/dist/editing/aligner.js.map +1 -0
- package/dist/editing/edl.d.ts +45 -0
- package/dist/editing/edl.d.ts.map +1 -0
- package/dist/editing/edl.js +133 -0
- package/dist/editing/edl.js.map +1 -0
- package/dist/editing/overlays.d.ts +97 -0
- package/dist/editing/overlays.d.ts.map +1 -0
- package/dist/editing/overlays.js +41 -0
- package/dist/editing/overlays.js.map +1 -0
- package/dist/editing/packer.d.ts +52 -0
- package/dist/editing/packer.d.ts.map +1 -0
- package/dist/editing/packer.js +170 -0
- package/dist/editing/packer.js.map +1 -0
- package/dist/editing/providers/whisper-cpp.d.ts +32 -0
- package/dist/editing/providers/whisper-cpp.d.ts.map +1 -0
- package/dist/editing/providers/whisper-cpp.js +239 -0
- package/dist/editing/providers/whisper-cpp.js.map +1 -0
- package/dist/editing/render.d.ts +36 -0
- package/dist/editing/render.d.ts.map +1 -0
- package/dist/editing/render.js +227 -0
- package/dist/editing/render.js.map +1 -0
- package/dist/editing/self-eval.d.ts +48 -0
- package/dist/editing/self-eval.d.ts.map +1 -0
- package/dist/editing/self-eval.js +293 -0
- package/dist/editing/self-eval.js.map +1 -0
- package/dist/editing/silence.d.ts +76 -0
- package/dist/editing/silence.d.ts.map +1 -0
- package/dist/editing/silence.js +189 -0
- package/dist/editing/silence.js.map +1 -0
- package/dist/editing/types.d.ts +178 -0
- package/dist/editing/types.d.ts.map +1 -0
- package/dist/editing/types.js +13 -0
- package/dist/editing/types.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/interactive.d.ts +12 -0
- package/dist/interactive.d.ts.map +1 -0
- package/dist/interactive.js +78 -0
- package/dist/interactive.js.map +1 -0
- package/dist/mini-drama/assembler.d.ts +61 -0
- package/dist/mini-drama/assembler.d.ts.map +1 -0
- package/dist/mini-drama/assembler.js +466 -0
- package/dist/mini-drama/assembler.js.map +1 -0
- package/dist/mini-drama/audio-mix.d.ts +65 -0
- package/dist/mini-drama/audio-mix.d.ts.map +1 -0
- package/dist/mini-drama/audio-mix.js +118 -0
- package/dist/mini-drama/audio-mix.js.map +1 -0
- package/dist/mini-drama/cli.d.ts +3 -0
- package/dist/mini-drama/cli.d.ts.map +1 -0
- package/dist/mini-drama/cli.js +2869 -0
- package/dist/mini-drama/cli.js.map +1 -0
- package/dist/mini-drama/fcpxml-export.d.ts +2 -0
- package/dist/mini-drama/fcpxml-export.d.ts.map +1 -0
- package/dist/mini-drama/fcpxml-export.js +5 -0
- package/dist/mini-drama/fcpxml-export.js.map +1 -0
- package/dist/mini-drama/generation-planner.d.ts +24 -0
- package/dist/mini-drama/generation-planner.d.ts.map +1 -0
- package/dist/mini-drama/generation-planner.js +304 -0
- package/dist/mini-drama/generation-planner.js.map +1 -0
- package/dist/mini-drama/location-generator.d.ts +23 -0
- package/dist/mini-drama/location-generator.d.ts.map +1 -0
- package/dist/mini-drama/location-generator.js +144 -0
- package/dist/mini-drama/location-generator.js.map +1 -0
- package/dist/mini-drama/music-cues.d.ts +96 -0
- package/dist/mini-drama/music-cues.d.ts.map +1 -0
- package/dist/mini-drama/music-cues.js +332 -0
- package/dist/mini-drama/music-cues.js.map +1 -0
- package/dist/mini-drama/panel-fixer.d.ts +12 -0
- package/dist/mini-drama/panel-fixer.d.ts.map +1 -0
- package/dist/mini-drama/panel-fixer.js +319 -0
- package/dist/mini-drama/panel-fixer.js.map +1 -0
- package/dist/mini-drama/prompt-builder.d.ts +149 -0
- package/dist/mini-drama/prompt-builder.d.ts.map +1 -0
- package/dist/mini-drama/prompt-builder.js +722 -0
- package/dist/mini-drama/prompt-builder.js.map +1 -0
- package/dist/mini-drama/reference-slots.d.ts +31 -0
- package/dist/mini-drama/reference-slots.d.ts.map +1 -0
- package/dist/mini-drama/reference-slots.js +161 -0
- package/dist/mini-drama/reference-slots.js.map +1 -0
- package/dist/mini-drama/shot-paths.d.ts +77 -0
- package/dist/mini-drama/shot-paths.d.ts.map +1 -0
- package/dist/mini-drama/shot-paths.js +101 -0
- package/dist/mini-drama/shot-paths.js.map +1 -0
- package/dist/mini-drama/storyboard-reference-generator.d.ts +47 -0
- package/dist/mini-drama/storyboard-reference-generator.d.ts.map +1 -0
- package/dist/mini-drama/storyboard-reference-generator.js +293 -0
- package/dist/mini-drama/storyboard-reference-generator.js.map +1 -0
- package/dist/mini-drama/subtitle-generator.d.ts +12 -0
- package/dist/mini-drama/subtitle-generator.d.ts.map +1 -0
- package/dist/mini-drama/subtitle-generator.js +139 -0
- package/dist/mini-drama/subtitle-generator.js.map +1 -0
- package/dist/mini-drama/timeline-export/davinci-fcpxml.d.ts +3 -0
- package/dist/mini-drama/timeline-export/davinci-fcpxml.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/davinci-fcpxml.js +150 -0
- package/dist/mini-drama/timeline-export/davinci-fcpxml.js.map +1 -0
- package/dist/mini-drama/timeline-export/fcpxml.d.ts +11 -0
- package/dist/mini-drama/timeline-export/fcpxml.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/fcpxml.js +140 -0
- package/dist/mini-drama/timeline-export/fcpxml.js.map +1 -0
- package/dist/mini-drama/timeline-export/index.d.ts +13 -0
- package/dist/mini-drama/timeline-export/index.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/index.js +26 -0
- package/dist/mini-drama/timeline-export/index.js.map +1 -0
- package/dist/mini-drama/timeline-export/premiere-xmeml.d.ts +3 -0
- package/dist/mini-drama/timeline-export/premiere-xmeml.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/premiere-xmeml.js +211 -0
- package/dist/mini-drama/timeline-export/premiere-xmeml.js.map +1 -0
- package/dist/mini-drama/timeline-export/probe.d.ts +53 -0
- package/dist/mini-drama/timeline-export/probe.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/probe.js +89 -0
- package/dist/mini-drama/timeline-export/probe.js.map +1 -0
- package/dist/mini-drama/timeline-export/types.d.ts +57 -0
- package/dist/mini-drama/timeline-export/types.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/types.js +14 -0
- package/dist/mini-drama/timeline-export/types.js.map +1 -0
- package/dist/mini-drama/video-generator.d.ts +22 -0
- package/dist/mini-drama/video-generator.d.ts.map +1 -0
- package/dist/mini-drama/video-generator.js +1305 -0
- package/dist/mini-drama/video-generator.js.map +1 -0
- package/dist/mini-drama/voice-reference.d.ts +42 -0
- package/dist/mini-drama/voice-reference.d.ts.map +1 -0
- package/dist/mini-drama/voice-reference.js +170 -0
- package/dist/mini-drama/voice-reference.js.map +1 -0
- package/dist/output/html-renderer.d.ts +2 -0
- package/dist/output/html-renderer.d.ts.map +1 -0
- package/dist/output/html-renderer.js +37 -0
- package/dist/output/html-renderer.js.map +1 -0
- package/dist/parsers/fountain-parser.d.ts +34 -0
- package/dist/parsers/fountain-parser.d.ts.map +1 -0
- package/dist/parsers/fountain-parser.js +71 -0
- package/dist/parsers/fountain-parser.js.map +1 -0
- package/dist/parsers/pdf-parser.d.ts +24 -0
- package/dist/parsers/pdf-parser.d.ts.map +1 -0
- package/dist/parsers/pdf-parser.js +237 -0
- package/dist/parsers/pdf-parser.js.map +1 -0
- package/dist/parsers/scene-extractor.d.ts +41 -0
- package/dist/parsers/scene-extractor.d.ts.map +1 -0
- package/dist/parsers/scene-extractor.js +400 -0
- package/dist/parsers/scene-extractor.js.map +1 -0
- package/dist/series/manager.d.ts +64 -0
- package/dist/series/manager.d.ts.map +1 -0
- package/dist/series/manager.js +282 -0
- package/dist/series/manager.js.map +1 -0
- package/dist/series/types.d.ts +641 -0
- package/dist/series/types.d.ts.map +1 -0
- package/dist/series/types.js +304 -0
- package/dist/series/types.js.map +1 -0
- package/dist/storyboard/assembler.d.ts +134 -0
- package/dist/storyboard/assembler.d.ts.map +1 -0
- package/dist/storyboard/assembler.js +319 -0
- package/dist/storyboard/assembler.js.map +1 -0
- package/dist/storyboard/prompt-builder.d.ts +113 -0
- package/dist/storyboard/prompt-builder.d.ts.map +1 -0
- package/dist/storyboard/prompt-builder.js +578 -0
- package/dist/storyboard/prompt-builder.js.map +1 -0
- package/dist/storyboard/shot-planner.d.ts +34 -0
- package/dist/storyboard/shot-planner.d.ts.map +1 -0
- package/dist/storyboard/shot-planner.js +446 -0
- package/dist/storyboard/shot-planner.js.map +1 -0
- package/dist/user-config.d.ts +15 -0
- package/dist/user-config.d.ts.map +1 -0
- package/dist/user-config.js +103 -0
- package/dist/user-config.js.map +1 -0
- package/dist/venice/audio-preflight.d.ts +80 -0
- package/dist/venice/audio-preflight.d.ts.map +1 -0
- package/dist/venice/audio-preflight.js +142 -0
- package/dist/venice/audio-preflight.js.map +1 -0
- package/dist/venice/audio.d.ts +88 -0
- package/dist/venice/audio.d.ts.map +1 -0
- package/dist/venice/audio.js +234 -0
- package/dist/venice/audio.js.map +1 -0
- package/dist/venice/client.d.ts +86 -0
- package/dist/venice/client.d.ts.map +1 -0
- package/dist/venice/client.js +375 -0
- package/dist/venice/client.js.map +1 -0
- package/dist/venice/edit.d.ts +57 -0
- package/dist/venice/edit.d.ts.map +1 -0
- package/dist/venice/edit.js +100 -0
- package/dist/venice/edit.js.map +1 -0
- package/dist/venice/generate.d.ts +47 -0
- package/dist/venice/generate.d.ts.map +1 -0
- package/dist/venice/generate.js +150 -0
- package/dist/venice/generate.js.map +1 -0
- package/dist/venice/image-bytes.d.ts +26 -0
- package/dist/venice/image-bytes.d.ts.map +1 -0
- package/dist/venice/image-bytes.js +101 -0
- package/dist/venice/image-bytes.js.map +1 -0
- package/dist/venice/models.d.ts +143 -0
- package/dist/venice/models.d.ts.map +1 -0
- package/dist/venice/models.js +984 -0
- package/dist/venice/models.js.map +1 -0
- package/dist/venice/multi-edit.d.ts +40 -0
- package/dist/venice/multi-edit.d.ts.map +1 -0
- package/dist/venice/multi-edit.js +97 -0
- package/dist/venice/multi-edit.js.map +1 -0
- package/dist/venice/provenance.d.ts +66 -0
- package/dist/venice/provenance.d.ts.map +1 -0
- package/dist/venice/provenance.js +151 -0
- package/dist/venice/provenance.js.map +1 -0
- package/dist/venice/recipe.d.ts +69 -0
- package/dist/venice/recipe.d.ts.map +1 -0
- package/dist/venice/recipe.js +103 -0
- package/dist/venice/recipe.js.map +1 -0
- package/dist/venice/rejection.d.ts +63 -0
- package/dist/venice/rejection.d.ts.map +1 -0
- package/dist/venice/rejection.js +111 -0
- package/dist/venice/rejection.js.map +1 -0
- package/dist/venice/seedance-preflight.d.ts +38 -0
- package/dist/venice/seedance-preflight.d.ts.map +1 -0
- package/dist/venice/seedance-preflight.js +29 -0
- package/dist/venice/seedance-preflight.js.map +1 -0
- package/dist/venice/types.d.ts +212 -0
- package/dist/venice/types.d.ts.map +1 -0
- package/dist/venice/types.js +9 -0
- package/dist/venice/types.js.map +1 -0
- package/dist/venice/video.d.ts +77 -0
- package/dist/venice/video.d.ts.map +1 -0
- package/dist/venice/video.js +163 -0
- package/dist/venice/video.js.map +1 -0
- package/dist/venice/voices.d.ts +40 -0
- package/dist/venice/voices.d.ts.map +1 -0
- package/dist/venice/voices.js +194 -0
- package/dist/venice/voices.js.map +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Shot Recipe Sidecar
|
|
3
|
+
//
|
|
4
|
+
// A per-asset, append-only log of every AI-model call that produced or
|
|
5
|
+
// transformed the asset. Where the provenance sidecar answers "which model
|
|
6
|
+
// families touched this file?" (for the Seedance compatibility gate), the
|
|
7
|
+
// recipe sidecar answers "how do I reproduce or continue this asset with
|
|
8
|
+
// another AI call?".
|
|
9
|
+
//
|
|
10
|
+
// Design intent: a project started with the harness can be FINISHED by any
|
|
11
|
+
// AI-driven workflow (an agent, the MCP, a manual operator directing edit
|
|
12
|
+
// models). The recipe is the complete handoff contract — each entry is a
|
|
13
|
+
// replayable Venice API call: model, prompt, negative prompt, seed, cfg,
|
|
14
|
+
// and the reference images that were attached (by stable path, never by
|
|
15
|
+
// data: URI).
|
|
16
|
+
//
|
|
17
|
+
// Storage format
|
|
18
|
+
// --------------
|
|
19
|
+
// For `/path/to/shot-003.png` (or `.mp4`) we write
|
|
20
|
+
// `/path/to/shot-003.recipe.json`:
|
|
21
|
+
//
|
|
22
|
+
// {
|
|
23
|
+
// "asset": "shot-003.png",
|
|
24
|
+
// "passes": [
|
|
25
|
+
// { "pass": 1, "kind": "generate", "role": "content", "model": "seedream-v5-lite", ... },
|
|
26
|
+
// { "pass": 2, "kind": "multi-edit", "role": "identity", "model": "seedream-v5-lite-edit", ... },
|
|
27
|
+
// { "pass": 3, "kind": "multi-edit", "role": "look", ... }
|
|
28
|
+
// ],
|
|
29
|
+
// "createdAt": "...",
|
|
30
|
+
// "updatedAt": "..."
|
|
31
|
+
// }
|
|
32
|
+
//
|
|
33
|
+
// Roles let a finishing agent reason about what is safe to redo:
|
|
34
|
+
// - "content" — establishes what is in the frame (base generation, scene-ref injection)
|
|
35
|
+
// - "identity" — anchors character identity (character-refine passes, R2V identity locks)
|
|
36
|
+
// - "look" — style/grade only (style-match passes, polish edits)
|
|
37
|
+
// - "mechanical" — local non-AI ops that changed pixels (aspect-restore crop, format conversion)
|
|
38
|
+
//
|
|
39
|
+
// Finishing convention: any AI pass applied after the harness hands off MUST
|
|
40
|
+
// be appended here too (and, for face-bearing images edited by a non-seedream
|
|
41
|
+
// model, recorded via recordEditProvenance so the Seedance gate stays honest).
|
|
42
|
+
// Use `appendRecipePass()` for both — it writes recipe + provenance together.
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
45
|
+
import { existsSync } from 'node:fs';
|
|
46
|
+
import { basename, dirname } from 'node:path';
|
|
47
|
+
import { writeImageProvenance, recordEditProvenance } from './provenance.js';
|
|
48
|
+
// ---- Path helpers ---------------------------------------------------------
|
|
49
|
+
export function recipeSidecarPath(assetPath) {
|
|
50
|
+
return assetPath.replace(/\.(png|jpg|jpeg|webp|mp4|mov|mp3|wav)$/i, '.recipe.json');
|
|
51
|
+
}
|
|
52
|
+
// ---- Read / append --------------------------------------------------------
|
|
53
|
+
export async function readShotRecipe(assetPath) {
|
|
54
|
+
const sidecar = recipeSidecarPath(assetPath);
|
|
55
|
+
if (!existsSync(sidecar))
|
|
56
|
+
return null;
|
|
57
|
+
try {
|
|
58
|
+
const raw = await readFile(sidecar, 'utf-8');
|
|
59
|
+
return JSON.parse(raw);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Append one pass to the asset's recipe sidecar (creating it if needed), and
|
|
67
|
+
* optionally record provenance in the same step so the two sidecars can never
|
|
68
|
+
* drift apart. This is the single write-path both the harness pipeline and
|
|
69
|
+
* any finishing script should use.
|
|
70
|
+
*
|
|
71
|
+
* Never throws — recipe logging must not break a render that already
|
|
72
|
+
* succeeded. Failures are reported on stderr.
|
|
73
|
+
*/
|
|
74
|
+
export async function appendRecipePass(assetPath, pass, options = {}) {
|
|
75
|
+
try {
|
|
76
|
+
const sidecar = recipeSidecarPath(assetPath);
|
|
77
|
+
await mkdir(dirname(sidecar), { recursive: true });
|
|
78
|
+
const existing = await readShotRecipe(assetPath);
|
|
79
|
+
const now = new Date().toISOString();
|
|
80
|
+
const entry = {
|
|
81
|
+
...pass,
|
|
82
|
+
pass: (existing?.passes.length ?? 0) + 1,
|
|
83
|
+
at: now,
|
|
84
|
+
};
|
|
85
|
+
const next = {
|
|
86
|
+
asset: existing?.asset ?? basename(assetPath),
|
|
87
|
+
passes: [...(existing?.passes ?? []), entry],
|
|
88
|
+
createdAt: existing?.createdAt ?? now,
|
|
89
|
+
updatedAt: now,
|
|
90
|
+
};
|
|
91
|
+
await writeFile(sidecar, JSON.stringify(next, null, 2), 'utf-8');
|
|
92
|
+
if (options.provenance === 'generate') {
|
|
93
|
+
await writeImageProvenance(assetPath, pass.model, [], { hasFace: options.hasFace });
|
|
94
|
+
}
|
|
95
|
+
else if (options.provenance === 'edit') {
|
|
96
|
+
await recordEditProvenance(assetPath, pass.model, { hasFace: options.hasFace });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
console.warn(` ⚠ recipe sidecar write failed for ${assetPath}: ${err.message}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=recipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/venice/recipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export declare const SILENT_REJECT_THRESHOLD_IMAGE = 30000;
|
|
2
|
+
export declare const SILENT_REJECT_THRESHOLD_VIDEO = 100000;
|
|
3
|
+
/**
|
|
4
|
+
* Per-resolution image thresholds. The flat 30_000 ceiling lets some real
|
|
5
|
+
* rejections slip through at 1K (the LEGISLATOR profile in the PNW
|
|
6
|
+
* field-guide came back as a ~2 KB refusal stub which is well under 30 KB
|
|
7
|
+
* but we need a wider margin at 1K to catch noisier rejections that still
|
|
8
|
+
* compress lower than a real photo). Conversely small-resolution outputs
|
|
9
|
+
* can legitimately be under 30 KB.
|
|
10
|
+
*
|
|
11
|
+
* Lookup with `thresholdForResolution(res)`; unknown values fall back to
|
|
12
|
+
* the flat default.
|
|
13
|
+
*/
|
|
14
|
+
export declare const SILENT_REJECT_THRESHOLDS_BY_RESOLUTION: Record<string, number>;
|
|
15
|
+
export declare function thresholdForResolution(res?: string): number;
|
|
16
|
+
export interface VeniceRejectionInfo {
|
|
17
|
+
model: string;
|
|
18
|
+
prompt?: string;
|
|
19
|
+
byteSize: number;
|
|
20
|
+
threshold: number;
|
|
21
|
+
kind: 'image' | 'video';
|
|
22
|
+
message?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare class VeniceRejectionError extends Error {
|
|
25
|
+
readonly kind: 'image' | 'video';
|
|
26
|
+
readonly model: string;
|
|
27
|
+
readonly prompt?: string;
|
|
28
|
+
readonly byteSize: number;
|
|
29
|
+
readonly threshold: number;
|
|
30
|
+
constructor(info: VeniceRejectionInfo);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Throw if an image buffer is below the silent-reject threshold.
|
|
34
|
+
*
|
|
35
|
+
* Pass the decoded image bytes (NOT the base64 string). The threshold is
|
|
36
|
+
* calibrated for 1K outputs; smaller resolutions may need an override.
|
|
37
|
+
*/
|
|
38
|
+
export declare function assertNotSilentRejectImage(buf: Buffer | Uint8Array, ctx: {
|
|
39
|
+
model: string;
|
|
40
|
+
prompt?: string;
|
|
41
|
+
threshold?: number;
|
|
42
|
+
}): void;
|
|
43
|
+
/**
|
|
44
|
+
* Throw if a video buffer is below the silent-reject threshold.
|
|
45
|
+
*
|
|
46
|
+
* Pass the downloaded MP4 bytes. Threshold calibrated for 720p/5s clips;
|
|
47
|
+
* very short or low-resolution clips may need an override.
|
|
48
|
+
*/
|
|
49
|
+
export declare function assertNotSilentRejectVideo(buf: Buffer | Uint8Array, ctx: {
|
|
50
|
+
model: string;
|
|
51
|
+
prompt?: string;
|
|
52
|
+
threshold?: number;
|
|
53
|
+
}): void;
|
|
54
|
+
/**
|
|
55
|
+
* Decode a base64 image and assert it is not a silent rejection.
|
|
56
|
+
* Returns the decoded buffer for downstream use.
|
|
57
|
+
*/
|
|
58
|
+
export declare function decodeAndAssertImage(b64: string, ctx: {
|
|
59
|
+
model: string;
|
|
60
|
+
prompt?: string;
|
|
61
|
+
threshold?: number;
|
|
62
|
+
}): Buffer;
|
|
63
|
+
//# sourceMappingURL=rejection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rejection.d.ts","sourceRoot":"","sources":["../../src/venice/rejection.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,6BAA6B,QAAS,CAAC;AACpD,eAAO,MAAM,6BAA6B,SAAU,CAAC;AAErD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWzE,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,IAAI,EAAE,mBAAmB;CAYtC;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,GAAG,UAAU,EACxB,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,IAAI,CAWN;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,GAAG,UAAU,EACxB,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,IAAI,CAWN;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,MAAM,CAIR"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Silent-rejection guard for Venice API responses.
|
|
3
|
+
//
|
|
4
|
+
// Venice's image and video endpoints sometimes return HTTP 200 with a tiny
|
|
5
|
+
// placeholder (7-byte WebP, sub-100KB MP4) when content moderation silently
|
|
6
|
+
// rejects a prompt. Downstream pipelines then process the placeholder as if
|
|
7
|
+
// it were real media. This module exposes:
|
|
8
|
+
//
|
|
9
|
+
// - byte-size thresholds for image and video responses,
|
|
10
|
+
// - a typed `VeniceRejectionError` callers can catch and rephrase against,
|
|
11
|
+
// - `assertNotSilentReject{Image,Video}` helpers that throw before writing
|
|
12
|
+
// placeholder bytes to disk.
|
|
13
|
+
//
|
|
14
|
+
// Threshold reference values (from ):
|
|
15
|
+
// image: < 30_000 bytes at 1K -> silent reject
|
|
16
|
+
// video: < 100_000 bytes at 720p/5s -> silent reject
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
export const SILENT_REJECT_THRESHOLD_IMAGE = 30_000;
|
|
19
|
+
export const SILENT_REJECT_THRESHOLD_VIDEO = 100_000;
|
|
20
|
+
/**
|
|
21
|
+
* Per-resolution image thresholds. The flat 30_000 ceiling lets some real
|
|
22
|
+
* rejections slip through at 1K (the LEGISLATOR profile in the PNW
|
|
23
|
+
* field-guide came back as a ~2 KB refusal stub which is well under 30 KB
|
|
24
|
+
* but we need a wider margin at 1K to catch noisier rejections that still
|
|
25
|
+
* compress lower than a real photo). Conversely small-resolution outputs
|
|
26
|
+
* can legitimately be under 30 KB.
|
|
27
|
+
*
|
|
28
|
+
* Lookup with `thresholdForResolution(res)`; unknown values fall back to
|
|
29
|
+
* the flat default.
|
|
30
|
+
*/
|
|
31
|
+
export const SILENT_REJECT_THRESHOLDS_BY_RESOLUTION = {
|
|
32
|
+
'512x512': 20_000,
|
|
33
|
+
'512': 20_000,
|
|
34
|
+
'720p': 30_000,
|
|
35
|
+
'1K': 50_000,
|
|
36
|
+
'1k': 50_000,
|
|
37
|
+
'1080p': 75_000,
|
|
38
|
+
'2K': 150_000,
|
|
39
|
+
'2k': 150_000,
|
|
40
|
+
'4K': 400_000,
|
|
41
|
+
'4k': 400_000,
|
|
42
|
+
};
|
|
43
|
+
export function thresholdForResolution(res) {
|
|
44
|
+
if (!res)
|
|
45
|
+
return SILENT_REJECT_THRESHOLD_IMAGE;
|
|
46
|
+
return SILENT_REJECT_THRESHOLDS_BY_RESOLUTION[res] ?? SILENT_REJECT_THRESHOLD_IMAGE;
|
|
47
|
+
}
|
|
48
|
+
export class VeniceRejectionError extends Error {
|
|
49
|
+
kind;
|
|
50
|
+
model;
|
|
51
|
+
prompt;
|
|
52
|
+
byteSize;
|
|
53
|
+
threshold;
|
|
54
|
+
constructor(info) {
|
|
55
|
+
const detail = info.message ??
|
|
56
|
+
`Response under threshold (${info.byteSize}b < ${info.threshold}b) — silent moderation reject suspected`;
|
|
57
|
+
super(`[VeniceRejection:${info.kind}] ${info.model} :: ${detail}`);
|
|
58
|
+
this.name = 'VeniceRejectionError';
|
|
59
|
+
this.kind = info.kind;
|
|
60
|
+
this.model = info.model;
|
|
61
|
+
this.prompt = info.prompt;
|
|
62
|
+
this.byteSize = info.byteSize;
|
|
63
|
+
this.threshold = info.threshold;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Throw if an image buffer is below the silent-reject threshold.
|
|
68
|
+
*
|
|
69
|
+
* Pass the decoded image bytes (NOT the base64 string). The threshold is
|
|
70
|
+
* calibrated for 1K outputs; smaller resolutions may need an override.
|
|
71
|
+
*/
|
|
72
|
+
export function assertNotSilentRejectImage(buf, ctx) {
|
|
73
|
+
const threshold = ctx.threshold ?? SILENT_REJECT_THRESHOLD_IMAGE;
|
|
74
|
+
if (buf.length < threshold) {
|
|
75
|
+
throw new VeniceRejectionError({
|
|
76
|
+
kind: 'image',
|
|
77
|
+
model: ctx.model,
|
|
78
|
+
prompt: ctx.prompt,
|
|
79
|
+
byteSize: buf.length,
|
|
80
|
+
threshold,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Throw if a video buffer is below the silent-reject threshold.
|
|
86
|
+
*
|
|
87
|
+
* Pass the downloaded MP4 bytes. Threshold calibrated for 720p/5s clips;
|
|
88
|
+
* very short or low-resolution clips may need an override.
|
|
89
|
+
*/
|
|
90
|
+
export function assertNotSilentRejectVideo(buf, ctx) {
|
|
91
|
+
const threshold = ctx.threshold ?? SILENT_REJECT_THRESHOLD_VIDEO;
|
|
92
|
+
if (buf.length < threshold) {
|
|
93
|
+
throw new VeniceRejectionError({
|
|
94
|
+
kind: 'video',
|
|
95
|
+
model: ctx.model,
|
|
96
|
+
prompt: ctx.prompt,
|
|
97
|
+
byteSize: buf.length,
|
|
98
|
+
threshold,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Decode a base64 image and assert it is not a silent rejection.
|
|
104
|
+
* Returns the decoded buffer for downstream use.
|
|
105
|
+
*/
|
|
106
|
+
export function decodeAndAssertImage(b64, ctx) {
|
|
107
|
+
const buf = Buffer.from(b64, 'base64');
|
|
108
|
+
assertNotSilentRejectImage(buf, ctx);
|
|
109
|
+
return buf;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=rejection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rejection.js","sourceRoot":"","sources":["../../src/venice/rejection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { VeniceClient } from './client.js';
|
|
2
|
+
/** All image-path fields on the request body that Seedance inspects. */
|
|
3
|
+
export interface SeedanceInputImagePaths {
|
|
4
|
+
imageUrl?: string;
|
|
5
|
+
endImageUrl?: string;
|
|
6
|
+
referenceImagePaths?: string[];
|
|
7
|
+
sceneImagePaths?: string[];
|
|
8
|
+
elementsFrontalPaths?: string[];
|
|
9
|
+
elementsReferencePaths?: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface PreflightOptions {
|
|
12
|
+
/** @deprecated The gate is neutralized; this option is ignored. */
|
|
13
|
+
mode?: import('../series/types.js').SeedanceCompatibilityMode;
|
|
14
|
+
/** @deprecated The gate is neutralized; this option is ignored. */
|
|
15
|
+
nonInteractive?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export type PreflightAction = {
|
|
18
|
+
type: 'proceed';
|
|
19
|
+
model: string;
|
|
20
|
+
imagePaths: SeedanceInputImagePaths;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'fallback';
|
|
23
|
+
newModel: string;
|
|
24
|
+
reason: string;
|
|
25
|
+
imagePaths: SeedanceInputImagePaths;
|
|
26
|
+
} | {
|
|
27
|
+
type: 'laundered';
|
|
28
|
+
model: string;
|
|
29
|
+
imagePaths: SeedanceInputImagePaths;
|
|
30
|
+
lauderedPaths: string[];
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* No-op Seedance pre-flight. Always returns `proceed` with the original model
|
|
34
|
+
* and image paths. Retained only so existing callers keep compiling — Venice
|
|
35
|
+
* removed the seedream-only face restriction that this gate used to enforce.
|
|
36
|
+
*/
|
|
37
|
+
export declare function ensureSeedanceCompatibility(_client: VeniceClient, targetModel: string, images: SeedanceInputImagePaths, _options?: PreflightOptions): Promise<PreflightAction>;
|
|
38
|
+
//# sourceMappingURL=seedance-preflight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seedance-preflight.d.ts","sourceRoot":"","sources":["../../src/venice/seedance-preflight.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,wEAAwE;AACxE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,IAAI,CAAC,EAAE,OAAO,oBAAoB,EAAE,yBAAyB,CAAC;IAC9D,mEAAmE;IACnE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,uBAAuB,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,uBAAuB,CAAA;CAAE,GAC3F;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,uBAAuB,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAIvG;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,GAAE,gBAAqB,GAC9B,OAAO,CAAC,eAAe,CAAC,CAE1B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Seedance 2.0 Compatibility Pre-flight — NEUTRALIZED (2026-07)
|
|
3
|
+
//
|
|
4
|
+
// Historical behavior: Seedance 2.0 used to reject face-bearing input images
|
|
5
|
+
// that weren't produced by `seedream-v5-lite` / `seedream-v5-lite-edit`. This
|
|
6
|
+
// module ran a provenance check before every Seedance call and, on a face-
|
|
7
|
+
// bearing non-seedream image, either rerouted the shot to a Kling/Veo fallback
|
|
8
|
+
// or "laundered" the image through a seedream edit pass.
|
|
9
|
+
//
|
|
10
|
+
// **Venice removed that cross-family restriction.** Seedance now accepts face-
|
|
11
|
+
// bearing input images from ANY image family, so the gate has nothing to do.
|
|
12
|
+
// `ensureSeedanceCompatibility` is kept as a no-op that always proceeds, so the
|
|
13
|
+
// remaining callers (a couple of one-off scripts) keep compiling; it can be
|
|
14
|
+
// deleted entirely once nothing imports it.
|
|
15
|
+
//
|
|
16
|
+
// NOTE: the Seedance face *consent* attestation (HTTP 409 `needs_consent`) is a
|
|
17
|
+
// SEPARATE mechanism handled at queue time in `video.ts` / `video-generator.ts`
|
|
18
|
+
// — it was never part of this provenance gate and is unaffected.
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// ---- Public entry point (no-op) -------------------------------------------
|
|
21
|
+
/**
|
|
22
|
+
* No-op Seedance pre-flight. Always returns `proceed` with the original model
|
|
23
|
+
* and image paths. Retained only so existing callers keep compiling — Venice
|
|
24
|
+
* removed the seedream-only face restriction that this gate used to enforce.
|
|
25
|
+
*/
|
|
26
|
+
export async function ensureSeedanceCompatibility(_client, targetModel, images, _options = {}) {
|
|
27
|
+
return { type: 'proceed', model: targetModel, imagePaths: images };
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=seedance-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seedance-preflight.js","sourceRoot":"","sources":["../../src/venice/seedance-preflight.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gEAAgE;AAChE,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,yDAAyD;AACzD,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,4CAA4C;AAC5C,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,iEAAiE;AACjE,8EAA8E;AA4B9E,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAqB,EACrB,WAAmB,EACnB,MAA+B,EAC/B,WAA6B,EAAE;IAE/B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/** Supported init-image modes for img2img generation. */
|
|
2
|
+
export type InitImageMode = "IMAGE_STRENGTH" | "STEP_SCHEDULE";
|
|
3
|
+
/** Request body for the image generation endpoint. */
|
|
4
|
+
export interface ImageGenerateRequest {
|
|
5
|
+
model: string;
|
|
6
|
+
prompt: string;
|
|
7
|
+
negative_prompt?: string;
|
|
8
|
+
resolution?: string;
|
|
9
|
+
aspect_ratio?: string;
|
|
10
|
+
/** @deprecated Use resolution + aspect_ratio instead. */
|
|
11
|
+
width?: number;
|
|
12
|
+
/** @deprecated Use resolution + aspect_ratio instead. */
|
|
13
|
+
height?: number;
|
|
14
|
+
steps?: number;
|
|
15
|
+
cfg_scale?: number;
|
|
16
|
+
seed?: number;
|
|
17
|
+
safe_mode?: boolean;
|
|
18
|
+
return_binary?: boolean;
|
|
19
|
+
hide_watermark?: boolean;
|
|
20
|
+
fidelity?: number;
|
|
21
|
+
image?: string;
|
|
22
|
+
init_image_mode?: InitImageMode;
|
|
23
|
+
format?: 'jpeg' | 'png' | 'webp';
|
|
24
|
+
variants?: number;
|
|
25
|
+
style_preset?: string;
|
|
26
|
+
lora_strength?: number;
|
|
27
|
+
embed_exif_metadata?: boolean;
|
|
28
|
+
enable_web_search?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/** A single generated image entry returned by the API. */
|
|
31
|
+
export interface GeneratedImage {
|
|
32
|
+
b64_json: string;
|
|
33
|
+
seed?: number;
|
|
34
|
+
}
|
|
35
|
+
/** Response body from the image generation endpoint (JSON mode). */
|
|
36
|
+
export interface ImageGenerateResponse {
|
|
37
|
+
id?: string;
|
|
38
|
+
images: GeneratedImage[];
|
|
39
|
+
timing?: {
|
|
40
|
+
inferenceDuration: number;
|
|
41
|
+
inferencePreprocessingTime: number;
|
|
42
|
+
inferenceQueueTime: number;
|
|
43
|
+
total: number;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @deprecated Inpainting via /images/edit was disabled May 19, 2025.
|
|
48
|
+
* Use multi-edit (/image/multi-edit) instead.
|
|
49
|
+
*/
|
|
50
|
+
export interface ImageEditRequest {
|
|
51
|
+
image: string;
|
|
52
|
+
mask?: string;
|
|
53
|
+
prompt: string;
|
|
54
|
+
strength?: number;
|
|
55
|
+
model?: string;
|
|
56
|
+
steps?: number;
|
|
57
|
+
cfg_scale?: number;
|
|
58
|
+
seed?: number;
|
|
59
|
+
safe_mode?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/** @deprecated */
|
|
62
|
+
export interface ImageEditResponse {
|
|
63
|
+
images: GeneratedImage[];
|
|
64
|
+
}
|
|
65
|
+
export type MultiEditModel = 'qwen-edit' | 'qwen-image-2-edit' | 'qwen-image-2-pro-edit' | 'flux-2-max-edit' | 'gpt-image-1-5-edit' | 'gpt-image-2-edit' | 'grok-imagine-edit' | 'nano-banana-2-edit' | 'nano-banana-pro-edit' | 'seedream-v4-edit' | 'seedream-v5-lite-edit';
|
|
66
|
+
export interface MultiEditRequest {
|
|
67
|
+
modelId: MultiEditModel;
|
|
68
|
+
prompt: string;
|
|
69
|
+
/**
|
|
70
|
+
* 1-3 images: first is base image, rest are reference layers.
|
|
71
|
+
* Each can be a raw base64 string, data URL, or HTTP URL.
|
|
72
|
+
*/
|
|
73
|
+
images: string[];
|
|
74
|
+
}
|
|
75
|
+
export interface ImageUpscaleRequest {
|
|
76
|
+
model?: string;
|
|
77
|
+
image: string;
|
|
78
|
+
scale?: number;
|
|
79
|
+
}
|
|
80
|
+
export interface BackgroundRemoveRequest {
|
|
81
|
+
model?: string;
|
|
82
|
+
image: string;
|
|
83
|
+
}
|
|
84
|
+
export interface VideoElement {
|
|
85
|
+
frontal_image_url?: string;
|
|
86
|
+
reference_image_urls?: string[];
|
|
87
|
+
video_url?: string;
|
|
88
|
+
}
|
|
89
|
+
export interface VideoQueueRequest {
|
|
90
|
+
model: string;
|
|
91
|
+
prompt: string;
|
|
92
|
+
duration: string;
|
|
93
|
+
image_url?: string;
|
|
94
|
+
end_image_url?: string;
|
|
95
|
+
negative_prompt?: string;
|
|
96
|
+
aspect_ratio?: string;
|
|
97
|
+
resolution?: string;
|
|
98
|
+
audio?: boolean;
|
|
99
|
+
audio_url?: string;
|
|
100
|
+
video_url?: string;
|
|
101
|
+
reference_image_urls?: string[];
|
|
102
|
+
elements?: VideoElement[];
|
|
103
|
+
scene_image_urls?: string[];
|
|
104
|
+
/**
|
|
105
|
+
* Voice-donor reference clips (up to 3, 2-15s each, ≤15s aggregate,
|
|
106
|
+
* wav/mp3, ≤15MB per file) bound in-prompt as @Audio1, @Audio2, … so a
|
|
107
|
+
* character's voice stays consistent across shots. Only accepted by the
|
|
108
|
+
* Seedance 2.0 R2V family and HappyHorse 1.1 R2V, and only alongside at
|
|
109
|
+
* least one reference image (audio-only is rejected at validation).
|
|
110
|
+
*/
|
|
111
|
+
reference_audio_urls?: string[];
|
|
112
|
+
}
|
|
113
|
+
export interface VideoQueueResponse {
|
|
114
|
+
model: string;
|
|
115
|
+
queue_id: string;
|
|
116
|
+
}
|
|
117
|
+
export interface VideoRetrieveRequest {
|
|
118
|
+
model: string;
|
|
119
|
+
queue_id: string;
|
|
120
|
+
delete_media_on_completion?: boolean;
|
|
121
|
+
}
|
|
122
|
+
export interface VideoRetrieveStatus {
|
|
123
|
+
status: 'PROCESSING';
|
|
124
|
+
average_execution_time: number;
|
|
125
|
+
execution_duration: number;
|
|
126
|
+
}
|
|
127
|
+
export interface VideoQuoteRequest {
|
|
128
|
+
model: string;
|
|
129
|
+
duration: string;
|
|
130
|
+
aspect_ratio?: string | null;
|
|
131
|
+
resolution?: string;
|
|
132
|
+
audio?: boolean | null;
|
|
133
|
+
}
|
|
134
|
+
export interface VideoQuoteResponse {
|
|
135
|
+
quote: number;
|
|
136
|
+
}
|
|
137
|
+
export interface VideoCompleteRequest {
|
|
138
|
+
model: string;
|
|
139
|
+
queue_id: string;
|
|
140
|
+
}
|
|
141
|
+
export interface SpeechRequest {
|
|
142
|
+
input: string;
|
|
143
|
+
model?: string;
|
|
144
|
+
voice?: string;
|
|
145
|
+
response_format?: 'mp3' | 'opus' | 'aac' | 'flac' | 'wav' | 'pcm';
|
|
146
|
+
speed?: number;
|
|
147
|
+
streaming?: boolean;
|
|
148
|
+
/** Qwen3 TTS only: style prompt for emotion/delivery control. */
|
|
149
|
+
prompt?: string;
|
|
150
|
+
/** Qwen3 TTS only: language selection. */
|
|
151
|
+
language?: string;
|
|
152
|
+
/** Qwen3 TTS only: sampling temperature (0-2). */
|
|
153
|
+
temperature?: number;
|
|
154
|
+
/** Qwen3 TTS only: nucleus sampling (0-1). */
|
|
155
|
+
top_p?: number;
|
|
156
|
+
}
|
|
157
|
+
export interface AudioQueueRequest {
|
|
158
|
+
model: string;
|
|
159
|
+
prompt: string;
|
|
160
|
+
lyrics_prompt?: string;
|
|
161
|
+
duration_seconds?: number | string;
|
|
162
|
+
force_instrumental?: boolean;
|
|
163
|
+
voice?: string;
|
|
164
|
+
language_code?: string;
|
|
165
|
+
speed?: number;
|
|
166
|
+
}
|
|
167
|
+
export interface AudioQueueResponse {
|
|
168
|
+
model: string;
|
|
169
|
+
queue_id: string;
|
|
170
|
+
status: 'QUEUED';
|
|
171
|
+
}
|
|
172
|
+
export interface AudioRetrieveRequest {
|
|
173
|
+
model: string;
|
|
174
|
+
queue_id: string;
|
|
175
|
+
delete_media_on_completion?: boolean;
|
|
176
|
+
}
|
|
177
|
+
export interface AudioRetrieveStatus {
|
|
178
|
+
status: 'PROCESSING';
|
|
179
|
+
average_execution_time: number;
|
|
180
|
+
execution_duration: number;
|
|
181
|
+
}
|
|
182
|
+
export interface CharacterReference {
|
|
183
|
+
name: string;
|
|
184
|
+
role: string;
|
|
185
|
+
base64Image: string;
|
|
186
|
+
}
|
|
187
|
+
export interface GenerateWithReferencesOptions {
|
|
188
|
+
prompt: string;
|
|
189
|
+
negative_prompt?: string;
|
|
190
|
+
resolution?: string;
|
|
191
|
+
aspect_ratio?: string;
|
|
192
|
+
steps?: number;
|
|
193
|
+
cfg_scale?: number;
|
|
194
|
+
seed?: number;
|
|
195
|
+
safe_mode?: boolean;
|
|
196
|
+
hide_watermark?: boolean;
|
|
197
|
+
model?: string;
|
|
198
|
+
referenceImages: CharacterReference[];
|
|
199
|
+
faceSlots?: number;
|
|
200
|
+
}
|
|
201
|
+
export interface GenerateWithReferencesResult {
|
|
202
|
+
base64: string;
|
|
203
|
+
seed: number | undefined;
|
|
204
|
+
}
|
|
205
|
+
export interface VeniceApiError {
|
|
206
|
+
error: {
|
|
207
|
+
message: string;
|
|
208
|
+
type?: string;
|
|
209
|
+
code?: string | number;
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/venice/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Venice AI API -- TypeScript type definitions
|
|
3
|
+
//
|
|
4
|
+
// Covers image/generate, image/multi-edit, image/edit, image/upscale,
|
|
5
|
+
// image/background-remove, video/queue, video/retrieve, video/quote,
|
|
6
|
+
// audio/speech, audio/queue, and character references.
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/venice/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+CAA+C;AAC/C,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,uDAAuD;AACvD,8EAA8E"}
|