@nodetool-ai/runtime 0.8.5 → 0.8.7

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.
Files changed (75) hide show
  1. package/dist/.nodetool-build-stamp +1 -1
  2. package/dist/context.d.ts +2 -2
  3. package/dist/context.d.ts.map +1 -1
  4. package/dist/context.js +6 -0
  5. package/dist/context.js.map +1 -1
  6. package/dist/media-ref-bytes.d.ts +6 -1
  7. package/dist/media-ref-bytes.d.ts.map +1 -1
  8. package/dist/media-ref-bytes.js +9 -3
  9. package/dist/media-ref-bytes.js.map +1 -1
  10. package/dist/providers/anthropic-provider.d.ts.map +1 -1
  11. package/dist/providers/anthropic-provider.js +8 -10
  12. package/dist/providers/anthropic-provider.js.map +1 -1
  13. package/dist/providers/antigravity-provider.d.ts.map +1 -1
  14. package/dist/providers/antigravity-provider.js +2 -3
  15. package/dist/providers/antigravity-provider.js.map +1 -1
  16. package/dist/providers/base-provider.d.ts +7 -2
  17. package/dist/providers/base-provider.d.ts.map +1 -1
  18. package/dist/providers/base-provider.js +8 -0
  19. package/dist/providers/base-provider.js.map +1 -1
  20. package/dist/providers/codex-provider.d.ts +7 -0
  21. package/dist/providers/codex-provider.d.ts.map +1 -1
  22. package/dist/providers/codex-provider.js +11 -7
  23. package/dist/providers/codex-provider.js.map +1 -1
  24. package/dist/providers/fal-provider.d.ts +2 -1
  25. package/dist/providers/fal-provider.d.ts.map +1 -1
  26. package/dist/providers/fal-provider.js +87 -31
  27. package/dist/providers/fal-provider.js.map +1 -1
  28. package/dist/providers/fal-queue.d.ts.map +1 -1
  29. package/dist/providers/fal-queue.js +42 -4
  30. package/dist/providers/fal-queue.js.map +1 -1
  31. package/dist/providers/index.d.ts +2 -0
  32. package/dist/providers/index.d.ts.map +1 -1
  33. package/dist/providers/index.js +9 -2
  34. package/dist/providers/index.js.map +1 -1
  35. package/dist/providers/manifest-models.d.ts +12 -0
  36. package/dist/providers/manifest-models.d.ts.map +1 -1
  37. package/dist/providers/manifest-models.js +22 -22
  38. package/dist/providers/manifest-models.js.map +1 -1
  39. package/dist/providers/model-folders.d.ts +20 -0
  40. package/dist/providers/model-folders.d.ts.map +1 -0
  41. package/dist/providers/model-folders.js +116 -0
  42. package/dist/providers/model-folders.js.map +1 -0
  43. package/dist/providers/node-llama-cpp-provider.d.ts +13 -4
  44. package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -1
  45. package/dist/providers/node-llama-cpp-provider.js +35 -5
  46. package/dist/providers/node-llama-cpp-provider.js.map +1 -1
  47. package/dist/providers/node-llama-cpp-trending.generated.js +132 -132
  48. package/dist/providers/node-llama-cpp-trending.generated.js.map +1 -1
  49. package/dist/providers/provider-queue.d.ts +7 -0
  50. package/dist/providers/provider-queue.d.ts.map +1 -1
  51. package/dist/providers/provider-queue.js +50 -1
  52. package/dist/providers/provider-queue.js.map +1 -1
  53. package/dist/providers/replicate-provider.d.ts.map +1 -1
  54. package/dist/providers/replicate-provider.js +16 -4
  55. package/dist/providers/replicate-provider.js.map +1 -1
  56. package/dist/providers/safetensors-header.d.ts +5 -0
  57. package/dist/providers/safetensors-header.d.ts.map +1 -0
  58. package/dist/providers/safetensors-header.js +49 -0
  59. package/dist/providers/safetensors-header.js.map +1 -0
  60. package/dist/providers/sdcpp-models.d.ts +13 -0
  61. package/dist/providers/sdcpp-models.d.ts.map +1 -1
  62. package/dist/providers/sdcpp-models.js +44 -0
  63. package/dist/providers/sdcpp-models.js.map +1 -1
  64. package/dist/providers/sdcpp-provider.d.ts +4 -0
  65. package/dist/providers/sdcpp-provider.d.ts.map +1 -1
  66. package/dist/providers/sdcpp-provider.js +27 -8
  67. package/dist/providers/sdcpp-provider.js.map +1 -1
  68. package/dist/providers/toapis-provider.d.ts +38 -0
  69. package/dist/providers/toapis-provider.d.ts.map +1 -0
  70. package/dist/providers/toapis-provider.js +361 -0
  71. package/dist/providers/toapis-provider.js.map +1 -0
  72. package/dist/providers/types.d.ts +10 -0
  73. package/dist/providers/types.d.ts.map +1 -1
  74. package/dist/providers/types.js.map +1 -1
  75. package/package.json +7 -6
