ai-utils.js
Version:
Build AI applications, chatbots, and agents with JavaScript and TypeScript.
64 lines (63 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateImage = void 0;
const executeCall_js_1 = require("../executeCall.cjs");
/**
* Generates a base64-encoded image using a prompt.
* The prompt format depends on the model.
* For example, OpenAI image models expect a string prompt,
* and Stability AI models expect an array of text prompts with optional weights.
*
* @example
* const { image } = await generateImage(
* new StabilityImageGenerationModel(...),
* [
* { text: "the wicked witch of the west" },
* { text: "style of early 19th century painting", weight: 0.5 },
* ]
* );
*/
async function generateImage(model, prompt, options) {
const result = await (0, executeCall_js_1.executeCall)({
model,
options,
generateResponse: (options) => model.generateImageResponse(prompt, options),
extractOutputValue: model.extractBase64Image,
getStartEvent: (metadata, settings) => ({
type: "image-generation-started",
metadata,
settings,
prompt,
}),
getAbortEvent: (metadata, settings) => ({
type: "image-generation-finished",
status: "abort",
metadata,
settings,
prompt,
}),
getFailureEvent: (metadata, settings, error) => ({
type: "image-generation-finished",
status: "failure",
metadata,
settings,
prompt,
error,
}),
getSuccessEvent: (metadata, settings, response, output) => ({
type: "image-generation-finished",
status: "success",
metadata,
settings,
prompt,
response,
generatedImage: output,
}),
});
return {
image: result.output,
response: result.response,
metadata: result.metadata,
};
}
exports.generateImage = generateImage;