npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

nela-agi

v0.2.2

Published

The official TypeScript / JavaScript library for the Nela AGI API.

Downloads

118

Readme

Nela AGI Node API Library

Version

The official TypeScript / JavaScript library for the Nela AGI API.

Package Requirements

Node 16 or higher

Documentation

Documentation of Nela AGI Gen Beta API and their usage is available at https://hub.eliteappmakers.in/docs/nela-gen-beta

Prerequisites

  • Creating an EliteAppMakers User Profile: This step is essential for accessing and managing all EliteAppMakers products. Follow the instructions in the guide "How to Create a EliteAppMakers User Profile"to get started.

  • Creating a Nela Account: To use our Nela AGI APIs, you must have a Nela account. Learn how to create an account by following the steps outlined in the guide "How to Create an Nela Account” to get started.

  • Nela API Key: To use our APIs, you'll need an API key. If you haven't already created one, refer to our guide on "How to Create/Manage an API Key".

  • Nela Account Id: To use our APIs, you'll need an Nela Account Id. If you haven't already created one, refer to our guide on "How to Create an Nela Account".

  • Nela Compute Units (NCUs): To use our APIs, you'll need an Nela Account Id. If you haven't already created one, refer to our guide on "How to get / buy Nela Compute Units".

Installation

npm install nela-agi
# or
yarn add nela-agi

Usage

Here's a usage guide for the nela-agi npm package with CommonJS (require), ES modules (import), and TypeScript

Usage with CommonJS (require)

const { NelaAGI, NelaAGIError } = require("nela-agi");

Usage with ES modules (import)

import { NelaAGI, NelaAGIError } from "nela-agi";

Usage with TypeScript

import { NelaAGI, NelaAGIError } from "nela-agi";

NelaAGI

The NelaAGI class represents an instance of the NelaAGI API client, which provides access to various AI tasks including text-based, image-based, and audio-based tasks. It requires an account ID and authentication key to be instantiated. The class has properties for accessing different types of AI tasks, such as text, image, and audio. It also has a fetch method for making API requests.

Parameters

  • accountId: string: The account ID for the NelaAGI client. If not provided, it will attempt to read the "NELA_ACCOUNTID" environment variable.
  • authKey: string: The authentication key for the NelaAGI client. If not provided, it will attempt to read the "NELA_AUTHKEY" environment variable.

Properties

  • text: Text: Provides access to various text-based AI tasks, including chat completion.
  • image: Image: Provides access to various image-based AI tasks, including image generation, image-to-image translation, and image inpainting.
  • audio: Audio: Provides access to various audio-based AI tasks, including text to speech, speech to text, speech enhancement, and music separation.

Methods

  • fetch(url: string, method: string, requestData: object, isMultipartFormData: Boolean): Promise<AxiosResponse>: Fetches data from the API using the specified URL, HTTP method, request data, and whether the request is multipart form data. Returns a promise that resolves with the response on success or rejects with an error message on failure.

Example Usage

const nelaAGI = new NelaAGI("account_id", "auth_key");

// Access text-based AI tasks
nelaAGI.text.chatCompletion
  .fetch([
    {
      role: "system",
      content: "default",
    },
    {
      role: "user",
      content: "hi",
    },
    {
      role: "ai",
      content: "hello, how can i help you?",
    },
    {
      role: "user",
      content: "who is Elon Musk?",
    },
  ])
  .then((result) => {
    console.log("then");
    console.log(result);
  })
  .catch((error) => {
    console.log("catch");
    console.log(error);
  });

// Access image-based AI tasks
nelaAGI.image.imageGeneration
  .fetch("space monkey")
  .then((result) => {
    console.log("then");
    console.log(result);
  })
  .catch((error) => {
    console.log("catch");
    console.log(error);
  });

// Access audio-based AI tasks
nelaAGI.audio.textToSpeech
  .fetch("hello")
  .then((result) => {
    console.log("then");
    console.log(result);
  })
  .catch((error) => {
    console.log("catch");
    console.log(error);
  });

