Ming Image — Separación en capas
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 — Separación en capas
POST
/
v1
/
images
/
edits
Ming Image — Separación en capas
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 solo permite la separación en capas mediante el protocolo de edición de imágenes de OpenAI.
Encabezados de la solicitud
string
requerido
Admite:
multipart/form-datastring
requerido
Formato de autenticación Bearer, por ejemplo: Bearer {{API Key}}.
Cuerpo de la solicitud
enum
requerido
Nombre del modelo. Valores disponibles:
ming-image-0.1-design-layerFiles
requerido
Imagen de entrada: 1 imagen. En el formulario se utiliza
image[].ming-image-0.1-design-layer solo admite 1 imagen de entrada.string
requerido
Descripción textual de la imagen.
string
predeterminado:"png"
Formato de la imagen de salida. Debe ser
png o webp.string
predeterminado:"b64_json"
Formato en el que se devuelve la imagen; el valor predeterminado es
b64_json. Valores disponibles: url, b64_json. Nota: url tiene una validez de 24 horas.string
predeterminado:"auto"
Tamaño de la imagen de salida. El valor predeterminado
auto lo selecciona automáticamente según el modelo. Formato: "{w}x{h}", por ejemplo, "1024x1024".boolean
predeterminado:false
Controla si se añade una marca de agua a la imagen generada por IA.
true: activa la marca de agua visible y la marca de agua digital implícita en las imágenes generadas por IA, conforme a los requisitos de las políticas. false: desactiva todas las marcas de agua.Respuesta
integer
requerido
Marca de tiempo Unix (en segundos) del momento en que se creó la respuesta.
array
requerido
Array de imágenes devueltas que contiene varias capas (por ejemplo, una capa de primer plano, una capa de fondo, etc.), con un elemento por capa.
Mostrar propiedades
Mostrar propiedades
string
Datos de la imagen de la capa codificados en base64.
string
Cadena JSON que describe la estructura de las capas e indica el tamaño del lienzo y la información de cada región.
string
requerido
Formato de la imagen de salida (las capas siempre se devuelven en formato png).
string
nullobject
requerido
Estadísticas de uso de tokens.
Mostrar propiedades
Mostrar propiedades
integer
Total de tokens de entrada (incluidos los tokens de la imagen subida).
object
integer
Total de tokens de salida (la suma de todas las capas, por ejemplo, 3 capas × 4096 = 12288).
integer
Suma de los tokens de entrada y salida.
string
requerido
Nombre del modelo que procesó realmente la solicitud.
string
requerido
Identificador único de esta solicitud.
Ejemplo
Solicitud:
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"'
Respuesta:
{
"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 modificación el 21 de septiembre de 2026