ai-alt-text
Version:
Generate alt text for images using Replicate and BLIP
36 lines (35 loc) • 1.32 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = generateAltText;
const replicate_1 = __importDefault(require("replicate"));
const errors_1 = require("./errors");
const utils_1 = require("./utils");
async function generateAltText(imageUrl, options = {}) {
if (!(0, utils_1.isValidUrl)(imageUrl)) {
throw new errors_1.InvalidImageUrlError(imageUrl);
}
const { prompt = "Describe this image concisely for use as alt text", apiToken = process.env.REPLICATE_API_TOKEN, model = "salesforce/blip:2e1dddc8621f72155f24cf2e0adbde548458d3cab9f00c0139eea840d0ac4746", } = options;
if (!apiToken) {
throw new errors_1.MissingApiTokenError();
}
try {
const replicate = new replicate_1.default({
auth: apiToken,
});
const output = await replicate.run(model, {
input: {
image: imageUrl,
question: prompt,
},
});
let altText = (0, utils_1.cleanAltText)(output);
return altText;
}
catch (error) {
console.error("Error generating alt text: ", error);
return "An image";
}
}