venice-ai-sdk-apl
Version:
A comprehensive SDK for the Venice AI API with CLI support, programmatic CLI usage, CLI-style interface, and interactive demo
91 lines • 2.74 kB
JavaScript
;
/**
* Image Upscale Resource
*
* This module provides methods for interacting with the Image Upscale API.
* It allows you to upscale images to higher resolutions.
*
* @example
* ```typescript
* import { VeniceAI } from 'venice-ai-sdk-apl';
* import fs from 'fs';
*
* const venice = new VeniceAI({
* apiKey: 'your-api-key',
* });
*
* // Upscale an image
* const imageBuffer = fs.readFileSync('image.jpg');
* const base64Image = imageBuffer.toString('base64');
*
* const response = await venice.image.upscale({
* model: 'upscale-model',
* image: base64Image,
* scale: 2
* });
*
* console.log(response.url);
* ```
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImageUpscaleResource = void 0;
const base_resource_1 = require("../base-resource");
const validation_error_1 = require("../../errors/validation-error");
/**
* Image Upscale Resource
*/
class ImageUpscaleResource extends base_resource_1.BaseResource {
/**
* Upscales an image to a higher resolution
*
* @param params - Parameters for upscaling an image
* @returns Promise that resolves with the upscaled image
*
* @example
* ```typescript
* const response = await venice.image.upscale({
* model: 'upscale-model',
* image: base64EncodedImage,
* scale: 2
* });
* ```
*/
async upscale(params) {
// Validate required parameters
if (!params.model) {
throw new validation_error_1.ValidationError({
message: 'Model is required',
field: 'model',
});
}
if (!params.image) {
throw new validation_error_1.ValidationError({
message: 'Image is required',
field: 'image',
});
}
// Validate scale if provided
if (params.scale && (params.scale < 1 || params.scale > 4)) {
throw new validation_error_1.ValidationError({
message: 'Scale must be between 1 and 4',
field: 'scale',
expected: 'Between 1 and 4',
actual: params.scale.toString(),
});
}
// Determine if we should return binary data
const returnBinary = params.return_binary === true;
if (returnBinary) {
// Request binary data directly
return this.post('/image/upscale', params, {
responseType: 'arraybuffer'
});
}
else {
// Standard JSON response
return this.post('/image/upscale', params);
}
}
}
exports.ImageUpscaleResource = ImageUpscaleResource;
//# sourceMappingURL=upscale.js.map