NelaAGIError

The NelaAGIError class is a custom error class that extends the built-in Error class. It is used to handle errors in the Nela AGI application.

Parameters

  • status_code: number: A number representing the HTTP status code associated with the error.
  • detail: string: A string containing a detailed message describing the error.

Example Usage

try {
  // Some code that may throw an error
} catch (error) {
  const nelaError = new NelaAGIError(500, "An error occurred");
  console.log(nelaError.status_code); // Output: 500
  console.log(nelaError.detail); // Output: 'An error occurred'
  console.log(nelaError instanceof Error); // Output: true
  console.log(nelaError instanceof NelaAGIError); // Output: true
}

Text based AI tasks

The text: Text is a property of the NelaAGI class which provides access to various text-based AI tasks, including chat completion.

Properties

  • chatCompletion: ChatCompletion: Provides methods for generating text completions within a conversational chat context.

Image based AI tasks

The image: Image is a property of the NelaAGI class which provides access to various image-based AI tasks, including image generation, image-to-image translation, and image inpainting.

Properties

  • imageGeneration: ImageGeneration: Provides methods for generating images.
  • imageToimage: ImageToImage: Provides methods for transforming images to other image forms.
  • imageInpainting: ImageInpainting: Provides methods for inpainting missing or corrupted parts of images.

Audio based AI tasks

The audio: Audio is a property of the NelaAGI class which provides access to various audio-based AI tasks, including text to speech, speech to text, speech enhancement, and music separation.

Properties

  • textToSpeech: TextToSpeech: Provides methods for text-to-speech conversion.
  • speechToText: SpeechToText Provides methods for speech-to-text transcription.
  • speechEnhancement: SpeechEnhancement: Provides methods for speech enhancement.
  • musicSeparation: MusicSeparation: Provides methods for music separation.

Text based AI tasks

ChatCompletion

The chatCompletion: ChatCompletion is a property of the text: Text class and is used to fetch chat completion from the Nela AGI API. It provides a method called fetch that takes in conversations and various parameters, and returns a promise that resolves to the chat completion response from the API. "Learn More"

Methods

  • fetch(conversations, maxNewTokens, doSample, temperature, topP, topK, repetitionPenalty): Fetch chat completion from the Nela AGI API based on the provided conversations and parameters. It validates the input parameters and returns a promise that resolves to the chat completion response from the API.

Input Parameters

| Parameter Name | Data Type | Default Value | Constraints | Description | | ------------------ | ------------------------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | conversations | List[{role: str, content: str}] | Nil | - Conversations list cannot be empty. - Each conversation has a role (either "system", "user", or "ai") and content. - conversations is formatted with a system message first, followed by alternating user and ai conversation. - System role needed to be in the conversation index '0'. - User role needed to be in an odd position of conversation index i.e 1,3,5,... - AI role needed to be in an even position of conversation index i.e 2,4,6,... - User role needed to be in end of conversation. - Content of conversation index '{index}' must be at least 2 characters long | Defines the structure and content of the conversation between the user and the AI. | | max_new_tokens | Int | 512 | Allowed values are 128, 256, 512, or 1024 | Specifies the maximum number of tokens the AI should generate for the chat response. | | do_sample | Boolean | True | Nil | Determines whether the AI should use sampling during text generation. | | temperature | Float | 0.5 | Between 0.05 and 1.0 | Controls the randomness of the generated text. Lower values make the output more deterministic, while higher values introduce more randomness. | | top_p | Float | 0.8 | Between 0 and 1.0 | Influences the nucleus sampling mechanism by specifying the cumulative probability for the top-p tokens to be considered during text generation. | | top_k | Int | 50 | Between 0 and 100 | Determines the number of top-k tokens to consider during text generation, allowing control over response diversity. | | repetition_penalty | Float | 1.0 | Between 1.0 and 2.0 | Discourages the repetition of identical or similar phrases in the generated text. Higher values increase the penalty for repetition. |

Outputs Parameters

