n8n-nodes-aimlapi
Version:
Custom n8n node for integrating with the AI/ML API platform (AIMLAPI) to interact with LLMs and multimodal AI models such as chat completion endpoints.
50 lines • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeImageGeneration = executeImageGeneration;
const request_1 = require("../utils/request");
const object_1 = require("../utils/object");
async function executeImageGeneration({ context, itemIndex, baseURL, model, }) {
const prompt = context.getNodeParameter('imagePrompt', itemIndex);
const extract = context.getNodeParameter('imageExtract', itemIndex);
const options = context.getNodeParameter('imageOptions', itemIndex, {});
const requestOptions = (0, request_1.createRequestOptions)(baseURL, '/v1/images/generations');
const body = {
model,
prompt,
};
(0, object_1.setIfDefined)(body, 'n', options.imageCount);
(0, object_1.setIfDefined)(body, 'size', options.size);
(0, object_1.setIfDefined)(body, 'response_format', options.responseFormat);
(0, object_1.setIfDefined)(body, 'quality', options.quality);
(0, object_1.setIfDefined)(body, 'style', options.style);
(0, object_1.setIfDefined)(body, 'background', options.background);
(0, object_1.setIfDefined)(body, 'negative_prompt', options.negativePrompt);
requestOptions.body = body;
const response = (await context.helpers.httpRequestWithAuthentication.call(context, 'aimlApi', requestOptions));
const data = response.data ?? [];
switch (extract) {
case 'firstUrl': {
const url = data.find((entry) => typeof entry.url === 'string')?.url ?? '';
return { json: { url }, pairedItem: { item: itemIndex } };
}
case 'allUrls': {
const urls = data
.map((entry) => entry.url)
.filter((url) => Boolean(url));
return { json: { urls }, pairedItem: { item: itemIndex } };
}
case 'firstBase64': {
const base64 = data.find((entry) => typeof entry.b64_json === 'string')?.b64_json ?? '';
return { json: { base64 }, pairedItem: { item: itemIndex } };
}
case 'allBase64': {
const base64 = data
.map((entry) => entry.b64_json)
.filter((value) => Boolean(value));
return { json: { base64 }, pairedItem: { item: itemIndex } };
}
default:
return { json: { result: response }, pairedItem: { item: itemIndex } };
}
}
//# sourceMappingURL=imageGeneration.execute.js.map