curl --request POST \
--url https://api.deapi.ai/api/v2/images/edits \
--header 'Accept: <accept>' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'prompt=A beautiful sunset over mountains' \
--form model=QwenImageEdit_Plus_NF4 \
--form steps=20 \
--form seed=42 \
--form 'negative_prompt=blur, darkness, noise' \
--form image='@example-file' \
--form 'images[]=<string>' \
--form width=512 \
--form height=512 \
--form 'loras={
"name": "style_lora",
"weight": 0.75
}' \
--form guidance=7.5 \
--form quality=medium \
--form webhook_url=https://your-server.com/webhooks/deapi \
--form webhook_secret=a1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5 \
--form images[].items='@example-file'import requests
url = "https://api.deapi.ai/api/v2/images/edits"
files = {
"image": ("example-file", open("example-file", "rb")),
"images[].items": ("example-file", open("example-file", "rb"))
}
payload = {
"prompt": "A beautiful sunset over mountains",
"model": "QwenImageEdit_Plus_NF4",
"steps": "20",
"seed": "42",
"negative_prompt": "blur, darkness, noise",
"images[]": "<string>",
"width": "512",
"height": "512",
"loras": "{
\"name\": \"style_lora\",
\"weight\": 0.75
}",
"guidance": "7.5",
"quality": "medium",
"webhook_url": "https://your-server.com/webhooks/deapi",
"webhook_secret": "a1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5"
}
headers = {
"Accept": "<accept>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('prompt', 'A beautiful sunset over mountains');
form.append('model', 'QwenImageEdit_Plus_NF4');
form.append('steps', '20');
form.append('seed', '42');
form.append('negative_prompt', 'blur, darkness, noise');
form.append('image', '<string>');
form.append('images[]', '<string>');
form.append('width', '512');
form.append('height', '512');
form.append('loras', '{
"name": "style_lora",
"weight": 0.75
}');
form.append('guidance', '7.5');
form.append('quality', 'medium');
form.append('webhook_url', 'https://your-server.com/webhooks/deapi');
form.append('webhook_secret', 'a1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5');
form.append('images[].items', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Accept: '<accept>', Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.deapi.ai/api/v2/images/edits', 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.deapi.ai/api/v2/images/edits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nA beautiful sunset over mountains\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nQwenImageEdit_Plus_NF4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"steps\"\r\n\r\n20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n42\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"negative_prompt\"\r\n\r\nblur, darkness, noise\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images%5B%5D\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"width\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"height\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"loras\"\r\n\r\n{\r\n \"name\": \"style_lora\",\r\n \"weight\": 0.75\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance\"\r\n\r\n7.5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality\"\r\n\r\nmedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_secret\"\r\n\r\na1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images[].items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Accept: <accept>",
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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.deapi.ai/api/v2/images/edits"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nA beautiful sunset over mountains\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nQwenImageEdit_Plus_NF4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"steps\"\r\n\r\n20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n42\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"negative_prompt\"\r\n\r\nblur, darkness, noise\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images%5B%5D\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"width\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"height\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"loras\"\r\n\r\n{\r\n \"name\": \"style_lora\",\r\n \"weight\": 0.75\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance\"\r\n\r\n7.5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality\"\r\n\r\nmedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_secret\"\r\n\r\na1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images[].items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Accept", "<accept>")
req.Header.Add("Authorization", "Bearer <token>")
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.deapi.ai/api/v2/images/edits")
.header("Accept", "<accept>")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nA beautiful sunset over mountains\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nQwenImageEdit_Plus_NF4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"steps\"\r\n\r\n20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n42\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"negative_prompt\"\r\n\r\nblur, darkness, noise\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images%5B%5D\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"width\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"height\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"loras\"\r\n\r\n{\r\n \"name\": \"style_lora\",\r\n \"weight\": 0.75\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance\"\r\n\r\n7.5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality\"\r\n\r\nmedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_secret\"\r\n\r\na1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images[].items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deapi.ai/api/v2/images/edits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Accept"] = '<accept>'
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nA beautiful sunset over mountains\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nQwenImageEdit_Plus_NF4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"steps\"\r\n\r\n20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n42\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"negative_prompt\"\r\n\r\nblur, darkness, noise\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images%5B%5D\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"width\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"height\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"loras\"\r\n\r\n{\r\n \"name\": \"style_lora\",\r\n \"weight\": 0.75\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance\"\r\n\r\n7.5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality\"\r\n\r\nmedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_secret\"\r\n\r\na1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images[].items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"data": {
"request_id": "c08a339c-73e5-4d67-a4d5-231302fbff9a"
}
}{
"data": {},
"message": "<string>",
"errors": [
"<unknown>"
],
"statusCode": 123
}{
"data": {},
"message": "<string>",
"errors": [
"<unknown>"
],
"statusCode": 123
}{
"message": "The selected model does not support Text To Image.",
"errors": {
"model": [
"The selected model does not support Text To Image."
]
}
}{
"message": "Too Many Attempts."
}Image Edit
Edit an image guided by a text prompt. Accepts either a single image via “image” or multiple images via “images[]” (mutually exclusive).
curl --request POST \
--url https://api.deapi.ai/api/v2/images/edits \
--header 'Accept: <accept>' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'prompt=A beautiful sunset over mountains' \
--form model=QwenImageEdit_Plus_NF4 \
--form steps=20 \
--form seed=42 \
--form 'negative_prompt=blur, darkness, noise' \
--form image='@example-file' \
--form 'images[]=<string>' \
--form width=512 \
--form height=512 \
--form 'loras={
"name": "style_lora",
"weight": 0.75
}' \
--form guidance=7.5 \
--form quality=medium \
--form webhook_url=https://your-server.com/webhooks/deapi \
--form webhook_secret=a1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5 \
--form images[].items='@example-file'import requests
url = "https://api.deapi.ai/api/v2/images/edits"
files = {
"image": ("example-file", open("example-file", "rb")),
"images[].items": ("example-file", open("example-file", "rb"))
}
payload = {
"prompt": "A beautiful sunset over mountains",
"model": "QwenImageEdit_Plus_NF4",
"steps": "20",
"seed": "42",
"negative_prompt": "blur, darkness, noise",
"images[]": "<string>",
"width": "512",
"height": "512",
"loras": "{
\"name\": \"style_lora\",
\"weight\": 0.75
}",
"guidance": "7.5",
"quality": "medium",
"webhook_url": "https://your-server.com/webhooks/deapi",
"webhook_secret": "a1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5"
}
headers = {
"Accept": "<accept>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('prompt', 'A beautiful sunset over mountains');
form.append('model', 'QwenImageEdit_Plus_NF4');
form.append('steps', '20');
form.append('seed', '42');
form.append('negative_prompt', 'blur, darkness, noise');
form.append('image', '<string>');
form.append('images[]', '<string>');
form.append('width', '512');
form.append('height', '512');
form.append('loras', '{
"name": "style_lora",
"weight": 0.75
}');
form.append('guidance', '7.5');
form.append('quality', 'medium');
form.append('webhook_url', 'https://your-server.com/webhooks/deapi');
form.append('webhook_secret', 'a1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5');
form.append('images[].items', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Accept: '<accept>', Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.deapi.ai/api/v2/images/edits', 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.deapi.ai/api/v2/images/edits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nA beautiful sunset over mountains\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nQwenImageEdit_Plus_NF4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"steps\"\r\n\r\n20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n42\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"negative_prompt\"\r\n\r\nblur, darkness, noise\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images%5B%5D\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"width\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"height\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"loras\"\r\n\r\n{\r\n \"name\": \"style_lora\",\r\n \"weight\": 0.75\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance\"\r\n\r\n7.5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality\"\r\n\r\nmedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_secret\"\r\n\r\na1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images[].items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Accept: <accept>",
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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.deapi.ai/api/v2/images/edits"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nA beautiful sunset over mountains\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nQwenImageEdit_Plus_NF4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"steps\"\r\n\r\n20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n42\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"negative_prompt\"\r\n\r\nblur, darkness, noise\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images%5B%5D\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"width\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"height\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"loras\"\r\n\r\n{\r\n \"name\": \"style_lora\",\r\n \"weight\": 0.75\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance\"\r\n\r\n7.5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality\"\r\n\r\nmedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_secret\"\r\n\r\na1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images[].items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Accept", "<accept>")
req.Header.Add("Authorization", "Bearer <token>")
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.deapi.ai/api/v2/images/edits")
.header("Accept", "<accept>")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nA beautiful sunset over mountains\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nQwenImageEdit_Plus_NF4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"steps\"\r\n\r\n20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n42\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"negative_prompt\"\r\n\r\nblur, darkness, noise\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images%5B%5D\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"width\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"height\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"loras\"\r\n\r\n{\r\n \"name\": \"style_lora\",\r\n \"weight\": 0.75\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance\"\r\n\r\n7.5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality\"\r\n\r\nmedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_secret\"\r\n\r\na1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images[].items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deapi.ai/api/v2/images/edits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Accept"] = '<accept>'
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nA beautiful sunset over mountains\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nQwenImageEdit_Plus_NF4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"steps\"\r\n\r\n20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n42\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"negative_prompt\"\r\n\r\nblur, darkness, noise\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images%5B%5D\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"width\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"height\"\r\n\r\n512\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"loras\"\r\n\r\n{\r\n \"name\": \"style_lora\",\r\n \"weight\": 0.75\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance\"\r\n\r\n7.5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality\"\r\n\r\nmedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_secret\"\r\n\r\na1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images[].items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"data": {
"request_id": "c08a339c-73e5-4d67-a4d5-231302fbff9a"
}
}{
"data": {},
"message": "<string>",
"errors": [
"<unknown>"
],
"statusCode": 123
}{
"data": {},
"message": "<string>",
"errors": [
"<unknown>"
],
"statusCode": 123
}{
"message": "The selected model does not support Text To Image.",
"errors": {
"model": [
"The selected model does not support Text To Image."
]
}
}{
"message": "Too Many Attempts."
}request_id for status polling.
slug and check specific limits.POST /v1/images/edits at https://oai.deapi.ai/v1. Inpainting (mask parameter) is not supported. See OpenAI Compatibility.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
application/json Body
Image generation parameters. Either "image" or "images[]" must be provided (not both).
The main prompt for image generation
"A beautiful sunset over mountains"
The model to use for image editing. Available models can be retrieved via the GET /api/v1/client/models endpoint.
"QwenImageEdit_Plus_NF4"
Number of inference steps
20
Random seed for generation
42
Elements to avoid in the generated image
"blur, darkness, noise"
Single source image to edit. Required if "images[]" is not provided. Mutually exclusive with "images[]". Supported formats: JPG, JPEG, PNG, GIF, BMP, WebP. Maximum file size: 10 MB.
Multiple source images for editing. Maximum count is model-dependent (see model specs max_input_images, defaults to 1). Required if "image" is not provided. Mutually exclusive with "image". Supported formats: JPG, JPEG, PNG, GIF, BMP, WebP. Maximum file size per image: 10 MB.
Output image width in pixels. Optional - defaults to first input image width if not specified. Subject to model-specific min/max limits.
512
Output image height in pixels. Optional - defaults to first input image height if not specified. Subject to model-specific min/max limits.
512
Array of LoRA models to apply
Show child attributes
Show child attributes
Guidance scale for the generation
7.5
Quality tier, for models that support one (e.g. gpt-image: low/medium/high/auto). Only the values listed in that model's available options are accepted; ignored for models without a quality tier.
"medium"
Optional HTTPS URL to receive webhook notifications for job status changes (processing, completed, failed). Must be HTTPS. Max 2048 characters. See Webhook Documentation for payload structure and authentication details.
2048"https://your-server.com/webhooks/deapi"
Optional per-request HMAC secret (min. 32 chars) used to sign the webhook callback. When present, overrides the account-default webhook secret. Requires webhook_url to also be set.
32 - 255"a1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5"
Response
ID of the inference request.
Information from success endpoint
Show child attributes
Show child attributes
Was this page helpful?