@ai-sdk/replicate 1.0.0-canary.9 → 1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,494 @@
1
1
  # @ai-sdk/replicate
2
2
 
3
+ ## 1.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [90d212f]
8
+ - @ai-sdk/provider-utils@3.0.1
9
+
10
+ ## 1.0.0
11
+
12
+ ### Major Changes
13
+
14
+ - d5f588f: AI SDK 5
15
+ - 516be5b: ### Move Image Model Settings into generate options
16
+
17
+ Image Models no longer have settings. Instead, `maxImagesPerCall` can be passed directly to `generateImage()`. All other image settings can be passed to `providerOptions[provider]`.
18
+
19
+ Before
20
+
21
+ ```js
22
+ await generateImage({
23
+ model: luma.image('photon-flash-1', {
24
+ maxImagesPerCall: 5,
25
+ pollIntervalMillis: 500,
26
+ }),
27
+ prompt,
28
+ n: 10,
29
+ });
30
+ ```
31
+
32
+ After
33
+
34
+ ```js
35
+ await generateImage({
36
+ model: luma.image('photon-flash-1'),
37
+ prompt,
38
+ n: 10,
39
+ maxImagesPerCall: 5,
40
+ providerOptions: {
41
+ luma: { pollIntervalMillis: 5 },
42
+ },
43
+ });
44
+ ```
45
+
46
+ Pull Request: https://github.com/vercel/ai/pull/6180
47
+
48
+ ### Patch Changes
49
+
50
+ - eb173f1: chore (providers): remove model shorthand deprecation warnings
51
+ - d9209ca: fix (image-model): `specificationVersion: v1` -> `v2`
52
+ - 9301f86: refactor (image-model): rename `ImageModelV1` to `ImageModelV2`
53
+ - d1a034f: feature: using Zod 4 for internal stuff
54
+ - 205077b: fix: improve Zod compatibility
55
+ - Updated dependencies [a571d6e]
56
+ - Updated dependencies [742b7be]
57
+ - Updated dependencies [e7fcc86]
58
+ - Updated dependencies [7cddb72]
59
+ - Updated dependencies [ccce59b]
60
+ - Updated dependencies [e2b9e4b]
61
+ - Updated dependencies [95857aa]
62
+ - Updated dependencies [45c1ea2]
63
+ - Updated dependencies [6f6bb89]
64
+ - Updated dependencies [060370c]
65
+ - Updated dependencies [dc714f3]
66
+ - Updated dependencies [b5da06a]
67
+ - Updated dependencies [d1a1aa1]
68
+ - Updated dependencies [63f9e9b]
69
+ - Updated dependencies [5d142ab]
70
+ - Updated dependencies [d5f588f]
71
+ - Updated dependencies [e025824]
72
+ - Updated dependencies [0571b98]
73
+ - Updated dependencies [b6b43c7]
74
+ - Updated dependencies [4fef487]
75
+ - Updated dependencies [48d257a]
76
+ - Updated dependencies [0c0c0b3]
77
+ - Updated dependencies [0d2c085]
78
+ - Updated dependencies [40acf9b]
79
+ - Updated dependencies [9222aeb]
80
+ - Updated dependencies [e2aceaf]
81
+ - Updated dependencies [411e483]
82
+ - Updated dependencies [8ba77a7]
83
+ - Updated dependencies [7b3ae3f]
84
+ - Updated dependencies [a166433]
85
+ - Updated dependencies [26735b5]
86
+ - Updated dependencies [443d8ec]
87
+ - Updated dependencies [a8c8bd5]
88
+ - Updated dependencies [abf9a79]
89
+ - Updated dependencies [14c9410]
90
+ - Updated dependencies [e86be6f]
91
+ - Updated dependencies [9bf7291]
92
+ - Updated dependencies [2e13791]
93
+ - Updated dependencies [9f95b35]
94
+ - Updated dependencies [66962ed]
95
+ - Updated dependencies [0d06df6]
96
+ - Updated dependencies [472524a]
97
+ - Updated dependencies [dd3ff01]
98
+ - Updated dependencies [d9c98f4]
99
+ - Updated dependencies [05d2819]
100
+ - Updated dependencies [9301f86]
101
+ - Updated dependencies [0a87932]
102
+ - Updated dependencies [c4a2fec]
103
+ - Updated dependencies [957b739]
104
+ - Updated dependencies [79457bd]
105
+ - Updated dependencies [a3f768e]
106
+ - Updated dependencies [7435eb5]
107
+ - Updated dependencies [8aa9e20]
108
+ - Updated dependencies [4617fab]
109
+ - Updated dependencies [ac34802]
110
+ - Updated dependencies [0054544]
111
+ - Updated dependencies [cb68df0]
112
+ - Updated dependencies [ad80501]
113
+ - Updated dependencies [68ecf2f]
114
+ - Updated dependencies [9e9c809]
115
+ - Updated dependencies [32831c6]
116
+ - Updated dependencies [6dc848c]
117
+ - Updated dependencies [6b98118]
118
+ - Updated dependencies [d0f9495]
119
+ - Updated dependencies [63d791d]
120
+ - Updated dependencies [87b828f]
121
+ - Updated dependencies [3f2f00c]
122
+ - Updated dependencies [bfdca8d]
123
+ - Updated dependencies [0ff02bb]
124
+ - Updated dependencies [7979f7f]
125
+ - Updated dependencies [39a4fab]
126
+ - Updated dependencies [44f4aba]
127
+ - Updated dependencies [9bd5ab5]
128
+ - Updated dependencies [57edfcb]
129
+ - Updated dependencies [faf8446]
130
+ - Updated dependencies [7ea4132]
131
+ - Updated dependencies [d1a034f]
132
+ - Updated dependencies [5c56081]
133
+ - Updated dependencies [fd65bc6]
134
+ - Updated dependencies [023ba40]
135
+ - Updated dependencies [ea7a7c9]
136
+ - Updated dependencies [26535e0]
137
+ - Updated dependencies [e030615]
138
+ - Updated dependencies [5e57fae]
139
+ - Updated dependencies [393138b]
140
+ - Updated dependencies [c57e248]
141
+ - Updated dependencies [88a8ee5]
142
+ - Updated dependencies [41fa418]
143
+ - Updated dependencies [205077b]
144
+ - Updated dependencies [71f938d]
145
+ - Updated dependencies [3795467]
146
+ - Updated dependencies [28a5ed5]
147
+ - Updated dependencies [7182d14]
148
+ - Updated dependencies [c1e6647]
149
+ - Updated dependencies [1766ede]
150
+ - Updated dependencies [811dff3]
151
+ - Updated dependencies [f10304b]
152
+ - Updated dependencies [dd5fd43]
153
+ - Updated dependencies [33f4a6a]
154
+ - Updated dependencies [383cbfa]
155
+ - Updated dependencies [27deb4d]
156
+ - Updated dependencies [c4df419]
157
+ - @ai-sdk/provider-utils@3.0.0
158
+ - @ai-sdk/provider@2.0.0
159
+
160
+ ## 1.0.0-beta.10
161
+
162
+ ### Patch Changes
163
+
164
+ - Updated dependencies [88a8ee5]
165
+ - @ai-sdk/provider-utils@3.0.0-beta.10
166
+
167
+ ## 1.0.0-beta.9
168
+
169
+ ### Patch Changes
170
+
171
+ - Updated dependencies [27deb4d]
172
+ - @ai-sdk/provider@2.0.0-beta.2
173
+ - @ai-sdk/provider-utils@3.0.0-beta.9
174
+
175
+ ## 1.0.0-beta.8
176
+
177
+ ### Patch Changes
178
+
179
+ - eb173f1: chore (providers): remove model shorthand deprecation warnings
180
+ - Updated dependencies [dd5fd43]
181
+ - @ai-sdk/provider-utils@3.0.0-beta.8
182
+
183
+ ## 1.0.0-beta.7
184
+
185
+ ### Patch Changes
186
+
187
+ - Updated dependencies [e7fcc86]
188
+ - @ai-sdk/provider-utils@3.0.0-beta.7
189
+
190
+ ## 1.0.0-beta.6
191
+
192
+ ### Patch Changes
193
+
194
+ - Updated dependencies [ac34802]
195
+ - @ai-sdk/provider-utils@3.0.0-beta.6
196
+
197
+ ## 1.0.0-beta.5
198
+
199
+ ### Patch Changes
200
+
201
+ - Updated dependencies [57edfcb]
202
+ - Updated dependencies [383cbfa]
203
+ - @ai-sdk/provider-utils@3.0.0-beta.5
204
+
205
+ ## 1.0.0-beta.4
206
+
207
+ ### Patch Changes
208
+
209
+ - 205077b: fix: improve Zod compatibility
210
+ - Updated dependencies [205077b]
211
+ - @ai-sdk/provider-utils@3.0.0-beta.4
212
+
213
+ ## 1.0.0-beta.3
214
+
215
+ ### Patch Changes
216
+
217
+ - Updated dependencies [05d2819]
218
+ - @ai-sdk/provider-utils@3.0.0-beta.3
219
+
220
+ ## 1.0.0-beta.2
221
+
222
+ ### Patch Changes
223
+
224
+ - d1a034f: feature: using Zod 4 for internal stuff
225
+ - Updated dependencies [0571b98]
226
+ - Updated dependencies [39a4fab]
227
+ - Updated dependencies [d1a034f]
228
+ - @ai-sdk/provider-utils@3.0.0-beta.2
229
+
230
+ ## 1.0.0-beta.1
231
+
232
+ ### Patch Changes
233
+
234
+ - Updated dependencies [742b7be]
235
+ - Updated dependencies [7cddb72]
236
+ - Updated dependencies [ccce59b]
237
+ - Updated dependencies [e2b9e4b]
238
+ - Updated dependencies [45c1ea2]
239
+ - Updated dependencies [e025824]
240
+ - Updated dependencies [0d06df6]
241
+ - Updated dependencies [472524a]
242
+ - Updated dependencies [dd3ff01]
243
+ - Updated dependencies [7435eb5]
244
+ - Updated dependencies [cb68df0]
245
+ - Updated dependencies [bfdca8d]
246
+ - Updated dependencies [44f4aba]
247
+ - Updated dependencies [023ba40]
248
+ - Updated dependencies [5e57fae]
249
+ - Updated dependencies [71f938d]
250
+ - Updated dependencies [28a5ed5]
251
+ - @ai-sdk/provider@2.0.0-beta.1
252
+ - @ai-sdk/provider-utils@3.0.0-beta.1
253
+
254
+ ## 1.0.0-alpha.15
255
+
256
+ ### Patch Changes
257
+
258
+ - Updated dependencies [48d257a]
259
+ - Updated dependencies [8ba77a7]
260
+ - @ai-sdk/provider@2.0.0-alpha.15
261
+ - @ai-sdk/provider-utils@3.0.0-alpha.15
262
+
263
+ ## 1.0.0-alpha.14
264
+
265
+ ### Patch Changes
266
+
267
+ - Updated dependencies [b5da06a]
268
+ - Updated dependencies [63f9e9b]
269
+ - Updated dependencies [2e13791]
270
+ - @ai-sdk/provider@2.0.0-alpha.14
271
+ - @ai-sdk/provider-utils@3.0.0-alpha.14
272
+
273
+ ## 1.0.0-alpha.13
274
+
275
+ ### Patch Changes
276
+
277
+ - Updated dependencies [68ecf2f]
278
+ - @ai-sdk/provider@2.0.0-alpha.13
279
+ - @ai-sdk/provider-utils@3.0.0-alpha.13
280
+
281
+ ## 1.0.0-alpha.12
282
+
283
+ ### Patch Changes
284
+
285
+ - Updated dependencies [e2aceaf]
286
+ - @ai-sdk/provider@2.0.0-alpha.12
287
+ - @ai-sdk/provider-utils@3.0.0-alpha.12
288
+
289
+ ## 1.0.0-alpha.11
290
+
291
+ ### Patch Changes
292
+
293
+ - Updated dependencies [c1e6647]
294
+ - @ai-sdk/provider@2.0.0-alpha.11
295
+ - @ai-sdk/provider-utils@3.0.0-alpha.11
296
+
297
+ ## 1.0.0-alpha.10
298
+
299
+ ### Patch Changes
300
+
301
+ - Updated dependencies [c4df419]
302
+ - @ai-sdk/provider@2.0.0-alpha.10
303
+ - @ai-sdk/provider-utils@3.0.0-alpha.10
304
+
305
+ ## 1.0.0-alpha.9
306
+
307
+ ### Patch Changes
308
+
309
+ - Updated dependencies [811dff3]
310
+ - @ai-sdk/provider@2.0.0-alpha.9
311
+ - @ai-sdk/provider-utils@3.0.0-alpha.9
312
+
313
+ ## 1.0.0-alpha.8
314
+
315
+ ### Patch Changes
316
+
317
+ - Updated dependencies [4fef487]
318
+ - Updated dependencies [9222aeb]
319
+ - @ai-sdk/provider-utils@3.0.0-alpha.8
320
+ - @ai-sdk/provider@2.0.0-alpha.8
321
+
322
+ ## 1.0.0-alpha.7
323
+
324
+ ### Patch Changes
325
+
326
+ - Updated dependencies [5c56081]
327
+ - @ai-sdk/provider@2.0.0-alpha.7
328
+ - @ai-sdk/provider-utils@3.0.0-alpha.7
329
+
330
+ ## 1.0.0-alpha.6
331
+
332
+ ### Patch Changes
333
+
334
+ - Updated dependencies [0d2c085]
335
+ - @ai-sdk/provider@2.0.0-alpha.6
336
+ - @ai-sdk/provider-utils@3.0.0-alpha.6
337
+
338
+ ## 1.0.0-alpha.4
339
+
340
+ ### Patch Changes
341
+
342
+ - Updated dependencies [dc714f3]
343
+ - @ai-sdk/provider@2.0.0-alpha.4
344
+ - @ai-sdk/provider-utils@3.0.0-alpha.4
345
+
346
+ ## 1.0.0-alpha.3
347
+
348
+ ### Patch Changes
349
+
350
+ - Updated dependencies [6b98118]
351
+ - @ai-sdk/provider@2.0.0-alpha.3
352
+ - @ai-sdk/provider-utils@3.0.0-alpha.3
353
+
354
+ ## 1.0.0-alpha.2
355
+
356
+ ### Patch Changes
357
+
358
+ - Updated dependencies [26535e0]
359
+ - @ai-sdk/provider@2.0.0-alpha.2
360
+ - @ai-sdk/provider-utils@3.0.0-alpha.2
361
+
362
+ ## 1.0.0-alpha.1
363
+
364
+ ### Patch Changes
365
+
366
+ - Updated dependencies [3f2f00c]
367
+ - @ai-sdk/provider@2.0.0-alpha.1
368
+ - @ai-sdk/provider-utils@3.0.0-alpha.1
369
+
370
+ ## 1.0.0-canary.19
371
+
372
+ ### Patch Changes
373
+
374
+ - Updated dependencies [faf8446]
375
+ - @ai-sdk/provider-utils@3.0.0-canary.19
376
+
377
+ ## 1.0.0-canary.18
378
+
379
+ ### Patch Changes
380
+
381
+ - Updated dependencies [40acf9b]
382
+ - @ai-sdk/provider-utils@3.0.0-canary.18
383
+
384
+ ## 1.0.0-canary.17
385
+
386
+ ### Major Changes
387
+
388
+ - 516be5b: ### Move Image Model Settings into generate options
389
+
390
+ Image Models no longer have settings. Instead, `maxImagesPerCall` can be passed directly to `generateImage()`. All other image settings can be passed to `providerOptions[provider]`.
391
+
392
+ Before
393
+
394
+ ```js
395
+ await generateImage({
396
+ model: luma.image('photon-flash-1', {
397
+ maxImagesPerCall: 5,
398
+ pollIntervalMillis: 500,
399
+ }),
400
+ prompt,
401
+ n: 10,
402
+ });
403
+ ```
404
+
405
+ After
406
+
407
+ ```js
408
+ await generateImage({
409
+ model: luma.image('photon-flash-1'),
410
+ prompt,
411
+ n: 10,
412
+ maxImagesPerCall: 5,
413
+ providerOptions: {
414
+ luma: { pollIntervalMillis: 5 },
415
+ },
416
+ });
417
+ ```
418
+
419
+ Pull Request: https://github.com/vercel/ai/pull/6180
420
+
421
+ ### Patch Changes
422
+
423
+ - Updated dependencies [ea7a7c9]
424
+ - @ai-sdk/provider-utils@3.0.0-canary.17
425
+
426
+ ## 1.0.0-canary.16
427
+
428
+ ### Patch Changes
429
+
430
+ - Updated dependencies [87b828f]
431
+ - @ai-sdk/provider-utils@3.0.0-canary.16
432
+
433
+ ## 1.0.0-canary.15
434
+
435
+ ### Patch Changes
436
+
437
+ - Updated dependencies [a571d6e]
438
+ - Updated dependencies [a8c8bd5]
439
+ - Updated dependencies [7979f7f]
440
+ - Updated dependencies [41fa418]
441
+ - @ai-sdk/provider-utils@3.0.0-canary.15
442
+ - @ai-sdk/provider@2.0.0-canary.14
443
+
444
+ ## 1.0.0-canary.14
445
+
446
+ ### Patch Changes
447
+
448
+ - Updated dependencies [957b739]
449
+ - Updated dependencies [9bd5ab5]
450
+ - @ai-sdk/provider-utils@3.0.0-canary.14
451
+ - @ai-sdk/provider@2.0.0-canary.13
452
+
453
+ ## 1.0.0-canary.13
454
+
455
+ ### Patch Changes
456
+
457
+ - d9209ca: fix (image-model): `specificationVersion: v1` -> `v2`
458
+ - Updated dependencies [7b3ae3f]
459
+ - Updated dependencies [0ff02bb]
460
+ - @ai-sdk/provider@2.0.0-canary.12
461
+ - @ai-sdk/provider-utils@3.0.0-canary.13
462
+
463
+ ## 1.0.0-canary.12
464
+
465
+ ### Patch Changes
466
+
467
+ - Updated dependencies [9bf7291]
468
+ - Updated dependencies [4617fab]
469
+ - Updated dependencies [e030615]
470
+ - @ai-sdk/provider@2.0.0-canary.11
471
+ - @ai-sdk/provider-utils@3.0.0-canary.12
472
+
473
+ ## 1.0.0-canary.11
474
+
475
+ ### Patch Changes
476
+
477
+ - 9301f86: refactor (image-model): rename `ImageModelV1` to `ImageModelV2`
478
+ - Updated dependencies [66962ed]
479
+ - Updated dependencies [9301f86]
480
+ - Updated dependencies [a3f768e]
481
+ - @ai-sdk/provider-utils@3.0.0-canary.11
482
+ - @ai-sdk/provider@2.0.0-canary.10
483
+
484
+ ## 1.0.0-canary.10
485
+
486
+ ### Patch Changes
487
+
488
+ - Updated dependencies [e86be6f]
489
+ - @ai-sdk/provider@2.0.0-canary.9
490
+ - @ai-sdk/provider-utils@3.0.0-canary.10
491
+
3
492
  ## 1.0.0-canary.9
