curl --request POST \
--url https://api.evolink.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "z-image-turbo",
"prompt": "a cute cat",
"size": "1:1"
}
'import requests
url = "https://api.evolink.ai/v1/images/generations"
payload = {
"model": "z-image-turbo",
"prompt": "a cute cat",
"size": "1:1"
}
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: 'z-image-turbo', prompt: 'a cute cat', size: '1:1'})
};
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' => 'z-image-turbo',
'prompt' => 'a cute cat',
'size' => '1:1'
]),
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\": \"z-image-turbo\",\n \"prompt\": \"a cute cat\",\n \"size\": \"1:1\"\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\": \"z-image-turbo\",\n \"prompt\": \"a cute cat\",\n \"size\": \"1:1\"\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\": \"z-image-turbo\",\n \"prompt\": \"a cute cat\",\n \"size\": \"1:1\"\n}"
response = http.request(request)
puts response.read_body{
"created": 1757165031,
"id": "task-unified-1757165031-uyujaw3d",
"model": "z-image-turbo",
"object": "image.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 10
},
"type": "image",
"usage": {
"billing_rule": "per_call",
"credits_reserved": 0.026,
"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: z-image-turbo",
"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"
}
}Z Image Turbo Génération d'Image
- Z Image Turbo est un modèle de génération texte-vers-image ultra-rapide avec une qualité exceptionnelle
- Mode de traitement asynchrone, utilisez l’ID de tâche retourné pour interroger
- Les liens d’image générés sont valides pendant 24 heures, veuillez les enregistrer rapidement
curl --request POST \
--url https://api.evolink.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "z-image-turbo",
"prompt": "a cute cat",
"size": "1:1"
}
'import requests
url = "https://api.evolink.ai/v1/images/generations"
payload = {
"model": "z-image-turbo",
"prompt": "a cute cat",
"size": "1:1"
}
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: 'z-image-turbo', prompt: 'a cute cat', size: '1:1'})
};
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' => 'z-image-turbo',
'prompt' => 'a cute cat',
'size' => '1:1'
]),
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\": \"z-image-turbo\",\n \"prompt\": \"a cute cat\",\n \"size\": \"1:1\"\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\": \"z-image-turbo\",\n \"prompt\": \"a cute cat\",\n \"size\": \"1:1\"\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\": \"z-image-turbo\",\n \"prompt\": \"a cute cat\",\n \"size\": \"1:1\"\n}"
response = http.request(request)
puts response.read_body{
"created": 1757165031,
"id": "task-unified-1757165031-uyujaw3d",
"model": "z-image-turbo",
"object": "image.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 10
},
"type": "image",
"usage": {
"billing_rule": "per_call",
"credits_reserved": 0.026,
"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: z-image-turbo",
"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"
}
}Autorisations
##Toutes les API nécessitent une authentification Bearer Token##
Obtenir une clé API :
Visitez la Page de gestion des clés API pour obtenir votre clé API
Ajouter à l'en-tête de requête :
Authorization: Bearer YOUR_API_KEY
Corps
Nom du modèle de génération d'image
z-image-turbo "z-image-turbo"
Invite décrivant l'image à générer, limitée à 2000 caractères
2000"a cute cat"
Taille de l'image générée. Prend en charge deux formats :
Format de rapport d'aspect :
- Utilisez des rapports prédéfinis comme
1:1,16:9,9:16, etc. - Rapports pris en charge :
1:1,2:3,3:2,3:4,4:3,9:16,16:9,1:2,2:1
Dimensions personnalisées :
- Largeur x Hauteur (par exemple,
1024x768) - Plage de largeur et hauteur :
376-1536pixels
1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 1:2, 2:1 "1:1"
Graine aléatoire pour des résultats reproductibles
Remarque :
- Plage :
1à2147483647 - Laisser vide pour une graine aléatoire
- La même graine avec la même invite produit des résultats similaires
1 <= x <= 214748364712345
Activer la modération de contenu NSFW supplémentaire
Remarque :
- Par défaut :
false(désactivé) - La modération de contenu de base est toujours active même lorsqu'elle est désactivée
- Activer pour un filtrage de contenu plus strict
false
Adresse de rappel HTTPS après l'achèvement de la tâche
Moment du rappel :
- Déclenché lorsque la tâche est terminée, échouée ou annulée
- Envoyé après confirmation de la facturation
Restrictions de sécurité :
- Seul le protocole HTTPS est pris en charge
- Les rappels vers les adresses IP internes sont interdits (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
- La longueur de l'URL ne doit pas dépasser
2048caractères
Mécanisme de rappel :
- Délai d'expiration :
10secondes - Maximum
3tentatives en cas d'échec (tentatives après1seconde/2secondes/4secondes) - Le format du corps de réponse du rappel est cohérent avec le format de réponse de l'API de requête de tâche
- Un code de statut 2xx renvoyé par l'adresse de rappel est considéré comme un succès, les autres codes de statut déclenchent une nouvelle tentative
"https://your-domain.com/webhooks/image-task-completed"
Réponse
Tâche de génération d'image créée avec succès
Horodatage de création de la tâche
1757165031
ID de tâche
"task-unified-1757165031-uyujaw3d"
Nom du modèle réellement utilisé
"z-image-turbo"
Type spécifique de la tâche
image.generation.task Pourcentage de progression de la tâche (0-100)
0 <= x <= 1000
Statut de la tâche
pending, processing, completed, failed "pending"
Informations sur la tâche asynchrone
Show child attributes
Show child attributes
Type de sortie de la tâche
text, image, audio, video "image"
Informations d'utilisation et de facturation
Show child attributes
Show child attributes