Skip to content

Commit 7657995

Browse files
committed
add support for image-to-image models on Replicate
1 parent b5deb41 commit 7657995

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

packages/inference/src/providers/replicate.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { InferenceOutputError } from "../lib/InferenceOutputError";
1818
import { isUrl } from "../lib/isUrl";
1919
import type { BodyParams, HeaderParams, UrlParams } from "../types";
2020
import { omit } from "../utils/omit";
21-
import { TaskProviderHelper, type TextToImageTaskHelper, type TextToVideoTaskHelper } from "./providerHelper";
21+
import { TaskProviderHelper, type TextToImageTaskHelper, type TextToVideoTaskHelper, type ImageToImageTaskHelper } from "./providerHelper";
2222
export interface ReplicateOutput {
2323
output?: string | string[];
2424
}
@@ -152,3 +152,20 @@ export class ReplicateTextToVideoTask extends ReplicateTask implements TextToVid
152152
throw new InferenceOutputError("Expected { output: string }");
153153
}
154154
}
155+
156+
export class ReplicateImageToImageTask extends ReplicateTask implements ImageToImageTaskHelper {
157+
override async getResponse(response: ReplicateOutput): Promise<Blob> {
158+
if (
159+
typeof response === "object" &&
160+
!!response &&
161+
"output" in response &&
162+
typeof response.output === "string" &&
163+
isUrl(response.output)
164+
) {
165+
const urlResponse = await fetch(response.output);
166+
return await urlResponse.blob();
167+
}
168+
169+
throw new InferenceOutputError("Expected { output: string }");
170+
}
171+
}

0 commit comments

Comments
 (0)