The fetch method returns a promise that resolves to the chat completion response from the API. The response is an AxiosResponse object with the following structure

| Parameter Name | Data Type | Description | | ------------------------ | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------- | | data | object | Contains the output text, input and output token lengths, model time taken, throughput, and latency. | | data.output | object | Contains the generated content. It is a list containing a dictionary with "type" and "data" keys. | | data.output.type | string | Specifies the type of the generated content. This API will always generate "text" type output. | | data.output.data | string | Contains the actual generated content. | | data.input_token_length | number | Provides information about the token length of the input provided to the API. | | data.output_token_length | number | Indicates the token length of the generated output. | | data.model_time_taken | number | Indicates the time (in seconds) taken by the model to generate the output. | | data.throughput | number | Indicates the throughput (tokens generated per second) of the generated output. | | data.latency | number | Indicates the latency (response time in milliseconds) of the AI model. | | status | number | The HTTP status code of the response. | | statusText | string | The status message of the response. | | headers | RawAxiosResponseHeaders or AxiosResponseHeaders | The headers of the response. | | config | InternalAxiosRequestConfig | The Axios request configuration. | | request (optional) | object | The original request object. |

Example Usage

import { NelaAGI } from "nela-agi";

const nelaAGI = new NelaAGI("account_id", "auth_key");

// chat completion parameters
const conversations = [
  { role: "system", content: "Hello" },
  { role: "user", content: "How are you?" },
  { role: "ai", content: "I'm good, thanks!" },
  { role: "user", content: "What's the weather like today?" },
  { role: "ai", content: "It's sunny and warm." },
  { role: "user", content: "Great! Have a nice day!" },
];
const maxNewTokens = 512;
const doSample = true;
const temperature = 0.5;
const topP = 0.8;
const topK = 50;
const repetitionPenalty = 1;

// Fetch chat completion
nelaAGI.text.chatCompletion
  .fetch(
    conversations,
    maxNewTokens,
    doSample,
    temperature,
    topP,
    topK,
    repetitionPenalty
  )
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.error(error);
  });

Image based AI tasks

ImageGeneration

The imageGeneration: ImageGeneration: is a property of the image: Image class and is used for generating images using the NelaAGI API. It provides a method called fetch that takes in prompt and various parameters, and returns a promise that resolves to the image generation response from the API. "Learn More"

Methods

  • fetch(prompt, negativePrompt, width, height, cropsCoordsTopLeftX, cropsCoordsTopLeftY, seed, numInferenceSteps, guidanceScale, imageFormat): Fetches image generation from the NelaAGI API based on the provided prompts and parameters. It performs input validation and returns a promise that resolves to the generated image.

Input Parameters

| Parameter Name | Data Type | Default Value | Constraints | Description | | ----------------------- | ------------- | ------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | prompt | str | Nil | Prompt length should be between 3 and 275 characters. | Textual description guiding AI in image generation. | | negative_prompt | Optional[str] | Nil | Negative Prompt length should be between 3 and 275 characters. | Provides constraints to guide AI away from undesired themes. | | width | int | 1024 | Width should be between 512 and 1024 px. | Specifies the width of the generated image. Increasing may improve detail, decreasing may reduce image size. | | height | int | 1024 | Height should be between 512 and 1024 px. | Specifies the height of the generated image. Increasing may improve detail, decreasing may reduce image size. | | crops_coords_top_left_x | int | 0 | crops_coords_top_left_x value must be between 0 and 1024 px. | X-coordinate of top-left corner of crop area within the image. | | crops_coords_top_left_y | int | 0 | crops_coords_top_left_y value must be between 0 and 1024 px. | Y-coordinate of top-left corner of crop area within the image. | | seed | int | 0 | Seed should be between 0 and 9999999999 value. | Initializes random number generator for reproducibility. | | num_inference_steps | int | 25 | num_inference_steps should be between 1 and 75 value. | Number of iterations for image generation. Increasing may enhance detail but prolong processing time. | | guidance_scale | float | 5.0 | guidance_scale should be between 0 and 15 value. | Scaling factor for importance of prompt and negative prompt. | | image_format | str | JPEG | image_format should be in “PNG” and “JPEG” image formats. | Desired format of generated image. |