@@ -4,15 +4,18 @@
4
4
  * The provider starts the `sd-server` binary from the `sd-cpp` runtime
5
5
  * package with the files of the model a generation asks for, then talks to
6
6
  * it over its `/sdcpp/v1` job API. Model files come from the Hugging Face
7
- * cache, where the model picker downloads them.
7
+ * cache, where the model picker downloads them, or are single-file
8
+ * checkpoints found in the `MODEL_FOLDERS` setting's folders.
8
9
  */
9
10
  import { z } from "zod";
10
11
  import { SD_CPP_RELEASE_TAG, importNodeBuiltin, runtimeLocations, sdCppInstallStatus, sdServerPath } from "@nodetool-ai/config";
11
12
  import { missingRuntimePackageError } from "@nodetool-ai/protocol";
12
13
  import { BaseProvider } from "./base-provider.js";
13
- import { SD_CPP_COMPONENT_FLAGS, SD_CPP_MODELS, sdCppModel, sdCppModelRepos, sdCppModelTasks } from "./sdcpp-models.js";
14
+ import { SD_CPP_COMPONENT_FLAGS, SD_CPP_MODELS, localCheckpointSpec, sdCppModel, sdCppModelRepos, sdCppModelTasks } from "./sdcpp-models.js";
14
15
  import { withSdServer } from "./sdcpp-server.js";
15
16
  import { resolveHubFile } from "./hf-hub-file.js";
17
+ import { cachedFileProbe, findModelFiles, modelFolders } from "./model-folders.js";
18
+ import { readSafetensorsTensorNames } from "./safetensors-header.js";
16
19
  export const SD_CPP_PROVIDER_ID = "stable_diffusion_cpp";
