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"
}
}GPT Image 1.5 Bildgenerierung
- Das GPT Image 1.5 (gpt-image-1.5) Modell unterstützt Text-zu-Bild, Bild-zu-Bild und Bildbearbeitungsmodi
- Asynchroner Verarbeitungsmodus, verwenden Sie die zurückgegebene Aufgaben-ID zur Statusabfrage
- Generierte Bildlinks sind 24 Stunden gültig, bitte speichern Sie diese umgehend
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"
}
}Autorisierungen
Alle APIs erfordern Bearer-Token-Authentifizierung
API-Schlüssel erhalten:
Besuchen Sie die API-Schlüssel-Verwaltungsseite, um Ihren API-Schlüssel zu erhalten
Zum Anfrage-Header hinzufügen:
Authorization: Bearer YOUR_API_KEY
Body
Modellname für Bildgenerierung
gpt-image-1.5 "gpt-image-1.5"
Prompt, der das zu generierende Bild beschreibt oder wie das Eingabebild bearbeitet werden soll. Begrenzt auf 2000 Token
2000"A beautiful colorful sunset over the ocean"
Größe des generierten Bildes, unterstützt zwei Formate:
Seitenverhältnis-Format:
1:1: Quadratisch2:3: Hochformat3:2: Querformat
Pixel-Format:
1024x1024: Quadratisch1024x1536: Hochformat1536x1024: Querformat
1:1, 2:3, 3:2, 1024x1024, 1024x1536, 1536x1024 "1024x1024"
Qualität des generierten Bildes
Unterstützte Qualitätsstufen:
low: Niedrige Qualität, schnellere Generierungmedium: Mittlere Qualitäthigh: Hohe Qualität, langsamere Generierung (Standard)
low, medium, high "high"
Referenzbild-URL-Liste für Bild-zu-Bild- und Bildbearbeitungsfunktionen
Hinweise:
- Unterstützt
1~16Bilder pro Anfrage - Maximale Größe pro Bild:
50MB - Unterstützte Formate:
.jpeg,.jpg,.png,.webp - Bild-URLs müssen direkt vom Server abrufbar sein oder URLs, die einen direkten Download auslösen (typischerweise URLs mit Bilddateiendungen wie
.png,.jpg)
[
"https://example.com/image1.png",
"https://example.com/image2.png"
]
Anzahl der zu generierenden Bilder, derzeit wird nur 1 unterstützt
1 1
HTTPS-Callback-URL für Aufgabenabschluss
Callback-Zeitpunkt:
- Wird ausgelöst, wenn die Aufgabe abgeschlossen, fehlgeschlagen oder abgebrochen wurde
- Wird nach Abrechnungsbestätigung gesendet
Sicherheitsbeschränkungen:
- Nur HTTPS-Protokoll
- Interne IP-Adressen sind verboten (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
- URL-Länge darf
2048Zeichen nicht überschreiten
Callback-Mechanismus:
- Timeout:
10Sekunden - Maximal
3Wiederholungsversuche nach Fehler (nach1/2/4Sekunden nach Fehler) - Callback-Antwortformat ist konsistent mit der Aufgabenabfrage-API
- 2xx-Statuscode gilt als erfolgreich, andere Codes lösen Wiederholung aus
"https://your-domain.com/webhooks/image-task-completed"
Antwort
Bildaufgabe erfolgreich erstellt
Zeitstempel der Aufgabenerstellung
1757156493
Aufgaben-ID
"task-unified-1757156493-imcg5zqt"
Tatsächlich verwendeter Modellname
"gpt-image-1.5"
Aufgabenobjekttyp
image.generation.task Aufgabenfortschritt in Prozent (0-100)
0 <= x <= 1000
Aufgabenstatus
pending, processing, completed, failed "pending"
Asynchrone Aufgabeninformationen
Show child attributes
Show child attributes
Aufgaben-Ausgabetyp
text, image, audio, video "image"
Nutzungs- und Abrechnungsinformationen
Show child attributes
Show child attributes