Outputs Parameters

The fetch method returns a promise that resolves to the image generation response from the API. The response is an AxiosResponse object with the following structure

| Parameter Name | Data Type | Description | | --------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | data | object | Contains the output image, model time taken. | | data.output | object | Contains the generated content. It is a list containing a dictionary with "type" and "data" keys. | | data.output.type | string | Specifies the type of the generated content. This API will always generate "image_base64" type output. | | data.output.data | string | Contains the actual generated image_base64 content. | | data.model_time_taken | number | Indicates the time (in seconds) taken by the model to generate the output. | | status | number | The HTTP status code of the response. | | statusText | string | The status message of the response. | | headers | RawAxiosResponseHeaders or AxiosResponseHeaders | The headers of the response. | | config | InternalAxiosRequestConfig | The Axios request configuration. | | request (optional) | object | The original request object. |

Example Usage

import { NelaAGI } from "nela-agi";

const nelaAGI = new NelaAGI("account_id", "auth_key");

// image generation parameters
const prompt = "A beautiful sunset over the ocean";
const negativePrompt = "No people in the image";
const width = 512;
const height = 512;
const cropsCoordsTopLeftX = 0;
const cropsCoordsTopLeftY = 0;
const seed = 12345;
const numInferenceSteps = 50;
const guidanceScale = 7.5;
const imageFormat = "JPEG";

// Fetch image generation
nelaAGI.image.imageGeneration
  .fetch(
    prompt,
    negativePrompt,
    width,
    height,
    cropsCoordsTopLeftX,
    cropsCoordsTopLeftY,
    seed,
    numInferenceSteps,
    guidanceScale,
    imageFormat
  )
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.error(error);
  });

ImageToImage

The imageToImage: ImageToImage: is a property of the image: Image class and is used for performing image-to-image transformations using the NelaAGI API. It provides a method called fetch that takes in image, prompt and various parameters, and returns a promise that resolves to the image-to-image generation response from the API. "Learn More"

Methods

  • fetch(image, prompt, negativePrompt, cropsCoordsTopLeftX, cropsCoordsTopLeftY, seed, numInferenceSteps, strength, guidanceScale, imageFormat): Fetches image-to-image from the NelaAGI API based on the provided image, prompts and parameters. It performs input validation and returns a promise that resolves to the generated image.

Input Parameters

| Parameter Name | Data Type | Default Value | Constraints | Description | | ----------------------- | ------------------------------------- | ------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | | image | string or File or Blob or ArrayBuffer | Nil | image_content_type should be in PNG and JPEG image formats | Specifies the input image file for transformation. Must be in PNG or JPEG format. | | prompt | str | Nil | Prompt length should be between 3 and 275 characters | Provides instructions or guidance to the AI model for image transformation. | | negative_prompt | Optional[str] | Nil | Negative Prompt length should be between 3 and 275 characters | Provides constraints or guidance away from undesired outcomes for the AI model. | | crops_coords_top_left_x | int | 0 | crops_coords_top_left_x value must be between 0 and 1024 px | Sets the x-coordinate of the top-left corner of the crop area within the generated image. | | crops_coords_top_left_y | int | 0 | crops_coords_top_left_y value must be between 0 and 1024 px | Sets the y-coordinate of the top-left corner of the crop area within the generated image. | | seed | int | 0 | Seed should be between 0 and 9999999999 value | Initializes the random number generator for reproducibility of results. | | num_inference_steps | int | 25 | num_inference_steps should be between 1 and 75 value | Specifies the number of iterations the AI model should perform during transformation. Increasing enhances detail but may prolong processing time. | | strength | float | 0.5 | strength should be between 0.0 and 1.0 value | Controls the intensity of transformation applied to the input image. Higher values result in more significant changes. | | guidance_scale | float | 5.0 | guidance_scale should be between 0 and 15 value | Scales the importance of prompt and negative prompt in the transformation process. Higher values emphasize guidance more strongly. | | image_format | str | JPEG | image_format should be in “PNG” and “JPEG” image formats | Specifies the desired format of the generated image. Must be PNG or JPEG. |

