curl --request POST \
--url https://api.evolink.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "doubao-seedream-5.0-flash",
"prompt": "Un lago tranquilo que refleja una hermosa puesta de sol",
"size": "16:9",
"quality": "2K"
}
'import requests
url = "https://api.evolink.ai/v1/images/generations"
payload = {
"model": "doubao-seedream-5.0-flash",
"prompt": "Un lago tranquilo que refleja una hermosa puesta de sol",
"size": "16:9",
"quality": "2K"
}
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: 'doubao-seedream-5.0-flash',
prompt: 'Un lago tranquilo que refleja una hermosa puesta de sol',
size: '16:9',
quality: '2K'
})
};
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' => 'doubao-seedream-5.0-flash',
'prompt' => 'Un lago tranquilo que refleja una hermosa puesta de sol',
'size' => '16:9',
'quality' => '2K'
]),
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\": \"doubao-seedream-5.0-flash\",\n \"prompt\": \"Un lago tranquilo que refleja una hermosa puesta de sol\",\n \"size\": \"16:9\",\n \"quality\": \"2K\"\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\": \"doubao-seedream-5.0-flash\",\n \"prompt\": \"Un lago tranquilo que refleja una hermosa puesta de sol\",\n \"size\": \"16:9\",\n \"quality\": \"2K\"\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\": \"doubao-seedream-5.0-flash\",\n \"prompt\": \"Un lago tranquilo que refleja una hermosa puesta de sol\",\n \"size\": \"16:9\",\n \"quality\": \"2K\"\n}"
response = http.request(request)
puts response.read_body{
"created": 1757165031,
"id": "task-unified-1757165031-seedream5flash",
"model": "doubao-seedream-5.0-flash",
"object": "image.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 20
},
"type": "image",
"usage": {
"billing_rule": "per_image",
"credits_reserved": 1.1016,
"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: doubao-seedream-5.0-flash",
"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"
}
}Seedream 5.0 Flash Generación de imágenes
- Seedream 5.0 Flash (doubao-seedream-5.0-flash) admite generación de texto a imagen, de imagen a imagen, edición de imágenes y otros modos. Sus parámetros principales coinciden con los de Seedream 5.0 Pro, con una generación más rápida y un precio menor
- Facturación por imagen:
1K,1.5Ky2Kcuestan lo mismo; las imágenes de referencia son gratuitas - Modo de procesamiento asíncrono, usa el ID de tarea devuelto para consultar
- 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": "doubao-seedream-5.0-flash",
"prompt": "Un lago tranquilo que refleja una hermosa puesta de sol",
"size": "16:9",
"quality": "2K"
}
'import requests
url = "https://api.evolink.ai/v1/images/generations"
payload = {
"model": "doubao-seedream-5.0-flash",
"prompt": "Un lago tranquilo que refleja una hermosa puesta de sol",
"size": "16:9",
"quality": "2K"
}
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: 'doubao-seedream-5.0-flash',
prompt: 'Un lago tranquilo que refleja una hermosa puesta de sol',
size: '16:9',
quality: '2K'
})
};
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' => 'doubao-seedream-5.0-flash',
'prompt' => 'Un lago tranquilo que refleja una hermosa puesta de sol',
'size' => '16:9',
'quality' => '2K'
]),
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\": \"doubao-seedream-5.0-flash\",\n \"prompt\": \"Un lago tranquilo que refleja una hermosa puesta de sol\",\n \"size\": \"16:9\",\n \"quality\": \"2K\"\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\": \"doubao-seedream-5.0-flash\",\n \"prompt\": \"Un lago tranquilo que refleja una hermosa puesta de sol\",\n \"size\": \"16:9\",\n \"quality\": \"2K\"\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\": \"doubao-seedream-5.0-flash\",\n \"prompt\": \"Un lago tranquilo que refleja una hermosa puesta de sol\",\n \"size\": \"16:9\",\n \"quality\": \"2K\"\n}"
response = http.request(request)
puts response.read_body{
"created": 1757165031,
"id": "task-unified-1757165031-seedream5flash",
"model": "doubao-seedream-5.0-flash",
"object": "image.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 20
},
"type": "image",
"usage": {
"billing_rule": "per_image",
"credits_reserved": 1.1016,
"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: doubao-seedream-5.0-flash",
"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
doubao-seedream-5.0-flash "doubao-seedream-5.0-flash"
Prompt que describe la imagen que desea generar, o que describe cómo editar la imagen de entrada
Idiomas admitidos: además de chino e inglés, Seedream 5.0 Flash admite ruso, árabe, filipino, tailandés, turco, coreano, malayo, español, portugués, indonesio, francés, alemán, vietnamita y japonés.
Límite de longitud: hasta 4000 tokens (unos 2.600 caracteres chinos o 5.000 palabras en inglés); si se excede se devuelve 400 y no se factura.
Recomendación: no superar los 300 caracteres chinos o 600 palabras en inglés. Un prompt más largo sigue dentro del límite, pero dispersa la información y el modelo puede pasar por alto detalles, dejando elementos fuera de la imagen.
"Un lago tranquilo que refleja una hermosa puesta de sol"
Tamaño de la imagen generada; admite dos formatos:
Método 1 - Formato de proporción:
auto,1:1,2:3,3:2,3:4,4:3,4:5,5:4,9:16,16:9,21:9,9:21- Junto con el parámetro
quality, el sistema genera automáticamente una imagen con la proporción y resolución correspondientes, sin especificar los píxeles manualmente
Método 2 - Formato en píxeles:
- Ancho x alto, p. ej.:
1024x1024,2048x2048 - Rango total de píxeles:
[921600, 4624220] - Rango de relación de aspecto:
[1/16, 16] - El ancho y el alto deben ser superiores a
14px
Si no se especifica size, el valor predeterminado es auto. auto significa que no se fija una proporción concreta: el modelo decide la composición a partir del prompt y la resolución de salida sigue el nivel indicado en quality.
"16:9"
Nivel de resolución, utilizado con el formato de proporción de size; el valor predeterminado es 1K.
| Proporción | 1K | 1.5K | 2K |
|---|---|---|---|
1:1 | 1024×1024 | 1536×1536 | 2048×2048 |
2:3 | 832×1248 | 1248×1872 | 1664×2496 |
3:2 | 1248×832 | 1872×1248 | 2496×1664 |
3:4 | 864×1152 | 1344×1792 | 1776×2368 |
4:3 | 1152×864 | 1792×1344 | 2368×1776 |
4:5 | 896×1120 | 1344×1680 | 1792×2240 |
5:4 | 1120×896 | 1680×1344 | 2240×1792 |
9:16 | 800×1424 | 1152×2048 | 1584×2816 |
16:9 | 1424×800 | 2048×1152 | 2816×1584 |
21:9 | 1568×672 | 2352×1008 | 3136×1344 |
9:21 | 672×1568 | 1008×2352 | 1344×3136 |
Facturación:
- Se factura por imagen, con el mismo precio para
1K,1.5Ky2K;1.5Ky2Kofrecen mejor calidad sin coste adicional - El formato en píxeles de
sizetambién se factura por imagen, sin niveles de precio según el número de píxeles
1K, 1.5K, 2K "2K"
Estrategia de optimización del prompt, utilizada para establecer el modo de optimización
Opciones:
standard: modo estándar
Nota: Seedream 5.0 Flash solo admite standard; enviar fast devuelve 400. Flash ya genera imágenes más rápido y no ofrece un modo rápido independiente.
standard "standard"
Lista de URL de imágenes de referencia para generación de imagen a imagen y edición
Notas:
- Las imágenes de referencia son gratuitas
- Hasta
10imágenes de entrada por solicitud - Tamaño de la imagen:
30MBcomo máximo - Formatos admitidos:
.jpeg,.jpg,.png,.webp,.bmp,.tiff,.gif,.heic,.heif - Relación de aspecto (ancho/alto):
[1/16, 16] - Tanto el ancho como el alto deben ser superiores a
14px - Total de píxeles:
[196, 6000×6000] - Las URL de las imágenes deben ser directamente accesibles para el servidor o iniciar una descarga directa al acceder (normalmente terminan en una extensión de imagen como
.pngo.jpg)
10[
"https://example.com/image1.png",
"https://example.com/image2.png"
]
Formato de la imagen de salida
Opciones:
png: formato PNGjpeg: formato JPEG
Nota: con background=transparent, la salida siempre es png: si se omite output_format, se utiliza png automáticamente; indicar jpeg se rechaza.
png, jpeg "jpeg"
Indica si se debe añadir una marca de agua a la imagen generada
false
Configuración del canal de transparencia
Opciones:
opaque: fondo opaco normal (predeterminado)transparent: conservar el canal alfa existente de la imagen de entrada
transparentconserva el fondo transparente que ya tiene la imagen de entrada; no elimina el fondo.
Restricciones (solo para transparent):
- Se requiere exactamente 1 imagen de entrada
- La entrada debe ser un PNG con al menos un píxel transparente; el modelo rechaza webp, jpeg, otros formatos y los PNG sin píxeles transparentes (las tareas fallidas se reembolsan por completo)
- La salida siempre es png: si se omite
output_format, se utiliza png automáticamente; indicaroutput_format=jpegse rechaza
opaque, transparent "opaque"
Dirección de callback HTTPS después de completar la tarea
Momento del callback:
- Se activa cuando la tarea se completa, falla o se cancela
- Se envía después de completar la confirmación de facturación
Restricciones de seguridad:
- Solo se admite el protocolo HTTPS
- El callback a direcciones IP internas está prohibido (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 en caso de fallo (reintentos después de1segundo/2segundos/4segundos) - El formato del cuerpo de respuesta del callback es consistente con el formato de respuesta de la API de consulta de tareas
- La dirección de callback que devuelve un código de estado 2xx se considera exitosa, otros códigos de estado activarán reintentos
"https://your-domain.com/webhooks/image-task-completed"
Respuesta
Tarea de generación de imagen creada exitosamente
Marca de tiempo de creación de la tarea
1757165031
ID de tarea
"task-unified-1757165031-seedream5flash"
Nombre del modelo real utilizado
"doubao-seedream-5.0-flash"
Tipo de tarea específico
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