4
493
 
5
494
  ### Patch Changes
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # AI SDK - Replicate Provider
2
2
 
3
- The **[Replicate provider](https://sdk.vercel.ai/providers/ai-sdk-providers/replicate)** for the [AI SDK](https://sdk.vercel.ai/docs) contains image model support for the Replicate API.
3
+ The **[Replicate provider](https://ai-sdk.dev/providers/ai-sdk-providers/replicate)** for the [AI SDK](https://ai-sdk.dev/docs) contains image model support for the Replicate API.
4
4
 
5
5
  ## Setup
6
6
 
@@ -43,4 +43,4 @@ const { image } = await generateImage({
43
43
 
44
44
  ## Documentation
45
45
 
46
- Please check out the **[Replicate provider](https://sdk.vercel.ai/providers/ai-sdk-providers/replicate)** for more information.
46
+ Please check out the **[Replicate provider](https://ai-sdk.dev/providers/ai-sdk-providers/replicate)** for more information.
package/dist/index.d.mts CHANGED
@@ -1,13 +1,7 @@
1
- import { ImageModelV1, ProviderV2 } from '@ai-sdk/provider';
1
+ import { ImageModelV2, ProviderV2 } from '@ai-sdk/provider';
2
2
  import { Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
3
3
 
4
4
  type ReplicateImageModelId = 'black-forest-labs/flux-1.1-pro' | 'black-forest-labs/flux-1.1-pro-ultra' | 'black-forest-labs/flux-dev' | 'black-forest-labs/flux-pro' | 'black-forest-labs/flux-schnell' | 'bytedance/sdxl-lightning-4step' | 'fofr/aura-flow' | 'fofr/latent-consistency-model' | 'fofr/realvisxl-v3-multi-controlnet-lora' | 'fofr/sdxl-emoji' | 'fofr/sdxl-multi-controlnet-lora' | 'ideogram-ai/ideogram-v2' | 'ideogram-ai/ideogram-v2-turbo' | 'lucataco/dreamshaper-xl-turbo' | 'lucataco/open-dalle-v1.1' | 'lucataco/realvisxl-v2.0' | 'lucataco/realvisxl2-lcm' | 'luma/photon' | 'luma/photon-flash' | 'nvidia/sana' | 'playgroundai/playground-v2.5-1024px-aesthetic' | 'recraft-ai/recraft-v3' | 'recraft-ai/recraft-v3-svg' | 'stability-ai/stable-diffusion-3.5-large' | 'stability-ai/stable-diffusion-3.5-large-turbo' | 'stability-ai/stable-diffusion-3.5-medium' | 'tstramer/material-diffusion' | (string & {});
5
- interface ReplicateImageSettings {
6
- /**
7
- Override the maximum number of images per call (default 1)
8
- */
9
- maxImagesPerCall?: number;
10
- }
11
5
 
12
6
  interface ReplicateImageModelConfig {
13
7
  provider: string;
@@ -18,15 +12,14 @@ interface ReplicateImageModelConfig {
18
12
  currentDate?: () => Date;
19
13
  };
20
14
  }
21
- declare class ReplicateImageModel implements ImageModelV1 {
15
+ declare class ReplicateImageModel implements ImageModelV2 {
22
16
  readonly modelId: ReplicateImageModelId;
23
- private readonly settings;
24
17
  private readonly config;
25
- readonly specificationVersion = "v1";
18
+ readonly specificationVersion = "v2";
19
+ readonly maxImagesPerCall = 1;
26
20
  get provider(): string;
27
- get maxImagesPerCall(): number;
28
- constructor(modelId: ReplicateImageModelId, settings: ReplicateImageSettings, config: ReplicateImageModelConfig);
29
- doGenerate({ prompt, n, aspectRatio, size, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV1['doGenerate']>>>;
21
+ constructor(modelId: ReplicateImageModelId, config: ReplicateImageModelConfig);
22
+ doGenerate({ prompt, n, aspectRatio, size, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV2['doGenerate']>>>;
30
23
  }
31
24
 
32
25
  interface ReplicateProviderSettings {
@@ -54,11 +47,11 @@ interface ReplicateProvider extends ProviderV2 {
54
47
  /**
55
48
  * Creates a Replicate image generation model.
56
49
  */
57
- image(modelId: ReplicateImageModelId, settings?: ReplicateImageSettings): ReplicateImageModel;
50
+ image(modelId: ReplicateImageModelId): ReplicateImageModel;
58
51
  /**
59
52
  * Creates a Replicate image generation model.
60
53
  */
61
- imageModel(modelId: ReplicateImageModelId, settings?: ReplicateImageSettings): ReplicateImageModel;
54
+ imageModel(modelId: ReplicateImageModelId): ReplicateImageModel;
62
55
  }
63
56
  /**
64
57
  * Create a Replicate provider instance.
package/dist/index.d.ts CHANGED
@@ -1,13 +1,7 @@
1
- import { ImageModelV1, ProviderV2 } from '@ai-sdk/provider';
1
+ import { ImageModelV2, ProviderV2 } from '@ai-sdk/provider';
2
2
  import { Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
3
3
 
4
4
  type ReplicateImageModelId = 'black-forest-labs/flux-1.1-pro' | 'black-forest-labs/flux-1.1-pro-ultra' | 'black-forest-labs/flux-dev' | 'black-forest-labs/flux-pro' | 'black-forest-labs/flux-schnell' | 'bytedance/sdxl-lightning-4step' | 'fofr/aura-flow' | 'fofr/latent-consistency-model' | 'fofr/realvisxl-v3-multi-controlnet-lora' | 'fofr/sdxl-emoji' | 'fofr/sdxl-multi-controlnet-lora' | 'ideogram-ai/ideogram-v2' | 'ideogram-ai/ideogram-v2-turbo' | 'lucataco/dreamshaper-xl-turbo' | 'lucataco/open-dalle-v1.1' | 'lucataco/realvisxl-v2.0' | 'lucataco/realvisxl2-lcm' | 'luma/photon' | 'luma/photon-flash' | 'nvidia/sana' | 'playgroundai/playground-v2.5-1024px-aesthetic' | 'recraft-ai/recraft-v3' | 'recraft-ai/recraft-v3-svg' | 'stability-ai/stable-diffusion-3.5-large' | 'stability-ai/stable-diffusion-3.5-large-turbo' | 'stability-ai/stable-diffusion-3.5-medium' | 'tstramer/material-diffusion' | (string & {});
5
- interface ReplicateImageSettings {
6
- /**
7
- Override the maximum number of images per call (default 1)
8
- */
9
- maxImagesPerCall?: number;
10
- }
11
5
 
12
6
  interface ReplicateImageModelConfig {
13
7
  provider: string;
@@ -18,15 +12,14 @@ interface ReplicateImageModelConfig {
18
12
  currentDate?: () => Date;
19
13
  };
20
14
  }
21
- declare class ReplicateImageModel implements ImageModelV1 {
15
+ declare class ReplicateImageModel implements ImageModelV2 {
22
16
  readonly modelId: ReplicateImageModelId;
23
- private readonly settings;
24
17
  private readonly config;
25
- readonly specificationVersion = "v1";
18
+ readonly specificationVersion = "v2";
19
+ readonly maxImagesPerCall = 1;
26
20
  get provider(): string;
27
- get maxImagesPerCall(): number;
28
- constructor(modelId: ReplicateImageModelId, settings: ReplicateImageSettings, config: ReplicateImageModelConfig);
29
- doGenerate({ prompt, n, aspectRatio, size, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV1['doGenerate']>>>;
21
+ constructor(modelId: ReplicateImageModelId, config: ReplicateImageModelConfig);
22
+ doGenerate({ prompt, n, aspectRatio, size, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV2['doGenerate']>>>;
30
23
  }
31
24
 
32
25
  interface ReplicateProviderSettings {
@@ -54,11 +47,11 @@ interface ReplicateProvider extends ProviderV2 {
54
47
  /**
55
48
  * Creates a Replicate image generation model.
56
49
  */
57
- image(modelId: ReplicateImageModelId, settings?: ReplicateImageSettings): ReplicateImageModel;
50
+ image(modelId: ReplicateImageModelId): ReplicateImageModel;
58
51
  /**
59
52
  * Creates a Replicate image generation model.
60
53
  */
61
- imageModel(modelId: ReplicateImageModelId, settings?: ReplicateImageSettings): ReplicateImageModel;
54
+ imageModel(modelId: ReplicateImageModelId): ReplicateImageModel;
62
55
  }
63
56
  /**
64
57
  * Create a Replicate provider instance.
package/dist/index.js CHANGED
@@ -31,14 +31,14 @@ var import_provider_utils3 = require("@ai-sdk/provider-utils");
31
31
 
32
32
  // src/replicate-image-model.ts
33
33
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
34
- var import_zod2 = require("zod");
34
+ var import_v42 = require("zod/v4");
35
35
 
36
36
  // src/replicate-error.ts
37
37
  var import_provider_utils = require("@ai-sdk/provider-utils");
38
- var import_zod = require("zod");
39
- var replicateErrorSchema = import_zod.z.object({
40
- detail: import_zod.z.string().optional(),
41
- error: import_zod.z.string().optional()
38
+ var import_v4 = require("zod/v4");
39
+ var replicateErrorSchema = import_v4.z.object({
40
+ detail: import_v4.z.string().optional(),
41
+ error: import_v4.z.string().optional()
42
42
  });
43
43
  var replicateFailedResponseHandler = (0, import_provider_utils.createJsonErrorResponseHandler)({
44
44
  errorSchema: replicateErrorSchema,
@@ -50,19 +50,15 @@ var replicateFailedResponseHandler = (0, import_provider_utils.createJsonErrorRe
50
50
 
51
51
  // src/replicate-image-model.ts
52
52
  var ReplicateImageModel = class {
53
- constructor(modelId, settings, config) {
53
+ constructor(modelId, config) {
54
54
  this.modelId = modelId;
55
- this.settings = settings;
56
55
  this.config = config;
57
- this.specificationVersion = "v1";
56
+ this.specificationVersion = "v2";
57
+ this.maxImagesPerCall = 1;
58
58
  }
59
59
  get provider() {
60
60
  return this.config.provider;
61
61
  }
62
- get maxImagesPerCall() {
63
- var _a;
64
- return (_a = this.settings.maxImagesPerCall) != null ? _a : 1;
65
- }
66
62
  async doGenerate({
67
63
  prompt,
68
64
  n,
@@ -131,15 +127,15 @@ var ReplicateImageModel = class {
131
127
  };
132
128
  }
133
129
  };
134
- var replicateImageResponseSchema = import_zod2.z.object({
135
- output: import_zod2.z.union([import_zod2.z.array(import_zod2.z.string()), import_zod2.z.string()])
130
+ var replicateImageResponseSchema = import_v42.z.object({
131
+ output: import_v42.z.union([import_v42.z.array(import_v42.z.string()), import_v42.z.string()])
136
132
  });
137
133
 
138
134
  // src/replicate-provider.ts
139
135
  function createReplicate(options = {}) {
140
- const createImageModel = (modelId, settings) => {
136
+ const createImageModel = (modelId) => {
141
137
  var _a;
142
- return new ReplicateImageModel(modelId, settings != null ? settings : {}, {
138
+ return new ReplicateImageModel(modelId, {
143
139
  provider: "replicate",
144
140
  baseURL: (_a = options.baseURL) != null ? _a : "https://api.replicate.com/v1",
145
141
  headers: {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/replicate-provider.ts","../src/replicate-image-model.ts","../src/replicate-error.ts"],"sourcesContent":["export { createReplicate, replicate } from './replicate-provider';\nexport type {\n ReplicateProvider,\n ReplicateProviderSettings,\n} from './replicate-provider';\n","import { NoSuchModelError, ProviderV2 } from '@ai-sdk/provider';\nimport type { FetchFunction } from '@ai-sdk/provider-utils';\nimport { loadApiKey } from '@ai-sdk/provider-utils';\nimport { ReplicateImageModel } from './replicate-image-model';\nimport {\n ReplicateImageModelId,\n ReplicateImageSettings,\n} from './replicate-image-settings';\n\nexport interface ReplicateProviderSettings {\n /**\nAPI token that is being send using the `Authorization` header.\nIt defaults to the `REPLICATE_API_TOKEN` environment variable.\n */\n apiToken?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers.\nThe default prefix is `https://api.replicate.com/v1`.\n */\n baseURL?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ReplicateProvider extends ProviderV2 {\n /**\n * Creates a Replicate image generation model.\n */\n image(\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ): ReplicateImageModel;\n\n /**\n * Creates a Replicate image generation model.\n */\n imageModel(\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ): ReplicateImageModel;\n}\n\n/**\n * Create a Replicate provider instance.\n */\nexport function createReplicate(\n options: ReplicateProviderSettings = {},\n): ReplicateProvider {\n const createImageModel = (\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ) =>\n new ReplicateImageModel(modelId, settings ?? {}, {\n provider: 'replicate',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiToken,\n environmentVariableName: 'REPLICATE_API_TOKEN',\n description: 'Replicate',\n })}`,\n ...options.headers,\n },\n fetch: options.fetch,\n });\n\n return {\n image: createImageModel,\n imageModel: createImageModel,\n languageModel: () => {\n throw new NoSuchModelError({\n modelId: 'languageModel',\n modelType: 'languageModel',\n });\n },\n textEmbeddingModel: () => {\n throw new NoSuchModelError({\n modelId: 'textEmbeddingModel',\n modelType: 'textEmbeddingModel',\n });\n },\n };\n}\n\n/**\n * Default Replicate provider instance.\n */\nexport const replicate = createReplicate();\n","import type { ImageModelV1, ImageModelV1CallWarning } from '@ai-sdk/provider';\nimport type { Resolvable } from '@ai-sdk/provider-utils';\nimport {\n FetchFunction,\n combineHeaders,\n createBinaryResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { replicateFailedResponseHandler } from './replicate-error';\nimport {\n ReplicateImageModelId,\n ReplicateImageSettings,\n} from './replicate-image-settings';\n\ninterface ReplicateImageModelConfig {\n provider: string;\n baseURL: string;\n headers?: Resolvable<Record<string, string | undefined>>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ReplicateImageModel implements ImageModelV1 {\n readonly specificationVersion = 'v1';\n\n get provider(): string {\n return this.config.provider;\n }\n\n get maxImagesPerCall(): number {\n return this.settings.maxImagesPerCall ?? 1;\n }\n\n constructor(\n readonly modelId: ReplicateImageModelId,\n private readonly settings: ReplicateImageSettings,\n private readonly config: ReplicateImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n aspectRatio,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV1['doGenerate']>>\n > {\n const warnings: Array<ImageModelV1CallWarning> = [];\n\n const [modelId, version] = this.modelId.split(':');\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const {\n value: { output },\n responseHeaders,\n } = await postJsonToApi({\n url:\n // different endpoints for versioned vs unversioned models:\n version != null\n ? `${this.config.baseURL}/predictions`\n : `${this.config.baseURL}/models/${modelId}/predictions`,\n\n headers: combineHeaders(await resolve(this.config.headers), headers, {\n prefer: 'wait',\n }),\n\n body: {\n input: {\n prompt,\n aspect_ratio: aspectRatio,\n size,\n seed,\n num_outputs: n,\n ...(providerOptions.replicate ?? {}),\n },\n // for versioned models, include the version in the body:\n ...(version != null ? { version } : {}),\n },\n\n successfulResponseHandler: createJsonResponseHandler(\n replicateImageResponseSchema,\n ),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n\n // download the images:\n const outputArray = Array.isArray(output) ? output : [output];\n const images = await Promise.all(\n outputArray.map(async url => {\n const { value: image } = await getFromApi({\n url,\n successfulResponseHandler: createBinaryResponseHandler(),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n return image;\n }),\n );\n\n return {\n images,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n\nconst replicateImageResponseSchema = z.object({\n output: z.union([z.array(z.string()), z.string()]),\n});\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nconst replicateErrorSchema = z.object({\n detail: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const replicateFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: replicateErrorSchema,\n errorToMessage: error =>\n error.detail ?? error.error ?? 'Unknown Replicate error',\n});\n"],"mappings":"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","names":["import_provider_utils","import_provider_utils","import_zod"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/replicate-provider.ts","../src/replicate-image-model.ts","../src/replicate-error.ts"],"sourcesContent":["export { createReplicate, replicate } from './replicate-provider';\nexport type {\n ReplicateProvider,\n ReplicateProviderSettings,\n} from './replicate-provider';\n","import { NoSuchModelError, ProviderV2 } from '@ai-sdk/provider';\nimport type { FetchFunction } from '@ai-sdk/provider-utils';\nimport { loadApiKey } from '@ai-sdk/provider-utils';\nimport { ReplicateImageModel } from './replicate-image-model';\nimport { ReplicateImageModelId } from './replicate-image-settings';\n\nexport interface ReplicateProviderSettings {\n /**\nAPI token that is being send using the `Authorization` header.\nIt defaults to the `REPLICATE_API_TOKEN` environment variable.\n */\n apiToken?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers.\nThe default prefix is `https://api.replicate.com/v1`.\n */\n baseURL?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ReplicateProvider extends ProviderV2 {\n /**\n * Creates a Replicate image generation model.\n */\n image(modelId: ReplicateImageModelId): ReplicateImageModel;\n\n /**\n * Creates a Replicate image generation model.\n */\n imageModel(modelId: ReplicateImageModelId): ReplicateImageModel;\n}\n\n/**\n * Create a Replicate provider instance.\n */\nexport function createReplicate(\n options: ReplicateProviderSettings = {},\n): ReplicateProvider {\n const createImageModel = (modelId: ReplicateImageModelId) =>\n new ReplicateImageModel(modelId, {\n provider: 'replicate',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiToken,\n environmentVariableName: 'REPLICATE_API_TOKEN',\n description: 'Replicate',\n })}`,\n ...options.headers,\n },\n fetch: options.fetch,\n });\n\n return {\n image: createImageModel,\n imageModel: createImageModel,\n languageModel: () => {\n throw new NoSuchModelError({\n modelId: 'languageModel',\n modelType: 'languageModel',\n });\n },\n textEmbeddingModel: () => {\n throw new NoSuchModelError({\n modelId: 'textEmbeddingModel',\n modelType: 'textEmbeddingModel',\n });\n },\n };\n}\n\n/**\n * Default Replicate provider instance.\n */\nexport const replicate = createReplicate();\n","import type { ImageModelV2, ImageModelV2CallWarning } from '@ai-sdk/provider';\nimport type { Resolvable } from '@ai-sdk/provider-utils';\nimport {\n FetchFunction,\n combineHeaders,\n createBinaryResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { replicateFailedResponseHandler } from './replicate-error';\nimport { ReplicateImageModelId } from './replicate-image-settings';\n\ninterface ReplicateImageModelConfig {\n provider: string;\n baseURL: string;\n headers?: Resolvable<Record<string, string | undefined>>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ReplicateImageModel implements ImageModelV2 {\n readonly specificationVersion = 'v2';\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ReplicateImageModelId,\n private readonly config: ReplicateImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n aspectRatio,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV2['doGenerate']>>\n > {\n const warnings: Array<ImageModelV2CallWarning> = [];\n\n const [modelId, version] = this.modelId.split(':');\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n const {\n value: { output },\n responseHeaders,\n } = await postJsonToApi({\n url:\n // different endpoints for versioned vs unversioned models:\n version != null\n ? `${this.config.baseURL}/predictions`\n : `${this.config.baseURL}/models/${modelId}/predictions`,\n\n headers: combineHeaders(await resolve(this.config.headers), headers, {\n prefer: 'wait',\n }),\n\n body: {\n input: {\n prompt,\n aspect_ratio: aspectRatio,\n size,\n seed,\n num_outputs: n,\n ...(providerOptions.replicate ?? {}),\n },\n // for versioned models, include the version in the body:\n ...(version != null ? { version } : {}),\n },\n\n successfulResponseHandler: createJsonResponseHandler(\n replicateImageResponseSchema,\n ),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n\n // download the images:\n const outputArray = Array.isArray(output) ? output : [output];\n const images = await Promise.all(\n outputArray.map(async url => {\n const { value: image } = await getFromApi({\n url,\n successfulResponseHandler: createBinaryResponseHandler(),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n return image;\n }),\n );\n\n return {\n images,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n\nconst replicateImageResponseSchema = z.object({\n output: z.union([z.array(z.string()), z.string()]),\n});\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst replicateErrorSchema = z.object({\n detail: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const replicateFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: replicateErrorSchema,\n errorToMessage: error =>\n error.detail ?? error.error ?? 'Unknown Replicate error',\n});\n"],"mappings":"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","names":["import_provider_utils","import_provider_utils","import_v4"]}
package/dist/index.mjs CHANGED
@@ -11,11 +11,11 @@ import {
11
11
  postJsonToApi,
12
12
  resolve
13
13
  } from "@ai-sdk/provider-utils";
14
- import { z as z2 } from "zod";
14
+ import { z as z2 } from "zod/v4";
15
15
 
16
16
  // src/replicate-error.ts
17
17
  import { createJsonErrorResponseHandler } from "@ai-sdk/provider-utils";
18
- import { z } from "zod";
18
+ import { z } from "zod/v4";
19
19
  var replicateErrorSchema = z.object({
20
20
  detail: z.string().optional(),
21
21
  error: z.string().optional()
@@ -30,19 +30,15 @@ var replicateFailedResponseHandler = createJsonErrorResponseHandler({
30
30
 
31
31
  // src/replicate-image-model.ts
32
32
  var ReplicateImageModel = class {
33
- constructor(modelId, settings, config) {
33
+ constructor(modelId, config) {
34
34
  this.modelId = modelId;
35
- this.settings = settings;
36
35
  this.config = config;
37
- this.specificationVersion = "v1";
36
+ this.specificationVersion = "v2";
37
+ this.maxImagesPerCall = 1;
38
38
  }
39
39
  get provider() {
40
40
  return this.config.provider;
41
41
  }
42
- get maxImagesPerCall() {
43
- var _a;
44
- return (_a = this.settings.maxImagesPerCall) != null ? _a : 1;
45
- }
46
42
  async doGenerate({
47
43
  prompt,
48
44
  n,
@@ -117,9 +113,9 @@ var replicateImageResponseSchema = z2.object({
117
113
 
118
114
  // src/replicate-provider.ts
119
115
  function createReplicate(options = {}) {
120
- const createImageModel = (modelId, settings) => {
116
+ const createImageModel = (modelId) => {
121
117
  var _a;
122
- return new ReplicateImageModel(modelId, settings != null ? settings : {}, {
118
+ return new ReplicateImageModel(modelId, {
123
119
  provider: "replicate",
124
120
  baseURL: (_a = options.baseURL) != null ? _a : "https://api.replicate.com/v1",
125
121
  headers: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/replicate-provider.ts","../src/replicate-image-model.ts","../src/replicate-error.ts"],"sourcesContent":["import { NoSuchModelError, ProviderV2 } from '@ai-sdk/provider';\nimport type { FetchFunction } from '@ai-sdk/provider-utils';\nimport { loadApiKey } from '@ai-sdk/provider-utils';\nimport { ReplicateImageModel } from './replicate-image-model';\nimport {\n ReplicateImageModelId,\n ReplicateImageSettings,\n} from './replicate-image-settings';\n\nexport interface ReplicateProviderSettings {\n /**\nAPI token that is being send using the `Authorization` header.\nIt defaults to the `REPLICATE_API_TOKEN` environment variable.\n */\n apiToken?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers.\nThe default prefix is `https://api.replicate.com/v1`.\n */\n baseURL?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ReplicateProvider extends ProviderV2 {\n /**\n * Creates a Replicate image generation model.\n */\n image(\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ): ReplicateImageModel;\n\n /**\n * Creates a Replicate image generation model.\n */\n imageModel(\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ): ReplicateImageModel;\n}\n\n/**\n * Create a Replicate provider instance.\n */\nexport function createReplicate(\n options: ReplicateProviderSettings = {},\n): ReplicateProvider {\n const createImageModel = (\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ) =>\n new ReplicateImageModel(modelId, settings ?? {}, {\n provider: 'replicate',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiToken,\n environmentVariableName: 'REPLICATE_API_TOKEN',\n description: 'Replicate',\n })}`,\n ...options.headers,\n },\n fetch: options.fetch,\n });\n\n return {\n image: createImageModel,\n imageModel: createImageModel,\n languageModel: () => {\n throw new NoSuchModelError({\n modelId: 'languageModel',\n modelType: 'languageModel',\n });\n },\n textEmbeddingModel: () => {\n throw new NoSuchModelError({\n modelId: 'textEmbeddingModel',\n modelType: 'textEmbeddingModel',\n });\n },\n };\n}\n\n/**\n * Default Replicate provider instance.\n */\nexport const replicate = createReplicate();\n","import type { ImageModelV1, ImageModelV1CallWarning } from '@ai-sdk/provider';\nimport type { Resolvable } from '@ai-sdk/provider-utils';\nimport {\n FetchFunction,\n combineHeaders,\n createBinaryResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { replicateFailedResponseHandler } from './replicate-error';\nimport {\n ReplicateImageModelId,\n ReplicateImageSettings,\n} from './replicate-image-settings';\n\ninterface ReplicateImageModelConfig {\n provider: string;\n baseURL: string;\n headers?: Resolvable<Record<string, string | undefined>>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ReplicateImageModel implements ImageModelV1 {\n readonly specificationVersion = 'v1';\n\n get provider(): string {\n return this.config.provider;\n }\n\n get maxImagesPerCall(): number {\n return this.settings.maxImagesPerCall ?? 1;\n }\n\n constructor(\n readonly modelId: ReplicateImageModelId,\n private readonly settings: ReplicateImageSettings,\n private readonly config: ReplicateImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n aspectRatio,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV1['doGenerate']>>\n > {\n const warnings: Array<ImageModelV1CallWarning> = [];\n\n const [modelId, version] = this.modelId.split(':');\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const {\n value: { output },\n responseHeaders,\n } = await postJsonToApi({\n url:\n // different endpoints for versioned vs unversioned models:\n version != null\n ? `${this.config.baseURL}/predictions`\n : `${this.config.baseURL}/models/${modelId}/predictions`,\n\n headers: combineHeaders(await resolve(this.config.headers), headers, {\n prefer: 'wait',\n }),\n\n body: {\n input: {\n prompt,\n aspect_ratio: aspectRatio,\n size,\n seed,\n num_outputs: n,\n ...(providerOptions.replicate ?? {}),\n },\n // for versioned models, include the version in the body:\n ...(version != null ? { version } : {}),\n },\n\n successfulResponseHandler: createJsonResponseHandler(\n replicateImageResponseSchema,\n ),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n\n // download the images:\n const outputArray = Array.isArray(output) ? output : [output];\n const images = await Promise.all(\n outputArray.map(async url => {\n const { value: image } = await getFromApi({\n url,\n successfulResponseHandler: createBinaryResponseHandler(),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n return image;\n }),\n );\n\n return {\n images,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n\nconst replicateImageResponseSchema = z.object({\n output: z.union([z.array(z.string()), z.string()]),\n});\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nconst replicateErrorSchema = z.object({\n detail: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const replicateFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: replicateErrorSchema,\n errorToMessage: error =>\n error.detail ?? error.error ?? 'Unknown Replicate error',\n});\n"],"mappings":"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","names":["z","z"]}
1
+ {"version":3,"sources":["../src/replicate-provider.ts","../src/replicate-image-model.ts","../src/replicate-error.ts"],"sourcesContent":["import { NoSuchModelError, ProviderV2 } from '@ai-sdk/provider';\nimport type { FetchFunction } from '@ai-sdk/provider-utils';\nimport { loadApiKey } from '@ai-sdk/provider-utils';\nimport { ReplicateImageModel } from './replicate-image-model';\nimport { ReplicateImageModelId } from './replicate-image-settings';\n\nexport interface ReplicateProviderSettings {\n /**\nAPI token that is being send using the `Authorization` header.\nIt defaults to the `REPLICATE_API_TOKEN` environment variable.\n */\n apiToken?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers.\nThe default prefix is `https://api.replicate.com/v1`.\n */\n baseURL?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ReplicateProvider extends ProviderV2 {\n /**\n * Creates a Replicate image generation model.\n */\n image(modelId: ReplicateImageModelId): ReplicateImageModel;\n\n /**\n * Creates a Replicate image generation model.\n */\n imageModel(modelId: ReplicateImageModelId): ReplicateImageModel;\n}\n\n/**\n * Create a Replicate provider instance.\n */\nexport function createReplicate(\n options: ReplicateProviderSettings = {},\n): ReplicateProvider {\n const createImageModel = (modelId: ReplicateImageModelId) =>\n new ReplicateImageModel(modelId, {\n provider: 'replicate',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiToken,\n environmentVariableName: 'REPLICATE_API_TOKEN',\n description: 'Replicate',\n })}`,\n ...options.headers,\n },\n fetch: options.fetch,\n });\n\n return {\n image: createImageModel,\n imageModel: createImageModel,\n languageModel: () => {\n throw new NoSuchModelError({\n modelId: 'languageModel',\n modelType: 'languageModel',\n });\n },\n textEmbeddingModel: () => {\n throw new NoSuchModelError({\n modelId: 'textEmbeddingModel',\n modelType: 'textEmbeddingModel',\n });\n },\n };\n}\n\n/**\n * Default Replicate provider instance.\n */\nexport const replicate = createReplicate();\n","import type { ImageModelV2, ImageModelV2CallWarning } from '@ai-sdk/provider';\nimport type { Resolvable } from '@ai-sdk/provider-utils';\nimport {\n FetchFunction,\n combineHeaders,\n createBinaryResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { replicateFailedResponseHandler } from './replicate-error';\nimport { ReplicateImageModelId } from './replicate-image-settings';\n\ninterface ReplicateImageModelConfig {\n provider: string;\n baseURL: string;\n headers?: Resolvable<Record<string, string | undefined>>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ReplicateImageModel implements ImageModelV2 {\n readonly specificationVersion = 'v2';\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ReplicateImageModelId,\n private readonly config: ReplicateImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n aspectRatio,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV2['doGenerate']>>\n > {\n const warnings: Array<ImageModelV2CallWarning> = [];\n\n const [modelId, version] = this.modelId.split(':');\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n const {\n value: { output },\n responseHeaders,\n } = await postJsonToApi({\n url:\n // different endpoints for versioned vs unversioned models:\n version != null\n ? `${this.config.baseURL}/predictions`\n : `${this.config.baseURL}/models/${modelId}/predictions`,\n\n headers: combineHeaders(await resolve(this.config.headers), headers, {\n prefer: 'wait',\n }),\n\n body: {\n input: {\n prompt,\n aspect_ratio: aspectRatio,\n size,\n seed,\n num_outputs: n,\n ...(providerOptions.replicate ?? {}),\n },\n // for versioned models, include the version in the body:\n ...(version != null ? { version } : {}),\n },\n\n successfulResponseHandler: createJsonResponseHandler(\n replicateImageResponseSchema,\n ),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n\n // download the images:\n const outputArray = Array.isArray(output) ? output : [output];\n const images = await Promise.all(\n outputArray.map(async url => {\n const { value: image } = await getFromApi({\n url,\n successfulResponseHandler: createBinaryResponseHandler(),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n return image;\n }),\n );\n\n return {\n images,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n\nconst replicateImageResponseSchema = z.object({\n output: z.union([z.array(z.string()), z.string()]),\n});\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst replicateErrorSchema = z.object({\n detail: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const replicateFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: replicateErrorSchema,\n errorToMessage: error =>\n error.detail ?? error.error ?? 'Unknown Replicate error',\n});\n"],"mappings":"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","names":["z","z"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/replicate",
3
- "version": "1.0.0-canary.9",
3
+ "version": "1.0.1",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",
@@ -19,18 +19,18 @@
19
19
  }
20
20
  },
21
21
  "dependencies": {
22
- "@ai-sdk/provider": "2.0.0-canary.8",
23
- "@ai-sdk/provider-utils": "3.0.0-canary.9"
22
+ "@ai-sdk/provider": "2.0.0",
23
+ "@ai-sdk/provider-utils": "3.0.1"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/node": "20.17.24",
27
27
  "tsup": "^8",
28
28
  "typescript": "5.8.3",
29
- "zod": "3.23.8",
29
+ "zod": "3.25.76",
30
30
  "@vercel/ai-tsconfig": "0.0.0"
31
31
  },
32
32
  "peerDependencies": {
33
- "zod": "^3.0.0"
33
+ "zod": "^3.25.76 || ^4"
34
34
  },
35
35
  "engines": {
36
36
  "node": ">=18"
@@ -38,7 +38,7 @@
38
38
  "publishConfig": {
39
39
  "access": "public"
40
40
  },
41
- "homepage": "https://sdk.vercel.ai/docs",
41
+ "homepage": "https://ai-sdk.dev/docs",
42
42
  "repository": {
43
43
  "type": "git",
44
44
  "url": "git+https://github.com/vercel/ai.git"