Generate content using gpt-image/1.5-image-to-image
curl --request POST \
--url https://api.kie.ai/api/v1/jobs/createTask \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-image/1.5-image-to-image",
"callBackUrl": "https://your-domain.com/api/callback",
"input": {
"input_urls": [
"https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp"
],
"prompt": "Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.",
"aspect_ratio": "3:2",
"quality": "medium"
}
}
'import requests
url = "https://api.kie.ai/api/v1/jobs/createTask"
payload = {
"model": "gpt-image/1.5-image-to-image",
"callBackUrl": "https://your-domain.com/api/callback",
"input": {
"input_urls": ["https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp"],
"prompt": "Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.",
"aspect_ratio": "3:2",
"quality": "medium"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'gpt-image/1.5-image-to-image',
callBackUrl: 'https://your-domain.com/api/callback',
input: {
input_urls: ['https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp'],
prompt: 'Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.',
aspect_ratio: '3:2',
quality: 'medium'
}
})
};
fetch('https://api.kie.ai/api/v1/jobs/createTask', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kie.ai/api/v1/jobs/createTask",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gpt-image/1.5-image-to-image',
'callBackUrl' => 'https://your-domain.com/api/callback',
'input' => [
'input_urls' => [
'https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp'
],
'prompt' => 'Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.',
'aspect_ratio' => '3:2',
'quality' => 'medium'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kie.ai/api/v1/jobs/createTask"
payload := strings.NewReader("{\n \"model\": \"gpt-image/1.5-image-to-image\",\n \"callBackUrl\": \"https://your-domain.com/api/callback\",\n \"input\": {\n \"input_urls\": [\n \"https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp\"\n ],\n \"prompt\": \"Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.\",\n \"aspect_ratio\": \"3:2\",\n \"quality\": \"medium\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kie.ai/api/v1/jobs/createTask")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-image/1.5-image-to-image\",\n \"callBackUrl\": \"https://your-domain.com/api/callback\",\n \"input\": {\n \"input_urls\": [\n \"https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp\"\n ],\n \"prompt\": \"Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.\",\n \"aspect_ratio\": \"3:2\",\n \"quality\": \"medium\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kie.ai/api/v1/jobs/createTask")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"gpt-image/1.5-image-to-image\",\n \"callBackUrl\": \"https://your-domain.com/api/callback\",\n \"input\": {\n \"input_urls\": [\n \"https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp\"\n ],\n \"prompt\": \"Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.\",\n \"aspect_ratio\": \"3:2\",\n \"quality\": \"medium\"\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"msg": "success",
"data": {
"taskId": "task_gpt-image_1765968156336"
}
}GPT Image
GPT Image 1.5 Image To Image
Generate images from input images using the GPT Image 1.5 Image To Image model
POST
/
api
/
v1
/
jobs
/
createTask
Generate content using gpt-image/1.5-image-to-image
curl --request POST \
--url https://api.kie.ai/api/v1/jobs/createTask \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-image/1.5-image-to-image",
"callBackUrl": "https://your-domain.com/api/callback",
"input": {
"input_urls": [
"https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp"
],
"prompt": "Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.",
"aspect_ratio": "3:2",
"quality": "medium"
}
}
'import requests
url = "https://api.kie.ai/api/v1/jobs/createTask"
payload = {
"model": "gpt-image/1.5-image-to-image",
"callBackUrl": "https://your-domain.com/api/callback",
"input": {
"input_urls": ["https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp"],
"prompt": "Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.",
"aspect_ratio": "3:2",
"quality": "medium"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'gpt-image/1.5-image-to-image',
callBackUrl: 'https://your-domain.com/api/callback',
input: {
input_urls: ['https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp'],
prompt: 'Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.',
aspect_ratio: '3:2',
quality: 'medium'
}
})
};
fetch('https://api.kie.ai/api/v1/jobs/createTask', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kie.ai/api/v1/jobs/createTask",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gpt-image/1.5-image-to-image',
'callBackUrl' => 'https://your-domain.com/api/callback',
'input' => [
'input_urls' => [
'https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp'
],
'prompt' => 'Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.',
'aspect_ratio' => '3:2',
'quality' => 'medium'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kie.ai/api/v1/jobs/createTask"
payload := strings.NewReader("{\n \"model\": \"gpt-image/1.5-image-to-image\",\n \"callBackUrl\": \"https://your-domain.com/api/callback\",\n \"input\": {\n \"input_urls\": [\n \"https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp\"\n ],\n \"prompt\": \"Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.\",\n \"aspect_ratio\": \"3:2\",\n \"quality\": \"medium\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kie.ai/api/v1/jobs/createTask")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-image/1.5-image-to-image\",\n \"callBackUrl\": \"https://your-domain.com/api/callback\",\n \"input\": {\n \"input_urls\": [\n \"https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp\"\n ],\n \"prompt\": \"Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.\",\n \"aspect_ratio\": \"3:2\",\n \"quality\": \"medium\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kie.ai/api/v1/jobs/createTask")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"gpt-image/1.5-image-to-image\",\n \"callBackUrl\": \"https://your-domain.com/api/callback\",\n \"input\": {\n \"input_urls\": [\n \"https://static.aiquickdraw.com/tools/example/1765962794374_GhtqB9oX.webp\"\n ],\n \"prompt\": \"Edit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.\",\n \"aspect_ratio\": \"3:2\",\n \"quality\": \"medium\"\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"msg": "success",
"data": {
"taskId": "task_gpt-image_1765968156336"
}
}Overview
Generate images from input images using the GPT Image 1.5 Image To Image model. This model allows you to edit or modify existing images with text prompts. The process consists of two steps: create a generation task and query task status and results.File Upload Requirements
Before using this API, you need to upload your image files:1
Upload Image
Use the File Upload API to upload your source image.
File Upload API
Learn how to upload images and get file URLs
2
Get File URL
After upload, you’ll receive a file URL that you can use in the
input_urls parameter.- Supported formats: JPEG, PNG, WebP
- Maximum file size: 10MB
- Maximum 16 input URLs per request
- Images should be appropriate and follow usage guidelines
Query Task Status
After submitting a task, use the unified query endpoint to check progress and retrieve results:Get Task Details
Learn how to query task status and retrieve generation results
For production use, we recommend using the
callBackUrl parameter to receive automatic notifications when generation completes, rather than polling the status endpoint.Related Resources
Market Overview
Explore all available models
Common API
Check credits and account usage
Authorizations
All APIs require authentication via Bearer Token.
Get API Key:
- Visit API Key Management Page to get your API Key
Usage: Add to request header: Authorization: Bearer YOUR_API_KEY
Note:
- Keep your API Key secure and do not share it with others
- If you suspect your API Key has been compromised, reset it immediately in the management page
Body
application/json
The model name to use for generation. Required field.
- Must be
gpt-image/1.5-image-to-imagefor this endpoint
Available options:
gpt-image/1.5-image-to-image Example:
"gpt-image/1.5-image-to-image"
The URL to receive generation task completion updates. Optional but recommended for production use.
- System will POST task status and results to this URL when generation completes
- Callback includes generated content URLs and task information
- Your callback endpoint should accept POST requests with JSON payload containing results
- Alternatively, use the Get Task Details endpoint to poll task status
- To ensure callback security, see Webhook Verification Guide for signature verification implementation
Example:
"https://your-domain.com/api/callback"
Input parameters for the generation task
Show child attributes
Show child attributes
Response
Request successful
Response status code
- 200: Success - Request has been processed successfully
- 401: Unauthorized - Authentication credentials are missing or invalid
- 402: Insufficient Credits - Account does not have enough credits to perform the operation
- 404: Not Found - The requested resource or endpoint does not exist
- 422: Validation Error - The request parameters failed validation checks
- 429: Rate Limited - Request limit has been exceeded for this resource
- 455: Service Unavailable - System is currently undergoing maintenance
- 500: Server Error - An unexpected error occurred while processing the request
- 501: Generation Failed - Content generation task failed
- 505: Feature Disabled - The requested feature is currently disabled
Available options:
200, 401, 402, 404, 422, 429, 455, 500, 501, 505 Response message, error description when failed
Example:
"success"
Show child attributes
Show child attributes
