GPT Image 1.5
Το GPT Image 1.5 δημιουργεί εικόνες από περιγραφή σε κείμενο, με έμφαση στην τήρηση λεπτομερών οδηγιών. Προβλέπονται τρία σχήματα κάδρου και πολλά επίπεδα ποιότητας και μορφές αποτελέσματος.
- Ailoot · Εικόνες
POST /v1/images/generationsgpt-image-1.5 - Ailoot Ultra · Εικόνες
POST /v1/images/generationsgpt-image-1.5
Σχετικά με το μοντέλο
Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.
Εικόνα από λεπτομερή περιγραφή
Το GPT Image 1.5 είναι ένα μοντέλο της OpenAI για δημιουργία εικόνων από περιγραφή σε κείμενο. Ο κατασκευαστής δίνει έμφαση στην τήρηση οδηγιών και την επεξεργασία λεπτομερούς περιγραφής: μπορούν να οριστούν το περιεχόμενο της σκηνής, η σύνθεση, η εμφάνιση των αντικειμένων και το επιθυμητό ύφος. Το αποτέλεσμα της μεθόδου εικόνων είναι μια έτοιμη εικόνα.
Στο Ailoot, αυτή η κάρτα αφορά δημιουργία με είσοδο κειμένου. Η OpenAI περιγράφει επίσης τη χρήση αρχικών εικόνων, την επεξεργασία και την τροποποίηση επιμέρους περιοχών. Αυτές οι δυνατότητες απαιτούν χωριστή υποστήριξη οπτικής εισόδου και δεν περιλαμβάνονται στον τρόπο δημιουργίας από κείμενο που παρουσιάζεται εδώ.
Στη χωριστή λειτουργία επεξεργασίας που προβλέπει η OpenAI, η μάσκα χρησιμεύει ως οδηγός: δεν εγγυάται ότι το αποτέλεσμα θα συμπέσει ακριβώς με το περίγραμμά της. Για μια τέτοια λειτουργία απαιτείται υποστήριξη παροχής της αρχικής εικόνας· η τρέχουσα κάρτα του Ailoot εξακολουθεί να αφορά δημιουργία με είσοδο κειμένου.
Τρία σχήματα κάδρου και ρύθμιση ποιότητας
Προβλέπονται τετράγωνες διαστάσεις 1024x1024, οριζόντιες 1536x1024 και κατακόρυφες 1024x1536, καθώς και αυτόματη επιλογή. Σε αυτή την έκδοση δεν πρέπει να μεταφέρονται αυθαίρετες διαστάσεις από άλλα μοντέλα.
Τα επίπεδα ποιότητας είναι low, medium, high και auto. Η επιλογή ποιότητας επηρεάζει τον όγκο επεξεργασίας και τη λεπτομέρεια του αποτελέσματος. Η ποιότητα και οι διαστάσεις είναι διαφορετικές ρυθμίσεις: ο προσανατολισμός του κάδρου καθορίζει τον χώρο της σύνθεσης και το επίπεδο ποιότητας τον τρόπο διαμόρφωσής της. Τα επίπεδα xhigh και max δεν δηλώνονται για το GPT Image 1.5.
Μορφή αρχείου και φόντο
Από προεπιλογή, το αποτέλεσμα δημιουργείται σε PNG· προβλέπονται επίσης JPEG και WebP. Για JPEG και WebP μπορεί να οριστεί ο βαθμός συμπίεσης. Αυτή είναι ρύθμιση του αρχείου αποτελέσματος και διαφέρει από την ποιότητα δημιουργίας.
Ο κατασκευαστής προβλέπει διαφανές και αδιαφανές φόντο, καθώς και αυτόματη επιλογή. Για διαφάνεια απαιτείται PNG ή WebP: το JPEG δεν διατηρεί κανάλι άλφα. Το διαφανές φόντο είναι χρήσιμο όταν η εικόνα πρόκειται να χρησιμοποιηθεί ως ξεχωριστό αντικείμενο σε μεταγενέστερη σύνθεση. Η υποστήριξη συγκεκριμένων παραμέτρων πρέπει να εξετάζεται σε σχέση με την επιλεγμένη μέθοδο.
Το κείμενο και η σύνθεση χρειάζονται έλεγχο
Το μοντέλο μπορεί να ενσωματώνει επιγραφές στην εικόνα και να συνθέτει μια σκηνή από πολλά στοιχεία, αλλά δεν εγγυάται την ακριβή τοποθέτηση κειμένου και αντικειμένων. Η συνέπεια στην εμφάνιση του ίδιου χαρακτήρα ή στον σχεδιασμό μεταξύ διαφορετικών δημιουργιών χρειάζεται επίσης έλεγχο.
Μια σύνθετη εικόνα μπορεί να χρειάζεται περισσότερο χρόνο από μια απλή· σύμφωνα με την OpenAI, ορισμένες σύνθετες εργασίες μπορεί να διαρκέσουν έως δύο λεπτά. Για το αποτέλεσμα έχουν σημασία τόσο η πληρότητα της αρχικής περιγραφής όσο και ο έλεγχος της έτοιμης εικόνας: η αναγνωσιμότητα των επιγραφών, η θέση των λεπτομερειών και η αντιστοιχία με τη ζητούμενη σκηνή αξιολογούνται στο ίδιο το αρχείο.
Ailoot · Εικόνες POST /v1/images/generations gpt-image-1.5
gpt-image-1.5Εισαγωγή
Το GPT Image 1.5 δημιουργεί εικόνες από περιγραφή σε κείμενο, με έμφαση στην τήρηση λεπτομερών οδηγιών. Προβλέπονται τρία σχήματα κάδρου και πολλά επίπεδα ποιότητας και μορφές αποτελέσματος.
- Αποδεκτές είσοδοι
- Κείμενο
- Αποτελέσματα
- Εικόνες
Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι
Ailoot · Εικόνες POST /v1/images/generations
- Είσοδος
text- Έξοδος
image- Μορφή εξόδου
- Αρχείο εικόνας
| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
|---|---|---|---|---|
Πεδίοmodel | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια gpt-image-1.5 | Προεπιλογή— |
Πεδίοprompt | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια Ελάχιστο μήκος: 1 | Προεπιλογή— |
Πεδίοn | Τύποςinteger | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο: 1 | Προεπιλογή1 |
Πεδίοresponse_format | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια url, b64_json | Προεπιλογή— |
Πεδίοstream | Τύποςboolean | ΑπαίτησηΠροαιρετικό | Τιμές και όρια | Προεπιλογήfalse |
Πεδίοsize | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Εξαρτάται από το μοντέλο | Προεπιλογή— |
Πεδίοquality | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Εξαρτάται από το μοντέλο | Προεπιλογή— |
Πεδίοbackground | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Εξαρτάται από το μοντέλο | Προεπιλογή— |
Πεδίοoutput_format | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Εξαρτάται από το μοντέλο | Προεπιλογή— |
Πεδίοoutput_compression | Τύποςinteger | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Εξαρτάται από το μοντέλο | Προεπιλογή— |
Πεδίοmoderation | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Εξαρτάται από το μοντέλο | Προεπιλογή— |
Πεδίοinput_fidelity | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Εξαρτάται από το μοντέλο | Προεπιλογή— |
Πεδίοstyle | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Εξαρτάται από το μοντέλο | Προεπιλογή— |
Πεδίοpartial_images | Τύποςinteger | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Εξαρτάται από το μοντέλο | Προεπιλογή— |
Συνδυασμοί υλικών εισόδου
Κείμενο σε εικόνα · Υποχρεωτικό: prompt
Παράμετροι και κύκλος ζωής μεθόδου
| Παράμετρος | Σύμβαση |
|---|---|
Παράμετροςmaterial_types | Σύμβασηtext |
Παράμετροςrequired | Σύμβασηmodel, prompt |
Παράμετροςoptional_controls | Σύμβασηnull |
Παράμετροςcontent_type | Σύμβασηapplication/json |
Κύκλος ζωής: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων.
Τιμολόγηση
Χρεώσεις μεθόδων Ailoot
POST /v1/images/generations- Είσοδος κειμένου
- 0,005 $ / 1K
- Έξοδος κειμένου
- 0,01 $ / 1K
- Είσοδος, εικόνα
- 0,008 $ / 1K tokens
- Έξοδος, εικόνα
- 0,032 $ / 1K tokens
Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →
Παραδείγματα αιτημάτων
Ailoot · Εικόνες
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
export AILOOT_API_KEY
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 image brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-image-1.5", "prompt": ""}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Set your actual UTF-8 image brief file")
request={'model': 'gpt-image-1.5', 'prompt': ''}
request["prompt"]=f.read_text(encoding="utf-8")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "gpt-image-1.5", "prompt": ""};
if(!process.env.AILOOT_PROMPT_FILE)throw new Error("Set your actual UTF-8 image brief file");
request.prompt=readFileSync(process.env.AILOOT_PROMPT_FILE,"utf8");
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
if(!encoded && uri.startsWith("data:image/")) {
const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
encoded=uri.slice(comma+1);
}
if(encoded) {
if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
raw=Buffer.from(encoded,"base64");
} else if(uri) {
const u=new URL(uri,"https://api.ailoot.ai");
if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
if(!response.ok) throw new Error("Image content download failed: "+response.status);
raw=Buffer.from(await response.arrayBuffer());
} else throw new Error("Image has neither bytes nor URL");
if(!raw.length) throw new Error("Empty image result");
const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");
Λήψη και αποθήκευση αποτελεσμάτων
Ailoot · Εικόνες
Κατεβάστε κάθε εικόνα που επιστρέφεται ή αποθηκεύστε το περιεχόμενο Base64
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα
Αποθηκεύστε κάθε ολοκληρωμένη εικόνα· ανακτήστε κάθε URL που επιστρέφεται ή αποκωδικοποιήστε το περιεχόμενο Base64.
Αποθηκεύστε κάθε στοιχείο δεδομένων. Αποκωδικοποιήστε κάθε b64_json ή ανακτήστε κάθε υπογεγραμμένο URL που επιστράφηκε. Επιλέξτε την επέκταση του ονόματος αρχείου βάσει του πραγματικού τύπου MIME/των byte.
Αν χρειάζεται έλεγχος της αρχικής απάντησης
Αν το αποτέλεσμα παραγωγής ή επεξεργασίας εικόνας χρειάζεται έλεγχο, διατηρήστε το αρχικό operation_id/X-Client-Request-ID και τις πληροφορίες αποτελέσματος που επιστράφηκαν. Ανακτήστε τα υπάρχοντα αποτελέσματα που σας ανήκουν μέσω της βιβλιοθήκης πολυμέσων χρησιμοποιώντας πραγματικές τιμές task_id ή asset_id. Μην υποβάλετε ξανά το αίτημα παραγωγής/επεξεργασίας και μην κατασκευάσετε URL περιοδικού ελέγχου από το operation_id.
Πεδία απάντησης
| Πεδίο | Τύπος |
|---|---|
Πεδίοcreated | Τύποςinteger |
Πεδίοdata[].url | Τύποςstring |
Πεδίοdata[].b64_json | Τύποςbase64 string |
Πεδίοusage | Τύποςobject |
Σφάλματα και επόμενα βήματα
| Απάντηση | Συνθήκη | Επόμενο βήμα |
|---|---|---|
Απάντηση400 · invalid_request_error | ΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου | Επόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας. |
Απάντησηserver_error | ΣυνθήκηΗ απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο | Επόμενο βήμαΔιατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας. |
Εναλλακτικά ονόματα
Εναλλακτικά ονόματα μοντέλου
Ailoot gpt-image-1.5
Ailoot Ultra gpt-image-1.5
Εναλλακτικές διαδρομές μεθόδων
Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.
Σχετικά ID μοντέλων
Ailoot Ultra · Εικόνες POST /v1/images/generations gpt-image-1.5
gpt-image-1.5Εισαγωγή
Το GPT Image 1.5 δημιουργεί εικόνες από περιγραφή σε κείμενο, με έμφαση στην τήρηση λεπτομερών οδηγιών. Προβλέπονται τρία σχήματα κάδρου και πολλά επίπεδα ποιότητας και μορφές αποτελέσματος.
- Αποδεκτές είσοδοι
- Κείμενο
- Αποτελέσματα
- Εικόνες
Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι
Ailoot Ultra · Εικόνες POST /v1/images/generations
- Είσοδος
text- Έξοδος
image
| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
|---|---|---|---|---|
Πεδίοmodel | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια gpt-image-1.5 | Προεπιλογή— |
Πεδίοprompt | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια Μέγιστο μήκος: 32.000 | Προεπιλογή— |
Πεδίοsize | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 1024x1024, 1536x1024, 1024x1536, auto | Προεπιλογήauto |
Πεδίοbackground | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια transparent, opaque, auto | Προεπιλογήauto |
Πεδίοmoderation | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια low, auto Συνθήκες: Χρησιμοποιήστε auto για τον τυπικό έλεγχο περιεχομένου. | Προεπιλογή— |
Πεδίοn | Τύποςinteger | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο: 1 Μέγιστο: 10 | Προεπιλογή1 |
Πεδίοquality | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια auto, high, medium, low | Προεπιλογήauto |
Πεδίοoutput_compression | Τύποςinteger | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο: 0 Μέγιστο: 100 Συνθήκες: Ισχύει για έξοδο JPEG και WebP· στείλτε την τεκμηριωμένη ακέραια τιμή. | Προεπιλογή100 |
Πεδίοoutput_format | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια webp, png, jpeg | Προεπιλογήpng |
Πεδίοstream | Τύποςboolean | ΑπαίτησηΠροαιρετικό | Τιμές και όρια false Συνθήκες: Αυτή η διαδρομή επιστρέφει μία ολοκληρωμένη απόκριση JSON. | Προεπιλογήfalse |
Παράμετροι και κύκλος ζωής μεθόδου
| Παράμετρος | Σύμβαση |
|---|---|
Παράμετροςcontent_type | Σύμβασηapplication/json |
Παράμετροςrequired | Σύμβασηprompt, model |
Παράμετροςmaterial_types | Σύμβασηtext |
Παράμετροςoptional | Σύμβασηsize, background, moderation, n, quality, output_compression, output_format, stream |
Παράμετροςconditions | ΣύμβασηΤο διαφανές φόντο απαιτεί PNG ή WebP., Η συμπίεση εξόδου ισχύει για JPEG ή WebP., Η επιλεγμένη μέθοδος δημιουργεί από κείμενο. Οι παράμετροι επεξεργασίας και ροής που περιγράφονται για τον κατασκευαστή αποτελούν ξεχωριστές δυνατότητες. |
Κύκλος ζωής: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Τιμολόγηση
Πώς υπολογίζεται η τελική χρέωση
Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.
Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.
- Γρήγορη λειτουργία
- Δεν έχει οριστεί Όταν επιλέγεται η γρήγορη λειτουργία
- Λειτουργία flex
- Δεν έχει οριστεί Όταν επιλέγεται η λειτουργία flex
- Μέγιστη προσπάθεια συλλογισμού
- Δεν έχει οριστεί Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default
Εκτιμώμενες χρεώσεις για σύγκριση
Τιμές ανά διαμόρφωση
Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.
| Διαμόρφωση | Πίνακας χρεώσεων | Προβλεπόμενη ποσότητα | Χρέωση |
|---|---|---|---|
| ΔιαμόρφωσηΒασικές χρεώσεις token | Πίνακας χρεώσεωνΒασική χρέωση | Προβλεπόμενη ποσότητα— | Χρέωση Είσοδος · Token εισόδου · Εκτίμηση μόνο για σύγκριση — / 1K token Έξοδος · Token εξόδου · Εκτίμηση μόνο για σύγκριση — / 1K token Είσοδος · Ανάγνωση από την κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση — / 1K token Είσοδος · Εγγραφή στην κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση — / 1K token Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα · Εκτίμηση μόνο για σύγκριση — / 1K token |
| ΔιαμόρφωσηΕκτιμώμενο κόστος δημιουργίας | Πίνακας χρεώσεων— | Προβλεπόμενη ποσότηταεκτίμηση για μία δημιουργία | Χρέωση Έξοδος · Εκτιμώμενο κόστος δημιουργίας · Εκτίμηση μόνο για σύγκριση $0.32768 εκτίμηση πριν από τη δημιουργία Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή. |
Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →
Παραδείγματα αιτημάτων
Ailoot Ultra · Εικόνες
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'prompt': 'A cute baby sea otter', 'model': 'gpt-image-1.5', 'size': '1024x1024', 'n': 1, 'background': 'auto', 'moderation': 'auto', 'output_format': 'png'}
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
Λήψη και αποθήκευση αποτελεσμάτων
Ailoot Ultra · Εικόνες
Κατεβάστε κάθε εικόνα που επιστρέφεται ή αποθηκεύστε το περιεχόμενο Base64
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Άλλες ανακτήσεις περιεχομένου
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα
Αποθηκεύστε κάθε ολοκληρωμένη εικόνα· ανακτήστε κάθε URL που επιστρέφεται ή αποκωδικοποιήστε το περιεχόμενο Base64.
Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, κάθε πραγματικό αποτέλεσμα εξόδου, τα αρχικά αναγνωριστικά που επιστράφηκαν και όλα τα πεδία χρήσης. Ανακτήστε την αρχική λειτουργία χωρίς να υποβάλετε ξανά αίτημα δημιουργίας.
Αν χρειάζεται έλεγχος της αρχικής απάντησης
Διατηρήστε το X-Client-Request-ID που επιστράφηκε για τη συμφωνία των εγγραφών. Διαβάστε μόνο πραγματικές τιμές task_id/asset_id που επιστράφηκαν ή τη βιβλιοθήκη πολυμέσων που σας ανήκει· μην κατασκευάσετε ποτέ URL εργασίας από το ID της λειτουργίας και μην υποβάλετε ποτέ ξανά αίτημα δημιουργίας.
Πεδία απάντησης
| Πεδίο | Τύπος |
|---|---|
Πεδίοcreated | Τύπος |
Πεδίοdata[].url | Τύπος |
Πεδίοdata[].b64_json | Τύπος |
Πεδίοusage | Τύπος |
Εναλλακτικά ονόματα
Εναλλακτικά ονόματα μοντέλου
Ailoot gpt-image-1.5
Ailoot Ultra gpt-image-1.5
Εναλλακτικές διαδρομές μεθόδων
Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.
Σχετικά ID μοντέλων
FAQ · GPT Image 1.5
- Ποιες είσοδοι και αποτελέσματα διατίθενται;
POST /v1/images/generations·gpt-image-1.5:text→imagePOST /v1/images/generations·gpt-image-1.5:text→image- Ποια πεδία χρησιμοποιεί το αίτημα;
POST /v1/images/generations·gpt-image-1.5:model,prompt,n,response_format,streamPOST /v1/images/generations·gpt-image-1.5:model,prompt,size,background,moderation,n,quality,output_compression,output_format,stream- Ποια όρια ισχύουν;
POST /v1/images/generations·gpt-image-1.5:n.minimum:1POST /v1/images/generations·gpt-image-1.5:prompt.maximum_length:32000;n.minimum:1;n.maximum:10;output_compression.minimum:0;output_compression.maximum:100