Ming Image — Separação em camadas
curl --request POST \
--url https://api.novita.ai/v1/images/edits \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"model": {},
"image": {},
"prompt": "<string>",
"output_format": "<string>",
"response_format": "<string>",
"size": "<string>",
"watermark": true
}
'import requests
url = "https://api.novita.ai/v1/images/edits"
payload = {
"model": {},
"image": {},
"prompt": "<string>",
"output_format": "<string>",
"response_format": "<string>",
"size": "<string>",
"watermark": True
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
model: {},
image: {},
prompt: '<string>',
output_format: '<string>',
response_format: '<string>',
size: '<string>',
watermark: true
})
};
fetch('https://api.novita.ai/v1/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.novita.ai/v1/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 => json_encode([
'model' => [
],
'image' => [
],
'prompt' => '<string>',
'output_format' => '<string>',
'response_format' => '<string>',
'size' => '<string>',
'watermark' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$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.novita.ai/v1/images/edits"
payload := strings.NewReader("{\n \"model\": {},\n \"image\": {},\n \"prompt\": \"<string>\",\n \"output_format\": \"<string>\",\n \"response_format\": \"<string>\",\n \"size\": \"<string>\",\n \"watermark\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
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.novita.ai/v1/images/edits")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"model\": {},\n \"image\": {},\n \"prompt\": \"<string>\",\n \"output_format\": \"<string>\",\n \"response_format\": \"<string>\",\n \"size\": \"<string>\",\n \"watermark\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novita.ai/v1/images/edits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"model\": {},\n \"image\": {},\n \"prompt\": \"<string>\",\n \"output_format\": \"<string>\",\n \"response_format\": \"<string>\",\n \"size\": \"<string>\",\n \"watermark\": true\n}"
response = http.request(request)
puts response.read_body{
"created": 123,
"data": [
{
"b64_json": "<string>",
"data[0].revised_prompt": "<string>"
}
],
"output_format": "<string>",
"size": "<string>",
"usage": {
"input_tokens": 123,
"input_tokens_details": {
"image_tokens": 123,
"text_tokens": 123
},
"output_tokens": 123,
"total_tokens": 123
},
"model": "<string>",
"id": "<string>"
}Image Editor
Ming Image — Separação em camadas
POST
/
v1
/
images
/
edits
Ming Image — Separação em camadas
curl --request POST \
--url https://api.novita.ai/v1/images/edits \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"model": {},
"image": {},
"prompt": "<string>",
"output_format": "<string>",
"response_format": "<string>",
"size": "<string>",
"watermark": true
}
'import requests
url = "https://api.novita.ai/v1/images/edits"
payload = {
"model": {},
"image": {},
"prompt": "<string>",
"output_format": "<string>",
"response_format": "<string>",
"size": "<string>",
"watermark": True
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
model: {},
image: {},
prompt: '<string>',
output_format: '<string>',
response_format: '<string>',
size: '<string>',
watermark: true
})
};
fetch('https://api.novita.ai/v1/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.novita.ai/v1/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 => json_encode([
'model' => [
],
'image' => [
],
'prompt' => '<string>',
'output_format' => '<string>',
'response_format' => '<string>',
'size' => '<string>',
'watermark' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$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.novita.ai/v1/images/edits"
payload := strings.NewReader("{\n \"model\": {},\n \"image\": {},\n \"prompt\": \"<string>\",\n \"output_format\": \"<string>\",\n \"response_format\": \"<string>\",\n \"size\": \"<string>\",\n \"watermark\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
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.novita.ai/v1/images/edits")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"model\": {},\n \"image\": {},\n \"prompt\": \"<string>\",\n \"output_format\": \"<string>\",\n \"response_format\": \"<string>\",\n \"size\": \"<string>\",\n \"watermark\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novita.ai/v1/images/edits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"model\": {},\n \"image\": {},\n \"prompt\": \"<string>\",\n \"output_format\": \"<string>\",\n \"response_format\": \"<string>\",\n \"size\": \"<string>\",\n \"watermark\": true\n}"
response = http.request(request)
puts response.read_body{
"created": 123,
"data": [
{
"b64_json": "<string>",
"data[0].revised_prompt": "<string>"
}
],
"output_format": "<string>",
"size": "<string>",
"usage": {
"input_tokens": 123,
"input_tokens_details": {
"image_tokens": 123,
"text_tokens": 123
},
"output_tokens": 123,
"total_tokens": 123
},
"model": "<string>",
"id": "<string>"
}ming-image-0.1-design-layer permite apenas a separação em camadas, usando o protocolo de edição de imagens da OpenAI.
Cabeçalhos da requisição
string
obrigatório
Aceita:
multipart/form-datastring
obrigatório
Formato de autenticação Bearer, por exemplo: Bearer {{API Key}}.
Corpo da requisição
enum
obrigatório
Nome do modelo. Valores disponíveis:
ming-image-0.1-design-layerFiles
obrigatório
Imagem de entrada: 1 imagem. No formulário, o campo é
image[].ming-image-0.1-design-layer aceita apenas 1 imagem de entrada.string
obrigatório
Descrição textual da imagem.
string
padrão:"png"
Formato da imagem de saída. Deve ser
png ou webp.string
padrão:"b64_json"
Formato em que a imagem é retornada; o padrão é
b64_json. Valores disponíveis: url, b64_json. Observação: url é válido por 24 horas.string
padrão:"auto"
Tamanho da imagem de saída. O valor padrão
auto seleciona o tamanho automaticamente com base no modelo. Formato: "{w}x{h}", por exemplo, "1024x1024".boolean
padrão:false
Controla se uma marca d’água é adicionada à imagem gerada por IA.
true: ativa a marca d’água visível e a marca d’água digital implícita nas imagens geradas por IA, em conformidade com os requisitos das políticas. false: desativa todas as marcas d’água.Resposta
integer
obrigatório
Timestamp Unix (em segundos) do momento em que a resposta foi criada.
array
obrigatório
Array de imagens retornadas que contém várias camadas (por exemplo, camada de primeiro plano, camada de fundo etc.), com um elemento por camada.
Mostrar propriedades
Mostrar propriedades
string
Dados da imagem da camada codificados em base64.
string
String JSON que descreve a estrutura das camadas, indicando o tamanho da tela e as informações de cada região.
string
obrigatório
Formato da imagem de saída (as camadas são sempre retornadas em png).
string
nullobject
obrigatório
Estatísticas de uso de tokens.
Mostrar propriedades
Mostrar propriedades
integer
Total de tokens de entrada (incluindo os tokens da imagem enviada).
object
integer
Total de tokens de saída (a soma de várias camadas, por exemplo, 3 camadas × 4096 = 12288).
integer
Soma dos tokens de entrada e saída.
string
obrigatório
Nome do modelo que efetivamente processou a requisição.
string
obrigatório
Identificador único desta requisição.
Exemplo
Requisição:
curl --location --request POST 'https://api.novita.ai/v1/images/edits' \
--header 'Authorization: Bearer {{API Key}}' \
--form 'model="ming-image-0.1-design-layer"' \
--form 'prompt="Split into three layers"' \
--form 'image[]=@"{The Path of Your Image File}"' \
--form 'size="1024x1024"'
Resposta:
{
"created": 1789642431,
"data": [
{
"b64_json": "...",
"revised_prompt": "{\"canvas\": [1024, 1024], \"regions\": [{\"category\": \"Image\", \"bbox\": [1.4, 3.3, 1023.0, 1022.0]}, {\"category\": \"BackgroundImage\", \"bbox\": [1.4, 3.3, 1023.0, 1022.0]}]}"
},
{
"b64_json": "..."
},
{
"b64_json": "..."
}
],
"output_format": "png",
"size": null,
"usage": {
"input_tokens": 4096,
"input_tokens_details": {
"image_tokens": 4096,
"text_tokens": 0
},
"output_tokens": 12288,
"total_tokens": 16384
},
"model": "Ming-Image-0.1-Design-Layer-StressTest",
"id": "218edba617896423893976485e4f35"
}
Última modificação em 21 de setembro de 2026