Ming Image — Séparation en calques
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 — Séparation en calques
POST
/
v1
/
images
/
edits
Ming Image — Séparation en calques
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 prend uniquement en charge la séparation en calques à l’aide du protocole de modification d’images d’OpenAI.
En-têtes de la requête
string
requis
Format pris en charge :
multipart/form-datastring
requis
Format d’authentification Bearer, par exemple : Bearer {{API Key}}.
Corps de la requête
enum
requis
Nom du modèle. Valeurs disponibles :
ming-image-0.1-design-layerFiles
requis
Image d’entrée : 1 image. Le champ du formulaire est
image[].ming-image-0.1-design-layer n’accepte qu’une seule image en entrée.string
requis
Description textuelle de l’image.
string
défaut:"png"
Format de l’image de sortie. Doit être
png ou webp.string
défaut:"b64_json"
Format dans lequel l’image est renvoyée ; la valeur par défaut est
b64_json. Valeurs disponibles : url, b64_json. Remarque : url est valide pendant 24 heures.string
défaut:"auto"
Taille de l’image de sortie. La valeur par défaut
auto sélectionne automatiquement la taille selon le modèle. Format : "{w}x{h}", par exemple "1024x1024".boolean
défaut:false
Détermine si un filigrane est ajouté à l’image générée par IA.
true : active le filigrane visible et le filigrane numérique implicite sur les images générées par IA, conformément aux exigences des politiques applicables. false : désactive tous les filigranes.Réponse
integer
requis
Horodatage Unix (en secondes) de la création de la réponse.
array
requis
Tableau des images renvoyées, contenant plusieurs calques (par exemple, un calque de premier plan, un calque d’arrière-plan, etc.), avec un élément par calque.
Afficher propriétés
Afficher propriétés
string
Données de l’image du calque encodées en base64.
string
Chaîne JSON décrivant la structure des calques, avec la taille du canevas et les informations de chaque région.
string
requis
Format de l’image de sortie (les calques sont toujours renvoyés au format png).
string
nullobject
requis
Statistiques d’utilisation des tokens.
Afficher propriétés
Afficher propriétés
integer
Nombre total de tokens d’entrée (y compris les tokens de l’image importée).
object
integer
Nombre total de tokens de sortie (somme sur plusieurs calques, par exemple 3 calques × 4096 = 12288).
integer
Somme des tokens d’entrée et de sortie.
string
requis
Nom du modèle qui a effectivement traité la requête.
string
requis
Identifiant unique de cette requête.
Exemple
Requête :
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"'
Réponse :
{
"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"
}
Dernière modification le 21 septembre 2026