Releases: replicate/replicate-javascript
v1.0.1
Enable FileObject and blocking mode by default
Warning
Breaking changes
This 1.0.0 latest release of replicate
contains breaking changes. The replicate.run()
method will now return FileObjects
rather than URL strings by default for models that output files.
The FileObject
implements a ReadableStream
to make it easier to work with files and ensures that Replicate can deliver file data to the client in the most efficient manner possible. This means that implementations that make an additional fetch()
call to retrieve the output file are no longer needed.
For example:
const [output] = await replicate.run("black-forest-labs/flux-schnell", {
input: { prompt: "astronaut riding a rocket like a horse" }
});
// To access the file URL:
console.log(output.url()); //=> "http://example.com"
// To write the file to disk:
fs.writeFile("my-image.png", output);
// To stream the file back to a browser:
return new Response(output);
// To read the file in chunks:
for await (const chunk of output) {
console.log(chunk); // UInt8Array
}
Note
By default the new run API utilizes the new sync mode of
the prediction.create
API. This means that it will hold the connection open to the server until the prediction has
completed or the request exceeds a timeout, at which point it will fallback to polling.
A further optimization in this mode is that the server may opt-in to returning data-uris inlined into the prediction payload
rather than remote URLs. In this instance output.url()
will contain a data-uri.
If a URL is required we recommend passing the wait: { mode: "poll" }
argument to replicate.run()
.
In case of breakage, in most instances, updating existing applications to call output.url()
should fix issues.
To revert to previous behaviour you can opt out of FileOutput
by passing useFileOutput: false
to the Replicate
constructor.
const replicate = new Replicate({ useFileOutput: false });
Docs
v1.0.0-beta.1
The latest release of replicate
contains breaking changes. The replicate.run()
method will now return FileObjects
rather than URLs by default for models that output files.
The FileObject
implements a ReadableStream
to make it easier to work with files and ensures that Replicate can deliver file data to the client in the most efficient manner possible.
For example:
const [output] = await replicate.run("black-forest-labs/flux-schnell", {
input: { prompt: "astronaut riding a rocket like a horse" }
});
// To access the file URL:
console.log(output.file()); //=> "http://example.com"
// To write the file to disk:
fs.writeFile("my-image.png", output);
// To stream the file back to a browser:
return new Response(output);
// To read the file in chunks:
for await (const chunk of output) {
console.log(chunk); // UInt8Array
}
In case of breakage, in most instances, updating existing applications to call output.url()
should fix issues.
To revert to previous behaviour you can opt out of FileOutput
by passing useFileOutput: false
to the Replicate
constructor.
const replicate = new Replicate({ useFileOutput: false });
Change log
- BREAKING Enable FileObject and blocking mode by default f00f51d
v0.34.1
v0.34.0
What's Changed
- Deprecate
stream
parameter forpredictions.create
by @mattt in #291 - Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows by @dependabot in #302
- document typescript usage by @zeke in #310
- Extend support for
useFileOutput
tostream
by @mattt in #309 - Add
wait
parameter to prediction creation methods by @mattt in #308
Full Changelog: v0.33.0...v0.34.0
v0.33.0
v0.32.1
v0.32.0
v0.31.1
What's Changed
- Re-raise 4xx responses from server when uploading files by @aron in #284
- Document alternate interface to
validateWebhook()
by @aron in #285 - Document 100MiB file upload limit by @mattt in #287
- Add integration test for Deno by @mattt in #281
- Fix Deno integration test by @mattt in #282
- Document supported platforms by @mattt in #280
- Run integration tests with
replicate/canary
model by @mattt in #283
Full Changelog: v0.31.0...v0.31.1