curl --request POST \
--url https://api.evolink.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-image-1.5",
"prompt": "A beautiful colorful sunset over the ocean"
}
'import requests
url = "https://api.evolink.ai/v1/images/generations"
payload = {
"model": "gpt-image-1.5",
"prompt": "A beautiful colorful sunset over the ocean"
}
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: 'gpt-image-1.5', prompt: 'A beautiful colorful sunset over the ocean'})
};
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' => 'gpt-image-1.5',
'prompt' => 'A beautiful colorful sunset over the ocean'
]),
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\": \"gpt-image-1.5\",\n \"prompt\": \"A beautiful colorful sunset over the ocean\"\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\": \"gpt-image-1.5\",\n \"prompt\": \"A beautiful colorful sunset over the ocean\"\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\": \"gpt-image-1.5\",\n \"prompt\": \"A beautiful colorful sunset over the ocean\"\n}"
response = http.request(request)
puts response.read_body{
"created": 1757156493,
"id": "task-unified-1757156493-imcg5zqt",
"model": "gpt-image-1.5",
"object": "image.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 100
},
"type": "image",
"usage": {
"billing_rule": "per_call",
"credits_reserved": 2.5,
"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: gpt-image-1.5",
"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"
}
}Generación de imágenes GPT Image 1.5 Lite
- El modelo GPT Image 1.5 (gpt-image-1.5) soporta modos de texto a imagen, imagen a imagen y edición de imagen
- Modo de procesamiento asíncrono, usa el ID de tarea devuelto para consultar el estado
- Los enlaces de imágenes generadas son válidos por 24 horas, guárdalos oportunamente
curl --request POST \
--url https://api.evolink.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-image-1.5",
"prompt": "A beautiful colorful sunset over the ocean"
}
'import requests
url = "https://api.evolink.ai/v1/images/generations"
payload = {
"model": "gpt-image-1.5",
"prompt": "A beautiful colorful sunset over the ocean"
}
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: 'gpt-image-1.5', prompt: 'A beautiful colorful sunset over the ocean'})
};
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' => 'gpt-image-1.5',
'prompt' => 'A beautiful colorful sunset over the ocean'
]),
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\": \"gpt-image-1.5\",\n \"prompt\": \"A beautiful colorful sunset over the ocean\"\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\": \"gpt-image-1.5\",\n \"prompt\": \"A beautiful colorful sunset over the ocean\"\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\": \"gpt-image-1.5\",\n \"prompt\": \"A beautiful colorful sunset over the ocean\"\n}"
response = http.request(request)
puts response.read_body{
"created": 1757156493,
"id": "task-unified-1757156493-imcg5zqt",
"model": "gpt-image-1.5",
"object": "image.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 100
},
"type": "image",
"usage": {
"billing_rule": "per_call",
"credits_reserved": 2.5,
"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: gpt-image-1.5",
"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"
}
}Autorizaciones
Todas las APIs requieren autenticación Bearer Token
Obtener API Key:
Visita la Página de gestión de API Key para obtener tu API Key
Agregar al encabezado de la solicitud:
Authorization: Bearer YOUR_API_KEY
Cuerpo
Nombre del modelo de generación de imágenes
gpt-image-1.5 "gpt-image-1.5"
Prompt que describe la imagen que desea generar, o que describe cómo editar la imagen de entrada. Limitado a 2000 tokens
2000"A beautiful colorful sunset over the ocean"
Tamaño de la imagen generada, admite dos formatos:
Formato de relación de aspecto:
1:1: Cuadrado2:3: Vertical3:2: Horizontal
Formato en píxeles:
1024x1024: Cuadrado1024x1536: Vertical1536x1024: Horizontal
1:1, 2:3, 3:2, 1024x1024, 1024x1536, 1536x1024 "1024x1024"
Calidad de la imagen generada
Niveles de calidad admitidos:
low: Baja calidad, generación más rápidamedium: Calidad mediahigh: Alta calidad, generación más lenta (predeterminado)
low, medium, high "high"
Lista de URLs de imagen de referencia para funciones de imagen a imagen y edición de imagen
Nota:
- Una solicitud admite cantidad de imágenes de entrada:
14imágenes - Tamaño de imagen: no más de
10MB - Formatos de imagen admitidos:
.jpeg,.jpg,.png,.webp,.bmp,.tiff,.gif - Rango de relación de aspecto (ancho/alto):
[1/16, 16] - Ancho y alto (px) > 14
- Total de píxeles: no más de
6000×6000 - Las URLs de imagen deben ser directamente visibles por el servidor, o la URL de imagen debe activar la descarga directa al acceder (generalmente estas URLs terminan con extensiones de archivo de imagen, como
.png,.jpg)
[
"https://example.com/image1.png",
"https://example.com/image2.png"
]
Número de imágenes a generar, actualmente solo admite 1
1 1
URL de callback HTTPS para completación de tarea
Momento del Callback:
- Se activa cuando la tarea se completa, falla o se cancela
- Se envía después de la confirmación de facturación
Restricciones de Seguridad:
- Solo protocolo HTTPS
- Direcciones IP internas están prohibidas (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 del fallo (a1/2/4segundos después del fallo) - El formato de respuesta del callback es consistente con la API de consulta de tareas
- El código de estado 2xx se considera exitoso, otros códigos activan reintento
"https://your-domain.com/webhooks/image-task-completed"
Respuesta
Tarea de imagen creada exitosamente
Marca de tiempo de creación de la tarea
1757156493
ID de tarea
"task-unified-1757156493-imcg5zqt"
Nombre del modelo real utilizado
"gpt-image-1.5"
Tipo de objeto de tarea
image.generation.task Porcentaje de progreso de la tarea (0-100)
0 <= x <= 1000
Estado de la tarea
pending, processing, completed, failed "pending"
Información de tarea asíncrona
Show child attributes
Show child attributes
Tipo de salida de la tarea
text, image, audio, video "image"
Información de uso y facturación
Show child attributes
Show child attributes