Skip to content

Commit c425ec8

Browse files
committed
add venice image generator
1 parent f801493 commit c425ec8

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

packages/core/src/generation.ts

+36-1
Original file line numberDiff line numberDiff line change
@@ -954,7 +954,8 @@ export const generateImage = async (
954954
: (runtime.getSetting("HEURIST_API_KEY") ??
955955
runtime.getSetting("TOGETHER_API_KEY") ??
956956
runtime.getSetting("FAL_API_KEY") ??
957-
runtime.getSetting("OPENAI_API_KEY"));
957+
runtime.getSetting("OPENAI_API_KEY") ??
958+
runtime.getSetting("VENICE_API_KEY"));
958959

959960
try {
960961
if (runtime.imageModelProvider === ModelProviderName.HEURIST) {
@@ -1100,6 +1101,40 @@ export const generateImage = async (
11001101
});
11011102

11021103
const base64s = await Promise.all(base64Promises);
1104+
return { success: true, data: base64s };
1105+
} else if (runtime.imageModelProvider === ModelProviderName.VENICE) {
1106+
const response = await fetch(
1107+
"https://api.venice.ai/api/v1/image/generate",
1108+
{
1109+
method: "POST",
1110+
headers: {
1111+
Authorization: `Bearer ${apiKey}`,
1112+
"Content-Type": "application/json",
1113+
},
1114+
body: JSON.stringify({
1115+
model: data.modelId || "fluently-xl",
1116+
prompt: data.prompt,
1117+
negative_prompt: data.negativePrompt,
1118+
width: data.width || 1024,
1119+
height: data.height || 1024,
1120+
steps: data.numIterations || 20,
1121+
}),
1122+
}
1123+
);
1124+
1125+
const result = await response.json();
1126+
1127+
if (!result.images || !Array.isArray(result.images)) {
1128+
throw new Error("Invalid response format from Venice AI");
1129+
}
1130+
1131+
const base64s = result.images.map((base64String) => {
1132+
if (!base64String) {
1133+
throw new Error("Empty base64 string in Venice AI response");
1134+
}
1135+
return `data:image/png;base64,${base64String}`;
1136+
});
1137+
11031138
return { success: true, data: base64s };
11041139
} else {
11051140
let targetSize = `${data.width}x${data.height}`;

0 commit comments

Comments
 (0)