Source: https://ailoot.ai/models/el/image-01/
Canonical: https://ailoot.ai/models/el/image-01/
Language: el

# image-01

[Markdown](https://ailoot.ai/models/el/image-01/index.md) · [JSON](https://ailoot.ai/models/el/image-01/facts.json)

## [image-01](https://ailoot.ai/models/el/image-01/)

Το MiniMax image-01 δημιουργεί εικόνες βάσει λεπτομερούς περιγραφής κειμένου· υποστηρίζει τετράγωνες, κατακόρυφες και πλατιές συνθέσεις.

- [**Ailoot · Εικόνες** `POST /v1/images/generations` `image-01`](https://ailoot.ai/models/el/image-01/#method-0)
- [**Ailoot · Εικόνες** `POST /v1/images/generations` `minimax-image`](https://ailoot.ai/models/el/image-01/#method-1)
- [**Ailoot · Εικόνες** `POST /v1/images/generations` `minimax-image-latest`](https://ailoot.ai/models/el/image-01/#method-2)
- [**Ailoot · Εικόνες** `POST /v1/images/generations` `minimax/image-01`](https://ailoot.ai/models/el/image-01/#method-3)

Σχετικά με το μοντέλο

Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.

#### Εικόνα βάσει περιγραφής

Το MiniMax image-01 δημιουργεί νέα εικόνα βάσει περιγραφής κειμένου. Σε αυτήν μπορούν να οριστούν χαρακτήρας ή αντικείμενο, περιβάλλον και ύφος εικόνας. Αυτή η κάρτα του Ailoot δέχεται κείμενο και επιστρέφει εικόνα· η περιγραφή ορίζει το περιεχόμενο και τη σύνθεση της μελλοντικής σκηνής.

#### Εργασία με την εμφάνιση χαρακτήρα

Οι δυνατότητες του μοντέλου στον κατασκευαστή περιλαμβάνουν επίσης δημιουργία με οπτικό υπόδειγμα χαρακτήρα. Μία αρχική εικόνα με ευδιάκριτο κύριο αντικείμενο βοηθά στη μεταφορά των χαρακτηριστικών του σε νέα σκηνή μαζί με την περιγραφή κειμένου. Ο κατασκευαστής συνιστά μετωπικό πορτρέτο ενός ατόμου· υποστηρίζεται μία αναφορά ανά αίτημα.

Για αυτή την αρχική εικόνα δηλώνονται JPG, JPEG και PNG με μέγεθος μικρότερο από **10 MB**. Σε αυτή την κάρτα, ο διαθέσιμος τρόπος δημιουργίας είναι μέσω κειμένου· η δυνατότητα αναφοράς αφορά το μοντέλο image-01 και δεν διευρύνει αυτόματα την είσοδο του αιτήματος.

#### Αναλογίες και διαστάσεις

Για το image-01 προβλέπονται οκτώ αναλογίες: **1:1, 16:9, 4:3, 3:2, 2:3, 3:4, 9:16 και 21:9**. Καλύπτουν τετράγωνη, οριζόντια, κατακόρυφη και πλατιά σύνθεση. Οι τυπικές διαστάσεις τους είναι αντίστοιχα 1024×1024, 1280×720, 1152×864, 1248×832, 832×1248, 864×1152, 720×1280 και 1344×576 pixels.

Ο κατασκευαστής επιτρέπει επίσης να καθορίζονται μαζί πλάτος και ύψος: από **512 έως 2048 pixels** το καθένα, σε βήμα πολλαπλάσιο του 8. Αν οριστούν ταυτόχρονα αναλογία και επιμέρους διαστάσεις, προτεραιότητα έχει η αναλογία πλευρών.

#### Αριθμός παραλλαγών και παράμετροι δημιουργίας

Οι δυνατότητες του μοντέλου περιλαμβάνουν από **1 έως 9 εικόνες** ανά αίτημα· από προεπιλογή δημιουργείται μία. Η περιγραφή κειμένου περιορίζεται σε **1500 χαρακτήρες**. Προβλέπεται αυτόματη βελτιστοποίηση περιγραφής, αρχικά απενεργοποιημένη, και τυχαίος σπόρος: ο ίδιος σπόρος μαζί με τις ίδιες παραμέτρους χρησιμοποιείται για επαναληψιμότητα του αποτελέσματος.

Το αποτέλεσμα δημιουργίας είναι εικόνα ή σύνολο εικόνων. Ο κατασκευαστής προβλέπει παροχή των ίδιων των δεδομένων και λήψη αρχείου· αν δεν δημιουργηθούν ορισμένες παραλλαγές, ο αριθμός επιτυχών αποτελεσμάτων υπολογίζεται χωριστά. Οι αναφερόμενες διαστάσεις και ρυθμίσεις περιγράφουν δυνατότητες του μοντέλου· οι διαθέσιμες παράμετροι του συγκεκριμένου αιτήματος καθορίζονται από την κάρτα του Ailoot.

**Ailoot · Εικόνες** `POST /v1/images/generations` `image-01`

[`image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=image-01&fmt=images)

MiniMax /`image-01`

ID μοντέλου

- `image-01`
- `minimax-image`
- `minimax-image-latest`
- `minimax/image-01`

### Εισαγωγή

Το MiniMax image-01 δημιουργεί εικόνες βάσει λεπτομερούς περιγραφής κειμένου· υποστηρίζει τετράγωνες, κατακόρυφες και πλατιές συνθέσεις.

Αποδεκτές είσοδοι

Κείμενο

Αποτελέσματα

Εικόνες

### Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

**Ailoot · Εικόνες** `POST /v1/images/generations`

Είσοδος

`text`

Έξοδος

`image`

Μορφή εξόδου

Αρχείο εικόνας

| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
| --- | --- | --- | --- | --- |
| Πεδίο`model` | Τύπος`string` | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια image-01 | Προεπιλογή— |
| Πεδίο`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

Έξοδος

0,0035 $ *ανά εικόνα ανάλυσης 1K*

Έξοδος

0,0035 $ *ανά εικόνα ανάλυσης 2K*

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. [Πώς λειτουργούν η δέσμευση και η εκκαθάριση →](https://ailoot.ai/docs/el/billing/reserve/)

### Παραδείγματα αιτημάτων

#### Ailoot · Εικόνες

curlPython SDKNode.js SDK

```bash
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": "image-01", "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
```

```python
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': 'image-01', '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])
```

```js
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": "image-01", "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}/content`
- `GET /v1/media/assets`
- `GET /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** [`image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=image-01&fmt=images), [`minimax-image`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image&fmt=images), [`minimax-image-latest`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image-latest&fmt=images), [`minimax/image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax%2Fimage-01&fmt=images)

#### Εναλλακτικές διαδρομές μεθόδων

Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.

#### Σχετικά ID μοντέλων

[`image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=image-01&fmt=images), [`minimax-image`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image&fmt=images), [`minimax-image-latest`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image-latest&fmt=images), [`minimax/image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax%2Fimage-01&fmt=images)

**Ailoot · Εικόνες** `POST /v1/images/generations` `minimax-image`

[`minimax-image`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image&fmt=images)

MiniMax /`minimax-image`

ID μοντέλου

- `image-01`
- `minimax-image`
- `minimax-image-latest`
- `minimax/image-01`

### Εισαγωγή

Το MiniMax image-01 δημιουργεί εικόνες βάσει λεπτομερούς περιγραφής κειμένου· υποστηρίζει τετράγωνες, κατακόρυφες και πλατιές συνθέσεις.

Αποδεκτές είσοδοι

Κείμενο

Αποτελέσματα

Εικόνες

### Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

**Ailoot · Εικόνες** `POST /v1/images/generations`

Είσοδος

`text`

Έξοδος

`image`

Μορφή εξόδου

Αρχείο εικόνας

| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
| --- | --- | --- | --- | --- |
| Πεδίο`model` | Τύπος`string` | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια minimax-image | Προεπιλογή— |
| Πεδίο`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

Έξοδος

0,0035 $ *ανά εικόνα ανάλυσης 1K*

Έξοδος

0,0035 $ *ανά εικόνα ανάλυσης 2K*

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. [Πώς λειτουργούν η δέσμευση και η εκκαθάριση →](https://ailoot.ai/docs/el/billing/reserve/)

### Παραδείγματα αιτημάτων

#### Ailoot · Εικόνες

curlPython SDKNode.js SDK

```bash
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": "minimax-image", "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
```

```python
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': 'minimax-image', '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])
```

```js
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": "minimax-image", "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}/content`
- `GET /v1/media/assets`
- `GET /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** [`image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=image-01&fmt=images), [`minimax-image`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image&fmt=images), [`minimax-image-latest`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image-latest&fmt=images), [`minimax/image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax%2Fimage-01&fmt=images)

#### Εναλλακτικές διαδρομές μεθόδων

Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.

#### Σχετικά ID μοντέλων

[`image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=image-01&fmt=images), [`minimax-image`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image&fmt=images), [`minimax-image-latest`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image-latest&fmt=images), [`minimax/image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax%2Fimage-01&fmt=images)

**Ailoot · Εικόνες** `POST /v1/images/generations` `minimax-image-latest`

[`minimax-image-latest`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image-latest&fmt=images)

MiniMax /`minimax-image-latest`

ID μοντέλου

- `image-01`
- `minimax-image`
- `minimax-image-latest`
- `minimax/image-01`

### Εισαγωγή

Το MiniMax image-01 δημιουργεί εικόνες βάσει λεπτομερούς περιγραφής κειμένου· υποστηρίζει τετράγωνες, κατακόρυφες και πλατιές συνθέσεις.

Αποδεκτές είσοδοι

Κείμενο

Αποτελέσματα

Εικόνες

### Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

**Ailoot · Εικόνες** `POST /v1/images/generations`

Είσοδος

`text`

Έξοδος

`image`

Μορφή εξόδου

Αρχείο εικόνας

| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
| --- | --- | --- | --- | --- |
| Πεδίο`model` | Τύπος`string` | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια minimax-image-latest | Προεπιλογή— |
| Πεδίο`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

Έξοδος

0,0035 $ *ανά εικόνα ανάλυσης 1K*

Έξοδος

0,0035 $ *ανά εικόνα ανάλυσης 2K*

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. [Πώς λειτουργούν η δέσμευση και η εκκαθάριση →](https://ailoot.ai/docs/el/billing/reserve/)

### Παραδείγματα αιτημάτων

#### Ailoot · Εικόνες

curlPython SDKNode.js SDK

```bash
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": "minimax-image-latest", "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
```

```python
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': 'minimax-image-latest', '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])
```

```js
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": "minimax-image-latest", "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}/content`
- `GET /v1/media/assets`
- `GET /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** [`image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=image-01&fmt=images), [`minimax-image`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image&fmt=images), [`minimax-image-latest`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image-latest&fmt=images), [`minimax/image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax%2Fimage-01&fmt=images)

#### Εναλλακτικές διαδρομές μεθόδων

Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.

#### Σχετικά ID μοντέλων

[`image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=image-01&fmt=images), [`minimax-image`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image&fmt=images), [`minimax-image-latest`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image-latest&fmt=images), [`minimax/image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax%2Fimage-01&fmt=images)

**Ailoot · Εικόνες** `POST /v1/images/generations` `minimax/image-01`

[`minimax/image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax%2Fimage-01&fmt=images)

MiniMax /`minimax/image-01`

ID μοντέλου

- `image-01`
- `minimax-image`
- `minimax-image-latest`
- `minimax/image-01`

### Εισαγωγή

Το MiniMax image-01 δημιουργεί εικόνες βάσει λεπτομερούς περιγραφής κειμένου· υποστηρίζει τετράγωνες, κατακόρυφες και πλατιές συνθέσεις.

Αποδεκτές είσοδοι

Κείμενο

Αποτελέσματα

Εικόνες

### Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

**Ailoot · Εικόνες** `POST /v1/images/generations`

Είσοδος

`text`

Έξοδος

`image`

Μορφή εξόδου

Αρχείο εικόνας

| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
| --- | --- | --- | --- | --- |
| Πεδίο`model` | Τύπος`string` | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια minimax/image-01 | Προεπιλογή— |
| Πεδίο`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

Έξοδος

0,0035 $ *ανά εικόνα ανάλυσης 1K*

Έξοδος

0,0035 $ *ανά εικόνα ανάλυσης 2K*

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. [Πώς λειτουργούν η δέσμευση και η εκκαθάριση →](https://ailoot.ai/docs/el/billing/reserve/)

### Παραδείγματα αιτημάτων

#### Ailoot · Εικόνες

curlPython SDKNode.js SDK

```bash
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": "minimax/image-01", "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
```

```python
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': 'minimax/image-01', '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])
```

```js
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": "minimax/image-01", "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}/content`
- `GET /v1/media/assets`
- `GET /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** [`image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=image-01&fmt=images), [`minimax-image`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image&fmt=images), [`minimax-image-latest`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image-latest&fmt=images), [`minimax/image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax%2Fimage-01&fmt=images)

#### Εναλλακτικές διαδρομές μεθόδων

Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.

#### Σχετικά ID μοντέλων

[`image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=image-01&fmt=images), [`minimax-image`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image&fmt=images), [`minimax-image-latest`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax-image-latest&fmt=images), [`minimax/image-01`](https://ailoot.ai/models/el/#m=image-01&route=Core&caller=minimax%2Fimage-01&fmt=images)

FAQ · image-01

Ποιες είσοδοι και αποτελέσματα διατίθενται;

`POST /v1/images/generations` · `image-01`: `text` → `image` `POST /v1/images/generations` · `minimax-image`: `text` → `image` `POST /v1/images/generations` · `minimax-image-latest`: `text` → `image` `POST /v1/images/generations` · `minimax/image-01`: `text` → `image`

Ποια πεδία χρησιμοποιεί το αίτημα;

`POST /v1/images/generations` · `image-01`: `model`, `prompt`, `n`, `response_format`, `stream` `POST /v1/images/generations` · `minimax-image`: `model`, `prompt`, `n`, `response_format`, `stream` `POST /v1/images/generations` · `minimax-image-latest`: `model`, `prompt`, `n`, `response_format`, `stream` `POST /v1/images/generations` · `minimax/image-01`: `model`, `prompt`, `n`, `response_format`, `stream`

Ποια όρια ισχύουν;

`POST /v1/images/generations` · `image-01`: `n.minimum`: `1` `POST /v1/images/generations` · `minimax-image`: `n.minimum`: `1` `POST /v1/images/generations` · `minimax-image-latest`: `n.minimum`: `1` `POST /v1/images/generations` · `minimax/image-01`: `n.minimum`: `1`

Συνδέστε το Ailoot με Claude Code, OpenCode, Hermes ή τη δική σας εφαρμογή.

## Η εταιρεία και το χαρτοφυλάκιο έργων της

Η εταιρεία και το χαρτοφυλάκιο έργων της: εκατομμύρια πελάτες· μηνιαίες πωλήσεις δισεκατομμυρίων.

## Αγοράστε token με έκπτωση.

Έκπτωση συνδρομής για τακτική χρήση. Προωθητικοί κωδικοί — έως 50% στην αγορά token.

Συνδρομή

Επιλέξτε πρόγραμμα με έκπτωση για τα τακτικά αιτήματά σας.

Προωθητικός κωδικός έως 50%

Εισαγάγετε τον κωδικό στην αγορά. Η τιμή επανυπολογίζεται σύμφωνα με την ενεργή προσφορά.

Δαπάνες στο ιστορικό

Μοντέλο, token και ποσό αποθηκεύονται για κάθε αίτημα.

[Επιλέξτε συνδρομή](https://ailoot.ai/docs/el/billing/subscriptions/) · [Δείτε τιμές μοντέλων](https://ailoot.ai/models/el/)

## Συνδέστε το API με το προϊόν που πουλάτε.

SaaS, εφαρμογές και bot — σύμφωνα με τη δημόσια προσφορά και τη σύμβαση άδειας χρήσης Ailoot. Για μεταπώληση ζητήστε σχετική άδεια.

Εμπορική εφαρμογή

Ενσωματώστε δημιουργία κειμένου, εικόνων, βίντεο και ήχου στις πληρωμένες λειτουργίες της υπηρεσίας σας.

Άδεια για μεταπωλητή

Στείλτε περιγραφή έργου και τρόπο πρόσβασης. Ζητήστε γραπτούς όρους χρήσης και μεταπώλησης.

Έγγραφα στον ιστότοπο

Δημόσια προσφορά, σύμβαση άδειας χρήσης και πολιτική επεξεργασίας δεδομένων είναι διαθέσιμες πριν τη σύνδεση.

[Ζητήστε άδεια μεταπώλησης](mailto:support@ailoot.ai) · [Δημόσια προσφορά και σύμβαση άδειας χρήσης](https://ailoot.ai/legal/offer?lang=el)

## Ailoot · Η εταιρεία και το χαρτοφυλάκιο έργων της





Η Ailoot στηρίζεται στη συσσωρευμένη λειτουργική εμπειρία, τη μεγάλη πελατειακή βάση, τη σταθερή εξυπηρέτηση και τον συνεχή έλεγχο KPI.





Η εταιρεία και το χαρτοφυλάκιο έργων της: εκατομμύρια πελάτες· μηνιαίες πωλήσεις δισεκατομμυρίων.





Η Ailoot αξιοποιεί αυτή τη λειτουργική εμπειρία για πρόσβαση μέσω API σε λειτουργίες AI στα προϊόντα, τους πράκτορες, τις εφαρμογές και τους αυτοματισμούς των πελατών.