Outputs Parameters

The fetch method returns a promise that resolves to the image-to-image response from the API. The response is an AxiosResponse object with the following structure

| Parameter Name | Data Type | Description | | --------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | data | object | Contains the output image and model time taken. | | data.output | object | Contains the generated content. It is a list containing a dictionary with "type" and "data" keys. | | data.output.type | string | Specifies the type of the generated content. This API will always generate "image_base64" type output. | | data.output.data | string | Contains the actual generated image_base64 content. | | data.model_time_taken | number | Indicates the time (in seconds) taken by the model to generate the output. | | status | number | The HTTP status code of the response. | | statusText | string | The status message of the response. | | headers | RawAxiosResponseHeaders or AxiosResponseHeaders | The headers of the response. | | config | InternalAxiosRequestConfig | The Axios request configuration. | | request (optional) | object | The original request object. |

Example Usage

import { NelaAGI } from "nela-agi";

const nelaAGI = new NelaAGI("account_id", "auth_key");

//  image-to-image parameters
const image = new File(["image data"], "image.jpg"); // Replace this line with actual image data
const prompt = "A beautiful sunset over the ocean";
const negativePrompt = "No people in the image";
const cropsCoordsTopLeftX = 0;
const cropsCoordsTopLeftY = 0;
const seed = 12345;
const numInferenceSteps = 50;
const strength = 0.9;
const guidanceScale = 7.5;
const imageFormat = "JPEG";

// Fetch  image-to-image
nelaAGI.image.imageToImage
  .fetch(
    image,
    prompt,
    negativePrompt,
    cropsCoordsTopLeftX,
    cropsCoordsTopLeftY,
    seed,
    numInferenceSteps,
    strength,
    guidanceScale,
    imageFormat
  )
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.error(error);
  });

ImageInpainting

The imageInpainting: ImageInpainting: is a property of the image: Image class and is used for performing image inpainting using the NelaAGI API. It provides a method called fetch that takes in image, maskImage, prompt and various parameters, and returns a promise that resolves to the image-inpainting generation response from the API. "Learn More"

Methods

  • fetch(image, maskImage, prompt, negativePrompt, width, height, cropsCoordsTopLeftX, cropsCoordsTopLeftY, seed, numInferenceSteps, strength, guidanceScale, imageFormat): Fetches image-inpainting from the NelaAGI API based on the provided image, maskImage, prompts and parameters. It performs input validation and returns a promise that resolves to the generated image.

Input Parameters

| Parameter Name | Data Type | Default Value | Constraints | Description | | ----------------------- | ------------------------------------- | ------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | image | string or File or Blob or ArrayBuffer | Nil | image_content_type should be in PNG and JPEG image formats | Specifies the input image file for the inpainting process. | | mask_image | string or File or Blob or ArrayBuffer | Nil | mask_image_content_type should be in PNG and JPEG image formats | Specifies the mask image indicating areas to be inpainted. Typically, this mask image is a binary image where the areas to be in-painted are marked as white (255) and the rest as black (0). The algorithm utilizes this mask to guide the inpainting process, ensuring that only the specified areas are affected by the restoration while preserving the rest of the image. | | prompt | str | Nil | Prompt length should be between 3 and 275 characters. | Provides textual guidance or instructions for the AI model to transform the image. | | negative_prompt | Optional[str] | Nil | Negative Prompt length should be between 3 and 275 characters. | Optional constraint to guide the AI away from undesired outcomes. | | width | int | 1024 | Width should be between 512 and 1024 px. | Specifies the desired width of the output image. | | height | int | 1024 | Height should be between 512 and 1024 px. | Specifies the desired height of the output image. | | crops_coords_top_left_x | int | 0 | crops_coords_top_left_x value must be between 0 and 1024 px. | Specifies the x-coordinate of the top-left corner of the crop area within the generated image. | | crops_coords_top_left_y | int | 0 | crops_coords_top_left_y value must be between 0 and 1024 px. | Specifies the y-coordinate of the top-left corner of the crop area within the generated image. | | seed | int | 0 | Seed should be between 0 and 9999999999 value. | Initializes the random number generator for result reproducibility. | | num_inference_steps | int | 25 | num_inference_steps should be between 1 and 75 value. | Controls the number of iterations during the image inpainting process. | | strength | float | 0.5 | strength should be between 0.0 and 1.0 value. | Influences the intensity of transformation applied to the image. | | guidance_scale | float | 5.0 | guidance_scale should be between 0 and 15 value. | Scales the influence of prompt and negative prompt on the inpainting process. | | image_format | str | JPEG | image_format should be in “PNG” and “JPEG” image formats | Specifies the format of the generated image. |

