AILabTools SDK - AI Image API for Node.js, Python, Go, Dart, Flutter, PHP, Ruby, Rust, Java, Kotlin/Android, .NET, and Swift
Official Node.js, TypeScript, async Python, Go, Dart, Flutter, PHP, Ruby, Rust, Java, Kotlin/Android, C#/.NET, and Swift SDKs for AILabTools AI Image APIs.
Build AI-powered photo editing features with simple API calls: background removal, image upscaling, object removal, face retouching, hairstyle changer, age and gender swap, cartoon avatar generation, skin analysis, virtual try-on, and more.
- Node.js and TypeScript SDK on npm:
npm install ailabtools - Async Python SDK on PyPI:
pip install ailabtools-sdk - Go SDK on pkg.go.dev:
go get github.com/ailabtools/ailabtools-sdk/packages/go - Dart and Flutter SDK on pub.dev:
flutter pub add ailabtools - PHP SDK on Packagist:
composer require ailabtools/ailabtools - Ruby SDK for RubyGems:
gem install ailabtools - Rust SDK for crates.io:
cargo add ailabtools - Java SDK on Maven Central:
com.ailabtools:ailabtools-sdk:0.5.4 - Kotlin/Android SDK for Maven Central:
com.ailabtools:ailabtools-kotlin:0.5.4 - C#/.NET SDK for NuGet:
dotnet add package AILabTools --version 0.5.4 - Swift SDK for SwiftPM and CocoaPods:
.package(url: "https://github.com/ailabtools/ailabtools-sdk.git", from: "0.5.4") - 87 current APIs plus 6 legacy-compatible endpoints
- Supports file and in-memory uploads, async tasks, and temporary result URLs
- Get started with the AILabTools Developer Console
- Background removal API for products, portraits, food, clothing, and general images
- Image upscaler API for 2x / 4x lossless enlargement
- AI photo editing API for object removal, image erasure, cropping, retouching, and watermarking
- AI portrait API for face retouching, hairstyle changer, cartoon avatar generation, skin analysis, and virtual try-on
- Node.js SDK with TypeScript definitions
- Async Python SDK for modern Python applications
- Cross-platform Dart and Flutter SDK with strongly typed models
- PHP SDK with PSR-4 autoloading and strongly typed DTOs
- Ruby SDK with RubyGems packaging and typed parameter/response objects
- Async Rust SDK with crates.io metadata, typed structs, and reqwest transport
- Java 11 SDK with typed builders and Maven Central release metadata
- Coroutine-based Kotlin/Android SDK with typed models and Maven Central release metadata
- Asynchronous C#/.NET SDK targeting .NET Standard 2.0 and .NET 8
- Native asynchronous Swift SDK supporting Swift Package Manager and CocoaPods
Every language SDK exposes the same 93 endpoints: 87 current APIs from the official AILabTools API documentation and 6 legacy-compatible endpoints retained for existing integrations. See the complete SDK API index for method names, HTTP paths, and compatibility status.
npm install ailabtoolspip install ailabtools-sdkgo get github.com/ailabtools/ailabtools-sdk/packages/goflutter pub add ailabtoolscomposer require ailabtools/ailabtoolsgem install ailabtoolscargo add ailabtools<dependency>
<groupId>com.ailabtools</groupId>
<artifactId>ailabtools-sdk</artifactId>
<version>0.5.4</version>
</dependency>dependencies {
implementation("com.ailabtools:ailabtools-kotlin:0.5.4")
}dotnet add package AILabTools --version 0.5.4Swift Package Manager:
.package(
url: "https://github.com/ailabtools/ailabtools-sdk.git",
from: "0.5.4"
)CocoaPods:
pod 'AILabTools', '~> 0.5.4'Import it in Python as ailabtools:
from ailabtools import AILabClientNote: The PyPI package name is
ailabtools-sdk, while the Python import name isailabtools.
Create or copy your API key from the AILabTools Developer Console.
export AILAB_API_KEY="your_api_key_here"import { readFileSync } from "node:fs";
import { AILabClient } from "ailabtools";
const client = new AILabClient({
apiKey: process.env.AILAB_API_KEY!,
});
const result = await client.background.remove({
image: readFileSync("./photo.jpg"),
returnForm: "whiteBK",
});
console.log(result.data?.image_url);import os
import asyncio
from ailabtools import AILabClient
async def main():
client = AILabClient(api_key=os.environ["AILAB_API_KEY"])
with open("./photo.jpg", "rb") as image:
result = await client.background.remove({
"image": image,
"returnForm": "whiteBK",
})
print(result["data"]["image_url"])
await client.aclose()
asyncio.run(main())package main
import (
"context"
"fmt"
"os"
ailabtools "github.com/ailabtools/ailabtools-sdk/packages/go"
)
func main() {
client := ailabtools.NewClient(os.Getenv("AILAB_API_KEY"))
result, err := client.Background.Remove(context.Background(), ailabtools.CutoutUniversalBackgroundRemovalParams{
Image: ailabtools.FileFromPath("./photo.jpg"),
ReturnForm: "whiteBK",
})
if err != nil {
panic(err)
}
fmt.Println(result.Data.ImageURL)
}import 'dart:io';
import 'package:ailabtools/ailabtools.dart';
Future<void> main() async {
final client = AILabClient(
apiKey: Platform.environment['AILAB_API_KEY']!,
);
try {
final bytes = await File('./photo.jpg').readAsBytes();
final result = await client.background.remove(
CutoutUniversalBackgroundRemovalParams(
image: AILabFile.fromBytes(bytes, filename: 'photo.jpg'),
returnForm: 'whiteBK',
),
);
print(result.data?.imageUrl);
} finally {
client.close();
}
}<?php
require __DIR__ . '/vendor/autoload.php';
use AILabTools\AILabClient;
use AILabTools\Generated\Params\CutoutUniversalBackgroundRemovalParams;
use AILabTools\Http\FileInput;
$client = new AILabClient(apiKey: getenv('AILAB_API_KEY'));
$result = $client->background->remove(
new CutoutUniversalBackgroundRemovalParams(
image: FileInput::fromPath('./photo.jpg'),
returnForm: 'whiteBK',
),
);
echo $result->data?->imageUrl;require "ailabtools"
client = AILabTools::Client.new(api_key: ENV.fetch("AILAB_API_KEY"))
params = AILabTools::Generated::Params::CutoutUniversalBackgroundRemovalParams.new(
image: AILabTools::FileInput.from_path("./photo.jpg", content_type: "image/jpeg"),
return_form: "whiteBK"
)
result = client.background.remove(params)
puts result.data&.image_urluse ailabtools::{Client, FileInput, Result};
use ailabtools::generated::params::CutoutUniversalBackgroundRemovalParams;
#[tokio::main]
async fn main() -> Result<()> {
let client = Client::new(std::env::var("AILAB_API_KEY").unwrap())?;
let params = CutoutUniversalBackgroundRemovalParams {
image: FileInput::from_path("./photo.jpg", Some("image/jpeg"))?,
return_form: Some("whiteBK".to_string()),
};
let result = client.background.remove(params).await?;
println!("{:?}", result.data);
Ok(())
}import com.ailabtools.sdk.AILabClient;
import com.ailabtools.sdk.generated.params.CutoutUniversalBackgroundRemovalParams;
import com.ailabtools.sdk.http.FileInput;
import java.nio.file.Path;
AILabClient client = new AILabClient(System.getenv("AILAB_API_KEY"));
var result = client.background().remove(
CutoutUniversalBackgroundRemovalParams.builder()
.image(FileInput.fromPath(Path.of("./photo.jpg")))
.returnForm("whiteBK")
.build());
System.out.println(result.getData().getImageUrl());using AILabTools;
using AILabTools.Generated.Params;
using AILabTools.Http;
using var client = new AILabToolsClient(
Environment.GetEnvironmentVariable("AILAB_API_KEY")!);
var result = await client.Background.RemoveAsync(
new CutoutUniversalBackgroundRemovalParams
{
Image = FileInput.FromPath("./photo.jpg"),
ReturnForm = "whiteBK",
});
Console.WriteLine(result.Data?.ImageUrl);import AILabTools
let client = try AILabToolsClient(
apiKey: ProcessInfo.processInfo.environment["AILAB_API_KEY"]!
)
let result = try await client.background.remove(
CutoutUniversalBackgroundRemovalParams(
image: .fileURL(URL(fileURLWithPath: "./photo.jpg")),
returnForm: "whiteBK"
)
)
print(result.data?.imageUrl ?? "")
client.close()The SDKs use language-native property names and map them automatically to API field names. For example, upscaleFactor or UpscaleFactor maps to upscale_factor.
| Popular API | Typical use case | SDK method | Try online |
|---|---|---|---|
| Cartoon Yourself API | Create cartoon portraits and avatars from photos. | client.portrait.portraitCartoonYourself() |
Try Cartoon Yourself online |
| Change Facial Expressions API | Edit smiles, grins, sadness, and other facial expressions. | client.portrait.portraitExpressionEditing() |
Try Change Facial Expressions online |
| Hairstyle Changer Premium API | Preview preset hairstyles or transfer a hairstyle from a reference image. | client.portrait.portraitHairstyleEditingPremium() |
Try Hairstyle Changer online |
| Try on Clothes Premium API | Generate high-quality virtual clothing try-on results. | client.portrait.portraitTryOnClothesPremium() |
Try Virtual Clothes Try-On online |
| Skin Analyze Pro API | Analyze skin condition, texture, tone, acne, pores, and wrinkles. | client.portrait.portraitSkinAnalysisProfessional() |
Try AI Skin Analyzer online |
| Face Beauty Pro API | Apply advanced portrait beautification and face shaping. | client.portrait.portraitFacialBeautificationPro() |
Try Retouch Portraits online |
| AI Face Swap API | Swap a face into a target portrait while preserving the scene. | client.portrait.portraitAIFaceSwap() |
Try AI Face Swap online |
| AI Breast Expansion API | Apply a controlled bust-area adjustment to a portrait. | client.portrait.portraitAIBreastExpansion() |
Try AI Breast Expansion online |
Browse more demos in AILabTools AI Portrait Tools and AILabTools AI Image Tools.
View the complete AILabTools SDK API index.
Both full API method names and short aliases are supported. The full names map directly to the official API docs, while aliases are easier to use in application code.
| API | Full method | Alias |
|---|---|---|
| Universal Background Removal | client.cutout.cutoutUniversalBackgroundRemoval() |
client.background.remove() |
| Image Upscaler | client.image.imageLosslessEnlargement() |
client.image.upscale() |
| Remove Objects | client.image.imageRemoveObjects() |
client.image.removeObjects() / client.image.remove_objects() |
| Hairstyle Changer Pro | client.portrait.portraitHairstyleEditingPro() |
client.portrait.changeHairstyle() / client.portrait.change_hairstyle() |
| Smart Beauty | client.portrait.portraitIntelligentBeautification() |
client.portrait.retouch() |
View the complete method and alias reference.
Some APIs return task_id for long-running image generation or enhancement jobs. Use waitForTask to poll until the task succeeds, fails, or times out.
const task = await client.portrait.changeHairstyle({
taskType: "async",
image: readFileSync("./portrait.jpg"),
hairStyle: "BuzzCut",
color: "blonde",
});
const taskId = task.task_id || task.data?.task_id;
const result = await client.waitForTask(taskId!, {
intervalMs: 5000,
timeoutMs: 300000,
throwOnFailed: true,
});
console.log(result.data);Python async:
task = await client.portrait.change_hairstyle({
"taskType": "async",
"image": image,
"hairStyle": "BuzzCut",
"color": "blonde",
})
task_id = task.get("task_id") or task.get("data", {}).get("task_id")
result = await client.wait_for_task(task_id, interval=5, timeout=300)
print(result.get("data"))API errors throw AILabApiError, which includes troubleshooting fields such as requestId and logId.
try {
const result = await client.background.remove({
image: readFileSync("./photo.jpg"),
returnForm: "whiteBK",
});
console.log(result.data?.image_url);
} catch (error) {
console.error("AILabTools API Error:", error);
// Send request_id and log_id to support if you need help.
}- Get your AILabTools API key
- AILabTools API Documentation
- Node.js SDK on npm
- Python SDK on PyPI
- Go SDK on pkg.go.dev
- Dart and Flutter SDK on pub.dev
- PHP SDK on Packagist
- Ruby SDK source and RubyGems metadata:
packages/ruby - Rust SDK source and crates.io metadata:
packages/rust - Java SDK on Maven Central
- Kotlin/Android SDK source and Maven Central metadata:
packages/kotlin - C#/.NET SDK source and NuGet metadata:
packages/dotnet - Swift SDK source, SwiftPM manifest, and CocoaPods podspec:
packages/swift - All official SDK package links
- Complete method and alias reference
- Legacy API migration guide
- Security and data handling
- SDK best practices
- SDK API reference
- SDK examples
MIT