17
20
  const imageResult = z.object({
18
21
  output_format: z.string(),
@@ -29,12 +32,14 @@ export class StableDiffusionCppProvider extends BaseProvider {
29
32
  return [];
30
33
  }
31
34
  serverPath;
35
+ modelFolders;
32
36
  constructor(secrets = {}) {
33
37
  super(SD_CPP_PROVIDER_ID);
34
38
  this.serverPath =
35
39
  secrets.SD_CPP_SERVER_PATH?.trim() ||
36
40
  process.env.SD_CPP_SERVER_PATH?.trim() ||
37
41
  undefined;
42
+ this.modelFolders = secrets.MODEL_FOLDERS || process.env.MODEL_FOLDERS || undefined;
38
43
  }
39
44
  declaredCapabilities() {
40
45
  return ["text_to_image", "image_to_image"];
@@ -48,7 +53,8 @@ export class StableDiffusionCppProvider extends BaseProvider {
48
53
  }
49
54
  async getAvailableImageModels() {
50
55
  const binary = await this.findServer();
51
- return Promise.all(SD_CPP_MODELS.map(async (model) => ({
56
+ const models = [...SD_CPP_MODELS, ...(await this.localModels())];
57
+ return Promise.all(models.map(async (model) => ({
52
58
  id: model.id,
53
59
  name: `${model.name} (${model.sizeGb} GB)`,
54
60
  provider: SD_CPP_PROVIDER_ID,
@@ -57,7 +63,7 @@ export class StableDiffusionCppProvider extends BaseProvider {
57
63
  })));
58
64
  }
59
65
  async textToImage(params) {
60
- const model = this.spec(params.model.id);
66
+ const model = await this.spec(params.model.id);
61
67
  if (model.textToImage === false) {
62
68
  throw new Error(`${model.name} edits a source image. Use it for image-to-image.`);
63
69
  }
@@ -76,7 +82,7 @@ export class StableDiffusionCppProvider extends BaseProvider {
76
82
  if (!source?.length) {
77
83
  throw new Error("stable-diffusion.cpp image-to-image needs a source image");
78
84
  }
79
- const model = this.spec(params.model.id);
85
+ const model = await this.spec(params.model.id);
80
86
  if (!model.imageInput) {
81
87
  throw new Error(`${model.name} generates from text only. Use it for text-to-image.`);
82
88
  }
@@ -99,13 +105,19 @@ export class StableDiffusionCppProvider extends BaseProvider {
99
105
  sample_params: sampleParams(model, params)
100
106
  });
101
107
  }
102
- spec(id) {
103
- const model = sdCppModel(id);
108
+ async spec(id) {
109
+ const model = sdCppModel(id) ?? (await this.localModels()).find((local) => local.id === id) ?? null;
104
110
  if (!model) {
105
111
  throw new Error(`Unknown stable-diffusion.cpp model "${id}". Known: ${SD_CPP_MODELS.map((m) => m.id).join(", ")}.`);
106
112
  }
107
113
  return model;
108
114
  }
115
+ /** The single-file checkpoints in the configured model folders. */
116
+ async localModels() {
117
+ const files = await findModelFiles(await modelFolders(this.modelFolders), [".safetensors"]);
118
+ const specs = await Promise.all(files.map((file) => probeCheckpoint(file)));
119
+ return specs.filter((spec) => spec !== null);
120
+ }
109
121
  async generate(model, signal, body) {
110
122
  const binary = await this.findServer();
111
123
  if (!binary) {
@@ -188,6 +200,13 @@ async function withUpdateHint(binary, error) {
188
200
  "Update stable-diffusion.cpp in Settings › Packages, or run `nodetool runtime add sd-cpp`.\n\n" +
189
201
  error.message, { cause: error });
190
202
  }
203
+ /** A model folder file as a checkpoint spec, or null when it is not one. */
204
+ const probeCheckpoint = cachedFileProbe(async (file) => {
205
+ const fs = await importNodeBuiltin("node:fs/promises");
206
+ const stat = await fs?.stat(file).catch(() => null);
207
+ const names = await readSafetensorsTensorNames(file);
208
+ return stat && names ? localCheckpointSpec(file, names, stat.size) : null;
209
+ });
191
210
  function adapterFor(model, serverInstalled, filesPresent) {
192
211
  const [main, ...extra] = sdCppModelRepos(model).map((repo) => ({
193
212
  source: "huggingface",
@@ -213,7 +232,7 @@ async function missingFiles(model) {
213
232
  }
214
233
  /** The sd-server flags that load each file of a model from the HF cache. */
215
234
  async function modelArgs(model) {
216
- const args = [];
235
+ const args = model.localPath ? [SD_CPP_COMPONENT_FLAGS.model, model.localPath] : [];
217
236
  const missing = [];
218
237
  for (const [component, file] of Object.entries(model.files)) {
219
238
  const resolved = await resolveHubFile(file.repoId, file.path);
@@ -1 +1 @@
1
- {"version":3,"file":"sdcpp-provider.js","sourceRoot":"","sources":["../../src/providers/sdcpp-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdcpp-provider.js","sourceRoot":"","sources":["../../src/providers/sdcpp-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { BaseProvider, type ProviderCapability } from "./base-provider.js";
2
+ import type { ImageModel, ImageToImageParams, ImageToVideoParams, Message, ProviderStreamItem, ReferenceToVideoInputs, ReferenceToVideoParams, TextToImageParams, TextToVideoParams, VideoModel } from "./types.js";
3
+ /**
4
+ * GPT Image and Seedance 2 generation through ToAPIs (toapis.com), an
5
+ * independent BYOK API. Every generation is an asynchronous task: submit,
6
+ * poll the task, then download the result URL, which expires after 24 hours.
7
+ * Input images are uploaded first, because the image models accept URLs only.
8
+ */
9
+ export declare class ToapisProvider extends BaseProvider {
10
+ private readonly apiKey;
11
+ protected declaredCapabilities(): readonly ProviderCapability[];
12
+ static requiredSecrets(): string[];
13
+ constructor(secrets?: Record<string, unknown>);
14
+ getContainerEnv(): Record<string, string>;
15
+ generateMessage(_args: Parameters<BaseProvider["generateMessage"]>[0]): Promise<Message>;
16
+ generateMessages(_args: Parameters<BaseProvider["generateMessages"]>[0]): AsyncGenerator<ProviderStreamItem>;
17
+ getAvailableImageModels(): Promise<ImageModel[]>;
18
+ getAvailableVideoModels(): Promise<VideoModel[]>;
19
+ textToImage(params: TextToImageParams): Promise<Uint8Array>;
20
+ imageToImage(images: Uint8Array[], params: ImageToImageParams): Promise<Uint8Array>;
21
+ textToVideo(params: TextToVideoParams): Promise<Uint8Array>;
22
+ imageToVideo(image: Uint8Array, params: ImageToVideoParams): Promise<Uint8Array>;
23
+ referenceToVideo(inputs: ReferenceToVideoInputs, params: ReferenceToVideoParams): Promise<Uint8Array>;
24
+ private imageBody;
25
+ private videoBody;
26
+ private headers;
27
+ private uploadAll;
28
+ private upload;
29
+ private parse;
30
+ private generate;
31
+ /**
32
+ * ToAPIs has no cancel endpoint, so a stopped or timed-out run leaves the
33
+ * task to finish upstream; the caller only stops waiting for it.
34
+ */
35
+ private waitForTask;
36
+ private download;
37
+ }
38
+ //# sourceMappingURL=toapis-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toapis-provider.d.ts","sourceRoot":"","sources":["../../src/providers/toapis-provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI3E,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACX,MAAM,YAAY,CAAC;AA0HpB;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,UAAmB,oBAAoB,IAAI,SAAS,kBAAkB,EAAE,CAEvE;IAED,OAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;IAED,YAAY,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAOhD;IAEQ,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjD;IAEK,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7F;IAGM,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAElH;IAEc,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAS9D;IAEc,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAE9D;IAEc,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAKzE;IAEc,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAYjG;IAEc,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAGzE;IAEc,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAS9F;IAEc,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAcnH;IAED,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,OAAO;YAMD,SAAS;YAST,MAAM;YAyBN,KAAK;YAUL,QAAQ;IA6BtB;;;OAGG;YACW,WAAW;YAqCX,QAAQ;CAgBvB"}
@@ -0,0 +1,361 @@
1
+ import { PROVIDER_IDS } from "@nodetool-ai/protocol";
2
+ import { z } from "zod";
3
+ import { recordGenerationReceiptAsync } from "../generation-receipt.js";
4
+ import { BaseProvider } from "./base-provider.js";
5
+ import { fetchWithRetry, sleep } from "./http-transport.js";
6
+ import { sniffImageMime } from "./image-mime.js";
7
+ import { safeFetch } from "./safe-url.js";
8
+ const BASE_URL = "https://toapis.com/v1";
9
+ const GPT_IMAGE_2_RATIOS = ["1:1", "3:2", "2:3", "4:3", "3:4", "5:4", "4:5", "16:9", "9:16", "2:1", "1:2", "21:9", "9:21"];
10
+ const GPT_IMAGE_25_RATIOS = ["1:1", "3:2", "2:3", "4:3", "3:4", "5:4", "4:5", "16:9", "9:16", "21:9"];
11
+ const IMAGE_RESOLUTIONS = ["1K", "2K", "4K"];
12
+ const IMAGE_MODELS = [
13
+ { id: "gpt-image-2", name: "GPT Image 2", aspectRatios: GPT_IMAGE_2_RATIOS, maxReferences: 14 },
14
+ {
15
+ id: "gpt-image-2-vip",
16
+ name: "GPT Image 2 VIP",
17
+ aspectRatios: GPT_IMAGE_2_RATIOS,
18
+ qualities: ["low", "medium", "high"],
19
+ maxReferences: 14
20
+ },
21
+ { id: "gpt-image-2.5-flare", name: "GPT Image 2.5 Flare", aspectRatios: GPT_IMAGE_25_RATIOS, maxReferences: 14 },
22
+ { id: "gpt-image-2.5-sunburst", name: "GPT Image 2.5 Sunburst", aspectRatios: GPT_IMAGE_25_RATIOS, maxReferences: 14 }
23
+ ];
24
+ const VIDEO_TASKS = ["text_to_video", "image_to_video", "reference_to_video"];
25
+ const VIDEO_DURATIONS = Array.from({ length: 12 }, (_, index) => index + 4);
26
+ const VIDEO_RATIOS = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"];
27
+ const VIDEO_MODELS = [
28
+ { id: "seedance-2", name: "Seedance 2", resolutions: ["480p", "720p", "1080p", "4k"] },
29
+ { id: "seedance-2-fast", name: "Seedance 2 Fast", resolutions: ["480p", "720p"] },
30
+ { id: "seedance-2-mini", name: "Seedance 2 Mini", resolutions: ["480p", "720p"] }
31
+ ].map((model) => ({
32
+ ...model,
33
+ provider: PROVIDER_IDS.TOAPIS,
34
+ supportedTasks: VIDEO_TASKS,
35
+ durations: VIDEO_DURATIONS,
36
+ aspectRatios: VIDEO_RATIOS
37
+ }));
38
+ const UPLOAD_MIMES = new Set(["image/jpeg", "image/png", "image/webp", "image/gif"]);
39
+ const MAX_UPLOAD_BYTES = 10 * 1024 * 1024;
40
+ const MAX_VIDEO_REFERENCES = 9;
41
+ const IMAGE_POLL_INTERVAL_MS = 5000;
42
+ const VIDEO_POLL_INTERVAL_MS = 10000;
43
+ const IMAGE_TIMEOUT_SECONDS = 10 * 60;
44
+ const VIDEO_TIMEOUT_SECONDS = 30 * 60;
45
+ const TERMINAL = new Set(["completed", "failed", "cancelled", "canceled", "expired"]);
46
+ const TaskSchema = z.object({
47
+ id: z.string(),
48
+ status: z.string(),
49
+ progress: z.number().nullish(),
50
+ result: z.object({ data: z.array(z.object({ url: z.string() })) }).nullish(),
51
+ error: z.unknown().optional()
52
+ });
53
+ const UploadSchema = z.object({ data: z.object({ url: z.string() }) });
54
+ function errorMessage(payload, fallback) {
55
+ if (typeof payload === "string" && payload)
56
+ return payload;
57
+ if (payload && typeof payload === "object") {
58
+ const record = payload;
59
+ if (typeof record.message === "string" && record.message)
60
+ return record.message;
61
+ if (record.error !== undefined)
62
+ return errorMessage(record.error, fallback);
63
+ }
64
+ return fallback;
65
+ }
66
+ function imageSpec(modelId) {
67
+ const spec = IMAGE_MODELS.find((model) => model.id === modelId);
68
+ if (!spec)
69
+ throw new Error(`Unknown ToAPIs image model: ${modelId}`);
70
+ return spec;
71
+ }
72
+ function videoModelId(modelId) {
73
+ if (!VIDEO_MODELS.some((model) => model.id === modelId)) {
74
+ throw new Error(`Unknown ToAPIs video model: ${modelId}`);
75
+ }
76
+ return modelId;
77
+ }
78
+ function gcd(a, b) {
79
+ return b === 0 ? a : gcd(b, a % b);
80
+ }
81
+ /** ToAPIs takes an aspect ratio, not pixels. Pixel sizes map to their reduced ratio. */
82
+ function aspectRatio(spec, ratio, width, height) {
83
+ if (ratio)
84
+ return requireAspectRatio(spec, ratio);
85
+ if (width && height && width > 0 && height > 0) {
86
+ const divisor = gcd(width, height);
87
+ const reduced = `${width / divisor}:${height / divisor}`;
88
+ return requireAspectRatio(spec, reduced);
89
+ }
90
+ return undefined;
91
+ }
92
+ function requireAspectRatio(spec, ratio) {
93
+ if (spec.aspectRatios.includes(ratio))
94
+ return ratio;
95
+ // VIP also accepts custom ratios up to 3:1 in either orientation, or auto.
96
+ // https://docs.toapis.com/docs/cn/api-reference/images/gpt-image-2-vip/generation
97
+ if (spec.id === "gpt-image-2-vip") {
98
+ if (ratio === "auto")
99
+ return ratio;
100
+ if (/^\d+:\d+$/.test(ratio)) {
101
+ const [width = 0, height = 0] = ratio.split(":").map(Number);
102
+ if (Number.isSafeInteger(width) && Number.isSafeInteger(height) && width > 0 && height > 0 &&
103
+ width / height <= 3 && height / width <= 3) {
104
+ return ratio;
105
+ }
106
+ }
107
+ }
108
+ throw new Error(`Unsupported ToAPIs ${spec.id} aspect ratio: ${ratio}`);
109
+ }
110
+ /**
111
+ * GPT Image and Seedance 2 generation through ToAPIs (toapis.com), an
112
+ * independent BYOK API. Every generation is an asynchronous task: submit,
113
+ * poll the task, then download the result URL, which expires after 24 hours.
114
+ * Input images are uploaded first, because the image models accept URLs only.
115
+ */
116
+ export class ToapisProvider extends BaseProvider {
117
+ apiKey;
118
+ declaredCapabilities() {
119
+ return ["text_to_image", "image_to_image", "text_to_video", "image_to_video", "reference_to_video"];
120
+ }
121
+ static requiredSecrets() {
122
+ return ["TOAPIS_API_KEY"];
123
+ }
124
+ constructor(secrets = {}) {
125
+ super(PROVIDER_IDS.TOAPIS);
126
+ const apiKey = secrets.TOAPIS_API_KEY;
127
+ if (typeof apiKey !== "string" || !apiKey.trim()) {
128
+ throw new Error("TOAPIS_API_KEY is required");
129
+ }
130
+ this.apiKey = apiKey.trim();
131
+ }
132
+ getContainerEnv() {
133
+ return { TOAPIS_API_KEY: this.apiKey };
134
+ }
135
+ async generateMessage(_args) {
136
+ throw new Error("ToAPIs does not support chat generation");
137
+ }
138
+ // eslint-disable-next-line require-yield
139
+ async *generateMessages(_args) {
140
+ throw new Error("ToAPIs does not support chat generation");
141
+ }
142
+ async getAvailableImageModels() {
143
+ return IMAGE_MODELS.map((spec) => ({
144
+ id: spec.id,
145
+ name: spec.name,
146
+ provider: PROVIDER_IDS.TOAPIS,
147
+ supportedTasks: ["text_to_image", "image_to_image"],
148
+ aspectRatios: spec.aspectRatios,
149
+ resolutions: IMAGE_RESOLUTIONS
150
+ }));
151
+ }
152
+ async getAvailableVideoModels() {
153
+ return [...VIDEO_MODELS];
154
+ }
155
+ async textToImage(params) {
156
+ if (!params.prompt?.trim())
157
+ throw new Error("ToAPIs text-to-image requires a prompt");
158
+ const spec = imageSpec(params.model.id);
159
+ const body = this.imageBody(spec, params, aspectRatio(spec, params.aspectRatio, params.width, params.height));
160
+ return this.generate("images", body, params.signal, IMAGE_TIMEOUT_SECONDS);
161
+ }
162
+ async imageToImage(images, params) {
163
+ if (!params.prompt?.trim())
164
+ throw new Error("ToAPIs image-to-image requires a prompt");
165
+ const spec = imageSpec(params.model.id);
166
+ const sources = images.filter((image) => image.length > 0);
167
+ if (sources.length === 0)
168
+ throw new Error("ToAPIs image-to-image requires at least one image");
169
+ if (sources.length > spec.maxReferences) {
170
+ throw new Error(`ToAPIs ${spec.id} accepts at most ${spec.maxReferences} reference images`);
171
+ }
172
+ const ratio = aspectRatio(spec, params.aspectRatio, params.targetWidth, params.targetHeight);
173
+ const body = this.imageBody(spec, params, ratio);
174
+ body.reference_images = await this.uploadAll(sources, "reference image", params.signal);
175
+ return this.generate("images", body, params.signal, IMAGE_TIMEOUT_SECONDS);
176
+ }
177
+ async textToVideo(params) {
178
+ if (!params.prompt?.trim())
179
+ throw new Error("ToAPIs text-to-video requires a prompt");
180
+ return this.generate("videos", this.videoBody(params), params.signal, params.timeoutSeconds ?? VIDEO_TIMEOUT_SECONDS);
181
+ }
182
+ async imageToVideo(image, params) {
183
+ if (image.length === 0)
184
+ throw new Error("ToAPIs image-to-video requires a first frame");
185
+ const body = this.videoBody(params);
186
+ const frames = [{ url: await this.upload(image, "first frame", params.signal), role: "first_frame" }];
187
+ if (params.endImage && params.endImage.length > 0) {
188
+ frames.push({ url: await this.upload(params.endImage, "last frame", params.signal), role: "last_frame" });
189
+ }
190
+ body.image_with_roles = frames;
191
+ return this.generate("videos", body, params.signal, params.timeoutSeconds ?? VIDEO_TIMEOUT_SECONDS);
192
+ }
193
+ async referenceToVideo(inputs, params) {
194
+ if (inputs.videos.some((video) => video.length > 0) || inputs.audios?.some((audio) => audio.length > 0)) {
195
+ throw new Error("ToAPIs reference-to-video accepts images only");
196
+ }
197
+ const images = inputs.images.filter((image) => image.length > 0);
198
+ if (images.length === 0)
199
+ throw new Error("ToAPIs reference-to-video requires at least one reference image");
200
+ if (images.length > MAX_VIDEO_REFERENCES) {
201
+ throw new Error(`ToAPIs accepts at most ${MAX_VIDEO_REFERENCES} reference images`);
202
+ }
203
+ if (!params.prompt?.trim())
204
+ throw new Error("ToAPIs reference-to-video requires a prompt");
205
+ const body = this.videoBody(params);
206
+ const urls = await this.uploadAll(images, "reference image", params.signal);
207
+ body.image_with_roles = urls.map((url) => ({ url, role: "reference_image" }));
208
+ return this.generate("videos", body, params.signal, params.timeoutSeconds ?? VIDEO_TIMEOUT_SECONDS);
209
+ }
210
+ imageBody(spec, params, ratio) {
211
+ const prompt = params.negativePrompt?.trim()
212
+ ? `${params.prompt.trim()}\n\nDo not include: ${params.negativePrompt.trim()}`
213
+ : params.prompt;
214
+ const body = { model: spec.id, prompt, n: 1 };
215
+ if (ratio)
216
+ body.size = ratio;
217
+ const resolution = params.resolution?.toLowerCase();
218
+ if (resolution && ["1k", "2k", "4k"].includes(resolution))
219
+ body.resolution = resolution;
220
+ const quality = params.quality?.toLowerCase();
221
+ if (quality && spec.qualities?.includes(quality))
222
+ body.quality = quality;
223
+ return body;
224
+ }
225
+ videoBody(params) {
226
+ const model = VIDEO_MODELS.find((candidate) => candidate.id === videoModelId(params.model.id));
227
+ const body = { model: params.model.id, prompt: params.prompt ?? "" };
228
+ if (params.durationSeconds && params.durationSeconds > 0) {
229
+ body.duration = Math.min(15, Math.max(4, Math.round(params.durationSeconds)));
230
+ }
231
+ if (params.resolution && model?.resolutions?.includes(params.resolution))
232
+ body.resolution = params.resolution;
233
+ if (params.aspectRatio && VIDEO_RATIOS.includes(params.aspectRatio))
234
+ body.aspect_ratio = params.aspectRatio;
235
+ if (typeof params.seed === "number" && params.seed >= 0)
236
+ body.seed = params.seed;
237
+ return body;
238
+ }
239
+ headers(json = false) {
240
+ const headers = { Authorization: `Bearer ${this.apiKey}` };
241
+ if (json)
242
+ headers["Content-Type"] = "application/json";
243
+ return headers;
244
+ }
245
+ async uploadAll(images, role, signal) {
246
+ const urls = [];
247
+ // Sequential, so the order of `reference_images` matches the inputs.
248
+ for (const [index, image] of images.entries()) {
249
+ urls.push(await this.upload(image, images.length > 1 ? `${role} ${index + 1}` : role, signal));
250
+ }
251
+ return urls;
252
+ }
253
+ async upload(bytes, role, signal) {
254
+ const mime = sniffImageMime(bytes);
255
+ if (!mime || !UPLOAD_MIMES.has(mime)) {
256
+ throw new Error(`ToAPIs ${role} must be a JPEG, PNG, WebP, or GIF image`);
257
+ }
258
+ if (bytes.length > MAX_UPLOAD_BYTES) {
259
+ throw new Error(`ToAPIs ${role} exceeds the 10 MB upload limit`);
260
+ }
261
+ const form = new FormData();
262
+ form.append("file", new Blob([new Uint8Array(bytes)], { type: mime }), `image.${mime.split("/")[1]}`);
263
+ const response = await fetch(`${BASE_URL}/uploads/images`, {
264
+ method: "POST",
265
+ headers: this.headers(),
266
+ body: form,
267
+ signal
268
+ });
269
+ const payload = await response.json().catch(() => null);
270
+ if (!response.ok) {
271
+ throw new Error(`ToAPIs ${role} upload failed: ${errorMessage(payload, `HTTP ${response.status}`)}`);
272
+ }
273
+ const parsed = UploadSchema.safeParse(payload);
274
+ if (!parsed.success)
275
+ throw new Error(`ToAPIs ${role} upload returned no URL`);
276
+ return parsed.data.data.url;
277
+ }
278
+ async parse(response, action) {
279
+ const payload = await response.json().catch(() => null);
280
+ if (!response.ok) {
281
+ throw new Error(`ToAPIs ${action} failed: ${errorMessage(payload, `HTTP ${response.status}`)}`);
282
+ }
283
+ const parsed = TaskSchema.safeParse(payload);
284
+ if (!parsed.success)
285
+ throw new Error(`ToAPIs ${action} returned an invalid task`);
286
+ return parsed.data;
287
+ }
288
+ async generate(kind, body, signal, timeoutSeconds) {
289
+ signal?.throwIfAborted();
290
+ const noun = kind === "images" ? "image" : "video";
291
+ // Creation is billed and ToAPIs documents no idempotency key, so it is never retried.
292
+ const created = await this.parse(await fetch(`${BASE_URL}/${kind}/generations`, {
293
+ method: "POST",
294
+ headers: this.headers(true),
295
+ body: JSON.stringify(body),
296
+ signal
297
+ }), `${noun} creation`);
298
+ await recordGenerationReceiptAsync({ provider_request_id: created.id });
299
+ const task = await this.waitForTask(kind, created, signal, timeoutSeconds);
300
+ if (task.status !== "completed") {
301
+ throw new Error(`ToAPIs ${noun} task ${task.id} ${task.status}: ${errorMessage(task.error, "no reason given")}`);
302
+ }
303
+ const url = task.result?.data[0]?.url;
304
+ if (!url)
305
+ throw new Error(`ToAPIs ${noun} task ${task.id} completed without a result URL`);
306
+ return this.download(url, signal);
307
+ }
308
+ /**
309
+ * ToAPIs has no cancel endpoint, so a stopped or timed-out run leaves the
310
+ * task to finish upstream; the caller only stops waiting for it.
311
+ */
312
+ async waitForTask(kind, created, signal, timeoutSeconds) {
313
+ const noun = kind === "images" ? "image" : "video";
314
+ const path = `${BASE_URL}/${kind}/generations/${encodeURIComponent(created.id)}`;
315
+ const interval = kind === "images" ? IMAGE_POLL_INTERVAL_MS : VIDEO_POLL_INTERVAL_MS;
316
+ const deadline = Date.now() + timeoutSeconds * 1000;
317
+ let current = created;
318
+ if (TERMINAL.has(current.status))
319
+ return current;
320
+ const timeoutError = () => new Error(`ToAPIs ${noun} task ${created.id} timed out while ${current.status}`);
321
+ const timeout = new AbortController();
322
+ const pollSignal = signal ? AbortSignal.any([signal, timeout.signal]) : timeout.signal;
323
+ const timer = setTimeout(() => timeout.abort(timeoutError()), Math.max(0, deadline - Date.now()));
324
+ const checkDeadline = () => {
325
+ pollSignal.throwIfAborted();
326
+ if (Date.now() >= deadline)
327
+ throw timeoutError();
328
+ };
329
+ try {
330
+ while (!TERMINAL.has(current.status)) {
331
+ checkDeadline();
332
+ await sleep(Math.min(interval, Math.max(0, deadline - Date.now())), pollSignal);
333
+ checkDeadline();
334
+ current = await this.parse(await fetchWithRetry(path, { headers: this.headers(), signal: pollSignal }), `${noun} status`);
335
+ checkDeadline();
336
+ }
337
+ return current;
338
+ }
339
+ finally {
340
+ clearTimeout(timer);
341
+ }
342
+ }
343
+ async download(url, signal) {
344
+ // The result is already billed, so transient CDN failures are retried.
345
+ const response = await fetchWithRetry(url, { signal }, {
346
+ fetchImpl: async (input, init) => {
347
+ const response = await safeFetch(String(input), init);
348
+ if (!response.ok) {
349
+ return response;
350
+ }
351
+ // Read inside the retry boundary so a broken response stream retries
352
+ // the protected CDN request, without creating another generation.
353
+ return new Response(await response.arrayBuffer(), { status: response.status, headers: response.headers });
354
+ }
355
+ });
356
+ if (!response.ok)
357
+ throw new Error(`ToAPIs result download failed: HTTP ${response.status}`);
358
+ return new Uint8Array(await response.arrayBuffer());
359
+ }
360
+ }
361
+ //# sourceMappingURL=toapis-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toapis-provider.js","sourceRoot":"","sources":["../../src/providers/toapis-provider.ts"],"names":[],"mappings":"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"}
@@ -701,6 +701,16 @@ export interface UpscaleVideoParams {
701
701
  timeoutSeconds?: number | null;
702
702
  signal?: AbortSignal;
703
703
  }
704
+ /**
705
+ * Subject matting: cut the main subject out of a clip. The answer is a
706
+ * grayscale mask video, white where the subject is, with the source's frame
707
+ * timing, so a caller can read it back at the source's own clock.
708
+ */
709
+ export interface MatteVideoParams {
710
+ model: VideoModel;
711
+ timeoutSeconds?: number | null;
712
+ signal?: AbortSignal;
713
+ }
704
714
  /**
705
715
  * Frame interpolation: synthesize intermediate frames so a clip plays at a
706
716
  * higher frame rate, or in slow motion at the same one. `targetFps` and