@huggingface/inference 4.13.8 → 4.13.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- export declare const PACKAGE_VERSION = "4.13.8";
1
+ export declare const PACKAGE_VERSION = "4.13.9";
2
2
  export declare const PACKAGE_NAME = "@huggingface/inference";
3
3
  //# sourceMappingURL=package.d.ts.map
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;
4
4
  // Generated file from package.json. Issues importing JSON directly when publishing on commonjs/ESM - see https://github.com/microsoft/TypeScript/issues/51783
5
- exports.PACKAGE_VERSION = "4.13.8";
5
+ exports.PACKAGE_VERSION = "4.13.9";
6
6
  exports.PACKAGE_NAME = "@huggingface/inference";
@@ -10,11 +10,6 @@ export interface FalAiQueueOutput {
10
10
  status: string;
11
11
  response_url: string;
12
12
  }
13
- interface FalAITextToImageOutput {
14
- images: Array<{
15
- url: string;
16
- }>;
17
- }
18
13
  export declare const FAL_AI_SUPPORTED_BLOB_TYPES: string[];
19
14
  declare abstract class FalAITask extends TaskProviderHelper {
20
15
  constructor(url?: string);
@@ -24,16 +19,18 @@ declare abstract class FalAITask extends TaskProviderHelper {
24
19
  }
25
20
  declare abstract class FalAiQueueTask extends FalAITask {
26
21
  abstract task: InferenceTask;
22
+ makeRoute(params: UrlParams): string;
27
23
  getResponseFromQueueApi(response: FalAiQueueOutput, url?: string, headers?: Record<string, string>): Promise<unknown>;
28
24
  }
29
- export declare class FalAITextToImageTask extends FalAITask implements TextToImageTaskHelper {
25
+ export declare class FalAITextToImageTask extends FalAiQueueTask implements TextToImageTaskHelper {
26
+ task: InferenceTask;
27
+ constructor();
30
28
  preparePayload(params: BodyParams): Record<string, unknown>;
31
- getResponse(response: FalAITextToImageOutput, url?: string, headers?: HeadersInit, outputType?: "url" | "blob" | "json"): Promise<string | Blob | Record<string, unknown>>;
29
+ getResponse(response: FalAiQueueOutput, url?: string, headers?: Record<string, string>, outputType?: "url" | "blob" | "json"): Promise<string | Blob | Record<string, unknown>>;
32
30
  }
33
31
  export declare class FalAIImageToImageTask extends FalAiQueueTask implements ImageToImageTaskHelper {
34
32
  task: InferenceTask;
35
33
  constructor();
36
- makeRoute(params: UrlParams): string;
37
34
  preparePayload(params: BodyParams): Record<string, unknown>;
38
35
  preparePayloadAsync(args: ImageToImageArgs): Promise<RequestArgs>;
39
36
  getResponse(response: FalAiQueueOutput, url?: string, headers?: Record<string, string>): Promise<Blob>;
@@ -41,15 +38,12 @@ export declare class FalAIImageToImageTask extends FalAiQueueTask implements Ima
41
38
  export declare class FalAITextToVideoTask extends FalAiQueueTask implements TextToVideoTaskHelper {
42
39
  task: InferenceTask;
43
40
  constructor();
44
- makeRoute(params: UrlParams): string;
45
41
  preparePayload(params: BodyParams): Record<string, unknown>;
46
42
  getResponse(response: FalAiQueueOutput, url?: string, headers?: Record<string, string>): Promise<Blob>;
47
43
  }
48
44
  export declare class FalAIImageToVideoTask extends FalAiQueueTask implements ImageToVideoTaskHelper {
49
45
  task: InferenceTask;
50
46
  constructor();
51
- /** Same queue routing rule as the other Fal queue tasks */
52
- makeRoute(params: UrlParams): string;
53
47
  /** Synchronous case – caller already gave us base64 or a URL */
54
48
  preparePayload(params: BodyParams): Record<string, unknown>;
55
49
  /** Asynchronous helper – caller gave us a Blob */
@@ -69,7 +63,6 @@ export declare class FalAITextToSpeechTask extends FalAITask {
69
63
  export declare class FalAIImageSegmentationTask extends FalAiQueueTask implements ImageSegmentationTaskHelper {
70
64
  task: InferenceTask;
71
65
  constructor();
72
- makeRoute(params: UrlParams): string;
73
66
  preparePayload(params: BodyParams): Record<string, unknown>;
74
67
  preparePayloadAsync(args: ImageSegmentationArgs): Promise<RequestArgs>;
75
68
  getResponse(response: FalAiQueueOutput, url?: string, headers?: Record<string, string>): Promise<ImageSegmentationOutput>;
@@ -1 +1 @@
1
- {"version":3,"file":"fal-ai.d.ts","sourceRoot":"","sources":["../../../src/providers/fal-ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fal-ai.d.ts","sourceRoot":"","sources":["../../../src/providers/fal-ai.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,12 @@ class FalAITask extends providerHelper_js_1.TaskProviderHelper {
46
46
  }
47
47
  }
48
48
  class FalAiQueueTask extends FalAITask {
49
+ makeRoute(params) {
50
+ if (params.authMethod !== "provider-key") {
51
+ return `/${params.model}?_subdomain=queue`;
52
+ }
53
+ return `/${params.model}`;
54
+ }
49
55
  async getResponseFromQueueApi(response, url, headers) {
50
56
  if (!url || !headers) {
51
57
  throw new errors_js_1.InferenceClientInputError(`URL and headers are required for ${this.task} task`);
@@ -94,12 +100,16 @@ class FalAiQueueTask extends FalAITask {
94
100
  function buildLoraPath(modelId, adapterWeightsPath) {
95
101
  return `${config_js_1.HF_HUB_URL}/${modelId}/resolve/main/${adapterWeightsPath}`;
96
102
  }
97
- class FalAITextToImageTask extends FalAITask {
103
+ class FalAITextToImageTask extends FalAiQueueTask {
104
+ task;
105
+ constructor() {
106
+ super("https://queue.fal.run");
107
+ this.task = "text-to-image";
108
+ }
98
109
  preparePayload(params) {
99
110
  const payload = {
100
111
  ...(0, omit_js_1.omit)(params.args, ["inputs", "parameters"]),
101
112
  ...params.args.parameters,
102
- sync_mode: true,
103
113
  prompt: params.args.inputs,
104
114
  };
105
115
  if (params.mapping?.adapter === "lora" && params.mapping.adapterWeightsPath) {
@@ -116,22 +126,24 @@ class FalAITextToImageTask extends FalAITask {
116
126
  return payload;
117
127
  }
118
128
  async getResponse(response, url, headers, outputType) {
119
- if (typeof response === "object" &&
120
- "images" in response &&
121
- Array.isArray(response.images) &&
122
- response.images.length > 0 &&
123
- "url" in response.images[0] &&
124
- typeof response.images[0].url === "string") {
129
+ const result = (await this.getResponseFromQueueApi(response, url, headers));
130
+ if (typeof result === "object" &&
131
+ "images" in result &&
132
+ Array.isArray(result.images) &&
133
+ result.images.length > 0 &&
134
+ "url" in result.images[0] &&
135
+ typeof result.images[0].url === "string" &&
136
+ (0, isUrl_js_1.isUrl)(result.images[0].url)) {
125
137
  if (outputType === "json") {
126
- return { ...response };
138
+ return { ...result };
127
139
  }
128
140
  if (outputType === "url") {
129
- return response.images[0].url;
141
+ return result.images[0].url;
130
142
  }
131
- const urlResponse = await fetch(response.images[0].url);
143
+ const urlResponse = await fetch(result.images[0].url);
132
144
  return await urlResponse.blob();
133
145
  }
134
- throw new errors_js_1.InferenceClientProviderOutputError("Received malformed response from Fal.ai text-to-image API");
146
+ throw new errors_js_1.InferenceClientProviderOutputError(`Received malformed response from Fal.ai text-to-image API: expected { images: Array<{ url: string }> } result format, got instead: ${JSON.stringify(result)}`);
135
147
  }
136
148
  }
137
149
  exports.FalAITextToImageTask = FalAITextToImageTask;
@@ -141,12 +153,6 @@ class FalAIImageToImageTask extends FalAiQueueTask {
141
153
  super("https://queue.fal.run");
142
154
  this.task = "image-to-image";
143
155
  }
144
- makeRoute(params) {
145
- if (params.authMethod !== "provider-key") {
146
- return `/${params.model}?_subdomain=queue`;
147
- }
148
- return `/${params.model}`;
149
- }
150
156
  preparePayload(params) {
151
157
  const payload = params.args;
152
158
  if (params.mapping?.adapter === "lora" && params.mapping.adapterWeightsPath) {
@@ -198,12 +204,6 @@ class FalAITextToVideoTask extends FalAiQueueTask {
198
204
  super("https://queue.fal.run");
199
205
  this.task = "text-to-video";
200
206
  }
201
- makeRoute(params) {
202
- if (params.authMethod !== "provider-key") {
203
- return `/${params.model}?_subdomain=queue`;
204
- }
205
- return `/${params.model}`;
206
- }
207
207
  preparePayload(params) {
208
208
  return {
209
209
  ...(0, omit_js_1.omit)(params.args, ["inputs", "parameters"]),
@@ -236,10 +236,6 @@ class FalAIImageToVideoTask extends FalAiQueueTask {
236
236
  super("https://queue.fal.run");
237
237
  this.task = "image-to-video";
238
238
  }
239
- /** Same queue routing rule as the other Fal queue tasks */
240
- makeRoute(params) {
241
- return params.authMethod !== "provider-key" ? `/${params.model}?_subdomain=queue` : `/${params.model}`;
242
- }
243
239
  /** Synchronous case – caller already gave us base64 or a URL */
244
240
  preparePayload(params) {
245
241
  return {
@@ -348,12 +344,6 @@ class FalAIImageSegmentationTask extends FalAiQueueTask {
348
344
  super("https://queue.fal.run");
349
345
  this.task = "image-segmentation";
350
346
  }
351
- makeRoute(params) {
352
- if (params.authMethod !== "provider-key") {
353
- return `/${params.model}?_subdomain=queue`;
354
- }
355
- return `/${params.model}`;
356
- }
357
347
  preparePayload(params) {
358
348
  return {
359
349
  ...(0, omit_js_1.omit)(params.args, ["inputs", "parameters"]),
@@ -26,21 +26,24 @@ declare abstract class WavespeedAITask extends TaskProviderHelper {
26
26
  constructor(url?: string);
27
27
  makeRoute(params: UrlParams): string;
28
28
  preparePayload(params: BodyParams<ImageToImageArgs | TextToImageArgs | TextToVideoArgs | ImageToVideoArgs>): Record<string, unknown>;
29
- getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>): Promise<Blob>;
29
+ getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>, outputType?: "url" | "blob" | "json"): Promise<string | Blob | Record<string, unknown>>;
30
30
  }
31
31
  export declare class WavespeedAITextToImageTask extends WavespeedAITask implements TextToImageTaskHelper {
32
32
  constructor();
33
33
  }
34
34
  export declare class WavespeedAITextToVideoTask extends WavespeedAITask implements TextToVideoTaskHelper {
35
35
  constructor();
36
+ getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>): Promise<Blob>;
36
37
  }
37
38
  export declare class WavespeedAIImageToImageTask extends WavespeedAITask implements ImageToImageTaskHelper {
38
39
  constructor();
39
40
  preparePayloadAsync(args: ImageToImageArgs): Promise<RequestArgs>;
41
+ getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>): Promise<Blob>;
40
42
  }
41
43
  export declare class WavespeedAIImageToVideoTask extends WavespeedAITask implements ImageToVideoTaskHelper {
42
44
  constructor();
43
45
  preparePayloadAsync(args: ImageToVideoArgs): Promise<RequestArgs>;
46
+ getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>): Promise<Blob>;
44
47
  }
45
48
  export {};
46
49
  //# sourceMappingURL=wavespeed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wavespeed.d.ts","sourceRoot":"","sources":["../../../src/providers/wavespeed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAItE,OAAO,KAAK,EACX,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA6BzD;;GAEG;AACH,UAAU,yBAAyB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC;CACF;AAWD;;GAEG;AACH,UAAU,6BAA6B;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,yBAAyB,CAAC;CAChC;AAgBD,uBAAe,eAAgB,SAAQ,kBAAkB;gBAC5C,GAAG,CAAC,EAAE,MAAM;IAIxB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAIpC,cAAc,CACb,MAAM,EAAE,UAAU,CAAC,gBAAgB,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,CAAC,GACzF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAkBX,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAkEhB;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;CAI/F;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;CAI/F;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;;IAK3F,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;CAMvE;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;;IAK3F,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;CAMvE"}
1
+ {"version":3,"file":"wavespeed.d.ts","sourceRoot":"","sources":["../../../src/providers/wavespeed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAItE,OAAO,KAAK,EACX,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA6BzD;;GAEG;AACH,UAAU,yBAAyB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC;CACF;AAWD;;GAEG;AACH,UAAU,6BAA6B;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,yBAAyB,CAAC;CAChC;AAgBD,uBAAe,eAAgB,SAAQ,kBAAkB;gBAC5C,GAAG,CAAC,EAAE,MAAM;IAIxB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAIpC,cAAc,CACb,MAAM,EAAE,UAAU,CAAC,gBAAgB,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,CAAC,GACzF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAkBX,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAClC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CA4EnD;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;CAI/F;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;IAKhF,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAGhB;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;;IAK3F,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAOxD,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAGhB;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;;IAK3F,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAOxD,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAGhB"}
@@ -38,7 +38,7 @@ class WavespeedAITask extends providerHelper_js_1.TaskProviderHelper {
38
38
  }
39
39
  return payload;
40
40
  }
41
- async getResponse(response, url, headers) {
41
+ async getResponse(response, url, headers, outputType) {
42
42
  if (!url || !headers) {
43
43
  throw new errors_js_1.InferenceClientInputError("Headers are required for WaveSpeed AI API calls");
44
44
  }
@@ -65,9 +65,17 @@ class WavespeedAITask extends providerHelper_js_1.TaskProviderHelper {
65
65
  if (!taskResult.outputs?.[0]) {
66
66
  throw new errors_js_1.InferenceClientProviderOutputError("Received malformed response from WaveSpeed AI API: No output URL in completed response");
67
67
  }
68
- const mediaResponse = await fetch(taskResult.outputs[0]);
68
+ const mediaUrl = taskResult.outputs[0];
69
+ if (outputType === "url") {
70
+ return mediaUrl;
71
+ }
72
+ if (outputType === "json") {
73
+ return result;
74
+ }
75
+ // Default: fetch and return blob
76
+ const mediaResponse = await fetch(mediaUrl);
69
77
  if (!mediaResponse.ok) {
70
- throw new errors_js_1.InferenceClientProviderApiError("Failed to fetch generation output from WaveSpeed AI API", { url: taskResult.outputs[0], method: "GET" }, {
78
+ throw new errors_js_1.InferenceClientProviderApiError("Failed to fetch generation output from WaveSpeed AI API", { url: mediaUrl, method: "GET" }, {
71
79
  requestId: mediaResponse.headers.get("x-request-id") ?? "",
72
80
  status: mediaResponse.status,
73
81
  body: await mediaResponse.text(),
@@ -97,6 +105,9 @@ class WavespeedAITextToVideoTask extends WavespeedAITask {
97
105
  constructor() {
98
106
  super(WAVESPEEDAI_API_BASE_URL);
99
107
  }
108
+ async getResponse(response, url, headers) {
109
+ return super.getResponse(response, url, headers);
110
+ }
100
111
  }
101
112
  exports.WavespeedAITextToVideoTask = WavespeedAITextToVideoTask;
102
113
  class WavespeedAIImageToImageTask extends WavespeedAITask {
@@ -108,6 +119,9 @@ class WavespeedAIImageToImageTask extends WavespeedAITask {
108
119
  const { base, images } = await buildImagesField(args.inputs, hasImages);
109
120
  return { ...args, inputs: args.parameters?.prompt, image: base, images };
110
121
  }
122
+ async getResponse(response, url, headers) {
123
+ return super.getResponse(response, url, headers);
124
+ }
111
125
  }
112
126
  exports.WavespeedAIImageToImageTask = WavespeedAIImageToImageTask;
113
127
  class WavespeedAIImageToVideoTask extends WavespeedAITask {
@@ -119,5 +133,8 @@ class WavespeedAIImageToVideoTask extends WavespeedAITask {
119
133
  const { base, images } = await buildImagesField(args.inputs, hasImages);
120
134
  return { ...args, inputs: args.parameters?.prompt, image: base, images };
121
135
  }
136
+ async getResponse(response, url, headers) {
137
+ return super.getResponse(response, url, headers);
138
+ }
122
139
  }
123
140
  exports.WavespeedAIImageToVideoTask = WavespeedAIImageToVideoTask;
@@ -1,3 +1,3 @@
1
- export declare const PACKAGE_VERSION = "4.13.8";
1
+ export declare const PACKAGE_VERSION = "4.13.9";
2
2
  export declare const PACKAGE_NAME = "@huggingface/inference";
3
3
  //# sourceMappingURL=package.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Generated file from package.json. Issues importing JSON directly when publishing on commonjs/ESM - see https://github.com/microsoft/TypeScript/issues/51783
2
- export const PACKAGE_VERSION = "4.13.8";
2
+ export const PACKAGE_VERSION = "4.13.9";
3
3
  export const PACKAGE_NAME = "@huggingface/inference";
@@ -10,11 +10,6 @@ export interface FalAiQueueOutput {
10
10
  status: string;
11
11
  response_url: string;
12
12
  }
13
- interface FalAITextToImageOutput {
14
- images: Array<{
15
- url: string;
16
- }>;
17
- }
18
13
  export declare const FAL_AI_SUPPORTED_BLOB_TYPES: string[];
19
14
  declare abstract class FalAITask extends TaskProviderHelper {
20
15
  constructor(url?: string);
@@ -24,16 +19,18 @@ declare abstract class FalAITask extends TaskProviderHelper {
24
19
  }
25
20
  declare abstract class FalAiQueueTask extends FalAITask {
26
21
  abstract task: InferenceTask;
22
+ makeRoute(params: UrlParams): string;
27
23
  getResponseFromQueueApi(response: FalAiQueueOutput, url?: string, headers?: Record<string, string>): Promise<unknown>;
28
24
  }
29
- export declare class FalAITextToImageTask extends FalAITask implements TextToImageTaskHelper {
25
+ export declare class FalAITextToImageTask extends FalAiQueueTask implements TextToImageTaskHelper {
26
+ task: InferenceTask;
27
+ constructor();
30
28
  preparePayload(params: BodyParams): Record<string, unknown>;
31
- getResponse(response: FalAITextToImageOutput, url?: string, headers?: HeadersInit, outputType?: "url" | "blob" | "json"): Promise<string | Blob | Record<string, unknown>>;
29
+ getResponse(response: FalAiQueueOutput, url?: string, headers?: Record<string, string>, outputType?: "url" | "blob" | "json"): Promise<string | Blob | Record<string, unknown>>;
32
30
  }
33
31
  export declare class FalAIImageToImageTask extends FalAiQueueTask implements ImageToImageTaskHelper {
34
32
  task: InferenceTask;
35
33
  constructor();
36
- makeRoute(params: UrlParams): string;
37
34
  preparePayload(params: BodyParams): Record<string, unknown>;
38
35
  preparePayloadAsync(args: ImageToImageArgs): Promise<RequestArgs>;
39
36
  getResponse(response: FalAiQueueOutput, url?: string, headers?: Record<string, string>): Promise<Blob>;
@@ -41,15 +38,12 @@ export declare class FalAIImageToImageTask extends FalAiQueueTask implements Ima
41
38
  export declare class FalAITextToVideoTask extends FalAiQueueTask implements TextToVideoTaskHelper {
42
39
  task: InferenceTask;
43
40
  constructor();
44
- makeRoute(params: UrlParams): string;
45
41
  preparePayload(params: BodyParams): Record<string, unknown>;
46
42
  getResponse(response: FalAiQueueOutput, url?: string, headers?: Record<string, string>): Promise<Blob>;
47
43
  }
48
44
  export declare class FalAIImageToVideoTask extends FalAiQueueTask implements ImageToVideoTaskHelper {
49
45
  task: InferenceTask;
50
46
  constructor();
51
- /** Same queue routing rule as the other Fal queue tasks */
52
- makeRoute(params: UrlParams): string;
53
47
  /** Synchronous case – caller already gave us base64 or a URL */
54
48
  preparePayload(params: BodyParams): Record<string, unknown>;
55
49
  /** Asynchronous helper – caller gave us a Blob */
@@ -69,7 +63,6 @@ export declare class FalAITextToSpeechTask extends FalAITask {
69
63
  export declare class FalAIImageSegmentationTask extends FalAiQueueTask implements ImageSegmentationTaskHelper {
70
64
  task: InferenceTask;
71
65
  constructor();
72
- makeRoute(params: UrlParams): string;
73
66
  preparePayload(params: BodyParams): Record<string, unknown>;
74
67
  preparePayloadAsync(args: ImageSegmentationArgs): Promise<RequestArgs>;
75
68
  getResponse(response: FalAiQueueOutput, url?: string, headers?: Record<string, string>): Promise<ImageSegmentationOutput>;
@@ -1 +1 @@
1
- {"version":3,"file":"fal-ai.d.ts","sourceRoot":"","sources":["../../../src/providers/fal-ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fal-ai.d.ts","sourceRoot":"","sources":["../../../src/providers/fal-ai.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEpG,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAW,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG5G,OAAO,KAAK,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EACN,KAAK,oCAAoC,EACzC,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAMnG,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAE9E,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACrB;AAkBD,eAAO,MAAM,2BAA2B,UAA0D,CAAC;AAEnG,uBAAe,SAAU,SAAQ,kBAAkB;gBACtC,GAAG,CAAC,EAAE,MAAM;IAIxB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAG3D,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAG3B,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAUtF;AAED,uBAAe,cAAe,SAAQ,SAAS;IAC9C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAEpB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAMvC,uBAAuB,CAC5B,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC;CA4DnB;AAMD,qBAAa,oBAAqB,SAAQ,cAAe,YAAW,qBAAqB;IACxF,IAAI,EAAE,aAAa,CAAC;;IAOX,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAsBrD,WAAW,CACzB,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAClC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CA2BnD;AAED,qBAAa,qBAAsB,SAAQ,cAAe,YAAW,sBAAsB;IAC1F,IAAI,EAAE,aAAa,CAAC;;IAMX,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAa9D,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAexD,WAAW,CACzB,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAyBhB;AAED,qBAAa,oBAAqB,SAAQ,cAAe,YAAW,qBAAqB;IACxF,IAAI,EAAE,aAAa,CAAC;;IAMX,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQrD,WAAW,CACzB,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAuBhB;AAED,qBAAa,qBAAsB,SAAQ,cAAe,YAAW,sBAAsB;IAC1F,IAAI,EAAE,aAAa,CAAC;;IAOpB,gEAAgE;IACvD,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASpE,kDAAkD;IAC5C,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAYvE,6DAA6D;IAC9C,WAAW,CACzB,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAwBhB;AAED,qBAAa,mCAAoC,SAAQ,SAAU,YAAW,oCAAoC;IACxG,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKvE,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAYlF,mBAAmB,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,WAAW,CAAC;CAqBrF;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IAC1C,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQrD,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAmC5D;AACD,qBAAa,0BAA2B,SAAQ,cAAe,YAAW,2BAA2B;IACpG,IAAI,EAAE,aAAa,CAAC;;IAMX,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQ9D,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IAe7D,WAAW,CACzB,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,uBAAuB,CAAC;CA0CnC"}
@@ -43,6 +43,12 @@ class FalAITask extends TaskProviderHelper {
43
43
  }
44
44
  }
45
45
  class FalAiQueueTask extends FalAITask {
46
+ makeRoute(params) {
47
+ if (params.authMethod !== "provider-key") {
48
+ return `/${params.model}?_subdomain=queue`;
49
+ }
50
+ return `/${params.model}`;
51
+ }
46
52
  async getResponseFromQueueApi(response, url, headers) {
47
53
  if (!url || !headers) {
48
54
  throw new InferenceClientInputError(`URL and headers are required for ${this.task} task`);
@@ -91,12 +97,16 @@ class FalAiQueueTask extends FalAITask {
91
97
  function buildLoraPath(modelId, adapterWeightsPath) {
92
98
  return `${HF_HUB_URL}/${modelId}/resolve/main/${adapterWeightsPath}`;
93
99
  }
94
- export class FalAITextToImageTask extends FalAITask {
100
+ export class FalAITextToImageTask extends FalAiQueueTask {
101
+ task;
102
+ constructor() {
103
+ super("https://queue.fal.run");
104
+ this.task = "text-to-image";
105
+ }
95
106
  preparePayload(params) {
96
107
  const payload = {
97
108
  ...omit(params.args, ["inputs", "parameters"]),
98
109
  ...params.args.parameters,
99
- sync_mode: true,
100
110
  prompt: params.args.inputs,
101
111
  };
102
112
  if (params.mapping?.adapter === "lora" && params.mapping.adapterWeightsPath) {
@@ -113,22 +123,24 @@ export class FalAITextToImageTask extends FalAITask {
113
123
  return payload;
114
124
  }
115
125
  async getResponse(response, url, headers, outputType) {
116
- if (typeof response === "object" &&
117
- "images" in response &&
118
- Array.isArray(response.images) &&
119
- response.images.length > 0 &&
120
- "url" in response.images[0] &&
121
- typeof response.images[0].url === "string") {
126
+ const result = (await this.getResponseFromQueueApi(response, url, headers));
127
+ if (typeof result === "object" &&
128
+ "images" in result &&
129
+ Array.isArray(result.images) &&
130
+ result.images.length > 0 &&
131
+ "url" in result.images[0] &&
132
+ typeof result.images[0].url === "string" &&
133
+ isUrl(result.images[0].url)) {
122
134
  if (outputType === "json") {
123
- return { ...response };
135
+ return { ...result };
124
136
  }
125
137
  if (outputType === "url") {
126
- return response.images[0].url;
138
+ return result.images[0].url;
127
139
  }
128
- const urlResponse = await fetch(response.images[0].url);
140
+ const urlResponse = await fetch(result.images[0].url);
129
141
  return await urlResponse.blob();
130
142
  }
131
- throw new InferenceClientProviderOutputError("Received malformed response from Fal.ai text-to-image API");
143
+ throw new InferenceClientProviderOutputError(`Received malformed response from Fal.ai text-to-image API: expected { images: Array<{ url: string }> } result format, got instead: ${JSON.stringify(result)}`);
132
144
  }
133
145
  }
134
146
  export class FalAIImageToImageTask extends FalAiQueueTask {
@@ -137,12 +149,6 @@ export class FalAIImageToImageTask extends FalAiQueueTask {
137
149
  super("https://queue.fal.run");
138
150
  this.task = "image-to-image";
139
151
  }
140
- makeRoute(params) {
141
- if (params.authMethod !== "provider-key") {
142
- return `/${params.model}?_subdomain=queue`;
143
- }
144
- return `/${params.model}`;
145
- }
146
152
  preparePayload(params) {
147
153
  const payload = params.args;
148
154
  if (params.mapping?.adapter === "lora" && params.mapping.adapterWeightsPath) {
@@ -193,12 +199,6 @@ export class FalAITextToVideoTask extends FalAiQueueTask {
193
199
  super("https://queue.fal.run");
194
200
  this.task = "text-to-video";
195
201
  }
196
- makeRoute(params) {
197
- if (params.authMethod !== "provider-key") {
198
- return `/${params.model}?_subdomain=queue`;
199
- }
200
- return `/${params.model}`;
201
- }
202
202
  preparePayload(params) {
203
203
  return {
204
204
  ...omit(params.args, ["inputs", "parameters"]),
@@ -230,10 +230,6 @@ export class FalAIImageToVideoTask extends FalAiQueueTask {
230
230
  super("https://queue.fal.run");
231
231
  this.task = "image-to-video";
232
232
  }
233
- /** Same queue routing rule as the other Fal queue tasks */
234
- makeRoute(params) {
235
- return params.authMethod !== "provider-key" ? `/${params.model}?_subdomain=queue` : `/${params.model}`;
236
- }
237
233
  /** Synchronous case – caller already gave us base64 or a URL */
238
234
  preparePayload(params) {
239
235
  return {
@@ -339,12 +335,6 @@ export class FalAIImageSegmentationTask extends FalAiQueueTask {
339
335
  super("https://queue.fal.run");
340
336
  this.task = "image-segmentation";
341
337
  }
342
- makeRoute(params) {
343
- if (params.authMethod !== "provider-key") {
344
- return `/${params.model}?_subdomain=queue`;
345
- }
346
- return `/${params.model}`;
347
- }
348
338
  preparePayload(params) {
349
339
  return {
350
340
  ...omit(params.args, ["inputs", "parameters"]),
@@ -26,21 +26,24 @@ declare abstract class WavespeedAITask extends TaskProviderHelper {
26
26
  constructor(url?: string);
27
27
  makeRoute(params: UrlParams): string;
28
28
  preparePayload(params: BodyParams<ImageToImageArgs | TextToImageArgs | TextToVideoArgs | ImageToVideoArgs>): Record<string, unknown>;
29
- getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>): Promise<Blob>;
29
+ getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>, outputType?: "url" | "blob" | "json"): Promise<string | Blob | Record<string, unknown>>;
30
30
  }
31
31
  export declare class WavespeedAITextToImageTask extends WavespeedAITask implements TextToImageTaskHelper {
32
32
  constructor();
33
33
  }
34
34
  export declare class WavespeedAITextToVideoTask extends WavespeedAITask implements TextToVideoTaskHelper {
35
35
  constructor();
36
+ getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>): Promise<Blob>;
36
37
  }
37
38
  export declare class WavespeedAIImageToImageTask extends WavespeedAITask implements ImageToImageTaskHelper {
38
39
  constructor();
39
40
  preparePayloadAsync(args: ImageToImageArgs): Promise<RequestArgs>;
41
+ getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>): Promise<Blob>;
40
42
  }
41
43
  export declare class WavespeedAIImageToVideoTask extends WavespeedAITask implements ImageToVideoTaskHelper {
42
44
  constructor();
43
45
  preparePayloadAsync(args: ImageToVideoArgs): Promise<RequestArgs>;
46
+ getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>): Promise<Blob>;
44
47
  }
45
48
  export {};
46
49
  //# sourceMappingURL=wavespeed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wavespeed.d.ts","sourceRoot":"","sources":["../../../src/providers/wavespeed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAItE,OAAO,KAAK,EACX,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA6BzD;;GAEG;AACH,UAAU,yBAAyB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC;CACF;AAWD;;GAEG;AACH,UAAU,6BAA6B;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,yBAAyB,CAAC;CAChC;AAgBD,uBAAe,eAAgB,SAAQ,kBAAkB;gBAC5C,GAAG,CAAC,EAAE,MAAM;IAIxB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAIpC,cAAc,CACb,MAAM,EAAE,UAAU,CAAC,gBAAgB,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,CAAC,GACzF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAkBX,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAkEhB;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;CAI/F;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;CAI/F;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;;IAK3F,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;CAMvE;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;;IAK3F,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;CAMvE"}
1
+ {"version":3,"file":"wavespeed.d.ts","sourceRoot":"","sources":["../../../src/providers/wavespeed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAItE,OAAO,KAAK,EACX,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA6BzD;;GAEG;AACH,UAAU,yBAAyB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC;CACF;AAWD;;GAEG;AACH,UAAU,6BAA6B;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,yBAAyB,CAAC;CAChC;AAgBD,uBAAe,eAAgB,SAAQ,kBAAkB;gBAC5C,GAAG,CAAC,EAAE,MAAM;IAIxB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAIpC,cAAc,CACb,MAAM,EAAE,UAAU,CAAC,gBAAgB,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,CAAC,GACzF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAkBX,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAClC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CA4EnD;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;CAI/F;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;IAKhF,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAGhB;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;;IAK3F,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAOxD,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAGhB;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;;IAK3F,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAOxD,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAGhB"}
@@ -35,7 +35,7 @@ class WavespeedAITask extends TaskProviderHelper {
35
35
  }
36
36
  return payload;
37
37
  }
38
- async getResponse(response, url, headers) {
38
+ async getResponse(response, url, headers, outputType) {
39
39
  if (!url || !headers) {
40
40
  throw new InferenceClientInputError("Headers are required for WaveSpeed AI API calls");
41
41
  }
@@ -62,9 +62,17 @@ class WavespeedAITask extends TaskProviderHelper {
62
62
  if (!taskResult.outputs?.[0]) {
63
63
  throw new InferenceClientProviderOutputError("Received malformed response from WaveSpeed AI API: No output URL in completed response");
64
64
  }
65
- const mediaResponse = await fetch(taskResult.outputs[0]);
65
+ const mediaUrl = taskResult.outputs[0];
66
+ if (outputType === "url") {
67
+ return mediaUrl;
68
+ }
69
+ if (outputType === "json") {
70
+ return result;
71
+ }
72
+ // Default: fetch and return blob
73
+ const mediaResponse = await fetch(mediaUrl);
66
74
  if (!mediaResponse.ok) {
67
- throw new InferenceClientProviderApiError("Failed to fetch generation output from WaveSpeed AI API", { url: taskResult.outputs[0], method: "GET" }, {
75
+ throw new InferenceClientProviderApiError("Failed to fetch generation output from WaveSpeed AI API", { url: mediaUrl, method: "GET" }, {
68
76
  requestId: mediaResponse.headers.get("x-request-id") ?? "",
69
77
  status: mediaResponse.status,
70
78
  body: await mediaResponse.text(),
@@ -93,6 +101,9 @@ export class WavespeedAITextToVideoTask extends WavespeedAITask {
93
101
  constructor() {
94
102
  super(WAVESPEEDAI_API_BASE_URL);
95
103
  }
104
+ async getResponse(response, url, headers) {
105
+ return super.getResponse(response, url, headers);
106
+ }
96
107
  }
97
108
  export class WavespeedAIImageToImageTask extends WavespeedAITask {
98
109
  constructor() {
@@ -103,6 +114,9 @@ export class WavespeedAIImageToImageTask extends WavespeedAITask {
103
114
  const { base, images } = await buildImagesField(args.inputs, hasImages);
104
115
  return { ...args, inputs: args.parameters?.prompt, image: base, images };
105
116
  }
117
+ async getResponse(response, url, headers) {
118
+ return super.getResponse(response, url, headers);
119
+ }
106
120
  }
107
121
  export class WavespeedAIImageToVideoTask extends WavespeedAITask {
108
122
  constructor() {
@@ -113,4 +127,7 @@ export class WavespeedAIImageToVideoTask extends WavespeedAITask {
113
127
  const { base, images } = await buildImagesField(args.inputs, hasImages);
114
128
  return { ...args, inputs: args.parameters?.prompt, image: base, images };
115
129
  }
130
+ async getResponse(response, url, headers) {
131
+ return super.getResponse(response, url, headers);
132
+ }
116
133
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@huggingface/inference",
3
- "version": "4.13.8",
3
+ "version": "4.13.9",
4
4
  "license": "MIT",
5
5
  "author": "Hugging Face and Tim Mikeladze <tim.mikeladze@gmail.com>",
6
6
  "description": "Typescript client for the Hugging Face Inference Providers and Inference Endpoints",
package/src/package.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  // Generated file from package.json. Issues importing JSON directly when publishing on commonjs/ESM - see https://github.com/microsoft/TypeScript/issues/51783
2
- export const PACKAGE_VERSION = "4.13.8";
2
+ export const PACKAGE_VERSION = "4.13.9";
3
3
  export const PACKAGE_NAME = "@huggingface/inference";
@@ -89,6 +89,12 @@ abstract class FalAITask extends TaskProviderHelper {
89
89
  abstract class FalAiQueueTask extends FalAITask {
90
90
  abstract task: InferenceTask;
91
91
 
92
+ override makeRoute(params: UrlParams): string {
93
+ if (params.authMethod !== "provider-key") {
94
+ return `/${params.model}?_subdomain=queue`;
95
+ }
96
+ return `/${params.model}`;
97
+ }
92
98
  async getResponseFromQueueApi(
93
99
  response: FalAiQueueOutput,
94
100
  url?: string,
@@ -159,12 +165,18 @@ function buildLoraPath(modelId: ModelId, adapterWeightsPath: string): string {
159
165
  return `${HF_HUB_URL}/${modelId}/resolve/main/${adapterWeightsPath}`;
160
166
  }
161
167
 
162
- export class FalAITextToImageTask extends FalAITask implements TextToImageTaskHelper {
168
+ export class FalAITextToImageTask extends FalAiQueueTask implements TextToImageTaskHelper {
169
+ task: InferenceTask;
170
+
171
+ constructor() {
172
+ super("https://queue.fal.run");
173
+ this.task = "text-to-image";
174
+ }
175
+
163
176
  override preparePayload(params: BodyParams): Record<string, unknown> {
164
177
  const payload: Record<string, unknown> = {
165
178
  ...omit(params.args, ["inputs", "parameters"]),
166
179
  ...(params.args.parameters as Record<string, unknown>),
167
- sync_mode: true,
168
180
  prompt: params.args.inputs,
169
181
  };
170
182
 
@@ -184,30 +196,36 @@ export class FalAITextToImageTask extends FalAITask implements TextToImageTaskHe
184
196
  }
185
197
 
186
198
  override async getResponse(
187
- response: FalAITextToImageOutput,
199
+ response: FalAiQueueOutput,
188
200
  url?: string,
189
- headers?: HeadersInit,
201
+ headers?: Record<string, string>,
190
202
  outputType?: "url" | "blob" | "json"
191
203
  ): Promise<string | Blob | Record<string, unknown>> {
204
+ const result = (await this.getResponseFromQueueApi(response, url, headers)) as FalAITextToImageOutput;
192
205
  if (
193
- typeof response === "object" &&
194
- "images" in response &&
195
- Array.isArray(response.images) &&
196
- response.images.length > 0 &&
197
- "url" in response.images[0] &&
198
- typeof response.images[0].url === "string"
206
+ typeof result === "object" &&
207
+ "images" in result &&
208
+ Array.isArray(result.images) &&
209
+ result.images.length > 0 &&
210
+ "url" in result.images[0] &&
211
+ typeof result.images[0].url === "string" &&
212
+ isUrl(result.images[0].url)
199
213
  ) {
200
214
  if (outputType === "json") {
201
- return { ...response };
215
+ return { ...result };
202
216
  }
203
217
  if (outputType === "url") {
204
- return response.images[0].url;
218
+ return result.images[0].url;
205
219
  }
206
- const urlResponse = await fetch(response.images[0].url);
220
+ const urlResponse = await fetch(result.images[0].url);
207
221
  return await urlResponse.blob();
208
222
  }
209
223
 
210
- throw new InferenceClientProviderOutputError("Received malformed response from Fal.ai text-to-image API");
224
+ throw new InferenceClientProviderOutputError(
225
+ `Received malformed response from Fal.ai text-to-image API: expected { images: Array<{ url: string }> } result format, got instead: ${JSON.stringify(
226
+ result
227
+ )}`
228
+ );
211
229
  }
212
230
  }
213
231
 
@@ -218,13 +236,6 @@ export class FalAIImageToImageTask extends FalAiQueueTask implements ImageToImag
218
236
  this.task = "image-to-image";
219
237
  }
220
238
 
221
- override makeRoute(params: UrlParams): string {
222
- if (params.authMethod !== "provider-key") {
223
- return `/${params.model}?_subdomain=queue`;
224
- }
225
- return `/${params.model}`;
226
- }
227
-
228
239
  override preparePayload(params: BodyParams): Record<string, unknown> {
229
240
  const payload = params.args;
230
241
  if (params.mapping?.adapter === "lora" && params.mapping.adapterWeightsPath) {
@@ -290,12 +301,7 @@ export class FalAITextToVideoTask extends FalAiQueueTask implements TextToVideoT
290
301
  super("https://queue.fal.run");
291
302
  this.task = "text-to-video";
292
303
  }
293
- override makeRoute(params: UrlParams): string {
294
- if (params.authMethod !== "provider-key") {
295
- return `/${params.model}?_subdomain=queue`;
296
- }
297
- return `/${params.model}`;
298
- }
304
+
299
305
  override preparePayload(params: BodyParams): Record<string, unknown> {
300
306
  return {
301
307
  ...omit(params.args, ["inputs", "parameters"]),
@@ -341,11 +347,6 @@ export class FalAIImageToVideoTask extends FalAiQueueTask implements ImageToVide
341
347
  this.task = "image-to-video";
342
348
  }
343
349
 
344
- /** Same queue routing rule as the other Fal queue tasks */
345
- override makeRoute(params: UrlParams): string {
346
- return params.authMethod !== "provider-key" ? `/${params.model}?_subdomain=queue` : `/${params.model}`;
347
- }
348
-
349
350
  /** Synchronous case – caller already gave us base64 or a URL */
350
351
  override preparePayload(params: BodyParams): Record<string, unknown> {
351
352
  return {
@@ -493,13 +494,6 @@ export class FalAIImageSegmentationTask extends FalAiQueueTask implements ImageS
493
494
  this.task = "image-segmentation";
494
495
  }
495
496
 
496
- override makeRoute(params: UrlParams): string {
497
- if (params.authMethod !== "provider-key") {
498
- return `/${params.model}?_subdomain=queue`;
499
- }
500
- return `/${params.model}`;
501
- }
502
-
503
497
  override preparePayload(params: BodyParams): Record<string, unknown> {
504
498
  return {
505
499
  ...omit(params.args, ["inputs", "parameters"]),
@@ -115,8 +115,9 @@ abstract class WavespeedAITask extends TaskProviderHelper {
115
115
  override async getResponse(
116
116
  response: WaveSpeedAISubmitTaskResponse,
117
117
  url?: string,
118
- headers?: Record<string, string>
119
- ): Promise<Blob> {
118
+ headers?: Record<string, string>,
119
+ outputType?: "url" | "blob" | "json"
120
+ ): Promise<string | Blob | Record<string, unknown>> {
120
121
  if (!url || !headers) {
121
122
  throw new InferenceClientInputError("Headers are required for WaveSpeed AI API calls");
122
123
  }
@@ -156,11 +157,21 @@ abstract class WavespeedAITask extends TaskProviderHelper {
156
157
  "Received malformed response from WaveSpeed AI API: No output URL in completed response"
157
158
  );
158
159
  }
159
- const mediaResponse = await fetch(taskResult.outputs[0]);
160
+ const mediaUrl = taskResult.outputs[0];
161
+
162
+ if (outputType === "url") {
163
+ return mediaUrl;
164
+ }
165
+ if (outputType === "json") {
166
+ return result as unknown as Record<string, unknown>;
167
+ }
168
+
169
+ // Default: fetch and return blob
170
+ const mediaResponse = await fetch(mediaUrl);
160
171
  if (!mediaResponse.ok) {
161
172
  throw new InferenceClientProviderApiError(
162
173
  "Failed to fetch generation output from WaveSpeed AI API",
163
- { url: taskResult.outputs[0], method: "GET" },
174
+ { url: mediaUrl, method: "GET" },
164
175
  {
165
176
  requestId: mediaResponse.headers.get("x-request-id") ?? "",
166
177
  status: mediaResponse.status,
@@ -194,6 +205,14 @@ export class WavespeedAITextToVideoTask extends WavespeedAITask implements TextT
194
205
  constructor() {
195
206
  super(WAVESPEEDAI_API_BASE_URL);
196
207
  }
208
+
209
+ override async getResponse(
210
+ response: WaveSpeedAISubmitTaskResponse,
211
+ url?: string,
212
+ headers?: Record<string, string>
213
+ ): Promise<Blob> {
214
+ return super.getResponse(response, url, headers) as Promise<Blob>;
215
+ }
197
216
  }
198
217
 
199
218
  export class WavespeedAIImageToImageTask extends WavespeedAITask implements ImageToImageTaskHelper {
@@ -207,6 +226,14 @@ export class WavespeedAIImageToImageTask extends WavespeedAITask implements Imag
207
226
  const { base, images } = await buildImagesField(args.inputs as Blob | ArrayBuffer, hasImages);
208
227
  return { ...args, inputs: args.parameters?.prompt, image: base, images };
209
228
  }
229
+
230
+ override async getResponse(
231
+ response: WaveSpeedAISubmitTaskResponse,
232
+ url?: string,
233
+ headers?: Record<string, string>
234
+ ): Promise<Blob> {
235
+ return super.getResponse(response, url, headers) as Promise<Blob>;
236
+ }
210
237
  }
211
238
 
212
239
  export class WavespeedAIImageToVideoTask extends WavespeedAITask implements ImageToVideoTaskHelper {
@@ -220,4 +247,12 @@ export class WavespeedAIImageToVideoTask extends WavespeedAITask implements Imag
220
247
  const { base, images } = await buildImagesField(args.inputs as Blob | ArrayBuffer, hasImages);
221
248
  return { ...args, inputs: args.parameters?.prompt, image: base, images };
222
249
  }
250
+
251
+ override async getResponse(
252
+ response: WaveSpeedAISubmitTaskResponse,
253
+ url?: string,
254
+ headers?: Record<string, string>
255
+ ): Promise<Blob> {
256
+ return super.getResponse(response, url, headers) as Promise<Blob>;
257
+ }
223
258
  }