{
  "aboutHtml": "<p>Το FLUX.2 [flex] είναι η έκδοση δημιουργίας και επεξεργασίας εικόνων της Black Forest Labs με ειδίκευση στην τυπογραφία, την απόδοση κειμένου και τη διατήρηση μικρών λεπτομερειών. Χρησιμοποιεί γραπτές οδηγίες σκηνής και εικόνες αναφοράς για να παράγει εικόνα. Ο χαρακτηριστικός έλεγχός του είναι η ρυθμιζόμενη δειγματοληψία: το τεκμηριωμένο προφίλ εκθέτει τόσο βήματα συμπερασμού όσο και guidance, επιτρέποντας τη βελτίωση μιας οπτικής περιγραφής με ρυθμίσεις και λέξεις.</p><h4>Γράμματα και λεπτές λεπτομέρειες</h4><p>Μια τυπογραφική εργασία πρέπει να ξεκινά με το πραγματικό κείμενο. Παραθέστε κάθε γραμμή, ορίστε πού ανήκει και διακρίνετε τίτλο, υποστηρικτικό κείμενο και ετικέτα. Περιγράψτε το ύφος, την κλίμακα και το χρώμα των γραμμάτων σε σχέση με τη σκηνή. Μια πρωτότυπη περιγραφή αφίσας θα μπορούσε να δείχνει ποδήλατο σε μπλε κοβαλτίου σε ανοιχτόχρωμο στούντιο, με μεγάλο τίτλο πάνω από τον σκελετό και μικρότερη γραμμή προδιαγραφών από κάτω. Η εικόνα πρέπει να καθιστά σαφή μαζί το προϊόν και τη σειρά ανάγνωσης.</p><p>Για λεπτομερή οπτική παρουσίαση προϊόντος, προσδιορίστε τα μέρη που καθορίζουν τη χρησιμότητα του αποτελέσματος: καντράν, ετικέτα χειρισμού, ραφή, άκρη υλικού ή σήμανση συσκευασίας. Δώστε ευανάγνωστη αναφορά και εξηγήστε ποιο χαρακτηριστικό καθορίζει. Μια σκηνή που μοιάζει γενικά μπορεί και πάλι να αλλάξει κρίσιμο χαρακτήρα ή εξάρτημα, επομένως συγκρίνετε την παραγόμενη λεπτομέρεια στο προβλεπόμενο μέγεθος προβολής. Η ειδίκευση του μοντέλου είναι λόγος για ακριβείς απαιτήσεις, όχι εγγύηση ότι η διόρθωση κειμένου ή ο οπτικός έλεγχος γίνονται περιττοί.</p><h4>Τα βήματα και το guidance υπηρετούν διαφορετικούς σκοπούς</h4><p>Το συγκεκριμένο προφίλ κατασκευαστή δέχεται από ένα έως πενήντα βήματα συμπερασμού, με προεπιλογή πενήντα. Η περιγραφή του συνδέει περισσότερα βήματα με μεγαλύτερη λεπτομέρεια και ρεαλισμό. Το guidance κυμαίνεται από 1.5 έως 10, με προεπιλογή 5. Υψηλότερο guidance ενισχύει τη συμμόρφωση με την προτροπή, αλλά μπορεί να μειώσει τον ρεαλισμό. Συνεπώς, μια εικόνα με ακριβείς σχεδιαστικές οδηγίες και μια που επιδιώκει φυσική φωτογραφική εμφάνιση μπορεί να απαιτούν διαφορετικές επιλογές μέσα σε αυτό το προφίλ.</p><p>Κρατήστε σταθερά τη διατύπωση, τις αναφορές και το σχήμα εξόδου όταν συγκρίνετε αλλαγή ρύθμισης. Εξετάστε το χαρακτηριστικό που προκάλεσε την αλλαγή: μορφές γραμμάτων, τοποθέτηση αντικειμένων ή υφή υλικού. Αλλάξτε ρύθμιση για συγκεκριμένο οπτικό λόγο, αντί να θεωρείτε έναν μεγάλο αριθμό αυτόματα καλύτερο. Αυτοί είναι έλεγχοι δειγματοληψίας του παραγωγού· το αποσταγμένο προφίλ τεσσάρων βημάτων [klein] και οι τυπικοί έλεγχοι [pro] ή [max] αποτελούν διαφορετικές επιλογές μοντέλου.</p><p>Ο εμπλουτισμός προτροπής είναι ενεργός από προεπιλογή στην προδιαγραφή [flex] και μπορεί να απενεργοποιηθεί μέσω του δικού του ελέγχου prompt_upsampling. Αυτό επιτρέπει σε λεπτομερή περιγραφή να παραμείνει το παρεχόμενο κείμενο όταν χρειάζεται. Ο κοινός οδηγός του κατασκευαστή συνιστά το κύριο θέμα και η σημαντική δράση να προηγούνται της δευτερεύουσας διακόσμησης και περιγράφει προτροπές με δομή JSON μαζί με περιγραφές φυσικής γλώσσας. Χρησιμοποιήστε τη δομή που κάνει ευκολότερο τον προσδιορισμό των απαιτούμενων σχέσεων.</p><h4>Αναθεωρήσεις με καθοδήγηση αναφορών</h4><p>Το συγκεκριμένο προφίλ αιτήματος περιέχει οκτώ θέσεις εικόνων αναφοράς. Η διαδραστική ροή του κατασκευαστή επιτρέπει χωριστά έως δέκα εικόνες· αυτά τα πλήθη περιγράφουν διαφορετικές διεπαφές. Ορίστε αν μια εικόνα παρέχει τη σκηνή προς επεξεργασία, προϊόν, χαρακτήρα, ενδυμασία ή ύφος. Για αναθεώρηση, προσδιορίστε το αντικείμενο και την αλλαγή και ονομάστε κατόπιν τη γύρω σύνθεση, τα υλικά ή το φως που πρέπει να παραμείνουν.</p><p>Μια πρωτότυπη εργασία συσκευασίας θα μπορούσε να χρησιμοποιεί το κουτί της πρώτης εικόνας και το φινίρισμα της δεύτερης, να αντικαθιστά την μπροστινή ετικέτα με την εγκεκριμένη διατύπωση και να διατηρεί τις αναλογίες του κουτιού. Μια ομαδική σύνθεση μπορεί να αναθέτει διαφορετική αναφορά σε κάθε θέμα και να κρατά συνεπείς αυτές τις αντιστοιχίσεις. Τα παραδείγματα της οικογένειας καλύπτουν αλλαγές αντικειμένων και φόντου, σύνθεση, επεξεργασία κειμένου και μετασχηματισμούς ύφους. Ζητήστε μία συνδεδεμένη αναθεώρηση με σαφή στόχο και συγκρίνετε τόσο την επεξεργασμένη περιοχή όσο και τα μέρη που πρέπει να μείνουν σταθερά.</p><h4>Μέγεθος, χρώμα και η επιστρεφόμενη εικόνα</h4><p>Ο οδηγός FLUX.2 τεκμηριώνει ελάχιστο 64×64 pixel, διαστάσεις σε πολλαπλάσια του 16 και έξοδο έως 4 megapixel, με σύσταση έως 2 megapixel για συνήθη χρήση. Η συγκεκριμένη προδιαγραφή [flex] αναφέρει έξοδο JPEG, PNG και WebP, με προεπιλογή JPEG. Παρέχει επίσης προαιρετικό τυχαίο seed. Κρατήστε το πραγματικό μοντέλο, το seed και τις ρυθμίσεις δειγματοληψίας με τις αρχικές αναφορές όταν συγκρίνετε εκδόσεις· μόνο το όνομα οικογένειας δεν προσδιορίζει την πλήρη ρύθμιση δημιουργίας.</p><p>Για εργασία ευαίσθητη στο χρώμα, συνδέστε κάθε δεκαεξαδικό κωδικό με ονομασμένο αντικείμενο ή στοιχείο κειμένου. Για σύνθεση, προσδιορίστε την επιθυμητή αναλογία μέσω των διαστάσεων εικόνας και αφήστε αρκετό χώρο για ευανάγνωστα γράμματα. Ο κοινός οδηγός δεν διαθέτει μηχανισμό αρνητικής προτροπής, επομένως περιγράψτε θετικά την επιθυμητή εμφάνιση: καθαρή εστίαση, λιτό φόντο ή σαφώς κενή περιοχή για κείμενο. Τα πολύγλωσσα παραδείγματά του υποστηρίζουν τη σύνταξη μιας πολιτισμικά συγκεκριμένης περιγραφής στην κατάλληλη γλώσσα, χωρίς να θεμελιώνουν εγγύηση σταθερού αριθμού γλωσσών.</p><p>Η ροή FLUX.2 του παραγωγού επιστρέφει εικόνα μετά την επεξεργασία και χρησιμοποιεί προσωρινούς υπογεγραμμένους συνδέσμους με περιθώριο ανάκτησης δέκα λεπτών. Διατηρήστε μαζί την πραγματική εικόνα και την περιγραφή. Ελέγξτε τυπογραφία, λεπτές λεπτομέρειες, ταυτότητα αναφορών και οπτική απόδοση πριν τοποθετήσετε το οπτικό αρχείο σε διάταξη. Το τελικό παραδοτέο μπορεί να είναι επιλεγμένη αφίσα, εικόνα προϊόντος ή επεξεργασμένη σύνθεση με τις ακριβείς ρυθμίσεις διατηρημένες για την επόμενη αναθεώρηση.</p>",
  "aboutText": "Το FLUX.2 [flex] είναι η έκδοση δημιουργίας και επεξεργασίας εικόνων της Black Forest Labs με ειδίκευση στην τυπογραφία, την απόδοση κειμένου και τη διατήρηση μικρών λεπτομερειών. Χρησιμοποιεί γραπτές οδηγίες σκηνής και εικόνες αναφοράς για να παράγει εικόνα. Ο χαρακτηριστικός έλεγχός του είναι η ρυθμιζόμενη δειγματοληψία: το τεκμηριωμένο προφίλ εκθέτει τόσο βήματα συμπερασμού όσο και guidance, επιτρέποντας τη βελτίωση μιας οπτικής περιγραφής με ρυθμίσεις και λέξεις.\n\n### Γράμματα και λεπτές λεπτομέρειες\n\nΜια τυπογραφική εργασία πρέπει να ξεκινά με το πραγματικό κείμενο. Παραθέστε κάθε γραμμή, ορίστε πού ανήκει και διακρίνετε τίτλο, υποστηρικτικό κείμενο και ετικέτα. Περιγράψτε το ύφος, την κλίμακα και το χρώμα των γραμμάτων σε σχέση με τη σκηνή. Μια πρωτότυπη περιγραφή αφίσας θα μπορούσε να δείχνει ποδήλατο σε μπλε κοβαλτίου σε ανοιχτόχρωμο στούντιο, με μεγάλο τίτλο πάνω από τον σκελετό και μικρότερη γραμμή προδιαγραφών από κάτω. Η εικόνα πρέπει να καθιστά σαφή μαζί το προϊόν και τη σειρά ανάγνωσης.\n\nΓια λεπτομερή οπτική παρουσίαση προϊόντος, προσδιορίστε τα μέρη που καθορίζουν τη χρησιμότητα του αποτελέσματος: καντράν, ετικέτα χειρισμού, ραφή, άκρη υλικού ή σήμανση συσκευασίας. Δώστε ευανάγνωστη αναφορά και εξηγήστε ποιο χαρακτηριστικό καθορίζει. Μια σκηνή που μοιάζει γενικά μπορεί και πάλι να αλλάξει κρίσιμο χαρακτήρα ή εξάρτημα, επομένως συγκρίνετε την παραγόμενη λεπτομέρεια στο προβλεπόμενο μέγεθος προβολής. Η ειδίκευση του μοντέλου είναι λόγος για ακριβείς απαιτήσεις, όχι εγγύηση ότι η διόρθωση κειμένου ή ο οπτικός έλεγχος γίνονται περιττοί.\n\n### Τα βήματα και το guidance υπηρετούν διαφορετικούς σκοπούς\n\nΤο συγκεκριμένο προφίλ κατασκευαστή δέχεται από ένα έως πενήντα βήματα συμπερασμού, με προεπιλογή πενήντα. Η περιγραφή του συνδέει περισσότερα βήματα με μεγαλύτερη λεπτομέρεια και ρεαλισμό. Το guidance κυμαίνεται από 1.5 έως 10, με προεπιλογή 5. Υψηλότερο guidance ενισχύει τη συμμόρφωση με την προτροπή, αλλά μπορεί να μειώσει τον ρεαλισμό. Συνεπώς, μια εικόνα με ακριβείς σχεδιαστικές οδηγίες και μια που επιδιώκει φυσική φωτογραφική εμφάνιση μπορεί να απαιτούν διαφορετικές επιλογές μέσα σε αυτό το προφίλ.\n\nΚρατήστε σταθερά τη διατύπωση, τις αναφορές και το σχήμα εξόδου όταν συγκρίνετε αλλαγή ρύθμισης. Εξετάστε το χαρακτηριστικό που προκάλεσε την αλλαγή: μορφές γραμμάτων, τοποθέτηση αντικειμένων ή υφή υλικού. Αλλάξτε ρύθμιση για συγκεκριμένο οπτικό λόγο, αντί να θεωρείτε έναν μεγάλο αριθμό αυτόματα καλύτερο. Αυτοί είναι έλεγχοι δειγματοληψίας του παραγωγού· το αποσταγμένο προφίλ τεσσάρων βημάτων [klein] και οι τυπικοί έλεγχοι [pro] ή [max] αποτελούν διαφορετικές επιλογές μοντέλου.\n\nΟ εμπλουτισμός προτροπής είναι ενεργός από προεπιλογή στην προδιαγραφή [flex] και μπορεί να απενεργοποιηθεί μέσω του δικού του ελέγχου prompt_upsampling. Αυτό επιτρέπει σε λεπτομερή περιγραφή να παραμείνει το παρεχόμενο κείμενο όταν χρειάζεται. Ο κοινός οδηγός του κατασκευαστή συνιστά το κύριο θέμα και η σημαντική δράση να προηγούνται της δευτερεύουσας διακόσμησης και περιγράφει προτροπές με δομή JSON μαζί με περιγραφές φυσικής γλώσσας. Χρησιμοποιήστε τη δομή που κάνει ευκολότερο τον προσδιορισμό των απαιτούμενων σχέσεων.\n\n### Αναθεωρήσεις με καθοδήγηση αναφορών\n\nΤο συγκεκριμένο προφίλ αιτήματος περιέχει οκτώ θέσεις εικόνων αναφοράς. Η διαδραστική ροή του κατασκευαστή επιτρέπει χωριστά έως δέκα εικόνες· αυτά τα πλήθη περιγράφουν διαφορετικές διεπαφές. Ορίστε αν μια εικόνα παρέχει τη σκηνή προς επεξεργασία, προϊόν, χαρακτήρα, ενδυμασία ή ύφος. Για αναθεώρηση, προσδιορίστε το αντικείμενο και την αλλαγή και ονομάστε κατόπιν τη γύρω σύνθεση, τα υλικά ή το φως που πρέπει να παραμείνουν.\n\nΜια πρωτότυπη εργασία συσκευασίας θα μπορούσε να χρησιμοποιεί το κουτί της πρώτης εικόνας και το φινίρισμα της δεύτερης, να αντικαθιστά την μπροστινή ετικέτα με την εγκεκριμένη διατύπωση και να διατηρεί τις αναλογίες του κουτιού. Μια ομαδική σύνθεση μπορεί να αναθέτει διαφορετική αναφορά σε κάθε θέμα και να κρατά συνεπείς αυτές τις αντιστοιχίσεις. Τα παραδείγματα της οικογένειας καλύπτουν αλλαγές αντικειμένων και φόντου, σύνθεση, επεξεργασία κειμένου και μετασχηματισμούς ύφους. Ζητήστε μία συνδεδεμένη αναθεώρηση με σαφή στόχο και συγκρίνετε τόσο την επεξεργασμένη περιοχή όσο και τα μέρη που πρέπει να μείνουν σταθερά.\n\n### Μέγεθος, χρώμα και η επιστρεφόμενη εικόνα\n\nΟ οδηγός FLUX.2 τεκμηριώνει ελάχιστο 64×64 pixel, διαστάσεις σε πολλαπλάσια του 16 και έξοδο έως 4 megapixel, με σύσταση έως 2 megapixel για συνήθη χρήση. Η συγκεκριμένη προδιαγραφή [flex] αναφέρει έξοδο JPEG, PNG και WebP, με προεπιλογή JPEG. Παρέχει επίσης προαιρετικό τυχαίο seed. Κρατήστε το πραγματικό μοντέλο, το seed και τις ρυθμίσεις δειγματοληψίας με τις αρχικές αναφορές όταν συγκρίνετε εκδόσεις· μόνο το όνομα οικογένειας δεν προσδιορίζει την πλήρη ρύθμιση δημιουργίας.\n\nΓια εργασία ευαίσθητη στο χρώμα, συνδέστε κάθε δεκαεξαδικό κωδικό με ονομασμένο αντικείμενο ή στοιχείο κειμένου. Για σύνθεση, προσδιορίστε την επιθυμητή αναλογία μέσω των διαστάσεων εικόνας και αφήστε αρκετό χώρο για ευανάγνωστα γράμματα. Ο κοινός οδηγός δεν διαθέτει μηχανισμό αρνητικής προτροπής, επομένως περιγράψτε θετικά την επιθυμητή εμφάνιση: καθαρή εστίαση, λιτό φόντο ή σαφώς κενή περιοχή για κείμενο. Τα πολύγλωσσα παραδείγματά του υποστηρίζουν τη σύνταξη μιας πολιτισμικά συγκεκριμένης περιγραφής στην κατάλληλη γλώσσα, χωρίς να θεμελιώνουν εγγύηση σταθερού αριθμού γλωσσών.\n\nΗ ροή FLUX.2 του παραγωγού επιστρέφει εικόνα μετά την επεξεργασία και χρησιμοποιεί προσωρινούς υπογεγραμμένους συνδέσμους με περιθώριο ανάκτησης δέκα λεπτών. Διατηρήστε μαζί την πραγματική εικόνα και την περιγραφή. Ελέγξτε τυπογραφία, λεπτές λεπτομέρειες, ταυτότητα αναφορών και οπτική απόδοση πριν τοποθετήσετε το οπτικό αρχείο σε διάταξη. Το τελικό παραδοτέο μπορεί να είναι επιλεγμένη αφίσα, εικόνα προϊόντος ή επεξεργασμένη σύνθεση με τις ακριβείς ρυθμίσεις διατηρημένες για την επόμενη αναθεώρηση.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "468b85ff38be13de346aa93de141cc26ee03b755c85dfd2b2e3152f0e2746be4",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "el",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Black Forest Labs: FLUX.2 Flex</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Black Forest Labs /</span><code>black-forest-labs/flux.2-flex</code><button type=\"button\" id=\"copy-id\">Αντιγραφή ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Ενότητες κάρτας μοντέλου\"><button type=\"button\" data-card-jump=\"overview\">Εισαγωγή</button><button type=\"button\" data-card-jump=\"methods\">Είσοδοι και μέθοδοι</button><button type=\"button\" data-card-jump=\"pricing\">Τιμολόγηση</button><button type=\"button\" data-card-jump=\"examples\">Παραδείγματα</button><button type=\"button\" data-card-jump=\"results\">Αποτελέσματα</button><button type=\"button\" data-card-jump=\"aliases\">Εναλλακτικά ονόματα</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Μέθοδοι API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|images|/v1/images/generations|black-forest-labs%2Fflux.2-flex\">Εικόνες</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Εισαγωγή</h3><p class=\"mdesc-full\">Το FLUX.2 [flex] ειδικεύεται στην τυπογραφία εικόνων και τις μικρές οπτικές λεπτομέρειες, με ρυθμιζόμενα βήματα δειγματοληψίας και guidance. Χρησιμοποιήστε κείμενο και εικόνες αναφοράς για αφίσες, διατάξεις προϊόντων ή ακριβείς αναθεωρήσεις, εξισορροπώντας συμμόρφωση και ρεαλισμό.</p><dl class=\"card-io\" data-card-io><div><dt>Αποδεκτές είσοδοι</dt><dd>Κείμενο · Εικόνες</dd></div><div><dt>Αποτελέσματα</dt><dd>Εικόνες</dd></div></dl><details class=\"card-about\"><summary>Σχετικά με το μοντέλο</summary><p class=\"note-s\" data-model-method-boundary>Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.</p><div class=\"mabout\" id=\"m-about\"><p>Το FLUX.2 [flex] είναι η έκδοση δημιουργίας και επεξεργασίας εικόνων της Black Forest Labs με ειδίκευση στην τυπογραφία, την απόδοση κειμένου και τη διατήρηση μικρών λεπτομερειών. Χρησιμοποιεί γραπτές οδηγίες σκηνής και εικόνες αναφοράς για να παράγει εικόνα. Ο χαρακτηριστικός έλεγχός του είναι η ρυθμιζόμενη δειγματοληψία: το τεκμηριωμένο προφίλ εκθέτει τόσο βήματα συμπερασμού όσο και guidance, επιτρέποντας τη βελτίωση μιας οπτικής περιγραφής με ρυθμίσεις και λέξεις.</p><h4>Γράμματα και λεπτές λεπτομέρειες</h4><p>Μια τυπογραφική εργασία πρέπει να ξεκινά με το πραγματικό κείμενο. Παραθέστε κάθε γραμμή, ορίστε πού ανήκει και διακρίνετε τίτλο, υποστηρικτικό κείμενο και ετικέτα. Περιγράψτε το ύφος, την κλίμακα και το χρώμα των γραμμάτων σε σχέση με τη σκηνή. Μια πρωτότυπη περιγραφή αφίσας θα μπορούσε να δείχνει ποδήλατο σε μπλε κοβαλτίου σε ανοιχτόχρωμο στούντιο, με μεγάλο τίτλο πάνω από τον σκελετό και μικρότερη γραμμή προδιαγραφών από κάτω. Η εικόνα πρέπει να καθιστά σαφή μαζί το προϊόν και τη σειρά ανάγνωσης.</p><p>Για λεπτομερή οπτική παρουσίαση προϊόντος, προσδιορίστε τα μέρη που καθορίζουν τη χρησιμότητα του αποτελέσματος: καντράν, ετικέτα χειρισμού, ραφή, άκρη υλικού ή σήμανση συσκευασίας. Δώστε ευανάγνωστη αναφορά και εξηγήστε ποιο χαρακτηριστικό καθορίζει. Μια σκηνή που μοιάζει γενικά μπορεί και πάλι να αλλάξει κρίσιμο χαρακτήρα ή εξάρτημα, επομένως συγκρίνετε την παραγόμενη λεπτομέρεια στο προβλεπόμενο μέγεθος προβολής. Η ειδίκευση του μοντέλου είναι λόγος για ακριβείς απαιτήσεις, όχι εγγύηση ότι η διόρθωση κειμένου ή ο οπτικός έλεγχος γίνονται περιττοί.</p><h4>Τα βήματα και το guidance υπηρετούν διαφορετικούς σκοπούς</h4><p>Το συγκεκριμένο προφίλ κατασκευαστή δέχεται από ένα έως πενήντα βήματα συμπερασμού, με προεπιλογή πενήντα. Η περιγραφή του συνδέει περισσότερα βήματα με μεγαλύτερη λεπτομέρεια και ρεαλισμό. Το guidance κυμαίνεται από 1.5 έως 10, με προεπιλογή 5. Υψηλότερο guidance ενισχύει τη συμμόρφωση με την προτροπή, αλλά μπορεί να μειώσει τον ρεαλισμό. Συνεπώς, μια εικόνα με ακριβείς σχεδιαστικές οδηγίες και μια που επιδιώκει φυσική φωτογραφική εμφάνιση μπορεί να απαιτούν διαφορετικές επιλογές μέσα σε αυτό το προφίλ.</p><p>Κρατήστε σταθερά τη διατύπωση, τις αναφορές και το σχήμα εξόδου όταν συγκρίνετε αλλαγή ρύθμισης. Εξετάστε το χαρακτηριστικό που προκάλεσε την αλλαγή: μορφές γραμμάτων, τοποθέτηση αντικειμένων ή υφή υλικού. Αλλάξτε ρύθμιση για συγκεκριμένο οπτικό λόγο, αντί να θεωρείτε έναν μεγάλο αριθμό αυτόματα καλύτερο. Αυτοί είναι έλεγχοι δειγματοληψίας του παραγωγού· το αποσταγμένο προφίλ τεσσάρων βημάτων [klein] και οι τυπικοί έλεγχοι [pro] ή [max] αποτελούν διαφορετικές επιλογές μοντέλου.</p><p>Ο εμπλουτισμός προτροπής είναι ενεργός από προεπιλογή στην προδιαγραφή [flex] και μπορεί να απενεργοποιηθεί μέσω του δικού του ελέγχου prompt_upsampling. Αυτό επιτρέπει σε λεπτομερή περιγραφή να παραμείνει το παρεχόμενο κείμενο όταν χρειάζεται. Ο κοινός οδηγός του κατασκευαστή συνιστά το κύριο θέμα και η σημαντική δράση να προηγούνται της δευτερεύουσας διακόσμησης και περιγράφει προτροπές με δομή JSON μαζί με περιγραφές φυσικής γλώσσας. Χρησιμοποιήστε τη δομή που κάνει ευκολότερο τον προσδιορισμό των απαιτούμενων σχέσεων.</p><h4>Αναθεωρήσεις με καθοδήγηση αναφορών</h4><p>Το συγκεκριμένο προφίλ αιτήματος περιέχει οκτώ θέσεις εικόνων αναφοράς. Η διαδραστική ροή του κατασκευαστή επιτρέπει χωριστά έως δέκα εικόνες· αυτά τα πλήθη περιγράφουν διαφορετικές διεπαφές. Ορίστε αν μια εικόνα παρέχει τη σκηνή προς επεξεργασία, προϊόν, χαρακτήρα, ενδυμασία ή ύφος. Για αναθεώρηση, προσδιορίστε το αντικείμενο και την αλλαγή και ονομάστε κατόπιν τη γύρω σύνθεση, τα υλικά ή το φως που πρέπει να παραμείνουν.</p><p>Μια πρωτότυπη εργασία συσκευασίας θα μπορούσε να χρησιμοποιεί το κουτί της πρώτης εικόνας και το φινίρισμα της δεύτερης, να αντικαθιστά την μπροστινή ετικέτα με την εγκεκριμένη διατύπωση και να διατηρεί τις αναλογίες του κουτιού. Μια ομαδική σύνθεση μπορεί να αναθέτει διαφορετική αναφορά σε κάθε θέμα και να κρατά συνεπείς αυτές τις αντιστοιχίσεις. Τα παραδείγματα της οικογένειας καλύπτουν αλλαγές αντικειμένων και φόντου, σύνθεση, επεξεργασία κειμένου και μετασχηματισμούς ύφους. Ζητήστε μία συνδεδεμένη αναθεώρηση με σαφή στόχο και συγκρίνετε τόσο την επεξεργασμένη περιοχή όσο και τα μέρη που πρέπει να μείνουν σταθερά.</p><h4>Μέγεθος, χρώμα και η επιστρεφόμενη εικόνα</h4><p>Ο οδηγός FLUX.2 τεκμηριώνει ελάχιστο 64×64 pixel, διαστάσεις σε πολλαπλάσια του 16 και έξοδο έως 4 megapixel, με σύσταση έως 2 megapixel για συνήθη χρήση. Η συγκεκριμένη προδιαγραφή [flex] αναφέρει έξοδο JPEG, PNG και WebP, με προεπιλογή JPEG. Παρέχει επίσης προαιρετικό τυχαίο seed. Κρατήστε το πραγματικό μοντέλο, το seed και τις ρυθμίσεις δειγματοληψίας με τις αρχικές αναφορές όταν συγκρίνετε εκδόσεις· μόνο το όνομα οικογένειας δεν προσδιορίζει την πλήρη ρύθμιση δημιουργίας.</p><p>Για εργασία ευαίσθητη στο χρώμα, συνδέστε κάθε δεκαεξαδικό κωδικό με ονομασμένο αντικείμενο ή στοιχείο κειμένου. Για σύνθεση, προσδιορίστε την επιθυμητή αναλογία μέσω των διαστάσεων εικόνας και αφήστε αρκετό χώρο για ευανάγνωστα γράμματα. Ο κοινός οδηγός δεν διαθέτει μηχανισμό αρνητικής προτροπής, επομένως περιγράψτε θετικά την επιθυμητή εμφάνιση: καθαρή εστίαση, λιτό φόντο ή σαφώς κενή περιοχή για κείμενο. Τα πολύγλωσσα παραδείγματά του υποστηρίζουν τη σύνταξη μιας πολιτισμικά συγκεκριμένης περιγραφής στην κατάλληλη γλώσσα, χωρίς να θεμελιώνουν εγγύηση σταθερού αριθμού γλωσσών.</p><p>Η ροή FLUX.2 του παραγωγού επιστρέφει εικόνα μετά την επεξεργασία και χρησιμοποιεί προσωρινούς υπογεγραμμένους συνδέσμους με περιθώριο ανάκτησης δέκα λεπτών. Διατηρήστε μαζί την πραγματική εικόνα και την περιγραφή. Ελέγξτε τυπογραφία, λεπτές λεπτομέρειες, ταυτότητα αναφορών και οπτική απόδοση πριν τοποθετήσετε το οπτικό αρχείο σε διάταξη. Το τελικό παραδοτέο μπορεί να είναι επιλεγμένη αφίσα, εικόνα προϊόντος ή επεξεργασμένη σύνθεση με τις ακριβείς ρυθμίσεις διατηρημένες για την επόμενη αναθεώρηση.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Εικόνες</b> <code>POST /v1/images/generations</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Έξοδος</dt><dd><code>image</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Απαίτηση</th><th>Τιμές και όρια</th><th>Προεπιλογή</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>black-forest-labs/flux.2-flex</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Ελάχιστο μήκος: 1</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>1:1, 4:3, 3:4, 3:2, 2:3, 16:9, 9:16, 21:9, auto</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">output_format</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>png, jpeg</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">n</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>integer</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Ελάχιστο: 1</div><div>Μέγιστο: 1</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>array</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Ελάχιστο πλήθος στοιχείων: 0</div><div>Μέγιστο πλήθος στοιχείων: 8</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>object</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>content_type</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>application/json</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>required</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>model, prompt</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>material_types</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>text, image</td></tr></tbody></table></div><p>Κύκλος ζωής: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Τιμολόγηση</h3><div class=\"card-result-process\" data-billing-basis><h5>Πώς υπολογίζεται η τελική χρέωση</h5><p class=\"note-s\">Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.</p><dl data-price-conditions><dt>Γρήγορη λειτουργία</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η γρήγορη λειτουργία</span></dd><dt>Λειτουργία flex</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η λειτουργία flex</span></dd><dt>Μέγιστη προσπάθεια συλλογισμού</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Εκτιμώμενες χρεώσεις για σύγκριση</h4><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Πίνακας χρεώσεων</th><th>Προβλεπόμενη ποσότητα</th><th>Μονάδα τιμολόγησης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Βασικές χρεώσεις token</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>Βασική χρέωση</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Token εισόδου · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Έξοδος · Token εξόδου · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Ανάγνωση από την κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>megapixel εικόνας εισόδου</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά μεγαπίξελ εικόνας εισόδου</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · megapixel εικόνας εισόδου · Εκτίμηση μόνο για σύγκριση</span> <b>$0.12</b> <span class=\"price-unit\">ανά μεγαπίξελ εικόνας εισόδου</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>megapixel εικόνας εξόδου</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά μεγαπίξελ εικόνας εξόδου</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · megapixel εικόνας εξόδου · Εκτίμηση μόνο για σύγκριση</span> <b>$0.12</b> <span class=\"price-unit\">ανά μεγαπίξελ εικόνας εξόδου</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Εκτιμώμενο κόστος δημιουργίας</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>εκτίμηση για μία δημιουργία</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτιμώμενο κόστος δημιουργίας · Εκτίμηση μόνο για σύγκριση</span> <b>$0.12</b> <span class=\"price-unit\">εκτίμηση πριν από τη δημιουργία</span></div><p class=\"note-s\">Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. <a href=\"/docs/el/billing/reserve/\">Πώς λειτουργούν η δέσμευση και η εκκαθάριση →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Παραδείγματα αιτημάτων</h3><h4>Ailoot Ultra · Εικόνες</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1099-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1099-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1099-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1099-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np={&#39;model&#39;: &#39;black-forest-labs/flux.2-flex&#39;, &#39;prompt&#39;: &#39;a red panda astronaut floating in space, studio lighting&#39;}\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(&quot;No completed images; retain the full response&quot;)\n    for index, item in enumerate(items):\n        encoded=item.get(&quot;b64_json&quot;)\n        uri=item.get(&quot;url&quot;, &quot;&quot;)\n        if not encoded and uri.startswith(&quot;data:image/&quot;):\n            header, separator, encoded=uri.partition(&quot;,&quot;)\n            if not separator or &quot;;base64&quot; not in header: raise SystemExit(&quot;Unsupported image data URI&quot;)\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(&quot;https://api.ailoot.ai&quot;,uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=&quot;https&quot; or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(&quot;Invalid returned image URL&quot;)\n            owned=parsed.netloc==&quot;api.ailoot.ai&quot; and parsed.path.startswith(&quot;/v1/media/assets/&quot;) and parsed.path.endswith(&quot;/content&quot;)\n            args=[&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,uri]\n            if owned: args += [&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;]]\n            temporary=Path(f&quot;image-{index}.bin&quot;)\n            subprocess.run(args+[&quot;-o&quot;,str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(&quot;Image has neither bytes nor URL&quot;)\n        if not raw: raise SystemExit(&quot;Empty image result&quot;)\n        ext=&quot;png&quot; if raw.startswith(b&quot;\\x89PNG&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4]==b&quot;RIFF&quot; and raw[8:12]==b&quot;WEBP&quot; else &quot;svg&quot; if raw.lstrip().startswith((b&quot;&lt;svg&quot;,b&quot;&lt;?xml&quot;)) else &quot;bin&quot;\n        Path(f&quot;image-{index}.{ext}&quot;).write_bytes(raw)\n    print(&quot;Every returned image saved; complete response metadata retained&quot;)\nsave_images(json.loads(Path(&quot;result.json&quot;).read_text())[&quot;data&quot;])\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · Εικόνες</h4><p class=\"note-s\">Κατεβάστε κάθε εικόνα που επιστρέφεται ή αποθηκεύστε το περιεχόμενο Base64</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Άλλες ανακτήσεις περιεχομένου</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1100-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1100-panel-0\" aria-selected=\"true\" tabindex=\"0\">Ανάκτηση υπαρχόντων αρχείων που σας ανήκουν</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1100-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1100-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Αποθηκεύστε κάθε ολοκληρωμένη εικόνα· ανακτήστε κάθε URL που επιστρέφεται ή αποκωδικοποιήστε το περιεχόμενο Base64.</p><p class=\"note-s\">Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, κάθε πραγματικό αποτέλεσμα εξόδου, τα αρχικά αναγνωριστικά που επιστράφηκαν και όλα τα πεδία χρήσης. Ανακτήστε την αρχική λειτουργία χωρίς να υποβάλετε ξανά αίτημα δημιουργίας.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε το X-Client-Request-ID που επιστράφηκε για τη συμφωνία των εγγραφών. Διαβάστε μόνο πραγματικές τιμές task_id/asset_id που επιστράφηκαν ή τη βιβλιοθήκη πολυμέσων που σας ανήκει· μην κατασκευάσετε ποτέ URL εργασίας από το ID της λειτουργίας και μην υποβάλετε ποτέ ξανά αίτημα δημιουργίας.</p></div><details class=\"card-about\" data-output-fields><summary>Πεδία απάντησης</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Πεδίο</th><th>Τύπος</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">created</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span></td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">data[].url</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span></td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">data[].b64_json</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span></td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Εναλλακτικά ονόματα</h3><h4>Εναλλακτικά ονόματα μοντέλου</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=black-forest-labs%2Fflux.2-flex&amp;route=Ultra&amp;caller=black-forest-labs%2Fflux.2-flex&amp;fmt=images\"><code>black-forest-labs/flux.2-flex</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\"><code>/v1/images</code></p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=black-forest-labs%2Fflux.2-flex&amp;route=Ultra&amp;caller=black-forest-labs%2Fflux.2-flex&amp;fmt=images\"><code>black-forest-labs/flux.2-flex</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "black-forest-labs/flux.2-flex",
        "fmt": "images",
        "http": "POST",
        "path": "/v1/images/generations",
        "request_model_id": "black-forest-labs/flux.2-flex",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|images|/v1/images/generations|black-forest-labs%2Fflux.2-flex",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Διατηρήστε το X-Client-Request-ID που επιστράφηκε για τη συμφωνία των εγγραφών. Διαβάστε μόνο πραγματικές τιμές task_id/asset_id που επιστράφηκαν ή τη βιβλιοθήκη πολυμέσων που σας ανήκει· μην κατασκευάσετε ποτέ URL εργασίας από το ID της λειτουργίας και μην υποβάλετε ποτέ ξανά αίτημα δημιουργίας."
            },
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, κάθε πραγματικό αποτέλεσμα εξόδου, τα αρχικά αναγνωριστικά που επιστράφηκαν και όλα τα πεδία χρήσης. Ανακτήστε την αρχική λειτουργία χωρίς να υποβάλετε ξανά αίτημα δημιουργίας.",
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "black-forest-labs/flux.2-flex"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "3:2",
                  "2:3",
                  "16:9",
                  "9:16",
                  "21:9",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "png",
                  "jpeg"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 8,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "3:2",
                    "2:3",
                    "16:9",
                    "9:16",
                    "21:9",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 8,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "black-forest-labs/flux.2-flex"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 1,
                  "minimum": 1,
                  "type": "integer"
                },
                "output_format": {
                  "enum": [
                    "png",
                    "jpeg"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "black-forest-labs/flux.2-flex",
                "prompt": "a red panda astronaut floating in space, studio lighting"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "image",
            "fields": [
              {
                "description": null,
                "name": "created",
                "type": null
              },
              {
                "description": null,
                "name": "data[].url",
                "type": null
              },
              {
                "description": null,
                "name": "data[].b64_json",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image megapixel"
            },
            "label": "input image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input_megapixel",
                "label": "input image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per input image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input_megapixel"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image megapixel"
            },
            "label": "output image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_megapixel",
                "label": "output image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per output image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_megapixel"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np={'model': 'black-forest-labs/flux.2-flex', 'prompt': 'a red panda astronaut floating in space, studio lighting'}\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(\"No completed images; retain the full response\")\n    for index, item in enumerate(items):\n        encoded=item.get(\"b64_json\")\n        uri=item.get(\"url\", \"\")\n        if not encoded and uri.startswith(\"data:image/\"):\n            header, separator, encoded=uri.partition(\",\")\n            if not separator or \";base64\" not in header: raise SystemExit(\"Unsupported image data URI\")\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(\"https://api.ailoot.ai\",uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=\"https\" or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(\"Invalid returned image URL\")\n            owned=parsed.netloc==\"api.ailoot.ai\" and parsed.path.startswith(\"/v1/media/assets/\") and parsed.path.endswith(\"/content\")\n            args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",uri]\n            if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n            temporary=Path(f\"image-{index}.bin\")\n            subprocess.run(args+[\"-o\",str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(\"Image has neither bytes nor URL\")\n        if not raw: raise SystemExit(\"Empty image result\")\n        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\"\n        Path(f\"image-{index}.{ext}\").write_bytes(raw)\n    print(\"Every returned image saved; complete response metadata retained\")\nsave_images(json.loads(Path(\"result.json\").read_text())[\"data\"])\nPY_RESULT\n",
            "label": "curl · exact creation/save all outputs",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Εικόνες",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/images"
        ],
        "native_endpoint": "images",
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image megapixel"
            },
            "label": "input image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input_megapixel",
                "label": "input image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per input image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input_megapixel"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image megapixel"
            },
            "label": "output image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_megapixel",
                "label": "output image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per output image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_megapixel"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "black-forest-labs/flux.2-flex",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_input_megapixel",
            "label": "input image megapixel",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "public_unit_label": "per input image megapixel",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image_input_megapixel"
          },
          {
            "amount": "0.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output_megapixel",
            "label": "output image megapixel",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "public_unit_label": "per output image megapixel",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output_megapixel"
          },
          {
            "amount": "0.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "black-forest-labs/flux.2-flex",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "a5f5d12b24ccd74ff705b5d193b835c35163ecffc182c372f67261656252a3d0",
    "input_html_sha256": "693bb9a810dd21db312902a490822b07601a7b140f71ec95776666bd199748b9",
    "private_audit_sha256": "5137d8f4bb28b8f306a2bb85defe1f98ab0a79299b58f06aee1612c29dee6fef",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/black-forest-labs-flux-2-flex/",
    "description": "Το FLUX.2 [flex] ειδικεύεται στην τυπογραφία εικόνων και τις μικρές οπτικές λεπτομέρειες, με ρυθμιζόμενα βήματα δειγματοληψίας και guidance. Χρησιμοποιήστε κείμενο και εικόνες αναφοράς για αφίσες, διατάξεις προϊόντων ή ακριβείς αναθεωρήσεις, εξισορροπώντας συμμόρφωση και ρεαλισμό.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/black-forest-labs-flux-2-flex/index.md",
    "title": "Black Forest Labs: FLUX.2 Flex — Ailoot",
    "url": "https://ailoot.ai/models/el/black-forest-labs-flux-2-flex/"
  },
  "rawModel": {
    "about": "Το FLUX.2 [flex] είναι η έκδοση δημιουργίας και επεξεργασίας εικόνων της Black Forest Labs με ειδίκευση στην τυπογραφία, την απόδοση κειμένου και τη διατήρηση μικρών λεπτομερειών. Χρησιμοποιεί γραπτές οδηγίες σκηνής και εικόνες αναφοράς για να παράγει εικόνα. Ο χαρακτηριστικός έλεγχός του είναι η ρυθμιζόμενη δειγματοληψία: το τεκμηριωμένο προφίλ εκθέτει τόσο βήματα συμπερασμού όσο και guidance, επιτρέποντας τη βελτίωση μιας οπτικής περιγραφής με ρυθμίσεις και λέξεις.\n\n### Γράμματα και λεπτές λεπτομέρειες\n\nΜια τυπογραφική εργασία πρέπει να ξεκινά με το πραγματικό κείμενο. Παραθέστε κάθε γραμμή, ορίστε πού ανήκει και διακρίνετε τίτλο, υποστηρικτικό κείμενο και ετικέτα. Περιγράψτε το ύφος, την κλίμακα και το χρώμα των γραμμάτων σε σχέση με τη σκηνή. Μια πρωτότυπη περιγραφή αφίσας θα μπορούσε να δείχνει ποδήλατο σε μπλε κοβαλτίου σε ανοιχτόχρωμο στούντιο, με μεγάλο τίτλο πάνω από τον σκελετό και μικρότερη γραμμή προδιαγραφών από κάτω. Η εικόνα πρέπει να καθιστά σαφή μαζί το προϊόν και τη σειρά ανάγνωσης.\n\nΓια λεπτομερή οπτική παρουσίαση προϊόντος, προσδιορίστε τα μέρη που καθορίζουν τη χρησιμότητα του αποτελέσματος: καντράν, ετικέτα χειρισμού, ραφή, άκρη υλικού ή σήμανση συσκευασίας. Δώστε ευανάγνωστη αναφορά και εξηγήστε ποιο χαρακτηριστικό καθορίζει. Μια σκηνή που μοιάζει γενικά μπορεί και πάλι να αλλάξει κρίσιμο χαρακτήρα ή εξάρτημα, επομένως συγκρίνετε την παραγόμενη λεπτομέρεια στο προβλεπόμενο μέγεθος προβολής. Η ειδίκευση του μοντέλου είναι λόγος για ακριβείς απαιτήσεις, όχι εγγύηση ότι η διόρθωση κειμένου ή ο οπτικός έλεγχος γίνονται περιττοί.\n\n### Τα βήματα και το guidance υπηρετούν διαφορετικούς σκοπούς\n\nΤο συγκεκριμένο προφίλ κατασκευαστή δέχεται από ένα έως πενήντα βήματα συμπερασμού, με προεπιλογή πενήντα. Η περιγραφή του συνδέει περισσότερα βήματα με μεγαλύτερη λεπτομέρεια και ρεαλισμό. Το guidance κυμαίνεται από 1.5 έως 10, με προεπιλογή 5. Υψηλότερο guidance ενισχύει τη συμμόρφωση με την προτροπή, αλλά μπορεί να μειώσει τον ρεαλισμό. Συνεπώς, μια εικόνα με ακριβείς σχεδιαστικές οδηγίες και μια που επιδιώκει φυσική φωτογραφική εμφάνιση μπορεί να απαιτούν διαφορετικές επιλογές μέσα σε αυτό το προφίλ.\n\nΚρατήστε σταθερά τη διατύπωση, τις αναφορές και το σχήμα εξόδου όταν συγκρίνετε αλλαγή ρύθμισης. Εξετάστε το χαρακτηριστικό που προκάλεσε την αλλαγή: μορφές γραμμάτων, τοποθέτηση αντικειμένων ή υφή υλικού. Αλλάξτε ρύθμιση για συγκεκριμένο οπτικό λόγο, αντί να θεωρείτε έναν μεγάλο αριθμό αυτόματα καλύτερο. Αυτοί είναι έλεγχοι δειγματοληψίας του παραγωγού· το αποσταγμένο προφίλ τεσσάρων βημάτων [klein] και οι τυπικοί έλεγχοι [pro] ή [max] αποτελούν διαφορετικές επιλογές μοντέλου.\n\nΟ εμπλουτισμός προτροπής είναι ενεργός από προεπιλογή στην προδιαγραφή [flex] και μπορεί να απενεργοποιηθεί μέσω του δικού του ελέγχου prompt_upsampling. Αυτό επιτρέπει σε λεπτομερή περιγραφή να παραμείνει το παρεχόμενο κείμενο όταν χρειάζεται. Ο κοινός οδηγός του κατασκευαστή συνιστά το κύριο θέμα και η σημαντική δράση να προηγούνται της δευτερεύουσας διακόσμησης και περιγράφει προτροπές με δομή JSON μαζί με περιγραφές φυσικής γλώσσας. Χρησιμοποιήστε τη δομή που κάνει ευκολότερο τον προσδιορισμό των απαιτούμενων σχέσεων.\n\n### Αναθεωρήσεις με καθοδήγηση αναφορών\n\nΤο συγκεκριμένο προφίλ αιτήματος περιέχει οκτώ θέσεις εικόνων αναφοράς. Η διαδραστική ροή του κατασκευαστή επιτρέπει χωριστά έως δέκα εικόνες· αυτά τα πλήθη περιγράφουν διαφορετικές διεπαφές. Ορίστε αν μια εικόνα παρέχει τη σκηνή προς επεξεργασία, προϊόν, χαρακτήρα, ενδυμασία ή ύφος. Για αναθεώρηση, προσδιορίστε το αντικείμενο και την αλλαγή και ονομάστε κατόπιν τη γύρω σύνθεση, τα υλικά ή το φως που πρέπει να παραμείνουν.\n\nΜια πρωτότυπη εργασία συσκευασίας θα μπορούσε να χρησιμοποιεί το κουτί της πρώτης εικόνας και το φινίρισμα της δεύτερης, να αντικαθιστά την μπροστινή ετικέτα με την εγκεκριμένη διατύπωση και να διατηρεί τις αναλογίες του κουτιού. Μια ομαδική σύνθεση μπορεί να αναθέτει διαφορετική αναφορά σε κάθε θέμα και να κρατά συνεπείς αυτές τις αντιστοιχίσεις. Τα παραδείγματα της οικογένειας καλύπτουν αλλαγές αντικειμένων και φόντου, σύνθεση, επεξεργασία κειμένου και μετασχηματισμούς ύφους. Ζητήστε μία συνδεδεμένη αναθεώρηση με σαφή στόχο και συγκρίνετε τόσο την επεξεργασμένη περιοχή όσο και τα μέρη που πρέπει να μείνουν σταθερά.\n\n### Μέγεθος, χρώμα και η επιστρεφόμενη εικόνα\n\nΟ οδηγός FLUX.2 τεκμηριώνει ελάχιστο 64×64 pixel, διαστάσεις σε πολλαπλάσια του 16 και έξοδο έως 4 megapixel, με σύσταση έως 2 megapixel για συνήθη χρήση. Η συγκεκριμένη προδιαγραφή [flex] αναφέρει έξοδο JPEG, PNG και WebP, με προεπιλογή JPEG. Παρέχει επίσης προαιρετικό τυχαίο seed. Κρατήστε το πραγματικό μοντέλο, το seed και τις ρυθμίσεις δειγματοληψίας με τις αρχικές αναφορές όταν συγκρίνετε εκδόσεις· μόνο το όνομα οικογένειας δεν προσδιορίζει την πλήρη ρύθμιση δημιουργίας.\n\nΓια εργασία ευαίσθητη στο χρώμα, συνδέστε κάθε δεκαεξαδικό κωδικό με ονομασμένο αντικείμενο ή στοιχείο κειμένου. Για σύνθεση, προσδιορίστε την επιθυμητή αναλογία μέσω των διαστάσεων εικόνας και αφήστε αρκετό χώρο για ευανάγνωστα γράμματα. Ο κοινός οδηγός δεν διαθέτει μηχανισμό αρνητικής προτροπής, επομένως περιγράψτε θετικά την επιθυμητή εμφάνιση: καθαρή εστίαση, λιτό φόντο ή σαφώς κενή περιοχή για κείμενο. Τα πολύγλωσσα παραδείγματά του υποστηρίζουν τη σύνταξη μιας πολιτισμικά συγκεκριμένης περιγραφής στην κατάλληλη γλώσσα, χωρίς να θεμελιώνουν εγγύηση σταθερού αριθμού γλωσσών.\n\nΗ ροή FLUX.2 του παραγωγού επιστρέφει εικόνα μετά την επεξεργασία και χρησιμοποιεί προσωρινούς υπογεγραμμένους συνδέσμους με περιθώριο ανάκτησης δέκα λεπτών. Διατηρήστε μαζί την πραγματική εικόνα και την περιγραφή. Ελέγξτε τυπογραφία, λεπτές λεπτομέρειες, ταυτότητα αναφορών και οπτική απόδοση πριν τοποθετήσετε το οπτικό αρχείο σε διάταξη. Το τελικό παραδοτέο μπορεί να είναι επιλεγμένη αφίσα, εικόνα προϊόντος ή επεξεργασμένη σύνθεση με τις ακριβείς ρυθμίσεις διατηρημένες για την επόμενη αναθεώρηση.",
    "alias_of": null,
    "aliases": [],
    "author": "Black Forest Labs",
    "capabilities": {
      "context_length": 67344,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "image"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "formats": [
      "images"
    ],
    "id": "black-forest-labs/flux.2-flex",
    "input": [
      "text",
      "image"
    ],
    "kind": "image",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Διατηρήστε το X-Client-Request-ID που επιστράφηκε για τη συμφωνία των εγγραφών. Διαβάστε μόνο πραγματικές τιμές task_id/asset_id που επιστράφηκαν ή τη βιβλιοθήκη πολυμέσων που σας ανήκει· μην κατασκευάσετε ποτέ URL εργασίας από το ID της λειτουργίας και μην υποβάλετε ποτέ ξανά αίτημα δημιουργίας."
            },
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, κάθε πραγματικό αποτέλεσμα εξόδου, τα αρχικά αναγνωριστικά που επιστράφηκαν και όλα τα πεδία χρήσης. Ανακτήστε την αρχική λειτουργία χωρίς να υποβάλετε ξανά αίτημα δημιουργίας.",
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "black-forest-labs/flux.2-flex"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "3:2",
                  "2:3",
                  "16:9",
                  "9:16",
                  "21:9",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "png",
                  "jpeg"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 8,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "3:2",
                    "2:3",
                    "16:9",
                    "9:16",
                    "21:9",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 8,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "black-forest-labs/flux.2-flex"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 1,
                  "minimum": 1,
                  "type": "integer"
                },
                "output_format": {
                  "enum": [
                    "png",
                    "jpeg"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "black-forest-labs/flux.2-flex",
                "prompt": "a red panda astronaut floating in space, studio lighting"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "image",
            "fields": [
              {
                "description": null,
                "name": "created",
                "type": null
              },
              {
                "description": null,
                "name": "data[].url",
                "type": null
              },
              {
                "description": null,
                "name": "data[].b64_json",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image megapixel"
            },
            "label": "input image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input_megapixel",
                "label": "input image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per input image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input_megapixel"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image megapixel"
            },
            "label": "output image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_megapixel",
                "label": "output image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per output image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_megapixel"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np={'model': 'black-forest-labs/flux.2-flex', 'prompt': 'a red panda astronaut floating in space, studio lighting'}\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(\"No completed images; retain the full response\")\n    for index, item in enumerate(items):\n        encoded=item.get(\"b64_json\")\n        uri=item.get(\"url\", \"\")\n        if not encoded and uri.startswith(\"data:image/\"):\n            header, separator, encoded=uri.partition(\",\")\n            if not separator or \";base64\" not in header: raise SystemExit(\"Unsupported image data URI\")\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(\"https://api.ailoot.ai\",uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=\"https\" or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(\"Invalid returned image URL\")\n            owned=parsed.netloc==\"api.ailoot.ai\" and parsed.path.startswith(\"/v1/media/assets/\") and parsed.path.endswith(\"/content\")\n            args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",uri]\n            if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n            temporary=Path(f\"image-{index}.bin\")\n            subprocess.run(args+[\"-o\",str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(\"Image has neither bytes nor URL\")\n        if not raw: raise SystemExit(\"Empty image result\")\n        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\"\n        Path(f\"image-{index}.{ext}\").write_bytes(raw)\n    print(\"Every returned image saved; complete response metadata retained\")\nsave_images(json.loads(Path(\"result.json\").read_text())[\"data\"])\nPY_RESULT\n",
            "label": "curl · exact creation/save all outputs",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Εικόνες",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/images"
        ],
        "native_endpoint": "images",
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image megapixel"
            },
            "label": "input image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input_megapixel",
                "label": "input image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per input image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input_megapixel"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image megapixel"
            },
            "label": "output image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_megapixel",
                "label": "output image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per output image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_megapixel"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "black-forest-labs/flux.2-flex",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_input_megapixel",
            "label": "input image megapixel",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "public_unit_label": "per input image megapixel",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image_input_megapixel"
          },
          {
            "amount": "0.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output_megapixel",
            "label": "output image megapixel",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "public_unit_label": "per output image megapixel",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output_megapixel"
          },
          {
            "amount": "0.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "black-forest-labs/flux.2-flex",
        "request_model_id": "black-forest-labs/flux.2-flex",
        "route_label": "Ultra"
      }
    ],
    "name": "Black Forest Labs: FLUX.2 Flex",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.12,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.12,
      "varies": false
    },
    "short": "Το FLUX.2 [flex] ειδικεύεται στην τυπογραφία εικόνων και τις μικρές οπτικές λεπτομέρειες, με ρυθμιζόμενα βήματα δειγματοληψίας και guidance. Χρησιμοποιήστε κείμενο και εικόνες αναφοράς για αφίσες, διατάξεις προϊόντων ή ακριβείς αναθεωρήσεις, εξισορροπώντας συμμόρφωση και ρεαλισμό."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Το FLUX.2 [flex] ειδικεύεται στην τυπογραφία εικόνων και τις μικρές οπτικές λεπτομέρειες, με ρυθμιζόμενα βήματα δειγματοληψίας και guidance. Χρησιμοποιήστε κείμενο και εικόνες αναφοράς για αφίσες, διατάξεις προϊόντων ή ακριβείς αναθεωρήσεις, εξισορροπώντας συμμόρφωση και ρεαλισμό.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "ec56f0ed2f5f073855493f426d84effbddc50dbfc548fc826a6370ff9356f58b",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "5213bec561f7207c889e6c286fde0a4b3c2d4745cf64acba42eeff5058ae5059"
}