Outputs Parameters

| Parameter Name | Data Type | Description | | --------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | data | object | Contains the output image, model time taken. | | data.output | object | Contains the generated content. It is a list containing a dictionary with "type" and "data" keys. | | data.output.type | string | Specifies the type of the generated content. This API will always generate "image_base64" type output. | | data.output.data | string | Contains the actual generated image_base64 content. | | data.model_time_taken | number | Indicates the time (in seconds) taken by the model to generate the output. | | status | number | The HTTP status code of the response. | | statusText | string | The status message of the response. | | headers | RawAxiosResponseHeaders or AxiosResponseHeaders | The headers of the response. | | config | InternalAxiosRequestConfig | The Axios request configuration. | | request (optional) | object | The original request object. |

Example Usage

import { NelaAGI } from "nela-agi";

const nelaAGI = new NelaAGI("account_id", "auth_key");

//  image-inpainting parameters
const image = new File(["image data"], "image.jpg"); // Replace this line with actual image data
const maskImage = new File(["mask image data"], "mask_image.jpg"); // Replace this line with actual mask image data
const prompt = "A beautiful sunset over the ocean";
const negativePrompt = "No people in the image";
const width = 512;
const height = 512;
const cropsCoordsTopLeftX = 0;
const cropsCoordsTopLeftY = 0;
const seed = 12345;
const numInferenceSteps = 50;
const strength = 0.9;
const guidanceScale = 7.5;
const imageFormat = "JPEG";

// Fetch  image-inpainting
nelaAGI.image.imageInpainting
  .fetch(
    image,
    maskImage,
    prompt,
    negativePrompt,
    width,
    height,
    cropsCoordsTopLeftX,
    cropsCoordsTopLeftY,
    seed,
    numInferenceSteps,
    strength,
    guidanceScale,
    imageFormat
  )
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.error(error);
  });

Impact of Increasing/Decreasing Parameters:

  • Prompt & Negative Prompt: Altering the prompts can change the style, content, or theme of the generated image. Increasing complexity might result in more intricate images, while simplifying prompts might lead to more straightforward outputs.
  • Width & Height: Adjusting these parameters changes the aspect ratio and size of the output image. Increasing them can enhance details but might also increase processing time and resource consumption.
  • Num Inference Steps: More steps generally lead to finer details and better generation, but may also increase processing time.
  • Strength: Increasing strength intensifies the effect of the prompt, potentially making the transformation more pronounced. Decreasing it might yield subtler changes.
  • Guidance Scale: Higher values prioritize the guidance provided by the prompts, while lower values give more freedom to the AI, possibly resulting in more creative but less guided outputs.

Audio based AI tasks

TextToSpeech

The textToSpeech: TextToSpeech is a property of the audio: Audio class and is used to fetch text-to-speech audio from the Nela AGI API. It provides a method called fetch that takes in text, speaker ID, and speaker gender as parameters, and returns a promise that resolves to the generated speech audio response from the API. "Learn More"

Methods

  • fetch(text, speakerId, speakerGender): Fetch text-to-speech from the Nela AGI API based on the provided text and parameters. It validates the input parameters and returns a promise that resolves to the text-to-speech response from the API.

