getaiapi 1.3.1 → 2.0.1
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 +485 -429
- package/dist/{chunk-CN4FJ4FW.js → chunk-H6MMJNJX.js} +19 -19
- package/dist/{chunk-CN4FJ4FW.js.map → chunk-H6MMJNJX.js.map} +1 -1
- package/dist/cli.d.ts +2 -1
- package/dist/cli.js +2 -3
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +490 -1
- package/dist/index.js +580 -2
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/cli.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
export { }
|
package/dist/cli.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
1
|
import {
|
|
3
2
|
deriveCategory,
|
|
4
3
|
generate,
|
|
5
4
|
listModels,
|
|
6
5
|
resolveModel
|
|
7
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-H6MMJNJX.js";
|
|
8
7
|
|
|
9
|
-
// src/cli.ts
|
|
8
|
+
// deprecated/src/cli.ts
|
|
10
9
|
import { parseArgs } from "util";
|
|
11
10
|
var HELP = `
|
|
12
11
|
getaiapi - Unified AI API Gateway CLI
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { parseArgs } from 'node:util'\nimport { generate } from './gateway.js'\nimport { listModels, deriveCategory } from './discovery.js'\nimport { resolveModel } from './registry.js'\nimport type { GenerateRequest, ListModelsFilters, InputType, OutputType, ProviderName } from './types.js'\n\nconst HELP = `\ngetaiapi - Unified AI API Gateway CLI\n\nUsage:\n getaiapi <command> [options]\n\nCommands:\n generate Generate content using an AI model\n list List available models\n info Show details for a specific model\n\nOptions:\n --help, -h Show this help message\n\nExamples:\n getaiapi generate --model flux-schnell --prompt \"a cat\"\n getaiapi list --input text --output image --provider fal-ai\n getaiapi list --query flux\n getaiapi info flux-schnell\n`.trim()\n\nconst GENERATE_HELP = `\nUsage: getaiapi generate --model <name> --prompt <text> [options]\n\nOptions:\n --model, -m Model name (required)\n --prompt, -p Text prompt (required)\n --provider Preferred provider (e.g. fal-ai, replicate)\n --seed Seed for reproducibility\n --count, -n Number of outputs\n --size Output size (e.g. \"1024x1024\")\n --guidance Guidance scale\n --steps Number of inference steps\n --format Output format (png, jpeg, webp, mp4, etc.)\n --help, -h Show this help\n`.trim()\n\nconst LIST_HELP = `\nUsage: getaiapi list [options]\n\nOptions:\n --input, -i Filter by input modality (text, image, audio, video)\n --output, -o Filter by output modality (image, video, audio, text, 3d, segmentation)\n --provider, -p Filter by provider (e.g. fal-ai)\n --query, -q Search by name or alias\n --help, -h Show this help\n`.trim()\n\nconst INFO_HELP = `\nUsage: getaiapi info <model-name>\n\nShows detailed information about a model including:\n - Canonical name\n - Modality (inputs/outputs)\n - Aliases\n - Available providers\n`.trim()\n\nfunction padRight(str: string, len: number): string {\n return str.length >= len ? str : str + ' '.repeat(len - str.length)\n}\n\nfunction printTable(\n headers: string[],\n rows: string[][],\n): void {\n const widths = headers.map((h, i) =>\n Math.max(h.length, ...rows.map((r) => (r[i] ?? '').length)),\n )\n const sep = widths.map((w) => '-'.repeat(w)).join(' ')\n console.log(headers.map((h, i) => padRight(h, widths[i])).join(' '))\n console.log(sep)\n for (const row of rows) {\n console.log(row.map((cell, i) => padRight(cell ?? '', widths[i])).join(' '))\n }\n}\n\nasync function cmdGenerate(args: string[]): Promise<void> {\n const { values } = parseArgs({\n args,\n options: {\n model: { type: 'string', short: 'm' },\n prompt: { type: 'string', short: 'p' },\n provider: { type: 'string' },\n seed: { type: 'string' },\n count: { type: 'string', short: 'n' },\n size: { type: 'string' },\n guidance: { type: 'string' },\n steps: { type: 'string' },\n format: { type: 'string' },\n help: { type: 'boolean', short: 'h' },\n },\n strict: true,\n })\n\n if (values.help) {\n console.log(GENERATE_HELP)\n return\n }\n\n if (!values.model) {\n console.error('Error: --model is required\\n')\n console.log(GENERATE_HELP)\n process.exit(1)\n }\n\n if (!values.prompt) {\n console.error('Error: --prompt is required\\n')\n console.log(GENERATE_HELP)\n process.exit(1)\n }\n\n function parseNum(name: string, value: string | undefined): number | undefined {\n if (!value) return undefined\n const n = Number(value)\n if (Number.isNaN(n)) {\n console.error(`Error: --${name} must be a number, got \"${value}\"\\n`)\n process.exit(1)\n }\n return n\n }\n\n const result = await generate({\n model: values.model,\n prompt: values.prompt,\n provider: values.provider as ProviderName | undefined,\n seed: parseNum('seed', values.seed),\n count: parseNum('count', values.count),\n size: values.size ?? undefined,\n guidance: parseNum('guidance', values.guidance),\n steps: parseNum('steps', values.steps),\n format: values.format as GenerateRequest['format'],\n })\n\n console.log(JSON.stringify(result, null, 2))\n}\n\nfunction cmdList(args: string[]): void {\n const { values } = parseArgs({\n args,\n options: {\n input: { type: 'string', short: 'i' },\n output: { type: 'string', short: 'o' },\n provider: { type: 'string', short: 'p' },\n query: { type: 'string', short: 'q' },\n help: { type: 'boolean', short: 'h' },\n },\n strict: true,\n })\n\n if (values.help) {\n console.log(LIST_HELP)\n return\n }\n\n const models = listModels({\n input: values.input as InputType | undefined,\n output: values.output as OutputType | undefined,\n provider: values.provider as ProviderName | undefined,\n query: values.query ?? undefined,\n })\n\n if (models.length === 0) {\n console.log('No models found matching the given filters.')\n return\n }\n\n const rows = models.map((m) => [\n m.canonical_name,\n deriveCategory(m),\n m.providers.map((p) => p.provider).join(', '),\n ])\n\n printTable(['Name', 'Modality', 'Providers'], rows)\n}\n\nfunction cmdInfo(args: string[]): void {\n const { values, positionals } = parseArgs({\n args,\n options: {\n help: { type: 'boolean', short: 'h' },\n },\n allowPositionals: true,\n strict: true,\n })\n\n if (values.help) {\n console.log(INFO_HELP)\n return\n }\n\n const name = positionals[0]\n if (!name) {\n console.error('Error: model name is required\\n')\n console.log(INFO_HELP)\n process.exit(1)\n }\n\n const model = resolveModel(name)\n\n console.log(`Name: ${model.canonical_name}`)\n console.log(`Modality: ${deriveCategory(model)}`)\n console.log(`Inputs: ${model.modality.inputs.join(', ')}`)\n console.log(`Outputs: ${model.modality.outputs.join(', ')}`)\n console.log(`Aliases: ${model.aliases.length > 0 ? model.aliases.join(', ') : '(none)'}`)\n console.log(`Providers: ${model.providers.map((p) => p.provider).join(', ')}`)\n console.log()\n console.log('Provider details:')\n for (const p of model.providers) {\n console.log(` ${p.provider}`)\n console.log(` Skill: ${p.skill_id}`)\n console.log(` Endpoint: ${p.endpoint}`)\n console.log(` Auth env: ${p.auth_env}`)\n }\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2)\n\n if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {\n console.log(HELP)\n return\n }\n\n const command = args[0]\n const rest = args.slice(1)\n\n switch (command) {\n case 'generate':\n await cmdGenerate(rest)\n break\n case 'list':\n cmdList(rest)\n break\n case 'info':\n cmdInfo(rest)\n break\n default:\n console.error(`Unknown command: ${command}\\n`)\n console.log(HELP)\n process.exit(1)\n }\n}\n\nmain().catch((err: Error) => {\n console.error(`Error: ${err.message}`)\n process.exit(1)\n})\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../deprecated/src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { parseArgs } from 'node:util'\nimport { generate } from './gateway.js'\nimport { listModels, deriveCategory } from './discovery.js'\nimport { resolveModel } from './registry.js'\nimport type { GenerateRequest, ListModelsFilters, InputType, OutputType, ProviderName } from './types.js'\n\nconst HELP = `\ngetaiapi - Unified AI API Gateway CLI\n\nUsage:\n getaiapi <command> [options]\n\nCommands:\n generate Generate content using an AI model\n list List available models\n info Show details for a specific model\n\nOptions:\n --help, -h Show this help message\n\nExamples:\n getaiapi generate --model flux-schnell --prompt \"a cat\"\n getaiapi list --input text --output image --provider fal-ai\n getaiapi list --query flux\n getaiapi info flux-schnell\n`.trim()\n\nconst GENERATE_HELP = `\nUsage: getaiapi generate --model <name> --prompt <text> [options]\n\nOptions:\n --model, -m Model name (required)\n --prompt, -p Text prompt (required)\n --provider Preferred provider (e.g. fal-ai, replicate)\n --seed Seed for reproducibility\n --count, -n Number of outputs\n --size Output size (e.g. \"1024x1024\")\n --guidance Guidance scale\n --steps Number of inference steps\n --format Output format (png, jpeg, webp, mp4, etc.)\n --help, -h Show this help\n`.trim()\n\nconst LIST_HELP = `\nUsage: getaiapi list [options]\n\nOptions:\n --input, -i Filter by input modality (text, image, audio, video)\n --output, -o Filter by output modality (image, video, audio, text, 3d, segmentation)\n --provider, -p Filter by provider (e.g. fal-ai)\n --query, -q Search by name or alias\n --help, -h Show this help\n`.trim()\n\nconst INFO_HELP = `\nUsage: getaiapi info <model-name>\n\nShows detailed information about a model including:\n - Canonical name\n - Modality (inputs/outputs)\n - Aliases\n - Available providers\n`.trim()\n\nfunction padRight(str: string, len: number): string {\n return str.length >= len ? str : str + ' '.repeat(len - str.length)\n}\n\nfunction printTable(\n headers: string[],\n rows: string[][],\n): void {\n const widths = headers.map((h, i) =>\n Math.max(h.length, ...rows.map((r) => (r[i] ?? '').length)),\n )\n const sep = widths.map((w) => '-'.repeat(w)).join(' ')\n console.log(headers.map((h, i) => padRight(h, widths[i])).join(' '))\n console.log(sep)\n for (const row of rows) {\n console.log(row.map((cell, i) => padRight(cell ?? '', widths[i])).join(' '))\n }\n}\n\nasync function cmdGenerate(args: string[]): Promise<void> {\n const { values } = parseArgs({\n args,\n options: {\n model: { type: 'string', short: 'm' },\n prompt: { type: 'string', short: 'p' },\n provider: { type: 'string' },\n seed: { type: 'string' },\n count: { type: 'string', short: 'n' },\n size: { type: 'string' },\n guidance: { type: 'string' },\n steps: { type: 'string' },\n format: { type: 'string' },\n help: { type: 'boolean', short: 'h' },\n },\n strict: true,\n })\n\n if (values.help) {\n console.log(GENERATE_HELP)\n return\n }\n\n if (!values.model) {\n console.error('Error: --model is required\\n')\n console.log(GENERATE_HELP)\n process.exit(1)\n }\n\n if (!values.prompt) {\n console.error('Error: --prompt is required\\n')\n console.log(GENERATE_HELP)\n process.exit(1)\n }\n\n function parseNum(name: string, value: string | undefined): number | undefined {\n if (!value) return undefined\n const n = Number(value)\n if (Number.isNaN(n)) {\n console.error(`Error: --${name} must be a number, got \"${value}\"\\n`)\n process.exit(1)\n }\n return n\n }\n\n const result = await generate({\n model: values.model,\n prompt: values.prompt,\n provider: values.provider as ProviderName | undefined,\n seed: parseNum('seed', values.seed),\n count: parseNum('count', values.count),\n size: values.size ?? undefined,\n guidance: parseNum('guidance', values.guidance),\n steps: parseNum('steps', values.steps),\n format: values.format as GenerateRequest['format'],\n })\n\n console.log(JSON.stringify(result, null, 2))\n}\n\nfunction cmdList(args: string[]): void {\n const { values } = parseArgs({\n args,\n options: {\n input: { type: 'string', short: 'i' },\n output: { type: 'string', short: 'o' },\n provider: { type: 'string', short: 'p' },\n query: { type: 'string', short: 'q' },\n help: { type: 'boolean', short: 'h' },\n },\n strict: true,\n })\n\n if (values.help) {\n console.log(LIST_HELP)\n return\n }\n\n const models = listModels({\n input: values.input as InputType | undefined,\n output: values.output as OutputType | undefined,\n provider: values.provider as ProviderName | undefined,\n query: values.query ?? undefined,\n })\n\n if (models.length === 0) {\n console.log('No models found matching the given filters.')\n return\n }\n\n const rows = models.map((m) => [\n m.canonical_name,\n deriveCategory(m),\n m.providers.map((p) => p.provider).join(', '),\n ])\n\n printTable(['Name', 'Modality', 'Providers'], rows)\n}\n\nfunction cmdInfo(args: string[]): void {\n const { values, positionals } = parseArgs({\n args,\n options: {\n help: { type: 'boolean', short: 'h' },\n },\n allowPositionals: true,\n strict: true,\n })\n\n if (values.help) {\n console.log(INFO_HELP)\n return\n }\n\n const name = positionals[0]\n if (!name) {\n console.error('Error: model name is required\\n')\n console.log(INFO_HELP)\n process.exit(1)\n }\n\n const model = resolveModel(name)\n\n console.log(`Name: ${model.canonical_name}`)\n console.log(`Modality: ${deriveCategory(model)}`)\n console.log(`Inputs: ${model.modality.inputs.join(', ')}`)\n console.log(`Outputs: ${model.modality.outputs.join(', ')}`)\n console.log(`Aliases: ${model.aliases.length > 0 ? model.aliases.join(', ') : '(none)'}`)\n console.log(`Providers: ${model.providers.map((p) => p.provider).join(', ')}`)\n console.log()\n console.log('Provider details:')\n for (const p of model.providers) {\n console.log(` ${p.provider}`)\n console.log(` Skill: ${p.skill_id}`)\n console.log(` Endpoint: ${p.endpoint}`)\n console.log(` Auth env: ${p.auth_env}`)\n }\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2)\n\n if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {\n console.log(HELP)\n return\n }\n\n const command = args[0]\n const rest = args.slice(1)\n\n switch (command) {\n case 'generate':\n await cmdGenerate(rest)\n break\n case 'list':\n cmdList(rest)\n break\n case 'info':\n cmdInfo(rest)\n break\n default:\n console.error(`Unknown command: ${command}\\n`)\n console.log(HELP)\n process.exit(1)\n }\n}\n\nmain().catch((err: Error) => {\n console.error(`Error: ${err.message}`)\n process.exit(1)\n})\n"],"mappings":"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","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,492 @@
|
|
|
1
|
+
interface KlingConfig {
|
|
2
|
+
accessKey: string;
|
|
3
|
+
secretKey: string;
|
|
4
|
+
/** Fetch timeout per HTTP request in ms. Default 30_000. */
|
|
5
|
+
fetchTimeoutMs?: number;
|
|
6
|
+
}
|
|
7
|
+
interface PollOptions {
|
|
8
|
+
/** Overall poll timeout in ms. Default 300_000 (5 min). */
|
|
9
|
+
timeout?: number;
|
|
10
|
+
/** Initial poll interval in ms. Default 2_000. Grows with backoff. */
|
|
11
|
+
pollInterval?: number;
|
|
12
|
+
}
|
|
13
|
+
interface TextToVideoInput extends PollOptions {
|
|
14
|
+
prompt: string;
|
|
15
|
+
negative_prompt?: string;
|
|
16
|
+
duration?: string;
|
|
17
|
+
aspect_ratio?: string;
|
|
18
|
+
cfg_scale?: number;
|
|
19
|
+
sound?: 'on' | 'off';
|
|
20
|
+
/** Additional Kling-native parameters. */
|
|
21
|
+
options?: Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
interface ImageToVideoInput extends PollOptions {
|
|
24
|
+
image: string;
|
|
25
|
+
prompt?: string;
|
|
26
|
+
negative_prompt?: string;
|
|
27
|
+
duration?: string;
|
|
28
|
+
aspect_ratio?: string;
|
|
29
|
+
cfg_scale?: number;
|
|
30
|
+
sound?: 'on' | 'off';
|
|
31
|
+
image_tail?: string;
|
|
32
|
+
voice_list?: Array<{
|
|
33
|
+
voice_id: string;
|
|
34
|
+
}>;
|
|
35
|
+
element_list?: Array<{
|
|
36
|
+
id: string;
|
|
37
|
+
image: string;
|
|
38
|
+
}>;
|
|
39
|
+
options?: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
interface OmniVideoInput extends PollOptions {
|
|
42
|
+
prompt: string;
|
|
43
|
+
image?: string;
|
|
44
|
+
negative_prompt?: string;
|
|
45
|
+
duration?: string;
|
|
46
|
+
aspect_ratio?: string;
|
|
47
|
+
cfg_scale?: number;
|
|
48
|
+
sound?: 'on' | 'off';
|
|
49
|
+
element_list?: Array<{
|
|
50
|
+
id: string;
|
|
51
|
+
image: string;
|
|
52
|
+
}>;
|
|
53
|
+
options?: Record<string, unknown>;
|
|
54
|
+
}
|
|
55
|
+
interface ImageGenerationInput extends PollOptions {
|
|
56
|
+
prompt: string;
|
|
57
|
+
image?: string;
|
|
58
|
+
n?: number;
|
|
59
|
+
aspect_ratio?: string;
|
|
60
|
+
options?: Record<string, unknown>;
|
|
61
|
+
}
|
|
62
|
+
interface OmniImageInput extends PollOptions {
|
|
63
|
+
prompt: string;
|
|
64
|
+
image?: string;
|
|
65
|
+
n?: number;
|
|
66
|
+
aspect_ratio?: string;
|
|
67
|
+
options?: Record<string, unknown>;
|
|
68
|
+
}
|
|
69
|
+
interface VirtualTryOnInput extends PollOptions {
|
|
70
|
+
human_image: string;
|
|
71
|
+
cloth_image: string;
|
|
72
|
+
options?: Record<string, unknown>;
|
|
73
|
+
}
|
|
74
|
+
interface AvatarInput extends PollOptions {
|
|
75
|
+
image: string;
|
|
76
|
+
sound_file?: string;
|
|
77
|
+
prompt?: string;
|
|
78
|
+
options?: Record<string, unknown>;
|
|
79
|
+
}
|
|
80
|
+
interface LipSyncInput extends PollOptions {
|
|
81
|
+
session_id: string;
|
|
82
|
+
face_choose: Array<{
|
|
83
|
+
face_id: string;
|
|
84
|
+
audio_id?: string;
|
|
85
|
+
sound_file?: string;
|
|
86
|
+
sound_start_time: number;
|
|
87
|
+
sound_end_time: number;
|
|
88
|
+
sound_insert_time: number;
|
|
89
|
+
sound_volume?: number;
|
|
90
|
+
original_audio_volume?: number;
|
|
91
|
+
}>;
|
|
92
|
+
options?: Record<string, unknown>;
|
|
93
|
+
}
|
|
94
|
+
interface EffectsInput extends PollOptions {
|
|
95
|
+
effect_scene: string;
|
|
96
|
+
input: {
|
|
97
|
+
image?: string;
|
|
98
|
+
images?: string[];
|
|
99
|
+
};
|
|
100
|
+
options?: Record<string, unknown>;
|
|
101
|
+
}
|
|
102
|
+
interface MotionControlInput extends PollOptions {
|
|
103
|
+
image_url: string;
|
|
104
|
+
video_url?: string;
|
|
105
|
+
prompt?: string;
|
|
106
|
+
keep_original_sound?: 'yes' | 'no';
|
|
107
|
+
character_orientation?: string;
|
|
108
|
+
element_list?: Array<{
|
|
109
|
+
id: string;
|
|
110
|
+
image: string;
|
|
111
|
+
}>;
|
|
112
|
+
options?: Record<string, unknown>;
|
|
113
|
+
}
|
|
114
|
+
interface TtsInput extends PollOptions {
|
|
115
|
+
text: string;
|
|
116
|
+
voice_id: string;
|
|
117
|
+
voice_language: string;
|
|
118
|
+
voice_speed?: number;
|
|
119
|
+
options?: Record<string, unknown>;
|
|
120
|
+
}
|
|
121
|
+
interface VideoToAudioInput extends PollOptions {
|
|
122
|
+
video_url?: string;
|
|
123
|
+
video_id?: string;
|
|
124
|
+
sound_effect_prompt?: string;
|
|
125
|
+
bgm_prompt?: string;
|
|
126
|
+
asmr_mode?: boolean;
|
|
127
|
+
options?: Record<string, unknown>;
|
|
128
|
+
}
|
|
129
|
+
interface TextToAudioInput extends PollOptions {
|
|
130
|
+
prompt: string;
|
|
131
|
+
duration: number;
|
|
132
|
+
options?: Record<string, unknown>;
|
|
133
|
+
}
|
|
134
|
+
interface CreateVoiceInput extends PollOptions {
|
|
135
|
+
voice_name: string;
|
|
136
|
+
voice_url?: string;
|
|
137
|
+
video_id?: string;
|
|
138
|
+
options?: Record<string, unknown>;
|
|
139
|
+
}
|
|
140
|
+
interface MultiShotInput extends PollOptions {
|
|
141
|
+
element_frontal_image: string;
|
|
142
|
+
options?: Record<string, unknown>;
|
|
143
|
+
}
|
|
144
|
+
interface ReferenceToImageInput extends PollOptions {
|
|
145
|
+
subject_image_list: Array<{
|
|
146
|
+
subject_image: string;
|
|
147
|
+
}>;
|
|
148
|
+
prompt?: string;
|
|
149
|
+
scene_image?: string;
|
|
150
|
+
style_image?: string;
|
|
151
|
+
n?: number;
|
|
152
|
+
aspect_ratio?: string;
|
|
153
|
+
options?: Record<string, unknown>;
|
|
154
|
+
}
|
|
155
|
+
interface ExpandImageInput extends PollOptions {
|
|
156
|
+
image: string;
|
|
157
|
+
up_expansion_ratio: number;
|
|
158
|
+
down_expansion_ratio: number;
|
|
159
|
+
left_expansion_ratio: number;
|
|
160
|
+
right_expansion_ratio: number;
|
|
161
|
+
prompt?: string;
|
|
162
|
+
n?: number;
|
|
163
|
+
options?: Record<string, unknown>;
|
|
164
|
+
}
|
|
165
|
+
interface ExtendVideoInput extends PollOptions {
|
|
166
|
+
video_id: string;
|
|
167
|
+
prompt?: string;
|
|
168
|
+
negative_prompt?: string;
|
|
169
|
+
cfg_scale?: number;
|
|
170
|
+
options?: Record<string, unknown>;
|
|
171
|
+
}
|
|
172
|
+
interface IdentifyFaceInput extends PollOptions {
|
|
173
|
+
video_url?: string;
|
|
174
|
+
video_id?: string;
|
|
175
|
+
options?: Record<string, unknown>;
|
|
176
|
+
}
|
|
177
|
+
interface ImageRecognizeInput extends PollOptions {
|
|
178
|
+
image: string;
|
|
179
|
+
options?: Record<string, unknown>;
|
|
180
|
+
}
|
|
181
|
+
interface ReferenceToVideoInput extends PollOptions {
|
|
182
|
+
image_list: Array<{
|
|
183
|
+
image: string;
|
|
184
|
+
}>;
|
|
185
|
+
prompt: string;
|
|
186
|
+
mode?: 'std' | 'pro';
|
|
187
|
+
duration?: '5' | '10';
|
|
188
|
+
aspect_ratio?: string;
|
|
189
|
+
options?: Record<string, unknown>;
|
|
190
|
+
}
|
|
191
|
+
interface KlingVideoResult {
|
|
192
|
+
task_id: string;
|
|
193
|
+
videos: Array<{
|
|
194
|
+
id: string;
|
|
195
|
+
url: string;
|
|
196
|
+
duration: string;
|
|
197
|
+
}>;
|
|
198
|
+
}
|
|
199
|
+
interface KlingImageResult {
|
|
200
|
+
task_id: string;
|
|
201
|
+
images: Array<{
|
|
202
|
+
index: number;
|
|
203
|
+
url: string;
|
|
204
|
+
}>;
|
|
205
|
+
}
|
|
206
|
+
interface KlingAudioResult {
|
|
207
|
+
task_id: string;
|
|
208
|
+
audios: Array<{
|
|
209
|
+
id: string;
|
|
210
|
+
url: string;
|
|
211
|
+
url_mp3?: string;
|
|
212
|
+
url_wav?: string;
|
|
213
|
+
duration?: string;
|
|
214
|
+
duration_mp3?: string;
|
|
215
|
+
duration_wav?: string;
|
|
216
|
+
}>;
|
|
217
|
+
}
|
|
218
|
+
interface KlingJsonResult {
|
|
219
|
+
task_id: string;
|
|
220
|
+
data: unknown;
|
|
221
|
+
}
|
|
222
|
+
interface KlingFaceResult {
|
|
223
|
+
session_id: string;
|
|
224
|
+
face_data: Array<{
|
|
225
|
+
face_id: string;
|
|
226
|
+
face_image: string;
|
|
227
|
+
start_time: number;
|
|
228
|
+
end_time: number;
|
|
229
|
+
}>;
|
|
230
|
+
}
|
|
231
|
+
interface KlingMultiShotResult {
|
|
232
|
+
task_id: string;
|
|
233
|
+
images: Array<{
|
|
234
|
+
index: number;
|
|
235
|
+
url_1: string;
|
|
236
|
+
url_2: string;
|
|
237
|
+
url_3: string;
|
|
238
|
+
}>;
|
|
239
|
+
}
|
|
240
|
+
interface KlingVoiceResult {
|
|
241
|
+
task_id: string;
|
|
242
|
+
voices: Array<{
|
|
243
|
+
voice_id: string;
|
|
244
|
+
voice_name: string;
|
|
245
|
+
trial_url: string;
|
|
246
|
+
owned_by: string;
|
|
247
|
+
}>;
|
|
248
|
+
}
|
|
249
|
+
interface KlingVideoAudioResult {
|
|
250
|
+
task_id: string;
|
|
251
|
+
videos: Array<{
|
|
252
|
+
id: string;
|
|
253
|
+
url: string;
|
|
254
|
+
duration: string;
|
|
255
|
+
}>;
|
|
256
|
+
audios: Array<{
|
|
257
|
+
id: string;
|
|
258
|
+
url_mp3?: string;
|
|
259
|
+
url_wav?: string;
|
|
260
|
+
duration_mp3?: string;
|
|
261
|
+
duration_wav?: string;
|
|
262
|
+
}>;
|
|
263
|
+
}
|
|
264
|
+
interface AccountCostsInput {
|
|
265
|
+
/** Query start time, Unix timestamp in ms. */
|
|
266
|
+
start_time: number;
|
|
267
|
+
/** Query end time, Unix timestamp in ms. */
|
|
268
|
+
end_time: number;
|
|
269
|
+
/** Optional filter by exact resource package name. */
|
|
270
|
+
resource_pack_name?: string;
|
|
271
|
+
}
|
|
272
|
+
interface ResourcePackInfo {
|
|
273
|
+
resource_pack_name: string;
|
|
274
|
+
resource_pack_id: string;
|
|
275
|
+
/** `"decreasing_total"` = fixed pool; `"constant_period"` = periodic refresh. */
|
|
276
|
+
resource_pack_type: 'decreasing_total' | 'constant_period';
|
|
277
|
+
total_quantity: number;
|
|
278
|
+
/** Remaining units — has a 12-hour reporting delay. */
|
|
279
|
+
remaining_quantity: number;
|
|
280
|
+
purchase_time: number;
|
|
281
|
+
effective_time: number;
|
|
282
|
+
invalid_time: number;
|
|
283
|
+
status: 'toBeOnline' | 'online' | 'expired' | 'runOut';
|
|
284
|
+
}
|
|
285
|
+
interface AccountCostsResult {
|
|
286
|
+
resource_pack_subscribe_infos: ResourcePackInfo[];
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
declare class KlingError extends Error {
|
|
290
|
+
readonly code: string;
|
|
291
|
+
constructor(code: string, message: string);
|
|
292
|
+
}
|
|
293
|
+
declare class KlingAuthError extends KlingError {
|
|
294
|
+
constructor(message?: string);
|
|
295
|
+
}
|
|
296
|
+
declare class KlingRateLimitError extends KlingError {
|
|
297
|
+
readonly retryAfterMs: number;
|
|
298
|
+
readonly bodyCode: number | undefined;
|
|
299
|
+
readonly detail: string;
|
|
300
|
+
constructor(retryAfterMs: number, bodyCode?: number, detail?: string);
|
|
301
|
+
}
|
|
302
|
+
declare class KlingApiError extends KlingError {
|
|
303
|
+
readonly statusCode: number;
|
|
304
|
+
readonly raw: unknown;
|
|
305
|
+
constructor(endpoint: string, statusCode: number, raw: unknown);
|
|
306
|
+
}
|
|
307
|
+
declare class KlingTimeoutError extends KlingError {
|
|
308
|
+
readonly timeoutMs: number;
|
|
309
|
+
constructor(timeoutMs: number);
|
|
310
|
+
}
|
|
311
|
+
declare class KlingTaskFailedError extends KlingError {
|
|
312
|
+
readonly taskId: string;
|
|
313
|
+
constructor(taskId: string, message: string);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/** Generates an HS256 JWT for Kling API authentication. */
|
|
317
|
+
declare function generateJwt(accessKey: string, secretKey: string): string;
|
|
318
|
+
|
|
319
|
+
type Extractor<T> = (data: Record<string, unknown>) => T;
|
|
320
|
+
|
|
321
|
+
/** Kling API client. Holds auth state and HTTP configuration. */
|
|
322
|
+
declare class KlingClient {
|
|
323
|
+
private accessKey;
|
|
324
|
+
private secretKey;
|
|
325
|
+
private fetchTimeoutMs;
|
|
326
|
+
/** Update credentials and settings. */
|
|
327
|
+
configure(config: KlingConfig): void;
|
|
328
|
+
private resolveAuth;
|
|
329
|
+
private handleErrors;
|
|
330
|
+
private handleBodyErrors;
|
|
331
|
+
private httpSubmit;
|
|
332
|
+
private httpGet;
|
|
333
|
+
private httpPoll;
|
|
334
|
+
accountCosts(input: AccountCostsInput): Promise<AccountCostsResult>;
|
|
335
|
+
execute<T, I extends PollOptions & {
|
|
336
|
+
options?: Record<string, unknown>;
|
|
337
|
+
}>(endpoint: string, defaults: Record<string, unknown>, input: I, extractor: Extractor<T>, sync?: boolean): Promise<T>;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/** Creates an isolated Kling client with its own credentials and settings. */
|
|
341
|
+
declare function createClient(config: KlingConfig): {
|
|
342
|
+
textToVideoV1Standard(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
343
|
+
textToVideoV1_6Pro(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
344
|
+
textToVideoV1_6Standard(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
345
|
+
textToVideoV2Master(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
346
|
+
textToVideoV2_1Master(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
347
|
+
textToVideoV2_5TurboPro(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
348
|
+
textToVideoV2_6Pro(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
349
|
+
textToVideoV3Pro(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
350
|
+
textToVideoV3Standard(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
351
|
+
imageToVideoV1Standard(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
352
|
+
imageToVideoV1_5Pro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
353
|
+
imageToVideoV1_6Pro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
354
|
+
imageToVideoV1_6Standard(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
355
|
+
imageToVideoV2Master(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
356
|
+
imageToVideoV2_1Master(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
357
|
+
imageToVideoV2_1Pro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
358
|
+
imageToVideoV2_1Standard(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
359
|
+
imageToVideoV2_5TurboPro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
360
|
+
imageToVideoV2_5TurboStandard(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
361
|
+
imageToVideoV2_6Pro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
362
|
+
imageToVideoV3Pro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
363
|
+
imageToVideoV3Standard(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
364
|
+
omniVideoO1ImageToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
365
|
+
omniVideoO1ReferenceToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
366
|
+
omniVideoO1StandardImageToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
367
|
+
omniVideoO1StandardReferenceToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
368
|
+
omniVideoO1StandardVideoEdit(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
369
|
+
omniVideoO1StandardVideoReference(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
370
|
+
omniVideoO1VideoEdit(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
371
|
+
omniVideoO1VideoReference(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
372
|
+
omniVideoO3ProImageToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
373
|
+
omniVideoO3ProReferenceToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
374
|
+
omniVideoO3ProTextToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
375
|
+
omniVideoO3ProVideoEdit(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
376
|
+
omniVideoO3ProVideoReference(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
377
|
+
omniVideoO3StandardReferenceToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
378
|
+
omniVideoO3StandardTextToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
379
|
+
omniVideoO3StandardVideoEdit(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
380
|
+
omniVideoO3StandardVideoReference(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
381
|
+
imageV3TextToImage(input: ImageGenerationInput): Promise<KlingImageResult>;
|
|
382
|
+
imageV3ImageToImage(input: ImageGenerationInput): Promise<KlingImageResult>;
|
|
383
|
+
imageO1(input: OmniImageInput): Promise<KlingImageResult>;
|
|
384
|
+
imageO3TextToImage(input: OmniImageInput): Promise<KlingImageResult>;
|
|
385
|
+
imageO3ImageToImage(input: OmniImageInput): Promise<KlingImageResult>;
|
|
386
|
+
virtualTryOn(input: VirtualTryOnInput): Promise<KlingImageResult>;
|
|
387
|
+
avatarV2Pro(input: AvatarInput): Promise<KlingVideoResult>;
|
|
388
|
+
avatarV2Standard(input: AvatarInput): Promise<KlingVideoResult>;
|
|
389
|
+
avatarV1Pro(input: AvatarInput): Promise<KlingVideoResult>;
|
|
390
|
+
avatarV1Standard(input: AvatarInput): Promise<KlingVideoResult>;
|
|
391
|
+
lipSyncAudioToVideo(input: LipSyncInput): Promise<KlingVideoResult>;
|
|
392
|
+
lipSyncTextToVideo(input: LipSyncInput): Promise<KlingVideoResult>;
|
|
393
|
+
effectsV1Standard(input: EffectsInput): Promise<KlingVideoResult>;
|
|
394
|
+
effectsV1_5Pro(input: EffectsInput): Promise<KlingVideoResult>;
|
|
395
|
+
effectsV1_6Pro(input: EffectsInput): Promise<KlingVideoResult>;
|
|
396
|
+
effectsV1_6Standard(input: EffectsInput): Promise<KlingVideoResult>;
|
|
397
|
+
motionControlV2_6Pro(input: MotionControlInput): Promise<KlingVideoResult>;
|
|
398
|
+
motionControlV2_6Standard(input: MotionControlInput): Promise<KlingVideoResult>;
|
|
399
|
+
motionControlV3Pro(input: MotionControlInput): Promise<KlingVideoResult>;
|
|
400
|
+
motionControlV3Standard(input: MotionControlInput): Promise<KlingVideoResult>;
|
|
401
|
+
tts(input: TtsInput): Promise<KlingAudioResult>;
|
|
402
|
+
videoToAudio(input: VideoToAudioInput): Promise<KlingVideoAudioResult>;
|
|
403
|
+
textToAudio(input: TextToAudioInput): Promise<KlingAudioResult>;
|
|
404
|
+
createVoice(input: CreateVoiceInput): Promise<KlingVoiceResult>;
|
|
405
|
+
multiShot(input: MultiShotInput): Promise<KlingMultiShotResult>;
|
|
406
|
+
referenceToImage(input: ReferenceToImageInput): Promise<KlingImageResult>;
|
|
407
|
+
expandImage(input: ExpandImageInput): Promise<KlingImageResult>;
|
|
408
|
+
extendVideo(input: ExtendVideoInput): Promise<KlingVideoResult>;
|
|
409
|
+
identifyFace(input: IdentifyFaceInput): Promise<KlingFaceResult>;
|
|
410
|
+
imageRecognize(input: ImageRecognizeInput): Promise<KlingJsonResult>;
|
|
411
|
+
referenceToVideo(input: ReferenceToVideoInput): Promise<KlingVideoResult>;
|
|
412
|
+
accountCosts(input: AccountCostsInput): Promise<AccountCostsResult>;
|
|
413
|
+
configure: (c: KlingConfig) => void;
|
|
414
|
+
};
|
|
415
|
+
declare const kling: {
|
|
416
|
+
textToVideoV1Standard(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
417
|
+
textToVideoV1_6Pro(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
418
|
+
textToVideoV1_6Standard(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
419
|
+
textToVideoV2Master(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
420
|
+
textToVideoV2_1Master(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
421
|
+
textToVideoV2_5TurboPro(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
422
|
+
textToVideoV2_6Pro(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
423
|
+
textToVideoV3Pro(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
424
|
+
textToVideoV3Standard(input: TextToVideoInput): Promise<KlingVideoResult>;
|
|
425
|
+
imageToVideoV1Standard(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
426
|
+
imageToVideoV1_5Pro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
427
|
+
imageToVideoV1_6Pro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
428
|
+
imageToVideoV1_6Standard(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
429
|
+
imageToVideoV2Master(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
430
|
+
imageToVideoV2_1Master(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
431
|
+
imageToVideoV2_1Pro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
432
|
+
imageToVideoV2_1Standard(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
433
|
+
imageToVideoV2_5TurboPro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
434
|
+
imageToVideoV2_5TurboStandard(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
435
|
+
imageToVideoV2_6Pro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
436
|
+
imageToVideoV3Pro(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
437
|
+
imageToVideoV3Standard(input: ImageToVideoInput): Promise<KlingVideoResult>;
|
|
438
|
+
omniVideoO1ImageToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
439
|
+
omniVideoO1ReferenceToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
440
|
+
omniVideoO1StandardImageToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
441
|
+
omniVideoO1StandardReferenceToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
442
|
+
omniVideoO1StandardVideoEdit(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
443
|
+
omniVideoO1StandardVideoReference(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
444
|
+
omniVideoO1VideoEdit(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
445
|
+
omniVideoO1VideoReference(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
446
|
+
omniVideoO3ProImageToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
447
|
+
omniVideoO3ProReferenceToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
448
|
+
omniVideoO3ProTextToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
449
|
+
omniVideoO3ProVideoEdit(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
450
|
+
omniVideoO3ProVideoReference(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
451
|
+
omniVideoO3StandardReferenceToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
452
|
+
omniVideoO3StandardTextToVideo(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
453
|
+
omniVideoO3StandardVideoEdit(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
454
|
+
omniVideoO3StandardVideoReference(input: OmniVideoInput): Promise<KlingVideoResult>;
|
|
455
|
+
imageV3TextToImage(input: ImageGenerationInput): Promise<KlingImageResult>;
|
|
456
|
+
imageV3ImageToImage(input: ImageGenerationInput): Promise<KlingImageResult>;
|
|
457
|
+
imageO1(input: OmniImageInput): Promise<KlingImageResult>;
|
|
458
|
+
imageO3TextToImage(input: OmniImageInput): Promise<KlingImageResult>;
|
|
459
|
+
imageO3ImageToImage(input: OmniImageInput): Promise<KlingImageResult>;
|
|
460
|
+
virtualTryOn(input: VirtualTryOnInput): Promise<KlingImageResult>;
|
|
461
|
+
avatarV2Pro(input: AvatarInput): Promise<KlingVideoResult>;
|
|
462
|
+
avatarV2Standard(input: AvatarInput): Promise<KlingVideoResult>;
|
|
463
|
+
avatarV1Pro(input: AvatarInput): Promise<KlingVideoResult>;
|
|
464
|
+
avatarV1Standard(input: AvatarInput): Promise<KlingVideoResult>;
|
|
465
|
+
lipSyncAudioToVideo(input: LipSyncInput): Promise<KlingVideoResult>;
|
|
466
|
+
lipSyncTextToVideo(input: LipSyncInput): Promise<KlingVideoResult>;
|
|
467
|
+
effectsV1Standard(input: EffectsInput): Promise<KlingVideoResult>;
|
|
468
|
+
effectsV1_5Pro(input: EffectsInput): Promise<KlingVideoResult>;
|
|
469
|
+
effectsV1_6Pro(input: EffectsInput): Promise<KlingVideoResult>;
|
|
470
|
+
effectsV1_6Standard(input: EffectsInput): Promise<KlingVideoResult>;
|
|
471
|
+
motionControlV2_6Pro(input: MotionControlInput): Promise<KlingVideoResult>;
|
|
472
|
+
motionControlV2_6Standard(input: MotionControlInput): Promise<KlingVideoResult>;
|
|
473
|
+
motionControlV3Pro(input: MotionControlInput): Promise<KlingVideoResult>;
|
|
474
|
+
motionControlV3Standard(input: MotionControlInput): Promise<KlingVideoResult>;
|
|
475
|
+
tts(input: TtsInput): Promise<KlingAudioResult>;
|
|
476
|
+
videoToAudio(input: VideoToAudioInput): Promise<KlingVideoAudioResult>;
|
|
477
|
+
textToAudio(input: TextToAudioInput): Promise<KlingAudioResult>;
|
|
478
|
+
createVoice(input: CreateVoiceInput): Promise<KlingVoiceResult>;
|
|
479
|
+
multiShot(input: MultiShotInput): Promise<KlingMultiShotResult>;
|
|
480
|
+
referenceToImage(input: ReferenceToImageInput): Promise<KlingImageResult>;
|
|
481
|
+
expandImage(input: ExpandImageInput): Promise<KlingImageResult>;
|
|
482
|
+
extendVideo(input: ExtendVideoInput): Promise<KlingVideoResult>;
|
|
483
|
+
identifyFace(input: IdentifyFaceInput): Promise<KlingFaceResult>;
|
|
484
|
+
imageRecognize(input: ImageRecognizeInput): Promise<KlingJsonResult>;
|
|
485
|
+
referenceToVideo(input: ReferenceToVideoInput): Promise<KlingVideoResult>;
|
|
486
|
+
accountCosts(input: AccountCostsInput): Promise<AccountCostsResult>;
|
|
487
|
+
configure: (config: KlingConfig) => void;
|
|
488
|
+
};
|
|
489
|
+
|
|
1
490
|
type OutputType = 'image' | 'video' | 'audio' | 'text' | '3d' | 'segmentation';
|
|
2
491
|
type InputType = 'text' | 'image' | 'audio' | 'video';
|
|
3
492
|
type ProviderName = 'fal-ai' | 'replicate' | 'wavespeed' | 'openrouter' | 'kling';
|
|
@@ -378,4 +867,4 @@ declare class StorageError extends GetAIApiError {
|
|
|
378
867
|
constructor(operation: StorageOperation, message: string, statusCode?: number);
|
|
379
868
|
}
|
|
380
869
|
|
|
381
|
-
export { AuthError, type ConfigureOptions, type FetchLogEntry, type FetchOptions, type GenerateRequest, type GenerateResponse, GetAIApiError, type InputType, type KlingCameraControl, type KlingImageModel, type KlingOptions, type KlingVideoModel, type ListModelsFilters, type LogFn, type ModelEntry, ModelNotFoundError, NoProviderError, type OutputItem, type OutputMapping, type OutputType, type PollResponse, type ProviderAdapter, type ProviderBinding, ProviderError, type ProviderName, type ProviderResponse, RateLimitError, type StorageConfig, StorageError, type SubmitResponse, TimeoutError, type UploadOptions, type UploadResult, ValidationError, clearRegistryCache, configure, configureAuth, configureFetch, configureStorage, deleteAsset, deriveCategory, generate, klingAdapter, listModels, loadRegistry, mapInput, mapOutput, poll, presignAsset, resolveModel, submit, submitAndPoll, uploadAsset };
|
|
870
|
+
export { AuthError, type AvatarInput, type ConfigureOptions, type CreateVoiceInput, type EffectsInput, type ExpandImageInput, type ExtendVideoInput, type FetchLogEntry, type FetchOptions, type GenerateRequest, type GenerateResponse, GetAIApiError, type IdentifyFaceInput, type ImageGenerationInput, type ImageRecognizeInput, type ImageToVideoInput, type InputType, KlingApiError, type KlingAudioResult, KlingAuthError, type KlingCameraControl, KlingClient, type KlingConfig, KlingError, type KlingImageModel, type KlingImageResult, type KlingJsonResult, type KlingOptions, KlingRateLimitError, KlingTaskFailedError, KlingTimeoutError, type KlingVideoModel, type KlingVideoResult, type LipSyncInput, type ListModelsFilters, type LogFn, type ModelEntry, ModelNotFoundError, type MotionControlInput, type MultiShotInput, NoProviderError, type OmniImageInput, type OmniVideoInput, type OutputItem, type OutputMapping, type OutputType, type PollResponse, type ProviderAdapter, type ProviderBinding, ProviderError, type ProviderName, type ProviderResponse, RateLimitError, type ReferenceToImageInput, type ReferenceToVideoInput, type StorageConfig, StorageError, type SubmitResponse, type TextToAudioInput, type TextToVideoInput, TimeoutError, type TtsInput, type UploadOptions, type UploadResult, ValidationError, type VideoToAudioInput, type VirtualTryOnInput, clearRegistryCache, configure, configureAuth, configureFetch, configureStorage, createClient, deleteAsset, deriveCategory, generate, generateJwt, kling, klingAdapter, listModels, loadRegistry, mapInput, mapOutput, poll, presignAsset, resolveModel, submit, submitAndPoll, uploadAsset };
|