JSPM

  • Created
  • Published
  • Downloads 610
  • Score
    100M100P100Q81304F
  • License ISC

Package Exports

  • apexify.js
  • apexify.js/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (apexify.js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Jedi-Studio Introduce

Greetings everyone! 🌟 This marks the release of a beta version for our package. If you encounter any issues or need assistance, feel free to reach out. Direct message me on Discord at jedi.79 (ID: 1130583393176920095).

🚀 Getting Started

  • If you're new and facing issues or unable to register and execute commands (slash / prefix).
  • Use the code snippet below (Note: This may slightly increase bot latency by approximately 50ms).
const { Client, GatewayIntentBits, Partials } = require("discord.js");
const { starter } = require('apexify.js'); 
const path = require('path');

const client = new Client({
  intents: Object.keys(GatewayIntentBits).map((a)=>{
    return GatewayIntentBits[a]
  }),
 partials: Object.values(Partials),
});

const token = process.env.token;
const eventsPath = path.join(__dirname, 'src', 'events');
const prefixCommandPath = path.join(__dirname, 'src', 'prefix');

const options = {
  status: 'online', // idle, online, dnd
  name: 'Playing with commands',
  type: 0, // type is for activity (Playing, Watching, Custom , Listening, etc.)
  botName: 'tools', // bot name
  botAvatar: './pfp.jpeg', // set your bot avatar as a URL or local file (GIF also works) 
  eventsPath,

  // Note: Don't provide guildId or put it in the options if you set global as true
  slashCommandPath: {
    baseDir: __dirname, // need to be provided to read your commands path
    path: './src/slash',
    global: true, // true for making slash commands global
    guildId: '', // guild if global is false
    logsId: '', // channel ID for commands log
  },
  prefixCommandPath: {
    path: prefixCommandPath, // your prefix commands path
    logsId: '', // channel ID for commands log
    prefix: '!', // prefix of the bot
  },
  lavalink: {
    // Lavalink configuration for music
    nodes: [],
    search: 'ytmsearch', // (ytmsearch) => YouTube musics || (spsearch) => Spotify musics
    version: 'v4', // your Lavalink version
  },
  mongo: {
    mongoURI: '', // Your MongoDB URI for connecting to MongoDB
    dataName: '', // Your Database name to create in MongoDB
  },
  webView: {///creating  aport using express
    port: 3000,
    hostname: 'jedi-studio.com'
    middleware:,
    routs:
  }
};

starter(client, token, options);

🚀 Usage Guidelines 🤖

Ai Chat & Imagine

For a standard reply without AI images or voice messages, set both draw and voice to false. Activate voice replies and AI images by setting them to true. Trigger the bot to draw AI images with specific words or phrases using drawTrigger.

// Use this for js files (cjs modules)
const { apexAI } = require('apexify.js');

// For es module (.mjs/(.js if "type": "module" in package.json) or ts
import { apexAI } from 'apexify.js';

const allowedChannelId = 'Channel_ID';
client.on('messageCreate', async (message) => {
  if (message.author.bot || message.channel.id !== allowedChannelId) return;

  await apexAI(message, {
    voice: false,///for voice replies
    voiceModel: "apexAI", //apexAI, google, zenithAi
    voice_code: "en-US-3", ///only if voiceModel zenithAi
    apiKey: "", ///only if voiceModel zenithAi/apexAI (join the support server for more info)
    type: "b", ///only if voiceModel apexAI (a, b, c, d, e, f, g, h) those letters you can use
    draw: true, // Enable AI images
    drawTrigger: ['create', 'draw', 'imagine', 'ارسم'],
    imageModel: 'prodia', // Choose AI image generator (check the end of the page for modals)
    chatModel: 'v3-32k', // Choose chat model (check the end of the page for modals)
    keywords: ['bot name', 'your name', 'who are you'],
    keywordResponses: {
      'bot name': 'My name is apexAI, and I was developed by Elias79.',
      'your name': 'I am known as apexAI, created by Elias79.',
      'who are you': 'I am apexAI, an AI created by Elias79.',
    },
    loadingMessage: null,/// a message being sent while generating response
    nsfw: true, ////Prevent generating ai images (NSFW)
    readFiles: true,///Read pdf/txt files
  });
});

📊 Database MongoDb (Online) 📁

  • To connect to MongoDB/Mongoose, provide your URL and name your database. Follow these steps:
///for cjs module (.cjs/.js)
const { mongoConnect } = require('apexify.js');
///for es module (.mjs/(.js if "type": "module" in package.json) or ts
import { mongoConnect  } from 'apexify.js';

// Connect to MongoDB
const mongoSuccess = await mongoConnect('mongoURI', 'dbName');

// Access connected databases using getDb functions
const mongoDb = getDb();

/*----------------------------------------*/
//if you wanted to use your database to save/edit/delete then use this example below

// Example usage:

const { save, updateData, find, remove, removeSpecific } = require('apexify.js');

///# Save (insertOne)
  const collectionName = 'exampleCollection';
  const document = { key: 'value' };
  const options = {
    uniqueFields: ['key'], // Example unique field
  };
  // Saving the document to MongoDB with options
  const savedDocument = await save(collectionName, document, options);

///# Find (findOne)
  const collectionName = 'exampleCollection';
  const filter = { _id: '6063b0f4e8e8b652780e97e0' }; // Example filter, you can customize it
  const projection = { name: 1, age: 1 }; // Example projection, you can customize it
  const options = {
    sort: { age: -1 }, // Example sort option, you can customize it
    limit: 5, // Example limit option, you can customize it
  };
    // Finding a document in MongoDB with options
    const foundDocument = await find(collectionName, filter, projection, options);

///# SearchMany (find().toArray)
  const collectionFilters = [
    { collectionName: 'collection1', displayment: 5, filter: { status: 'active' } },
    { collectionName: 'collection2', displayment: null, filter: { type: 'public' } },
    // Add more collection filters as needed to search for
  ];
    // Searching for documents in multiple collections with specific filters
    const searchResults = await searchMany(collectionFilters);


///# Remove (deleteOne)
  const collectionName = 'exampleCollection';
  const filter = { _id: '6063b0f4e8e8b652780e97e0' }; // Example filter, you can customize it
    // Removing a document from MongoDB
    const removalResult = await remove(collectionName, filter);//remove the document which mathces the filter

///# RemoveSpecific (deleteOne(filter))
  const collectionName = 'exampleCollection';
  const filter = { _id: '6063b0f4e8e8b652780e97e0', name: 'John Doe' }; // Example filter, you can customize it
  const keyToRemove = { name: 1 }; // Example key to remove, you can customize it
    // Removing a document from MongoDB with specific keys removed
    const removalResult = await removeSpecific(collectionName, filter, keyToRemove);//remove the key without remvoe the full document 

///# RemoveMany (deleteMany)
  const collectionName = 'exampleCollection';
  const filter = { status: 'inactive' }; // Example filter, you can customize it
    // Removing multiple documents from MongoDB based on a filter
    const removalResult = await removeMany(collectionName, filter);

///# UpdateData (updateOne)
  const collectionName = 'yourCollectionName'; // Replace with your actual collection name
  const filter = { _id: 'yourDocumentId', age: 23, name: 'Elias' }; // Replace with your actual filter criteria
  const update = { age: 19, gender: 'male' }; // Replace with your actual update data
  const uniqueFields = ['field1', 'field2']; // Replace with your unique fields, if any!
    // Updating document data in the specified collection
    const updateResult = await updateData(collectionName, filter, update, uniqueFields);

///# UpdateAll (updateMany)
  const collectionName = 'yourCollectionName'; // Replace with your actual collection name
  const filter = { level: 20, serverId: guildId, userId: userId  }; // Replace with your actual filter criteria
  const update = { level: 31 }; // Replace with your actual update data
  const uniqueFields = ['userId', 'serverId']; // Replace with your unique fields, if any!
    // Updating all documents matching the filter in the specified collection
    const updateResult = await updateAll(collectionName, filter, update, options);

///# MigrateData 
  const sourceCollection = 'yourSourceCollection'; // Replace with your actual source collection name
  const destinationCollection = 'yourDestinationCollection'; // Replace with your actual destination collection name
    // Transferring data from the source collection to the destination collection
    const transferResult = await migrateData(sourceCollection, destinationCollection);

///# MigrateAndPrune
  const sourceCollection = 'yourSourceCollection'; // Replace with your actual source collection name
  const destinationCollection = 'yourDestinationCollection'; // Replace with your actual destination collection name
    // Transferring data from the source collection to the destination collection
    const transferResult = await migrateAndPrune(sourceCollection, destinationCollection);

///# Drop (drop)
  const dropCollectiom = 'collectionToRemove'; // Replace with your actual collection name
    // Removing collection from mongoDb
    const dropResults = await drop(dropCollectiom);

///# DataSize
  const dataToCheck = 'collectioNameToCheck'; // Replace with your actual collection name
    // Check collection size in db
    const size = await dataSize(dataToCheck);

📊 Database NanoDb (local) 📁

  • NanoDb is specially made for apexify library to make database easy for all (json database)
///for cjs module (.cjs/.js)
const { NanoDb } = require('apexify.js');
///for es module (.mjs/(.js if "type": "module" in package.json) or ts
import { NanoDb } from 'apexify.js';

/// Setting Which data json to configure
const db = awai NanoDb('path/file/to/json'); // Example: ../data.json

///# AddOne (inserting new data)
const result = await db.addOne({ userId: , serverId: , name: , age: 27}, { uniqueKeys: ['userId', 'serverId'] });

///# FindData (search for single document)
const result = await db.findData({ username: 'john', age: 40 });

///# DisplayData (display data array)
const displayOptions = {
  displayment: 10,//display how many documents
  filters: {
    country: 'usa'///your filter
  },
  page: 1,
  pageSize: 10,
  sortBy: 'size', // Replace with the actual field you want to sort by
  sortOrder: 'asc', // or 'desc' asc => ascending, desc => descending
};

// Displaying data using the displayData method
const result = await db.displayData(displayOptions);

///# RemoveOne (remove a single key from single document)
const filterQuery = {
   xp: 1000 => assign it 'any' if you dont have specific value
};

///# RemoveOne (remove a single key from a single document)
const removeFilter = {
 level: 'any'
};
 // Removing fields using the removeOne method
 const result = await db.removeOne(filterQuery, removeFilter);

///# RemoveDoc (remove a a full document)
const result = await db.removeDoc({ userId: value, serverId: value });


///# UpdatData (update a single document in the json)
const result = await db.updateData({ userId: value, validate: value}, { validate: newValue });

///# UpdateMany (update a many documents in the json)
const result = await db.updateMany({ validate: value, session: value }, { session: newvalue });

///# Drop (remove whole data in json)
const result = await db.drop();

📸 Manipulating Images Using Canvas 🎨

Add images, shapes, and effects to images with ease!
//You can use import for es module/.mjs
const { ApexPainter } = require('apexify.js'); 


const paintImage = new ApexPainter();


///Creating a background
const canvasOptions = {
  width: 1200,//background width
  height: 300,//background height
  customBg: '',/// it can be URL only for now and if used plz dont use bgColor or bgGradient
  backgroundColor: '#3498db', // Example color (blue) or use 'transparent' for no backgound color
  backgroundGradient: {////Adding  a gradient instead of constant color
    type: 'linear',/// change to 'radial' if you want gradient start from middle
    startX: 0,
    startY: 0,
    startRadius: 0,///add if radial only!  
    endRadius: 0,///add if radial only! 
    endX: 100,
    endY: 0,
    colors: [
      { stop: 0, color: 'red' },
      { stop: 0.5, color: 'green' },
      { stop: 1, color: 'blue' },
      ///add more colors if needed
    ],
  },
  borderRadius: 0,///adding a radius to create a curvy edges or use 'circular' to make it a circle
};


//// 
const images = [
  {
    source: 'square',///drawing  shapes as images. We only support those shapes ('square', 'triangle', 'circle', 'pentagon').
    x: 385,///positions on background horizontally.
    y: 225,///positions on background vertically.
    rotate: 0,//rotate only applyed for shapes.
    filled: true,///to fill the shape if true.
    width: 500,///shape width.
    height: 80,//shape height.
    borderRadius: 35,///adding a radius to create a curvy edges or use 'circular' to make it a circle.
    color: 'rgba(0, 0, 0, 0.4)',///only being applied for shapes (filling the shape with the provided color).
    gradient:, ////Adding  a gradient instead of constant color (used same way as in canvas (only works with shapes).
    stroke: {//Adding stroke
      color: '#498afc',//color of the stroke
      width: 5,//size of the stroke.
      borderRadius: 35,///adding a radius to create a curvy edges or use 'circular' to make it a circle.
    },
  
  },
    {
    source: 'square',
    x: 395,
    y: 235,
    rotate: 0,
    filled: true,
    width: 440,
    height: 60,
    borderRadius: 35,
   gradient: {
    type: 'linear',
    startX: 0,
    startY: 0,
    endX: 100,
    endY: 0,
    colors: [
      { stop: 0, color: 'red' },
      { stop: 0.5, color: 'green' },
      { stop: 1, color: 'blue' },
    ],
  },
  },
  {
    source: 'local/file/path || image url',//you can provide an image url or local path and for images styling you can use same as above in shapes except for rotate and gradient which won't work.
    x: 120,
    y: 120,
    width: 210,
    height: 210,
    borderRadius: 20,///adding a radius to create a curvy edges or use 'circular' to make it a circle.
    shadow: {
      color: null,//shadow color.
      offsetX: 0,///shadow position off from image horizontally.
      offsetY: 0,///shadow postion off  from image vertically.
      opacity: 0,//shadow opacity.
      blur: 0,//shadow blur.
      borderRadius: null,///adding a radius to create a curvy edges or use 'circular' to make it a circle.
    }
  }, 
];
////image already got buffered you can send it directly or add text option
  const image = await paintImage.drawImages(images, canvasOptions, __dirname);

const textOptionsArray = [
  {
    text: 'elias79. Rank',//adding a text.
    x: 440,//text horizontally positon .
    y: 145,//text vetically position.
    fontName: 'Wind',//name your font as you want or use default (Arial).
    fontPath: './wind.ttf',//font path for custom font.
    fontSize: 50,///size of the font.
    color: 'white',//font color.
    shadow: {
    offsetX: 3,
    offsetY: 3,
    color: "rgba(0, 0, 0, 0.5)",
    blur: 5
  },
    stroke: {
        color: '#deff08',
        width: 1.2,
      },
  },
   {
    text: '95/100 XP',
    x: 530,
    y: 250,
    fontName: 'Arial',
    fontSize: 35,
    color: 'white',
    stroke: {
        color: 'black',
        width: 0.5,
      },
  },
];
///Adding the text on the drawn image before
const buffer = await paintImage.addText(textOptionsArray, image, __dirname);

//sending the buffered image with text on it 
 await message.channel.send({files: [buffer] });

Discord-Build ⚒️

  • Easy & Simple ways to make buttons & menus & paginator & permschecker
//////MAKE BUTTONS///////

const { ButtonManager } = require('apexify.js'); ///cjs modules .js

import { ButtonManager } from 'apexify.js'; /// ejs modules .mjs or ts

const buttonsData = [
  {
    customId: 'button1',
    style: 'Primary',// style: Primary, Secondary, Link, Danger, Success
    label: 'Primary Button',
    emoji: '😃',  // Emoji for the button
    disabled: false,  // Whether the button is disabled
  },
  {
    customId: 'button2',
    style: 'Secondary',
    label: 'Secondary Button',
    emoji: '🚀',
    disabled: true,
  },
  {
    customId: 'linkButton',
    style: 'Link',
    label: 'Link Button',
    url: 'https://example.com',  // URL for link-style button
    emoji: '🔗',
  },
];

// Create an instance of ButtonManager
const buttonManager = new ButtonManager(buttonsData);

// Create an action row with the buttons
const actionRow = buttonManager.ButtonBuild();

// Define a message with the action row
message.reply({ content: 'Click the buttons:',
  components: [actionRow],
});

// Define in interaction
interaction.reply({ content: 'Click the buttons:',
  components: [actionRow],
});


//////MAKE MENUS///////

const { SelectMenuManager } = require('apexify.js');// cjs module .js
import { SelectMenuManager } from 'apexify.js'; // ejs module .mjs or ts

// Define select menu options
const selectMenuOptions = [
  { label: 'Option 1', value: 'option1', description: 'Description for Option 1', emoji: '🌟', default: true },
  { label: 'Option 2', value: 'option2', description: 'Description for Option 2', emoji: '🚀' },
  { label: 'Option 3', value: 'option3', description: 'Description for Option 3', emoji: '🔗' },
];

// Create an instance of SelectMenuManager
const selectMenuManager = new SelectMenuManager(
  selectMenuOptions,
  'customSelectMenuId',  // Custom ID for the select menu
  'Select an option',    // Placeholder text for the select menu
  1,                      // Minimum number of selected values
  2,                       // Maximum number of selected values
  false                   // Disabled state for meny (true or false)
);

// Create a select menu with the specified options
const selectMenuRow = selectMenuManager.createSelectMenu();

// Define a message with the select menu
 message.reply({
  content: 'Please choose an option:',
  components: [selectMenuRow],
});

// Define a interaction with the select menu
 interaction.reply({
  content: 'Please choose an option:',
  components: [selectMenuRow],
});


////////MAKE EMBED PAGINATOR////////

const { Paginator } = require('apexify.js');// cjs module .js
import { Paginator } from 'apexify.js'; // ejs module .mjs or ts

const pageOptions = [
  {
    title: 'Page 1',
    description: 'Content for Page 1',
    color: '#3498db', // Hex color code
    authorName: 'Author Name',
    authorIcon: 'https://example.com/author-icon.png', // URL to author's icon
    footerName: 'Footer Name',
    footerIcon: 'https://example.com/footer-icon.png', // URL to footer's icon
    image: 'https://example.com/image.png', // URL to image
    thumbnail: 'https://example.com/thumbnail.png', // URL to thumbnail
    url: 'https://example.com/page-1', // URL for the entire embed
    timestamp: true, // Include timestamp
  },
  {
    title: 'Page 2',
    description: 'Content for Page 2',
    color: '#e74c3c',
    authorName: 'Another Author',
    authorIcon: 'https://example.com/another-author-icon.png',
    footerName: 'Another Footer',
    footerIcon: 'https://example.com/another-footer-icon.png',
    image: 'https://example.com/another-image.png',
    thumbnail: 'https://example.com/another-thumbnail.png',
    url: 'https://example.com/page-2',
    timestamp: true,
  },
  {
    title: 'Page 3',
    description: 'Content for Page 3',
    color: '#2ecc71',
    authorName: 'Yet Another Author',
    authorIcon: 'https://example.com/yet-another-author-icon.png',
    footerName: 'Yet Another Footer',
    footerIcon: 'https://example.com/yet-another-footer-icon.png',
    image: 'https://example.com/yet-another-image.png',
    thumbnail: 'https://example.com/yet-another-thumbnail.png',
    url: 'https://example.com/page-3',
    timestamp: true,
  },
  // Add more pages as needed
];

// Create an instance of the Paginator class
const paginator = new Paginator({ options: pageOptions, timeout: 30000 });

/// In messages
client.on('messageCreate', async (msg) => {
  // Check if the message author is a bot
  if (msg.author.bot) return;

  // Send the paginated message when the command !sendPaginator is received
  if (msg.content === '!sendPaginator') {
    const user = msg.author;
    const options = { ownerOnly: false, hidden: false, };

    // Send the paginated message
    await paginator.send(msg, user, options);
  }
});


/// In interactions
client.on('interactionCreate', async (i) => {
  // Check if the message author is a bot
  if (i.user.bot) return;

  // Send the paginated message when the command/ button is used
  if (i.customId === 'button') {
    const user = i.user;
    const options = { ownerOnly: false, hidden: false, };

    // Send the paginated message
    await paginator.send(i, user, options);
  }
});


//////PERMISSION CHECKER///////

const { PermissionChecker } = require('apexify.js'); // cjs module .js
import { PermissionChecker } from 'apexify.js'; // ejs module .mjs or ts


client.on('messageCreate', async (message) => {
    if (message.content.startsWith('!checkPermissions')) {
        try {
            // Specify the required permissions you want to check
            const requiredPermissions = ['KickMembers', 'BanMembers', 'ManageChannels'];

            // Instantiate the PermissionChecker
            const permissionChecker = new PermissionChecker();

            // Check if the message author has the required permissions
            const hasPermissions = await permissionChecker.checker(message.author.id, message.guild, requiredPermissions);

            if (hasPermissions) {
                message.reply('You have the required permissions!');
            } else {
                message.reply('You do not have the required permissions!');
            }
        } catch (error) {
            console.error('Error:', error.message);
        }
    }
});


client.on('interactionCreate', async (i) => {
    if (i.customId === 'button_checker') {
        try {
            // Specify the required permissions you want to check
            const requiredPermissions = ['KickMembers', 'BanMembers', 'ManageChannels'];

            // Instantiate the PermissionChecker
            const permissionChecker = new PermissionChecker();

            // Check if the message author has the required permissions
            const hasPermissions = await permissionChecker.checker(i.user.id, i.guild, requiredPermissions);

            if (hasPermissions) {
                i.reply('You have the required permissions!');
            } else {
                i.reply('You do not have the required permissions!');
            }
        } catch (error) {
            console.error('Error:', error.message);
        }
    }
});

📚 More Info & Documentation 📖

Explore a detailed list of apexify.js and their usage at our Support Server.

🚨 Important Notes 📌

  1. Voice Messages: Currently in beta, occasional disruptions may occur.

  2. Commands: Support for slash commands is coming soon.

  3. Music: Utilizing Lavalink for audio streaming. Customize Lavalink node if needed.

  4. Database: There is two type of Database NanoDb (local db json) and MongoDb (online db bson).

Keep experimenting, and feel free to contact me for assistance! Suggestions and adjustments are welcome. 🌟

Draw Models

Click to display models - v1 - v2 - v2-beta - lexica - prodia - animefy - raava - shonin - v3 - 3Guofeng3_v34.safetensors [50f420de] - absolutereality_V16.safetensors [37db0fc3] - absolutereality_v181.safetensors [3d9d4d2b] - amIReal_V41.safetensors [0a8a2e61] - analog-diffusion-1.0.ckpt [9ca13f02] - anythingv3_0-pruned.ckpt [2700c435] - anything-v4.5-pruned.ckpt [65745d25] - anythingV5_PrtRE.safetensors [893e49b9] - AOM3A3_orangemixs.safetensors [9600da17] - blazing_drive_v10g.safetensors [ca1c1eab] - cetusMix_Version35.safetensors [de2f2560] - childrensStories_v13D.safetensors [9dfaabcb] - childrensStories_v1SemiReal.safetensors [a1c56dbb] - childrensStories_v1ToonAnime.safetensors [2ec7b88b] - Counterfeit_v30.safetensors [9e2a8f19] - cuteyukimixAdorable_midchapter3.safetensors [04bdffe6] - cyberrealistic_v33.safetensors [82b0d085] - dalcefo_v4.safetensors [425952fe] - deliberate_v2.safetensors [10ec4b29] - deliberate_v3.safetensors [afd9d2d4] - dreamlike-anime-1.0.safetensors [4520e090] - dreamlike-diffusion-1.0.safetensors [5c9fd6e0] - dreamlike-photoreal-2.0.safetensors [fdcf65e7] - dreamshaper_6BakedVae.safetensors [114c8abb] - dreamshaper_7.safetensors [5cf5ae06] - dreamshaper_8.safetensors [9d40847d] - edgeOfRealism_eorV20.safetensors [3ed5de15] - EimisAnimeDiffusion_V1.ckpt [4f828a15] - elldreths-vivid-mix.safetensors [342d9d26] - epicrealism_naturalSinRC1VAE.safetensors [90a4c676] - ICantBelieveItsNotPhotography_seco.safetensors [4e7a3dfd] - juggernaut_aftermath.safetensors [5e20c455] - lofi_v4.safetensors [ccc204d6] - lyriel_v16.safetensors [68fceea2] - majicmixRealistic_v4.safetensors [29d0de58] - mechamix_v10.safetensors [ee685731] - meinamix_meinaV9.safetensors [2ec66ab0] - meinamix_meinaV11.safetensors [b56ce717] - neverendingDream_v122.safetensors [f964ceeb] - openjourney_V4.ckpt [ca2f377f] - pastelMixStylizedAnime_pruned_fp16.safetensors [793a26e8] - portraitplus_V1.0.safetensors [1400e684] - protogenx34.safetensors [5896f8d5] - Realistic_Vision_V1.4-pruned-fp16.safetensors [8d21810b] - Realistic_Vision_V2.0.safetensors [79587710] - Realistic_Vision_V4.0.safetensors [29a7afaa] - Realistic_Vision_V5.0.safetensors [614d1063] - redshift_diffusion-V10.safetensors [1400e684] - revAnimated_v122.safetensors [3f4fefd9] - rundiffusionFX25D_v10.safetensors [cd12b0ee] - rundiffusionFX_v10.safetensors [cd4e694d] - sdv1_4.ckpt [7460a6fa] - v1-5-pruned-emaonly.safetensors [d7049739] - v1-5-inpainting.safetensors [21c7ab71] - shoninsBeautiful_v10.safetensors [25d8c546] - theallys-mix-ii-churned.safetensors [5d9225a4] - timeless-1.0.ckpt [7c4971d4] - toonyou_beta6.safetensors [980f6b15]

chat Models

Click to display models - v3 - v3-32k - turbo - turbo-16k - gemini

Voice Models

Click to display models Language Name Language Code Voice Code Voice Type Voice Gender Afrikaans (South Africa) af-ZA af-ZA-1 Neural Female Afrikaans (South Africa) af-ZA af-ZA-2 Neural Male Amharic (Ethiopia) am-ET am-ET-1 Neural Male Amharic (Ethiopia) am-ET am-ET-2 Neural Female Arabic (United Arab Emirates) ar-AE ar-AE-1 Neural Female Arabic (United Arab Emirates) ar-AE ar-AE-2 Neural Male Arabic (Bahrain) ar-BH ar-BH-1 Neural Male Arabic (Bahrain) ar-BH ar-BH-2 Neural Female Arabic (Algeria) ar-DZ ar-DZ-1 Neural Female Arabic (Algeria) ar-DZ ar-DZ-2 Neural Male Arabic (Egypt) ar-EG ar-EG-1 Neural Female Arabic (Egypt) ar-EG ar-EG-2 Neural Male Arabic (Egypt) ar-EG ar-EG-3 Standard Female Arabic (Iraq) ar-IQ ar-IQ-1 Neural Male Arabic (Iraq) ar-IQ ar-IQ-2 Neural Female Arabic (Jordan) ar-JO ar-JO-1 Neural Female Arabic (Jordan) ar-JO ar-JO-2 Neural Male Arabic (Kuwait) ar-KW ar-KW-1 Neural Male Arabic (Kuwait) ar-KW ar-KW-2 Neural Female Arabic (Libya) ar-LY ar-LY-1 Neural Female Arabic (Libya) ar-LY ar-LY-2 Neural Male Arabic (Morocco) ar-MA ar-MA-1 Neural Male Arabic (Morocco) ar-MA ar-MA-2 Neural Female Arabic (Qatar) ar-QA ar-QA-1 Neural Female Arabic (Qatar) ar-QA ar-QA-2 Neural Male Arabic (Saudi Arabia) ar-SA ar-SA-1 Neural Male Arabic (Saudi Arabia) ar-SA ar-SA-2 Neural Female Arabic (Saudi Arabia) ar-SA ar-SA-3 Standard Male Arabic (Syria) ar-SY ar-SY-1 Neural Female Arabic (Syria) ar-SY ar-SY-2 Neural Male Arabic (Tunisia) ar-TN ar-TN-1 Neural Male Arabic (Tunisia) ar-TN ar-TN-2 Neural Female Arabic (Yemen) ar-YE ar-YE-1 Neural Female Arabic (Yemen) ar-YE ar-YE-2 Neural Male Bulgarian (Bulgaria) bg-BG bg-BG-1 Neural Male Bulgarian (Bulgaria) bg-BG bg-BG-2 Neural Female Bulgarian (Bulgaria) bg-BG bg-BG-3 Standard Male Bangla (Bangladesh) bn-BD bn-BD-1 Neural Female Bangla (Bangladesh) bn-BD bn-BD-2 Neural Male Catalan (Spain) ca-ES ca-ES-1 Neural Female Catalan (Spain) ca-ES ca-ES-2 Neural Female Catalan (Spain) ca-ES ca-ES-3 Neural Male Catalan (Spain) ca-ES ca-ES-4 Standard Female Czech (Czech) cs-CZ cs-CZ-1 Neural Male Czech (Czech) cs-CZ cs-CZ-2 Neural Female Czech (Czech) cs-CZ cs-CZ-3 Standard Male Welsh (United Kingdom) cy-GB cy-GB-1 Neural Male Welsh (United Kingdom) cy-GB cy-GB-2 Neural Female Danish (Denmark) da-DK da-DK-1 Neural Female Danish (Denmark) da-DK da-DK-2 Neural Male Danish (Denmark) da-DK da-DK-3 Standard Female German (Austria) de-AT de-AT-1 Neural Female German (Austria) de-AT de-AT-2 Neural Male German (Austria) de-AT de-AT-3 Standard Male German (Switzerland) de-CH de-CH-1 Neural Male German (Switzerland) de-CH de-CH-2 Neural Female German (Switzerland) de-CH de-CH-3 Standard Male German (Germany) de-DE de-DE-1 Neural Female German (Germany) de-DE de-DE-2 Neural Male German (Germany) de-DE de-DE-3 Standard Female German (Germany) de-DE de-DE-4 Standard Male Greek (Greece) el-GR el-GR-1 Neural Female Greek (Greece) el-GR el-GR-2 Neural Male Greek (Greece) el-GR el-GR-3 Standard Male English (Australia) en-AU en-AU-1 Neural Female English (Australia) en-AU en-AU-2 Neural Male English (Australia) en-AU en-AU-3 Standard Female English (Australia) en-AU en-AU-4 Standard Female English (Canada) en-CA en-CA-1 Neural Female English (Canada) en-CA en-CA-2 Neural Male English (Canada) en-CA en-CA-3 Standard Female English (Canada) en-CA en-CA-4 Standard Female English (United Kingdom) en-GB en-GB-1 Neural Female English (United Kingdom) en-GB en-GB-2 Neural Male English (United Kingdom) en-GB en-GB-3 Neural Female English (United Kingdom) en-GB en-GB-4 Neural Female English (United Kingdom) en-GB en-GB-5 Standard Male English (United Kingdom) en-GB en-GB-6 Standard Female English (United Kingdom) en-GB en-GB-7 Standard Female English (Hongkong) en-HK en-HK-1 Neural Male English (Hongkong) en-HK en-HK-2 Neural Female English (Ireland) en-IE en-IE-1 Neural Male English (Ireland) en-IE en-IE-2 Neural Female English (Ireland) en-IE en-IE-3 Standard Male English (India) en-IN en-IN-1 Neural Female English (India) en-IN en-IN-2 Neural Male English (India) en-IN en-IN-3 Standard Female English (India) en-IN en-IN-4 Standard Female English (India) en-IN en-IN-5 Standard Male English (Kenya) en-KE en-KE-1 Neural Female English (Kenya) en-KE en-KE-2 Neural Male English (Nigeria) en-NG en-NG-1 Neural Male English (Nigeria) en-NG en-NG-2 Neural Female English (New Zealand) en-NZ en-NZ-1 Neural Male English (New Zealand) en-NZ en-NZ-2 Neural Female English (Philippines) en-PH en-PH-1 Neural Male English (Philippines) en-PH en-PH-2 Neural Female English (Singapore) en-SG en-SG-1 Neural Female English (Singapore) en-SG en-SG-2 Neural Male English (Tanzania) en-TZ en-TZ-1 Neural Male English (Tanzania) en-TZ en-TZ-2 Neural Female English (United States) en-US en-US-1 Neural Female English (United States) en-US en-US-2 Neural Female English (United States) en-US en-US-3 Neural Male English (United States) en-US en-US-4 Neural Female English (United States) en-US en-US-5 Neural Female English (United States) en-US en-US-6 Neural Female English (United States) en-US en-US-7 Neural Female English (United States) en-US en-US-8 Neural Male English (United States) en-US en-US-9 Neural Male English (United States) en-US en-US-10 Neural Female English (United States) en-US en-US-11 Neural Female English (United States) en-US en-US-12 Neural Male English (United States) en-US en-US-13 Neural Male English (United States) en-US en-US-14 Neural Female English (United States) en-US en-US-15 Neural Female English (United States) en-US en-US-16 Neural Female English (United States) en-US en-US-17 Standard Female English (United States) en-US en-US-18 Standard Male English (United States) en-US en-US-19 Standard Male English (United States) en-US en-US-20 Standard Female English (South Africa) en-ZA en-ZA-1 Neural Female English (South Africa) en-ZA en-ZA-2 Neural Male Spanish (Argentina) es-AR es-AR-1 Neural Female Spanish (Argentina) es-AR es-AR-2 Neural Male Spanish (Bolivia) es-BO es-BO-1 Neural Male Spanish (Bolivia) es-BO es-BO-2 Neural Female Spanish (Chile) es-CL es-CL-1 Neural Female Spanish (Chile) es-CL es-CL-2 Neural Male Spanish (Colombia) es-CO es-CO-1 Neural Male Spanish (Colombia) es-CO es-CO-2 Neural Female Spanish (Costa Rica) es-CR es-CR-1 Neural Male Spanish (Costa Rica) es-CR es-CR-2 Neural Female Spanish (Cuba) es-CU es-CU-1 Neural Female Spanish (Cuba) es-CU es-CU-2 Neural Male Spanish (Dominican Republic) es-DO es-DO-1 Neural Male Spanish (Dominican Republic) es-DO es-DO-2 Neural Female Spanish (Ecuador) es-EC es-EC-1 Neural Female Spanish (Ecuador) es-EC es-EC-2 Neural Male Spanish (Spain) es-ES es-ES-1 Neural Male Spanish (Spain) es-ES es-ES-2 Neural Female Spanish (Spain) es-ES es-ES-3 Standard Female Spanish (Spain) es-ES es-ES-4 Standard Female Spanish (Spain) es-ES es-ES-5 Standard Male Spanish (Equatorial Guinea) es-GQ es-GQ-1 Neural Male Spanish (Equatorial Guinea) es-GQ es-GQ-2 Neural Female Spanish (Guatemala) es-GT es-GT-1 Neural Male Spanish (Guatemala) es-GT es-GT-2 Neural Female Spanish (Honduras) es-HN es-HN-1 Neural Male Spanish (Honduras) es-HN es-HN-2 Neural Female Spanish (Mexico) es-MX es-MX-1 Neural Female Spanish (Mexico) es-MX es-MX-2 Neural Male Spanish (Mexico) es-MX es-MX-3 Standard Female Spanish (Mexico) es-MX es-MX-4 Standard Male Spanish (Nicaragua) es-NI es-NI-1 Neural Male Spanish (Nicaragua) es-NI es-NI-2 Neural Female Spanish (Panama) es-PA es-PA-1 Neural Female Spanish (Panama) es-PA es-PA-2 Neural Male Spanish (Peru) es-PE es-PE-1 Neural Male Spanish (Peru) es-PE es-PE-2 Neural Female Spanish (Puerto Rico) es-PR es-PR-1 Neural Female Spanish (Puerto Rico) es-PR es-PR-2 Neural Male Spanish (Paraguay) es-PY es-PY-1 Neural Male Spanish (Paraguay) es-PY es-PY-2 Neural Female Spanish (El Salvador) es-SV es-SV-1 Neural Female Spanish (El Salvador) es-SV es-SV-2 Neural Male Spanish (United States) es-US es-US-1 Neural Male Spanish (United States) es-US es-US-2 Neural Female Spanish (Uruguay) es-UY es-UY-1 Neural Male Spanish (Uruguay) es-UY es-UY-2 Neural Female Spanish (Venezuela) es-VE es-VE-1 Neural Female Spanish (Venezuela) es-VE es-VE-2 Neural Male Estonian (Estonia) et-EE et-EE-1 Neural Female Estonian (Estonia) et-EE et-EE-2 Neural Male Persian (Iran) fa-IR fa-IR-1 Neural Female Persian (Iran) fa-IR fa-IR-2 Neural Male Finnish (Finland) fi-FI fi-FI-1 Neural Female Finnish (Finland) fi-FI fi-FI-2 Neural Male Finnish (Finland) fi-FI fi-FI-3 Neural Female Finnish (Finland) fi-FI fi-FI-4 Standard Female Filipino (Philippines) fil-PH fil-PH-1 Neural Male Filipino (Philippines) fil-PH fil-PH-2 Neural Female French (Belgium) fr-BE fr-BE-1 Neural Female French (Belgium) fr-BE fr-BE-2 Neural Male French (Canada) fr-CA fr-CA-1 Neural Female French (Canada) fr-CA fr-CA-2 Neural Male French (Canada) fr-CA fr-CA-3 Neural Male French (Canada) fr-CA fr-CA-4 Standard Female French (Canada) fr-CA fr-CA-5 Standard Female French (Switzerland) fr-CH fr-CH-1 Neural Female French (Switzerland) fr-CH fr-CH-2 Neural Male French (Switzerland) fr-CH fr-CH-3 Standard Male French (France) fr-FR fr-FR-1 Neural Female French (France) fr-FR fr-FR-2 Neural Male French (France) fr-FR fr-FR-3 Standard Female French (France) fr-FR fr-FR-4 Standard Female French (France) fr-FR fr-FR-5 Standard Male Irish (Ireland) ga-IE ga-IE-1 Neural Male Irish (Ireland) ga-IE ga-IE-2 Neural Female Galician (Spain) gl-ES gl-ES-1 Neural Male Galician (Spain) gl-ES gl-ES-2 Neural Female Gujarati (India) gu-IN gu-IN-1 Neural Female Gujarati (India) gu-IN gu-IN-2 Neural Male Hebrew (Israel) he-IL he-IL-1 Neural Male Hebrew (Israel) he-IL he-IL-2 Neural Female Hebrew (Israel) he-IL he-IL-3 Standard Male Hindi (India) hi-IN hi-IN-1 Neural Male Hindi (India) hi-IN hi-IN-2 Neural Female Hindi (India) hi-IN hi-IN-3 Standard Male Hindi (India) hi-IN hi-IN-4 Standard Female Croatian (Croatia) hr-HR hr-HR-1 Neural Female Croatian (Croatia) hr-HR hr-HR-2 Neural Male Croatian (Croatia) hr-HR hr-HR-3 Standard Male Hungarian (Hungary) hu-HU hu-HU-1 Neural Female Hungarian (Hungary) hu-HU hu-HU-2 Neural Male Hungarian (Hungary) hu-HU hu-HU-3 Standard Male Indonesian (Indonesia) id-ID id-ID-1 Neural Male Indonesian (Indonesia) id-ID id-ID-2 Neural Female Indonesian (Indonesia) id-ID id-ID-3 Standard Male Italian (Italy) it-IT it-IT-1 Neural Female Italian (Italy) it-IT it-IT-2 Neural Male Italian (Italy) it-IT it-IT-3 Neural Female Italian (Italy) it-IT it-IT-4 Standard Male Italian (Italy) it-IT it-IT-5 Standard Female Japanese (Japan) ja-JP ja-JP-1 Neural Female Japanese (Japan) ja-JP ja-JP-2 Neural Male Japanese (Japan) ja-JP ja-JP-3 Standard Female Japanese (Japan) ja-JP ja-JP-4 Standard Female Japanese (Japan) ja-JP ja-JP-5 Standard Male Javanese (Indonesia) jv-ID jv-ID-1 Neural Male Javanese (Indonesia) jv-ID jv-ID-2 Neural Female Khmer (Cambodia) km-KH km-KH-1 Neural Male Khmer (Cambodia) km-KH km-KH-2 Neural Female Korean (Korea) ko-KR ko-KR-1 Neural Female Korean (Korea) ko-KR ko-KR-2 Neural Male Korean (Korea) ko-KR ko-KR-3 Standard Female Lithuanian (Lithuania) lt-LT lt-LT-1 Neural Male Lithuanian (Lithuania) lt-LT lt-LT-2 Neural Female Latvian (Latvia) lv-LV lv-LV-1 Neural Female Latvian (Latvia) lv-LV lv-LV-2 Neural Male Marathi (India) mr-IN mr-IN-1 Neural Female Marathi (India) mr-IN mr-IN-2 Neural Male Malay (Malaysia) ms-MY ms-MY-1 Neural Male Malay (Malaysia) ms-MY ms-MY-2 Neural Female Malay (Malaysia) ms-MY ms-MY-3 Standard Male Maltese (Malta) mt-MT mt-MT-1 Neural Female Maltese (Malta) mt-MT mt-MT-2 Neural Male Burmese (Myanmar) my-MM my-MM-1 Neural Female Burmese (Myanmar) my-MM my-MM-2 Neural Male Norwegian (Bokmål, Norway) nb-NO nb-NO-1 Neural Female Norwegian (Bokmål, Norway) nb-NO nb-NO-2 Neural Male Norwegian (Bokmål, Norway) nb-NO nb-NO-3 Neural Female Norwegian (Bokmål, Norway) nb-NO nb-NO-4 Standard Female Dutch (Belgium) nl-BE nl-BE-1 Neural Male Dutch (Belgium) nl-BE nl-BE-2 Neural Female Dutch (Netherlands) nl-NL nl-NL-1 Neural Female Dutch (Netherlands) nl-NL nl-NL-2 Neural Female Dutch (Netherlands) nl-NL nl-NL-3 Neural Male Dutch (Netherlands) nl-NL nl-NL-4 Standard Female Polish (Poland) pl-PL pl-PL-1 Neural Female Polish (Poland) pl-PL pl-PL-2 Neural Male Polish (Poland) pl-PL pl-PL-3 Neural Female Polish (Poland) pl-PL pl-PL-4 Standard Female Portuguese (Brazil) pt-BR pt-BR-1 Neural Female Portuguese (Brazil) pt-BR pt-BR-2 Neural Male Portuguese (Brazil) pt-BR pt-BR-3 Standard Male Portuguese (Brazil) pt-BR pt-BR-4 Standard Female Portuguese (Portugal) pt-PT pt-PT-1 Neural Male Portuguese (Portugal) pt-PT pt-PT-2 Neural Female Portuguese (Portugal) pt-PT pt-PT-3 Neural Female Portuguese (Portugal) pt-PT pt-PT-4 Standard Female Romanian (Romania) ro-RO ro-RO-1 Neural Female Romanian (Romania) ro-RO ro-RO-2 Neural Male Romanian (Romania) ro-RO ro-RO-3 Standard Male Russian (Russia) ru-RU ru-RU-1 Neural Female Russian (Russia) ru-RU ru-RU-2 Neural Female Russian (Russia) ru-RU ru-RU-3 Neural Male Russian (Russia) ru-RU ru-RU-4 Standard Female Russian (Russia) ru-RU ru-RU-5 Standard Female Russian (Russia) ru-RU ru-RU-6 Standard Male Slovak (Slovakia) sk-SK sk-SK-1 Neural Male Slovak (Slovakia) sk-SK sk-SK-2 Neural Female Slovak (Slovakia) sk-SK sk-SK-3 Standard Male Slovenian (Slovenia) sl-SI sl-SI-1 Neural Female Slovenian (Slovenia) sl-SI sl-SI-2 Neural Male Slovenian (Slovenia) sl-SI sl-SI-3 Standard Male Somali (Somalia) so-SO so-SO-1 Neural Male Somali (Somalia) so-SO so-SO-2 Neural Female Sundanese (Indonesia) su-ID su-ID-1 Neural Male Sundanese (Indonesia) su-ID su-ID-2 Neural Female Swedish (Sweden) sv-SE sv-SE-1 Neural Female Swedish (Sweden) sv-SE sv-SE-2 Neural Female Swedish (Sweden) sv-SE sv-SE-3 Neural Male Swedish (Sweden) sv-SE sv-SE-4 Standard Female Swahili (Kenya) sw-KE sw-KE-1 Neural Male Swahili (Kenya) sw-KE sw-KE-2 Neural Female Swahili (Tanzania) sw-TZ sw-TZ-1 Neural Male Swahili (Tanzania) sw-TZ sw-TZ-2 Neural Female Tamil (India) ta-IN ta-IN-1 Neural Female Tamil (India) ta-IN ta-IN-2 Neural Male Tamil (India) ta-IN ta-IN-3 Standard Male Tamil (Sri Lanka) ta-LK ta-LK-1 Neural Male Tamil (Sri Lanka) ta-LK ta-LK-2 Neural Female Tamil (Singapore) ta-SG ta-SG-1 Neural Male Tamil (Singapore) ta-SG ta-SG-2 Neural Female Telugu (India) te-IN te-IN-1 Neural Male Telugu (India) te-IN te-IN-2 Neural Female Telugu (India) te-IN te-IN-3 Standard Female Thai (Thailand) th-TH th-TH-1 Neural Female Thai (Thailand) th-TH th-TH-2 Neural Female Thai (Thailand) th-TH th-TH-3 Neural Male Thai (Thailand) th-TH th-TH-4 Standard Male Turkish (Turkey) tr-TR tr-TR-1 Neural Male Turkish (Turkey) tr-TR tr-TR-2 Neural Female Turkish (Turkey) tr-TR tr-TR-3 Standard Female Ukrainian (Ukraine) uk-UA uk-UA-1 Neural Male Ukrainian (Ukraine) uk-UA uk-UA-2 Neural Female Urdu (India) ur-IN ur-IN-1 Neural Female Urdu (India) ur-IN ur-IN-2 Neural Male Urdu (Pakistan) ur-PK ur-PK-1 Neural Male Urdu (Pakistan) ur-PK ur-PK-2 Neural Female Uzbek (Uzbekistan) uz-UZ uz-UZ-1 Neural Female Uzbek (Uzbekistan) uz-UZ uz-UZ-2 Neural Male Vietnamese (Vietnam) vi-VN vi-VN-1 Neural Female Vietnamese (Vietnam) vi-VN vi-VN-2 Neural Male Vietnamese (Vietnam) vi-VN vi-VN-3 Standard Male Chinese (Mandarin, Simplified) zh-CN zh-CN-1 Neural Female Chinese (Mandarin, Simplified) zh-CN zh-CN-2 Neural Male Chinese (Mandarin, Simplified) zh-CN zh-CN-3 Neural Female Chinese (Mandarin, Simplified) zh-CN zh-CN-4 Neural Female Chinese (Mandarin, Simplified) zh-CN zh-CN-5 Neural Female Chinese (Mandarin, Simplified) zh-CN zh-CN-6 Neural Female Chinese (Mandarin, Simplified) zh-CN zh-CN-7 Neural Female Chinese (Mandarin, Simplified) zh-CN zh-CN-8 Neural Male Chinese (Mandarin, Simplified) zh-CN zh-CN-9 Neural Male Chinese (Mandarin, Simplified) zh-CN zh-CN-10 Neural Female Chinese (Mandarin, Simplified) zh-CN zh-CN-11 Neural Female Chinese (Mandarin, Simplified) zh-CN zh-CN-12 Neural Female Chinese (Mandarin, Simplified) zh-CN zh-CN-13 Neural Female Chinese (Mandarin, Simplified) zh-CN zh-CN-14 Standard Female Chinese (Mandarin, Simplified) zh-CN zh-CN-15 Standard Male Chinese (Mandarin, Simplified) zh-CN zh-CN-16 Standard Female Chinese (Cantonese, Traditional) zh-HK zh-HK-1 Neural Female Chinese (Cantonese, Traditional) zh-HK zh-HK-2 Neural Female Chinese (Cantonese, Traditional) zh-HK zh-HK-3 Neural Male Chinese (Cantonese, Traditional) zh-HK zh-HK-4 Standard Male Chinese (Cantonese, Traditional) zh-HK zh-HK-5 Standard Female Chinese (Taiwanese Mandarin) zh-TW zh-TW-1 Neural Female Chinese (Taiwanese Mandarin) zh-TW zh-TW-2 Neural Female Chinese (Taiwanese Mandarin) zh-TW zh-TW-3 Neural Male Chinese (Taiwanese Mandarin) zh-TW zh-TW-4 Standard Female Chinese (Taiwanese Mandarin) zh-TW zh-TW-5 Standard Female Chinese (Taiwanese Mandarin) zh-TW zh-TW-6 Standard Male Zulu (South Africa) zu-ZA zu-ZA-1 Neural Female Zulu (South Africa) zu-ZA zu-ZA-2 Neural Male