Input Parameters

| Parameter Name | Data Type | Default Value | Constraints | Description | | -------------- | ------------- | ------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | | text | str | Nil | Text length should be between 2 and 5000 characters. | Represents the text to be converted into speech. | | speaker_id | Optional[int] | None | speaker_id should be between 1 and 110. | Specifying the speaker voice id for generated speech. | | speaker_gender | Optional[str] | None | speaker_gender should be in “MALE” and “FEMALE” image formats | Determines the gender identity of the voice used in the audio output. |

Outputs Parameters

The fetch method returns a promise that resolves to the text-to-speech response from the API. The response is an AxiosResponse object with the following structure

| Parameter Name | Data Type | Description | | --------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | data | object | Contains the output audio, model time taken. | | data.output | object | Contains the generated content. It is a list containing a dictionary with "type" and "data" keys. | | data.output.type | string | Specifies the type of the generated content. This API will always generate "audio_base64" type output. | | data.output.data | string | Contains the actual generated audio_base64 content. | | data.model_time_taken | number | Indicates the time (in seconds) taken by the model to generate the output. | | status | number | The HTTP status code of the response. | | statusText | string | The status message of the response. | | headers | RawAxiosResponseHeaders or AxiosResponseHeaders | The headers of the response. | | config | InternalAxiosRequestConfig | The Axios request configuration. | | request (optional) | object | The original request object. |

Example Usage

import { NelaAGI } from "nela-agi";

const nelaAGI = new NelaAGI("account_id", "auth_key");

//  text-to-speech parameters
const text = "Hello, how are you?";
const speakerId = 1;
const speakerGender = "MALE";

// Fetch  text-to-speech
nelaAGI.audio.textToSpeech
  .fetch(text, speakerId, speakerGender)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.error(error);
  });

SpeechToText

The speechToText: SpeechToText is a property of the audio: Audio class and is used to fetch speech-to-text audio from the Nela AGI API. It provides a method called fetch that takes in audio as parameters, and returns a promise that resolves to the transcribed text response from the API. "Learn More"

Methods

  • fetch(audio): Fetch speech-to-text from the Nela AGI API based on the provided audio and parameters. It validates the input parameters and returns a promise that resolves to the speech-to-text response from the API.

Input Parameters

| Parameter Name | Data Type | Default Value | Constraints | Description | | -------------- | ------------------------------------- | ------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | | audio | string or File or Blob or ArrayBuffer | Nil | audio_content_type should be in MP3, MPEG and WAV audio formats. | Specifies the audio file containing the spoken language to transcribe. Ensure the audio file is in MP3, MPEG, or WAV format. |

Outputs Parameters

The fetch method returns a promise that resolves to the speech-to-text response from the API. The response is an AxiosResponse object with the following structure

| Parameter Name | Data Type | Description | | --------------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------- | | data | object | Contains the output text, model time taken. | | data.output | object | Contains the generated content. It is a list containing a dictionary with "type" and "data" keys. | | data.output.type | string | Specifies the type of the generated content. This API will always generate "text" type output. | | data.output.data | string | Contains the actual generated text content. | | data.model_time_taken | number | Indicates the time (in seconds) taken by the model to generate the output. | | status | number | The HTTP status code of the response. | | statusText | string | The status message of the response. | | headers | RawAxiosResponseHeaders or AxiosResponseHeaders | The headers of the response. | | config | InternalAxiosRequestConfig | The Axios request configuration. | | request (optional) | object | The original request object. |

Example Usage

import { NelaAGI } from "nela-agi";

const nelaAGI = new NelaAGI("account_id", "auth_key");

// speech-to-text parameters
const audio = new File(["audio data"], "audio.mp3", { type: "audio/mp3" }); // Replace this line with actual audio data

// Fetch  speech-to-text
nelaAGI.audio.speechToText
  .fetch(audio)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.error(error);
  });

SpeechEnhancement

