Apiframe API Documentation
  • Get Started
  • My Account
    • Image credits
    • Generation modes
    • Delete My Account
  • Clients
    • Node.js Library
    • Python Client
    • Go Client
  • MEDIA UPLOAD APIS
    • Upload Image
    • Upload Audio
  • MIDJOURNEY
    • Authentication
    • Imagine
    • Reroll
    • Upscales
      • Upscale 1x
      • Upscale: Creative and Subtle
      • Upscale: 2x and 4x
    • Variations
    • Faceswap
    • Inpaint (Vary Region)
    • Outpaint (Zoom Out)
    • Pan
    • Shorten
    • Describe
    • Blend
    • Seed
    • Fetch
    • Fetch Many
    • Account Info
    • Statuses
    • Postman Collection
  • AI Photos
    • Upload and Prepare
    • Train
    • Generate
    • Best Input Images
  • IDEOGRAM
    • Imagine
    • Remix
    • Upscale
    • Describe
  • FLUX
    • Imagine
  • LUMA AI API
    • IMAGINE
    • EXTEND
  • SUNO AI API
    • IMAGINE
    • UPLOAD
    • EXTEND
    • LYRICS
  • UDIO AI API
    • IMAGINE
  • RUNWAY ML API
    • IMAGINE
  • KLING AI API
    • IMAGINE
    • VIRTUAL TRY ON
  • SORA AI API
  • Webhooks
  • MJ Banned Words
  • Help Me With Integration
  • FAQ
Powered by GitBook
On this page

Was this helpful?

  1. AI Photos

Upload and Prepare

Upload 10 to 30 images of the subject and prepare them for AI training.

PreviousAI PhotosNextTrain

Last updated 2 months ago

Was this helpful?

POST https://api.apiframe.pro/ai-photo-upload

Headers

Name
Value

Content-Type

application/json

Authorization*

Your APIFRAME API Key

Body

Name
Type
Description

images*

[string]

ethnicity*

string

Subject ethnicity, one of 'asian', 'black', 'latino', 'middle eastern', 'native american', 'pacific islander', or 'white'

gender*

string

Subject gender, one of 'female' or 'male'

age

integer

The age of the subject

webhook_url

string

The final result and updates of this task will be posted at this URL.

webhook_secret

string

Will be passed as x-webhook-secret in the webhook call headers for authentication.

Response

// Success, the task has been submitted
{
  "task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a"
}
// Bad request
{
  "errors": [{ msg: "Invalid request" }]
}
// Invalid API Key
{}
// A server error occured
{}

This endpoint doesn't generate results instantly, you can use the endpoint to fetch the result or use .

{
    "task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a",
    "status": "finished",
    "message": "Images ready for training",
    "expires_at": "2025-02-21T05:48:46.599Z"
}

If the job is not completed, you will get a result like this:

{
   "status": "processing",
   "message": 'Training images are being processed'
}

Code samples

const axios = require('axios');
const data = JSON.stringify({
  "images": [],
  "ethnicity": "asian",
  "gender": "female",
  "webhook_url": "https://........",
  "webhook_secret": "abc123"
});

const config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api.apiframe.pro/ai-photo-upload',
  headers: { 
    'Content-Type': 'application/json', 
    'Authorization': 'YOUR_API_KEY'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});
import requests
import json

url = "https://api.apiframe.pro/ai-photo-upload"

payload = json.dumps({
  "images": [],
  "ethnicity": "asian",
  "gender": "female",
  "webhook_url": "https://........",
  "webhook_secret": "abc123"
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'YOUR_API_KEY'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.apiframe.pro/ai-photo-upload',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "images": [],
    "ethnicity": "asian",
    "gender": "female",
    "webhook_url": "https://........",
    "webhook_secret": "abc123"
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'Authorization: YOUR_API_KEY'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n    \"images\": \[ \],\r\n   \"ethnicity\": \"asian\",\r\n  \"gender\": \"female\",\r\n    \"webhook_url\": \"https://........\",\r\n    \"webhook_secret\": \"abc123\"\r\n}");
Request request = new Request.Builder()
  .url("https://api.apiframe.pro/ai-photo-upload")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "YOUR_API_KEY")
  .build();
Response response = client.newCall(request).execute();
var headers = {
  'Content-Type': 'application/json',
  'Authorization': 'YOUR_API_KEY'
};
var data = json.encode({
  "images": [],
  "ethnicity": "asian",
  "gender": "female",
  "webhook_url": "https://........",
  "webhook_secret": "abc123"
});
var dio = Dio();
var response = await dio.request(
  'https://api.apiframe.pro/ai-photo-upload',
  options: Options(
    method: 'POST',
    headers: headers,
  ),
  data: data,
);

if (response.statusCode == 200) {
  print(json.encode(response.data));
}
else {
  print(response.statusMessage);
}
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.apiframe.pro/ai-photo-upload");
request.Headers.Add("Authorization", "YOUR_API_KEY");
var content = new StringContent("{\r\n  \"images\": \[ \],\r\n   \"ethnicity\": \"asian\",\r\n  \"gender\": \"female\",\r\n    \"webhook_url\": \"https://........\",\r\n    \"webhook_secret\": \"abc123\"\r\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
require "uri"
require "json"
require "net/http"

url = URI("https://api.apiframe.pro/ai-photo-upload")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "YOUR_API_KEY"
request.body = JSON.dump({
  "images": [],
  "ethnicity": "asian",
  "gender": "female",
  "webhook_url": "https://........",
  "webhook_secret": "abc123"
})

response = https.request(request)
puts response.read_body

Base64 of 10 to 30 images, to use for AI training. Take a look .

The result (posted to the webhook_url or retrieved with the endpoint) looks like this:

Fetch
webhooks
Fetch
here for best input images