Interfaz mj-v8.1-remove-bg
curl --request POST \
--url https://api.evolink.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "mj-v8.1-remove-bg",
"image_urls": [
"https://example.com/photo.jpg"
]
}
'import requests
url = "https://api.evolink.ai/v1/images/generations"
payload = {
"model": "mj-v8.1-remove-bg",
"image_urls": ["https://example.com/photo.jpg"]
}
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: 'mj-v8.1-remove-bg', image_urls: ['https://example.com/photo.jpg']})
};
fetch('https://api.evolink.ai/v1/images/generations', 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.evolink.ai/v1/images/generations",
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' => 'mj-v8.1-remove-bg',
'image_urls' => [
'https://example.com/photo.jpg'
]
]),
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.evolink.ai/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"mj-v8.1-remove-bg\",\n \"image_urls\": [\n \"https://example.com/photo.jpg\"\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.evolink.ai/v1/images/generations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"mj-v8.1-remove-bg\",\n \"image_urls\": [\n \"https://example.com/photo.jpg\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.evolink.ai/v1/images/generations")
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\": \"mj-v8.1-remove-bg\",\n \"image_urls\": [\n \"https://example.com/photo.jpg\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"created": 1757165031,
"id": "task-unified-1757165031-mjv81",
"model": "<string>",
"object": "image.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 45
},
"type": "image",
"usage": {
"billing_rule": "per_call",
"credits_reserved": 1.8,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: mj-v8.1-remove-bg",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}Midjourney V8.1
Midjourney V8.1 Eliminar fondo
- Eliminar automáticamente el fondo de la imagen, generando una imagen con fondo transparente
- El modelo más simple, solo necesita una imagen
- No depende de tarea fuente, pasa directamente la URL de imagen
- No admite los parámetros prompt, speed u otros
- Modo de procesamiento asíncrono, use el ID de la tarea devuelto para consultar
POST
/
v1
/
images
/
generations
Interfaz mj-v8.1-remove-bg
curl --request POST \
--url https://api.evolink.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "mj-v8.1-remove-bg",
"image_urls": [
"https://example.com/photo.jpg"
]
}
'import requests
url = "https://api.evolink.ai/v1/images/generations"
payload = {
"model": "mj-v8.1-remove-bg",
"image_urls": ["https://example.com/photo.jpg"]
}
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: 'mj-v8.1-remove-bg', image_urls: ['https://example.com/photo.jpg']})
};
fetch('https://api.evolink.ai/v1/images/generations', 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.evolink.ai/v1/images/generations",
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' => 'mj-v8.1-remove-bg',
'image_urls' => [
'https://example.com/photo.jpg'
]
]),
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.evolink.ai/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"mj-v8.1-remove-bg\",\n \"image_urls\": [\n \"https://example.com/photo.jpg\"\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.evolink.ai/v1/images/generations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"mj-v8.1-remove-bg\",\n \"image_urls\": [\n \"https://example.com/photo.jpg\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.evolink.ai/v1/images/generations")
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\": \"mj-v8.1-remove-bg\",\n \"image_urls\": [\n \"https://example.com/photo.jpg\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"created": 1757165031,
"id": "task-unified-1757165031-mjv81",
"model": "<string>",
"object": "image.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 45
},
"type": "image",
"usage": {
"billing_rule": "per_call",
"credits_reserved": 1.8,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: mj-v8.1-remove-bg",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}Midjourney cuenta con un sistema de moderación de contenido integrado. Si algunas imágenes generadas son filtradas por la moderación, los créditos consumidos en esa solicitud no serán reembolsados. Asegúrese de que sus prompts cumplan con las directrices de contenido.
Autorizaciones
Todas las interfaces requieren autenticación con Bearer Token
Obtener API Key:
Visite la página de gestión de API Key para obtener su API Key
Agregue lo siguiente al encabezado de la solicitud:
Authorization: Bearer YOUR_API_KEY
Cuerpo
application/json
Nombre del modelo
Opciones disponibles:
mj-v8.1-remove-bg Ejemplo:
"mj-v8.1-remove-bg"
URL de imagen de entrada (se usa la primera)
Formatos soportados: .png, .gif, .webp, .jpg, .jpeg
Maximum array length:
1Ejemplo:
["https://example.com/photo.jpg"]
Dirección de callback HTTPS después de completar la tarea
Momento del callback:
- Se activa cuando la tarea se completa (completed), falla (failed) o se cancela (cancelled)
- Se envía después de confirmar la facturación
Restricciones de seguridad:
- Solo se admite el protocolo HTTPS
- Se prohíbe el callback a direcciones IP de red interna (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
- La longitud de la URL no debe exceder
2048caracteres
Mecanismo de callback:
- Tiempo de espera:
10segundos - Máximo
3reintentos después de fallar (a los1s/2s/4s respectivamente) - El formato de respuesta del callback es consistente con el de la interfaz de consulta de tareas
- Si la dirección de callback devuelve un código 2xx se considera exitoso, otros códigos activan reintentos
Ejemplo:
"https://your-domain.com/webhooks/image-task-completed"
Respuesta
Tarea de generación de imágenes creada exitosamente
Marca de tiempo de creación de la tarea
Ejemplo:
1757165031
ID de la tarea
Ejemplo:
"task-unified-1757165031-mjv81"
Nombre del modelo utilizado
Tipo de tarea
Opciones disponibles:
image.generation.task Porcentaje de progreso (0-100)
Rango requerido:
0 <= x <= 100Ejemplo:
0
Estado de la tarea
Opciones disponibles:
pending, processing, completed, failed Ejemplo:
"pending"
Show child attributes
Show child attributes
Opciones disponibles:
text, image, audio, video Ejemplo:
"image"
Show child attributes
Show child attributes