The speechEnhancement: SpeechEnhancement is a property of the audio: Audio class and is used to fetch speech-enhancement audio from the Nela AGI API. It provides a method called fetch that takes in audio as parameters, and returns a promise that resolves to the enhancement speech audio from the API. "Learn More"

Methods

  • fetch(audio): Fetch speech-enhancement from the Nela AGI API based on the provided audio and parameters. It validates the input parameters and returns a promise that resolves to the speech-enhancement response from the API.

Input Parameters

| Parameter Name | Data Type | Default Value | Constraints | Description | | -------------- | ------------------------------------- | ------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------------- | | audio | string or File or Blob or ArrayBuffer | Nil | audio_content_type should be in MP3, MPEG and WAV audio formats. | Specifies the audio file to enhance. Ensure the file format is MP3, MPEG, or WAV. |

Outputs Parameters

The fetch method returns a promise that resolves to the speech-enhancement response from the API. The response is an AxiosResponse object with the following structure

| Parameter Name | Data Type | Description | | --------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | data | object | Contains the output audio, model time taken. | | data.output | object | Contains the generated content. It is a list containing a dictionary with "type" and "data" keys. | | data.output.type | string | Specifies the type of the generated content. This API will always generate "audio_base64" type output. | | data.output.data | string | Contains the actual generated audio_base64 content. | | data.model_time_taken | number | Indicates the time (in seconds) taken by the model to generate the output. | | status | number | The HTTP status code of the response. | | statusText | string | The status message of the response. | | headers | RawAxiosResponseHeaders or AxiosResponseHeaders | The headers of the response. | | config | InternalAxiosRequestConfig | The Axios request configuration. | | request (optional) | object | The original request object. |

Example Usage

import { NelaAGI } from "nela-agi";

const nelaAGI = new NelaAGI("account_id", "auth_key");

// speech-enhancement parameters
const audio = new File(["audio data"], "audio.mp3", { type: "audio/mp3" }); // Replace this line with actual audio data

// Fetch speech-enhancement
nelaAGI.audio.speechEnhancement
  .fetch(audio)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.error(error);
  });

MusicSeparation

The musicSeparation: MusicSeparation is a property of the audio: Audio class and is used to fetch music-separation audio from the Nela AGI API. It provides a method called fetch that takes in audio and split as parameters, and returns a promise that resolves to the music separated audio from the API. "Learn More"

Methods

  • fetch(audio): Fetch music-separation from the Nela AGI API based on the provided audio and split parameters. It validates the input parameters and returns a promise that resolves to the music-separation response from the API.

Input Parameters

| Parameter Name | Data Type | Default Value | Constraints | Description | | -------------- | ------------------------------------- | ------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | audio | string or File or Blob or ArrayBuffer | Nil | audio_content_type should be in MP3, MPEG and WAV audio formats. | Specifies the audio file to segment or dissect. Use this parameter to provide the audio file you want to separate into music sections or isolate vocals for karaoke purposes. | | split | str | KARAOKE | split should be in ALL or KARAOKE segmentation format. | Determines the type of separation to perform on the audio file. Use "ALL" to segment the entire file into distinct music sections (e.g., vocals, drums, bass). Use "KARAOKE" to isolate vocals from background music or instrumental tracks. |

Outputs Parameters

The fetch method returns a promise that resolves to the speech-enhancement response from the API. The response is an AxiosResponse object with the following structure

| Parameter Name | Data Type | Description | | --------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | data | object | Contains the output audio, model time taken. | | data.output | object | Contains the generated content. It is a list containing a dictionary with "type" and "data" keys. | | data.output.type | string | Specifies the type of the generated content. This API will always generate both “text” and "audio_base64" type output. | | data.output.data | string | Contains the actual generated audio_base64 content. | | data.model_time_taken | number | Indicates the time (in seconds) taken by the model to generate the output. | | status | number | The HTTP status code of the response. | | statusText | string | The status message of the response. | | headers | RawAxiosResponseHeaders or AxiosResponseHeaders | The headers of the response. | | config | InternalAxiosRequestConfig