{
  "aboutHtml": "<p>Το Hailuo 02 είναι το μοντέλο βίντεο της MiniMax για σκηνές από κείμενο, κίνηση εικόνων και ροή εργασίας με πρώτο και τελευταίο καρέ. Μια γραπτή περιγραφή καθορίζει το θέμα, τη δράση και την κάμερα, ενώ οι εικόνες καρέ που παρέχονται μπορούν να ορίσουν την οπτική αφετηρία ή τον προορισμό της μετάβασης. Επιλέξτε τη λειτουργία δημιουργίας ανάλογα με το υλικό που έχετε ήδη και το μέρος του πλάνου που χρειάζεται να ελέγξετε.</p><p>Για δημιουργία βίντεο από κείμενο, περιγράψτε μια συνεκτική δράση με ευδιάκριτο περιβάλλον και οπτική γωνία. Μια σκηνή μπορεί να δείχνει ένα μικρό ιστιοφόρο που περνά δίπλα από μια προβλήτα, ενώ η κάμερα το ακολουθεί από την ακτή. Προσδιορίστε τι κινείται, ποιες λεπτομέρειες πρέπει να παραμένουν ορατές και πώς τελειώνει το πλάνο. Κρατήστε την περιγραφή εστιασμένη σε παρατηρήσιμα γεγονότα αντί για μια λίστα άσχετων οπτικών ποιοτήτων.</p><p>Για δημιουργία βίντεο από εικόνα, προετοιμάστε ένα πρώτο καρέ στο οποίο έχουν ήδη καθοριστεί το επιθυμητό θέμα και το καδράρισμα. Ο κατασκευαστής δέχεται εικόνες JPG, JPEG, PNG και WebP μικρότερες από 20 MB, με μικρή πλευρά μεγαλύτερη από 300 pixel και αναλογία πλευρών μεταξύ 2:5 και 5:2. Χρησιμοποιήστε μια εικόνα με ορατά τα σημαντικά περιγράμματα και χαρακτηριστικά και περιγράψτε την κίνηση που πρέπει να αναπτυχθεί από αυτή.</p><p>Το Hailuo 02 διαθέτει επίσης τεκμηριωμένη λειτουργία πρώτου και τελευταίου καρέ. Προετοιμάστε τις δύο εικόνες ως την επιθυμητή αρχική και τελική κατάσταση μιας ακολουθίας και περιγράψτε πώς κινείται η σκηνή μεταξύ τους. Το πρώτο καρέ καθορίζει το καδράρισμα· ο κατασκευαστής δηλώνει ότι ένα τελευταίο καρέ διαφορετικών διαστάσεων περικόπτεται ώστε να ταιριάζει με αυτό. Ευθυγραμμίστε εκ των προτέρων τη σύνθεση των εικόνων όταν ένα θέμα πρέπει να παραμένει ορατό σε όλη τη μετάβαση.</p><p>Η προτροπή μπορεί να περιέχει έως 2.000 χαρακτήρες. Το Hailuo 02 υποστηρίζει εντολές κάμερας μέσα σε αγκύλες, μεταξύ άλλων push, pull, truck, pan, pedestal, tilt, zoom, tracking και στατικό πλάνο. Εντολές μαζί στην ίδια αγκύλη ζητούν ταυτόχρονη κίνηση· εντολές σε διαφορετικά σημεία της περιγραφής ζητούν μια ακολουθία. Ο κατασκευαστής συνιστά συνδυασμό έως τριών κινήσεων, επομένως επιλέξτε τη δράση της κάμερας που κάνει το θέμα πιο ευδιάκριτο.</p><p>Η διάρκεια και η ανάλυση συνδέονται με τη λειτουργία. Η δημιουργία από κείμενο τεκμηριώνει έξι ή δέκα δευτερόλεπτα στα 768P και έξι δευτερόλεπτα στα 1080P. Η δημιουργία από εικόνα τεκμηριώνει επίσης 512P για έξι ή δέκα δευτερόλεπτα. Η ροή εργασίας με πρώτο και τελευταίο καρέ τεκμηριώνει 768P για έξι ή δέκα δευτερόλεπτα και 1080P για έξι δευτερόλεπτα. Επιλέξτε έναν υποστηριζόμενο συνδυασμό για το πλάνο, αντί να μεταφέρετε τις επιλογές ανάλυσης μιας λειτουργίας σε όλες τις άλλες.</p><p>Η αυτόματη βελτιστοποίηση της προτροπής είναι τεκμηριωμένη παράμετρος ελέγχου και είναι ενεργοποιημένη από προεπιλογή στη ροή εργασίας του κατασκευαστή. Διατηρήστε τη ρύθμισή της κατά τη σύγκριση εκδοχών, επειδή μια ξαναγραμμένη περιγραφή αλλάζει όσα λαμβάνει το μοντέλο. Κρατήστε το ακριβές κείμενο, τα καρέ αναφοράς και τις επιλεγμένες ρυθμίσεις εξόδου μαζί με το παραγόμενο απόσπασμα, ώστε μια αναθεώρηση να μπορεί να στοχεύσει τη δράση ή το καδράρισμα που χρειάζεται βελτίωση.</p><p>Ελέγξτε ολόκληρη την ολοκληρωμένη ακολουθία: την αρχική σύνθεση, τη συνέχεια του θέματος, τον χρονισμό της δράσης και το τελικό καρέ. Για μια μετάβαση, ελέγξτε το πρώτο και το τελευταίο καρέ και την κίνηση μεταξύ τους. Αποθηκεύστε το πραγματικό βίντεο για επεξεργασία, μαζί με την προτροπή και τις αναφορές· χρησιμοποιήστε την επόμενη αναθεώρηση για να αντιμετωπίσετε ένα συγκεκριμένο οπτικό πρόβλημα, όπως μια κρυμμένη λεπτομέρεια, μια απότομη κίνηση της κάμερας ή ένα τέλος που έρχεται πολύ νωρίς.</p>",
  "aboutText": "Το Hailuo 02 είναι το μοντέλο βίντεο της MiniMax για σκηνές από κείμενο, κίνηση εικόνων και ροή εργασίας με πρώτο και τελευταίο καρέ. Μια γραπτή περιγραφή καθορίζει το θέμα, τη δράση και την κάμερα, ενώ οι εικόνες καρέ που παρέχονται μπορούν να ορίσουν την οπτική αφετηρία ή τον προορισμό της μετάβασης. Επιλέξτε τη λειτουργία δημιουργίας ανάλογα με το υλικό που έχετε ήδη και το μέρος του πλάνου που χρειάζεται να ελέγξετε.\n\nΓια δημιουργία βίντεο από κείμενο, περιγράψτε μια συνεκτική δράση με ευδιάκριτο περιβάλλον και οπτική γωνία. Μια σκηνή μπορεί να δείχνει ένα μικρό ιστιοφόρο που περνά δίπλα από μια προβλήτα, ενώ η κάμερα το ακολουθεί από την ακτή. Προσδιορίστε τι κινείται, ποιες λεπτομέρειες πρέπει να παραμένουν ορατές και πώς τελειώνει το πλάνο. Κρατήστε την περιγραφή εστιασμένη σε παρατηρήσιμα γεγονότα αντί για μια λίστα άσχετων οπτικών ποιοτήτων.\n\nΓια δημιουργία βίντεο από εικόνα, προετοιμάστε ένα πρώτο καρέ στο οποίο έχουν ήδη καθοριστεί το επιθυμητό θέμα και το καδράρισμα. Ο κατασκευαστής δέχεται εικόνες JPG, JPEG, PNG και WebP μικρότερες από 20 MB, με μικρή πλευρά μεγαλύτερη από 300 pixel και αναλογία πλευρών μεταξύ 2:5 και 5:2. Χρησιμοποιήστε μια εικόνα με ορατά τα σημαντικά περιγράμματα και χαρακτηριστικά και περιγράψτε την κίνηση που πρέπει να αναπτυχθεί από αυτή.\n\nΤο Hailuo 02 διαθέτει επίσης τεκμηριωμένη λειτουργία πρώτου και τελευταίου καρέ. Προετοιμάστε τις δύο εικόνες ως την επιθυμητή αρχική και τελική κατάσταση μιας ακολουθίας και περιγράψτε πώς κινείται η σκηνή μεταξύ τους. Το πρώτο καρέ καθορίζει το καδράρισμα· ο κατασκευαστής δηλώνει ότι ένα τελευταίο καρέ διαφορετικών διαστάσεων περικόπτεται ώστε να ταιριάζει με αυτό. Ευθυγραμμίστε εκ των προτέρων τη σύνθεση των εικόνων όταν ένα θέμα πρέπει να παραμένει ορατό σε όλη τη μετάβαση.\n\nΗ προτροπή μπορεί να περιέχει έως 2.000 χαρακτήρες. Το Hailuo 02 υποστηρίζει εντολές κάμερας μέσα σε αγκύλες, μεταξύ άλλων push, pull, truck, pan, pedestal, tilt, zoom, tracking και στατικό πλάνο. Εντολές μαζί στην ίδια αγκύλη ζητούν ταυτόχρονη κίνηση· εντολές σε διαφορετικά σημεία της περιγραφής ζητούν μια ακολουθία. Ο κατασκευαστής συνιστά συνδυασμό έως τριών κινήσεων, επομένως επιλέξτε τη δράση της κάμερας που κάνει το θέμα πιο ευδιάκριτο.\n\nΗ διάρκεια και η ανάλυση συνδέονται με τη λειτουργία. Η δημιουργία από κείμενο τεκμηριώνει έξι ή δέκα δευτερόλεπτα στα 768P και έξι δευτερόλεπτα στα 1080P. Η δημιουργία από εικόνα τεκμηριώνει επίσης 512P για έξι ή δέκα δευτερόλεπτα. Η ροή εργασίας με πρώτο και τελευταίο καρέ τεκμηριώνει 768P για έξι ή δέκα δευτερόλεπτα και 1080P για έξι δευτερόλεπτα. Επιλέξτε έναν υποστηριζόμενο συνδυασμό για το πλάνο, αντί να μεταφέρετε τις επιλογές ανάλυσης μιας λειτουργίας σε όλες τις άλλες.\n\nΗ αυτόματη βελτιστοποίηση της προτροπής είναι τεκμηριωμένη παράμετρος ελέγχου και είναι ενεργοποιημένη από προεπιλογή στη ροή εργασίας του κατασκευαστή. Διατηρήστε τη ρύθμισή της κατά τη σύγκριση εκδοχών, επειδή μια ξαναγραμμένη περιγραφή αλλάζει όσα λαμβάνει το μοντέλο. Κρατήστε το ακριβές κείμενο, τα καρέ αναφοράς και τις επιλεγμένες ρυθμίσεις εξόδου μαζί με το παραγόμενο απόσπασμα, ώστε μια αναθεώρηση να μπορεί να στοχεύσει τη δράση ή το καδράρισμα που χρειάζεται βελτίωση.\n\nΕλέγξτε ολόκληρη την ολοκληρωμένη ακολουθία: την αρχική σύνθεση, τη συνέχεια του θέματος, τον χρονισμό της δράσης και το τελικό καρέ. Για μια μετάβαση, ελέγξτε το πρώτο και το τελευταίο καρέ και την κίνηση μεταξύ τους. Αποθηκεύστε το πραγματικό βίντεο για επεξεργασία, μαζί με την προτροπή και τις αναφορές· χρησιμοποιήστε την επόμενη αναθεώρηση για να αντιμετωπίσετε ένα συγκεκριμένο οπτικό πρόβλημα, όπως μια κρυμμένη λεπτομέρεια, μια απότομη κίνηση της κάμερας ή ένα τέλος που έρχεται πολύ νωρίς.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "abf87f1c99ff70250e8025954059be957148811f7cff5bd16716e362e3efb299",
    "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\">MM</span><h2 id=\"sheet-title\">MiniMax: Hailuo 02</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>MiniMax /</span><code>minimaxi-hailuo-02</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|videos|/v1/videos|minimaxi-hailuo-02\">Βίντεο</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\">Το Hailuo 02 δημιουργεί βίντεο από κείμενο ή εικόνα πρώτου καρέ και υποστηρίζει τεκμηριωμένη ροή εργασίας με πρώτο και τελευταίο καρέ. Οι εντολές κάμερας, η βελτιστοποίηση της προτροπής και οι επιλογές διάρκειας και ανάλυσης ανά λειτουργία βοηθούν στη διαμόρφωση του επιθυμητού πλάνου.</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>Το Hailuo 02 είναι το μοντέλο βίντεο της MiniMax για σκηνές από κείμενο, κίνηση εικόνων και ροή εργασίας με πρώτο και τελευταίο καρέ. Μια γραπτή περιγραφή καθορίζει το θέμα, τη δράση και την κάμερα, ενώ οι εικόνες καρέ που παρέχονται μπορούν να ορίσουν την οπτική αφετηρία ή τον προορισμό της μετάβασης. Επιλέξτε τη λειτουργία δημιουργίας ανάλογα με το υλικό που έχετε ήδη και το μέρος του πλάνου που χρειάζεται να ελέγξετε.</p><p>Για δημιουργία βίντεο από κείμενο, περιγράψτε μια συνεκτική δράση με ευδιάκριτο περιβάλλον και οπτική γωνία. Μια σκηνή μπορεί να δείχνει ένα μικρό ιστιοφόρο που περνά δίπλα από μια προβλήτα, ενώ η κάμερα το ακολουθεί από την ακτή. Προσδιορίστε τι κινείται, ποιες λεπτομέρειες πρέπει να παραμένουν ορατές και πώς τελειώνει το πλάνο. Κρατήστε την περιγραφή εστιασμένη σε παρατηρήσιμα γεγονότα αντί για μια λίστα άσχετων οπτικών ποιοτήτων.</p><p>Για δημιουργία βίντεο από εικόνα, προετοιμάστε ένα πρώτο καρέ στο οποίο έχουν ήδη καθοριστεί το επιθυμητό θέμα και το καδράρισμα. Ο κατασκευαστής δέχεται εικόνες JPG, JPEG, PNG και WebP μικρότερες από 20 MB, με μικρή πλευρά μεγαλύτερη από 300 pixel και αναλογία πλευρών μεταξύ 2:5 και 5:2. Χρησιμοποιήστε μια εικόνα με ορατά τα σημαντικά περιγράμματα και χαρακτηριστικά και περιγράψτε την κίνηση που πρέπει να αναπτυχθεί από αυτή.</p><p>Το Hailuo 02 διαθέτει επίσης τεκμηριωμένη λειτουργία πρώτου και τελευταίου καρέ. Προετοιμάστε τις δύο εικόνες ως την επιθυμητή αρχική και τελική κατάσταση μιας ακολουθίας και περιγράψτε πώς κινείται η σκηνή μεταξύ τους. Το πρώτο καρέ καθορίζει το καδράρισμα· ο κατασκευαστής δηλώνει ότι ένα τελευταίο καρέ διαφορετικών διαστάσεων περικόπτεται ώστε να ταιριάζει με αυτό. Ευθυγραμμίστε εκ των προτέρων τη σύνθεση των εικόνων όταν ένα θέμα πρέπει να παραμένει ορατό σε όλη τη μετάβαση.</p><p>Η προτροπή μπορεί να περιέχει έως 2.000 χαρακτήρες. Το Hailuo 02 υποστηρίζει εντολές κάμερας μέσα σε αγκύλες, μεταξύ άλλων push, pull, truck, pan, pedestal, tilt, zoom, tracking και στατικό πλάνο. Εντολές μαζί στην ίδια αγκύλη ζητούν ταυτόχρονη κίνηση· εντολές σε διαφορετικά σημεία της περιγραφής ζητούν μια ακολουθία. Ο κατασκευαστής συνιστά συνδυασμό έως τριών κινήσεων, επομένως επιλέξτε τη δράση της κάμερας που κάνει το θέμα πιο ευδιάκριτο.</p><p>Η διάρκεια και η ανάλυση συνδέονται με τη λειτουργία. Η δημιουργία από κείμενο τεκμηριώνει έξι ή δέκα δευτερόλεπτα στα 768P και έξι δευτερόλεπτα στα 1080P. Η δημιουργία από εικόνα τεκμηριώνει επίσης 512P για έξι ή δέκα δευτερόλεπτα. Η ροή εργασίας με πρώτο και τελευταίο καρέ τεκμηριώνει 768P για έξι ή δέκα δευτερόλεπτα και 1080P για έξι δευτερόλεπτα. Επιλέξτε έναν υποστηριζόμενο συνδυασμό για το πλάνο, αντί να μεταφέρετε τις επιλογές ανάλυσης μιας λειτουργίας σε όλες τις άλλες.</p><p>Η αυτόματη βελτιστοποίηση της προτροπής είναι τεκμηριωμένη παράμετρος ελέγχου και είναι ενεργοποιημένη από προεπιλογή στη ροή εργασίας του κατασκευαστή. Διατηρήστε τη ρύθμισή της κατά τη σύγκριση εκδοχών, επειδή μια ξαναγραμμένη περιγραφή αλλάζει όσα λαμβάνει το μοντέλο. Κρατήστε το ακριβές κείμενο, τα καρέ αναφοράς και τις επιλεγμένες ρυθμίσεις εξόδου μαζί με το παραγόμενο απόσπασμα, ώστε μια αναθεώρηση να μπορεί να στοχεύσει τη δράση ή το καδράρισμα που χρειάζεται βελτίωση.</p><p>Ελέγξτε ολόκληρη την ολοκληρωμένη ακολουθία: την αρχική σύνθεση, τη συνέχεια του θέματος, τον χρονισμό της δράσης και το τελικό καρέ. Για μια μετάβαση, ελέγξτε το πρώτο και το τελευταίο καρέ και την κίνηση μεταξύ τους. Αποθηκεύστε το πραγματικό βίντεο για επεξεργασία, μαζί με την προτροπή και τις αναφορές· χρησιμοποιήστε την επόμενη αναθεώρηση για να αντιμετωπίσετε ένα συγκεκριμένο οπτικό πρόβλημα, όπως μια κρυμμένη λεπτομέρεια, μια απότομη κίνηση της κάμερας ή ένα τέλος που έρχεται πολύ νωρίς.</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/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Έξοδος</dt><dd><code>video</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>minimaxi-hailuo-02</div><div>Συνθήκες: Χρησιμοποιήστε τον ακριβή επιλογέα μοντέλου Ailoot.</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>Συνθήκες: Περιγράψτε τη σκηνή και την κίνηση.</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\">duration</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>6, 10</div><div>Συνθήκες: Στείλτε μία από τις αναγραφόμενες τιμές διάρκειας· δεν δηλώνεται προεπιλογή.</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\">end_image</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>Συνθήκες: Ένα τελικό καρέ ισχύει μόνο σε υποστηριζόμενη λειτουργία εισόδου εικόνας.</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\">image</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string or array&lt;string&gt;</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Συνθήκες: Χρησιμοποιήστε πραγματικό δημόσια προσβάσιμο URL εικόνας ή συμβολοσειρά εικόνας base64· δεν δηλώνεται εδώ μέγιστο πλήθος εικόνων.</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\">resolution</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>512P, 768P, 1080P</div><div>Συνθήκες: Στείλτε μία από τις αναγραφόμενες τιμές ανάλυσης· δεν δηλώνεται προεπιλογή.</div></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>optional</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>duration, end_image, image, resolution</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><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>conditions</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Χρησιμοποιήστε τον ακριβή επιλογέα μοντέλου Ailoot., Περιγράψτε τη σκηνή και την κίνηση., Στείλτε μία από τις αναγραφόμενες τιμές διάρκειας· δεν δηλώνεται προεπιλογή., Ένα τελικό καρέ ισχύει μόνο σε υποστηριζόμενη λειτουργία εισόδου εικόνας., Χρησιμοποιήστε πραγματικό δημόσια προσβάσιμο URL εικόνας ή συμβολοσειρά εικόνας base64· δεν δηλώνεται εδώ μέγιστο πλήθος εικόνων., Στείλτε μία από τις αναγραφόμενες τιμές ανάλυσης· δεν δηλώνεται προεπιλογή.</td></tr></tbody></table></div><p>Εναλλακτικά ονόματα μεθόδου: <code>/v1/videos/generations</code></p><p>Κύκλος ζωής: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_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></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><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>Εκτιμώμενο κόστος δημιουργίας</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><div><span>Έξοδος · Εκτιμώμενο κόστος δημιουργίας · Εκτίμηση μόνο για σύγκριση</span> <b>$0.2</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-2797-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2797-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · δημιουργήστε μία φορά και διατηρήστε το αποδεικτικό</button><button class=\"cg-tab\" id=\"model-code-2797-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2797-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Διαβάστε την αρχική εργασία</button><button class=\"cg-tab\" id=\"model-code-2797-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2797-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Αποθηκεύστε κάθε ολοκληρωμένο ψηφιακό στοιχείο που σας ανήκει</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-2797-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2797-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON&#39;\n{\n  &quot;model&quot;: &quot;minimaxi-hailuo-02&quot;,\n  &quot;prompt&quot;: &quot;A cat is walking on grass.&quot;\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\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\n# Create once; retain id, polling_url, original task identifiers and every header.\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2797-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2797-tab-1\" hidden><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_STATUS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nu=urljoin(&quot;https://api.ailoot.ai&quot;,r[&quot;polling_url&quot;])\np=urlsplit(u)\nif p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or p.username or p.password:\n    raise SystemExit(&quot;Unexpected returned polling URL; preserve the response&quot;)\nsubprocess.run([&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,u,&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;],&quot;-D&quot;,&quot;status-headers.txt&quot;,&quot;-o&quot;,&quot;status.json&quot;],check=True)\n# Read this same original polling_url again while pending.\n# Preserve unknown/result_pending_check; do not repeat creation.\nPY_STATUS\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2797-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2797-tab-2\" hidden><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_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&quot;status.json&quot;).read_text())\nroles={}\ndef visit(v,path=&quot;&quot;):\n    if isinstance(v,dict):\n        for k,x in v.items(): visit(x,path+&quot;/&quot;+k)\n    elif isinstance(v,list):\n        for i,x in enumerate(v): visit(x,path+&quot;/&quot;+str(i))\n    elif isinstance(v,str):\n        u=urljoin(&quot;https://api.ailoot.ai&quot;,v); p=urlsplit(u)\n        if p.scheme==&quot;https&quot; and p.netloc==&quot;api.ailoot.ai&quot; and not p.username and not p.password and p.path.startswith(&quot;/v1/media/assets/&quot;) and p.path.endswith(&quot;/content&quot;):\n            roles.setdefault(u,[]).append(path)\nvisit(r)\nif not roles: raise SystemExit(&quot;No completed owned assets; retain the original status&quot;)\nmanifest=[]\nfor i,(u,paths) in enumerate(roles.items()):\n    target=Path(f&quot;asset-{i}.bin&quot;)\n    subprocess.run([&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,u,&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;],&quot;-o&quot;,str(target)],check=True)\n    raw=target.read_bytes()\n    if not raw: raise SystemExit(&quot;Empty asset; retain original status and metadata&quot;)\n    ext=&quot;glb&quot; if raw[:4]==b&quot;glTF&quot; else &quot;png&quot; if raw[:8]==b&quot;\\x89PNG\\r\\n\\x1a\\n&quot; else &quot;jpg&quot; if raw[:3]==b&quot;\\xff\\xd8\\xff&quot; else &quot;webp&quot; if raw[:4]==b&quot;RIFF&quot; and raw[8:12]==b&quot;WEBP&quot; else &quot;mp4&quot; if raw[4:8]==b&quot;ftyp&quot; else &quot;bin&quot;\n    name=f&quot;asset-{i}.{ext}&quot;\n    if target.name!=name: target.rename(name)\n    manifest.append({&quot;file&quot;:name,&quot;response_paths&quot;:paths,&quot;bytes&quot;:len(raw)})\nPath(&quot;asset-manifest.json&quot;).write_text(json.dumps(manifest,indent=2))\nprint(&quot;Saved&quot;,len(manifest),&quot;unique owned assets; every response role retained&quot;)\nPY_ASSETS\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · Βίντεο</h4><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, τα αρχικά αναγνωριστικά, κάθε πραγματική έξοδο και όλα τα πεδία χρήσης και λογιστικής καταγραφής. Αποθηκεύστε κάθε μοναδικό αρχείο πολυμέσων που σας ανήκει και διατηρήστε κάθε ρόλο που παραπέμπει σε αυτό.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε το δημόσιο id εργασίας ή λειτουργίας που επιστρέφεται και όλες τις κεφαλίδες. Διαβάστε μόνο την αρχική εργασία· τα unknown ή result_pending_check δεν επιτρέπουν άλλη δημιουργία.</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\">id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">polling_url</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">provider_task_id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">task_id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">video_url</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</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=minimaxi-hailuo-02&amp;route=Ultra&amp;caller=minimaxi-hailuo-02&amp;fmt=videos\"><code>minimaxi-hailuo-02</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\"><code>/v1/videos/generations</code></p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=minimaxi-hailuo-02&amp;route=Ultra&amp;caller=minimaxi-hailuo-02&amp;fmt=videos\"><code>minimaxi-hailuo-02</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "minimaxi-hailuo-02",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "minimaxi-hailuo-02",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|minimaxi-hailuo-02",
      "ordinal": 0,
      "rawMethod": {
        "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, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "completed_states": [
                "completed"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed"
              ],
              "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
              "mode": "submit_once_poll_original",
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "pending_states": [
                "pending",
                "processing"
              ],
              "state_field": "status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "unknown": "Διατηρήστε το δημόσιο id εργασίας ή λειτουργίας που επιστρέφεται και όλες τις κεφαλίδες. Διαβάστε μόνο την αρχική εργασία· τα unknown ή result_pending_check δεν επιτρέπουν άλλη δημιουργία.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, τα αρχικά αναγνωριστικά, κάθε πραγματική έξοδο και όλα τα πεδία χρήσης και λογιστικής καταγραφής. Αποθηκεύστε κάθε μοναδικό αρχείο πολυμέσων που σας ανήκει και διατηρήστε κάθε ρόλο που παραπέμπει σε αυτό.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "name": "id",
                  "type": "string"
                },
                {
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "name": "task_id",
                  "type": "string"
                },
                {
                  "name": "status",
                  "type": "string"
                },
                {
                  "name": "video_url",
                  "type": "string"
                }
              ],
              "maximum_outputs": null
            },
            "parameters": [
              {
                "conditions": "Χρησιμοποιήστε τον ακριβή επιλογέα μοντέλου Ailoot.",
                "default_known": false,
                "enum": [
                  "minimaxi-hailuo-02"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Περιγράψτε τη σκηνή και την κίνηση.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Στείλτε μία από τις αναγραφόμενες τιμές διάρκειας· δεν δηλώνεται προεπιλογή.",
                "default_known": false,
                "enum": [
                  6,
                  10
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "conditions": "Ένα τελικό καρέ ισχύει μόνο σε υποστηριζόμενη λειτουργία εισόδου εικόνας.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "end_image",
                "required": false,
                "type": "string"
              },
              {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                ],
                "conditions": "Χρησιμοποιήστε πραγματικό δημόσια προσβάσιμο URL εικόνας ή συμβολοσειρά εικόνας base64· δεν δηλώνεται εδώ μέγιστο πλήθος εικόνων.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "image",
                "required": false,
                "type": "string or array<string>"
              },
              {
                "conditions": "Στείλτε μία από τις αναγραφόμενες τιμές ανάλυσης· δεν δηλώνεται προεπιλογή.",
                "default_known": false,
                "enum": [
                  "512P",
                  "768P",
                  "1080P"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "resolution",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "duration": {
                  "enum": [
                    6,
                    10
                  ],
                  "type": "integer"
                },
                "end_image": {
                  "type": "string"
                },
                "image": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "minimaxi-hailuo-02"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "resolution": {
                  "enum": [
                    "512P",
                    "768P",
                    "1080P"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "minimaxi-hailuo-02",
                "prompt": "A cat is walking on grass."
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Χρησιμοποιήστε τον ακριβή επιλογέα μοντέλου Ailoot.",
              "Περιγράψτε τη σκηνή και την κίνηση.",
              "Στείλτε μία από τις αναγραφόμενες τιμές διάρκειας· δεν δηλώνεται προεπιλογή.",
              "Ένα τελικό καρέ ισχύει μόνο σε υποστηριζόμενη λειτουργία εισόδου εικόνας.",
              "Χρησιμοποιήστε πραγματικό δημόσια προσβάσιμο URL εικόνας ή συμβολοσειρά εικόνας base64· δεν δηλώνεται εδώ μέγιστο πλήθος εικόνων.",
              "Στείλτε μία από τις αναγραφόμενες τιμές ανάλυσης· δεν δηλώνεται προεπιλογή."
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "duration",
              "end_image",
              "image",
              "resolution"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "completed_states": [
              "completed"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed"
            ],
            "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
            "mode": "submit_once_poll_original",
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "pending_states": [
              "pending",
              "processing"
            ],
            "state_field": "status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "output": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "name": "id",
                "type": "string"
              },
              {
                "name": "polling_url",
                "type": "string"
              },
              {
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "name": "task_id",
                "type": "string"
              },
              {
                "name": "status",
                "type": "string"
              },
              {
                "name": "video_url",
                "type": "string"
              }
            ],
            "maximum_outputs": 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"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.2",
                "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.2",
                "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}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"minimaxi-hailuo-02\",\n  \"prompt\": \"A cat is walking on grass.\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Create once; retain id, polling_url, original task identifiers and every header.\n",
            "label": "curl · create once and retain receipt",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_STATUS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\nu=urljoin(\"https://api.ailoot.ai\",r[\"polling_url\"])\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or p.username or p.password:\n    raise SystemExit(\"Unexpected returned polling URL; preserve the response\")\nsubprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-D\",\"status-headers.txt\",\"-o\",\"status.json\"],check=True)\n# Read this same original polling_url again while pending.\n# Preserve unknown/result_pending_check; do not repeat creation.\nPY_STATUS\n",
            "label": "Read the original task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nroles={}\ndef visit(v,path=\"\"):\n    if isinstance(v,dict):\n        for k,x in v.items(): visit(x,path+\"/\"+k)\n    elif isinstance(v,list):\n        for i,x in enumerate(v): visit(x,path+\"/\"+str(i))\n    elif isinstance(v,str):\n        u=urljoin(\"https://api.ailoot.ai\",v); p=urlsplit(u)\n        if p.scheme==\"https\" and p.netloc==\"api.ailoot.ai\" and not p.username and not p.password and p.path.startswith(\"/v1/media/assets/\") and p.path.endswith(\"/content\"):\n            roles.setdefault(u,[]).append(path)\nvisit(r)\nif not roles: raise SystemExit(\"No completed owned assets; retain the original status\")\nmanifest=[]\nfor i,(u,paths) in enumerate(roles.items()):\n    target=Path(f\"asset-{i}.bin\")\n    subprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-o\",str(target)],check=True)\n    raw=target.read_bytes()\n    if not raw: raise SystemExit(\"Empty asset; retain original status and metadata\")\n    ext=\"glb\" if raw[:4]==b\"glTF\" else \"png\" if raw[:8]==b\"\\x89PNG\\r\\n\\x1a\\n\" else \"jpg\" if raw[:3]==b\"\\xff\\xd8\\xff\" else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"mp4\" if raw[4:8]==b\"ftyp\" else \"bin\"\n    name=f\"asset-{i}.{ext}\"\n    if target.name!=name: target.rename(name)\n    manifest.append({\"file\":name,\"response_paths\":paths,\"bytes\":len(raw)})\nPath(\"asset-manifest.json\").write_text(json.dumps(manifest,indent=2))\nprint(\"Saved\",len(manifest),\"unique owned assets; every response role retained\")\nPY_ASSETS\n",
            "label": "Save every completed owned asset",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Βίντεο",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "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"
              }
            ]
          },
          {
            "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.2",
                "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.2",
                "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": "minimaxi-hailuo-02",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_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.2",
            "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.2",
            "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": "minimaxi-hailuo-02",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "08e88b59f137b6c0da2f9fc6f6dec3e41e474296458aff377cc368ff8af9ae39",
    "input_html_sha256": "ce12e2371114c844fff7b6e6338f772fea773395e281b1a57bfcb54b1d7a71db",
    "private_audit_sha256": "039fb3cee37084bfde9704f33f1a1650587fa6c6db4174487bce56ade21b8403",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/minimaxi-hailuo-02/",
    "description": "Το Hailuo 02 δημιουργεί βίντεο από κείμενο ή εικόνα πρώτου καρέ και υποστηρίζει τεκμηριωμένη ροή εργασίας με πρώτο και τελευταίο καρέ. Οι εντολές κάμερας, η βελτιστοποίηση της προτροπής και οι επιλογές διάρκειας και ανάλυσης ανά λειτουργία βοηθούν στη διαμόρφωση του επιθυμητού πλάνου.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/minimaxi-hailuo-02/index.md",
    "title": "MiniMax: Hailuo 02 — Ailoot",
    "url": "https://ailoot.ai/models/el/minimaxi-hailuo-02/"
  },
  "rawModel": {
    "about": "Το Hailuo 02 είναι το μοντέλο βίντεο της MiniMax για σκηνές από κείμενο, κίνηση εικόνων και ροή εργασίας με πρώτο και τελευταίο καρέ. Μια γραπτή περιγραφή καθορίζει το θέμα, τη δράση και την κάμερα, ενώ οι εικόνες καρέ που παρέχονται μπορούν να ορίσουν την οπτική αφετηρία ή τον προορισμό της μετάβασης. Επιλέξτε τη λειτουργία δημιουργίας ανάλογα με το υλικό που έχετε ήδη και το μέρος του πλάνου που χρειάζεται να ελέγξετε.\n\nΓια δημιουργία βίντεο από κείμενο, περιγράψτε μια συνεκτική δράση με ευδιάκριτο περιβάλλον και οπτική γωνία. Μια σκηνή μπορεί να δείχνει ένα μικρό ιστιοφόρο που περνά δίπλα από μια προβλήτα, ενώ η κάμερα το ακολουθεί από την ακτή. Προσδιορίστε τι κινείται, ποιες λεπτομέρειες πρέπει να παραμένουν ορατές και πώς τελειώνει το πλάνο. Κρατήστε την περιγραφή εστιασμένη σε παρατηρήσιμα γεγονότα αντί για μια λίστα άσχετων οπτικών ποιοτήτων.\n\nΓια δημιουργία βίντεο από εικόνα, προετοιμάστε ένα πρώτο καρέ στο οποίο έχουν ήδη καθοριστεί το επιθυμητό θέμα και το καδράρισμα. Ο κατασκευαστής δέχεται εικόνες JPG, JPEG, PNG και WebP μικρότερες από 20 MB, με μικρή πλευρά μεγαλύτερη από 300 pixel και αναλογία πλευρών μεταξύ 2:5 και 5:2. Χρησιμοποιήστε μια εικόνα με ορατά τα σημαντικά περιγράμματα και χαρακτηριστικά και περιγράψτε την κίνηση που πρέπει να αναπτυχθεί από αυτή.\n\nΤο Hailuo 02 διαθέτει επίσης τεκμηριωμένη λειτουργία πρώτου και τελευταίου καρέ. Προετοιμάστε τις δύο εικόνες ως την επιθυμητή αρχική και τελική κατάσταση μιας ακολουθίας και περιγράψτε πώς κινείται η σκηνή μεταξύ τους. Το πρώτο καρέ καθορίζει το καδράρισμα· ο κατασκευαστής δηλώνει ότι ένα τελευταίο καρέ διαφορετικών διαστάσεων περικόπτεται ώστε να ταιριάζει με αυτό. Ευθυγραμμίστε εκ των προτέρων τη σύνθεση των εικόνων όταν ένα θέμα πρέπει να παραμένει ορατό σε όλη τη μετάβαση.\n\nΗ προτροπή μπορεί να περιέχει έως 2.000 χαρακτήρες. Το Hailuo 02 υποστηρίζει εντολές κάμερας μέσα σε αγκύλες, μεταξύ άλλων push, pull, truck, pan, pedestal, tilt, zoom, tracking και στατικό πλάνο. Εντολές μαζί στην ίδια αγκύλη ζητούν ταυτόχρονη κίνηση· εντολές σε διαφορετικά σημεία της περιγραφής ζητούν μια ακολουθία. Ο κατασκευαστής συνιστά συνδυασμό έως τριών κινήσεων, επομένως επιλέξτε τη δράση της κάμερας που κάνει το θέμα πιο ευδιάκριτο.\n\nΗ διάρκεια και η ανάλυση συνδέονται με τη λειτουργία. Η δημιουργία από κείμενο τεκμηριώνει έξι ή δέκα δευτερόλεπτα στα 768P και έξι δευτερόλεπτα στα 1080P. Η δημιουργία από εικόνα τεκμηριώνει επίσης 512P για έξι ή δέκα δευτερόλεπτα. Η ροή εργασίας με πρώτο και τελευταίο καρέ τεκμηριώνει 768P για έξι ή δέκα δευτερόλεπτα και 1080P για έξι δευτερόλεπτα. Επιλέξτε έναν υποστηριζόμενο συνδυασμό για το πλάνο, αντί να μεταφέρετε τις επιλογές ανάλυσης μιας λειτουργίας σε όλες τις άλλες.\n\nΗ αυτόματη βελτιστοποίηση της προτροπής είναι τεκμηριωμένη παράμετρος ελέγχου και είναι ενεργοποιημένη από προεπιλογή στη ροή εργασίας του κατασκευαστή. Διατηρήστε τη ρύθμισή της κατά τη σύγκριση εκδοχών, επειδή μια ξαναγραμμένη περιγραφή αλλάζει όσα λαμβάνει το μοντέλο. Κρατήστε το ακριβές κείμενο, τα καρέ αναφοράς και τις επιλεγμένες ρυθμίσεις εξόδου μαζί με το παραγόμενο απόσπασμα, ώστε μια αναθεώρηση να μπορεί να στοχεύσει τη δράση ή το καδράρισμα που χρειάζεται βελτίωση.\n\nΕλέγξτε ολόκληρη την ολοκληρωμένη ακολουθία: την αρχική σύνθεση, τη συνέχεια του θέματος, τον χρονισμό της δράσης και το τελικό καρέ. Για μια μετάβαση, ελέγξτε το πρώτο και το τελευταίο καρέ και την κίνηση μεταξύ τους. Αποθηκεύστε το πραγματικό βίντεο για επεξεργασία, μαζί με την προτροπή και τις αναφορές· χρησιμοποιήστε την επόμενη αναθεώρηση για να αντιμετωπίσετε ένα συγκεκριμένο οπτικό πρόβλημα, όπως μια κρυμμένη λεπτομέρεια, μια απότομη κίνηση της κάμερας ή ένα τέλος που έρχεται πολύ νωρίς.",
    "about_sha256": "1ad46a774525b6747d2a7762f1de60bac62ee01a274be0b36382a17c007586e3",
    "alias_of": null,
    "aliases": [],
    "author": "MiniMax",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.2",
            "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.2",
            "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,
    "display_name": "MiniMax: Hailuo 02",
    "formats": [
      "videos"
    ],
    "id": "minimaxi-hailuo-02",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "locale": "en",
    "max_out": null,
    "methods": [
      {
        "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, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "completed_states": [
                "completed"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed"
              ],
              "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
              "mode": "submit_once_poll_original",
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "pending_states": [
                "pending",
                "processing"
              ],
              "state_field": "status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "unknown": "Διατηρήστε το δημόσιο id εργασίας ή λειτουργίας που επιστρέφεται και όλες τις κεφαλίδες. Διαβάστε μόνο την αρχική εργασία· τα unknown ή result_pending_check δεν επιτρέπουν άλλη δημιουργία.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, τα αρχικά αναγνωριστικά, κάθε πραγματική έξοδο και όλα τα πεδία χρήσης και λογιστικής καταγραφής. Αποθηκεύστε κάθε μοναδικό αρχείο πολυμέσων που σας ανήκει και διατηρήστε κάθε ρόλο που παραπέμπει σε αυτό.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "name": "id",
                  "type": "string"
                },
                {
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "name": "task_id",
                  "type": "string"
                },
                {
                  "name": "status",
                  "type": "string"
                },
                {
                  "name": "video_url",
                  "type": "string"
                }
              ],
              "maximum_outputs": null
            },
            "parameters": [
              {
                "conditions": "Χρησιμοποιήστε τον ακριβή επιλογέα μοντέλου Ailoot.",
                "default_known": false,
                "enum": [
                  "minimaxi-hailuo-02"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Περιγράψτε τη σκηνή και την κίνηση.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Στείλτε μία από τις αναγραφόμενες τιμές διάρκειας· δεν δηλώνεται προεπιλογή.",
                "default_known": false,
                "enum": [
                  6,
                  10
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "conditions": "Ένα τελικό καρέ ισχύει μόνο σε υποστηριζόμενη λειτουργία εισόδου εικόνας.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "end_image",
                "required": false,
                "type": "string"
              },
              {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                ],
                "conditions": "Χρησιμοποιήστε πραγματικό δημόσια προσβάσιμο URL εικόνας ή συμβολοσειρά εικόνας base64· δεν δηλώνεται εδώ μέγιστο πλήθος εικόνων.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "image",
                "required": false,
                "type": "string or array<string>"
              },
              {
                "conditions": "Στείλτε μία από τις αναγραφόμενες τιμές ανάλυσης· δεν δηλώνεται προεπιλογή.",
                "default_known": false,
                "enum": [
                  "512P",
                  "768P",
                  "1080P"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "resolution",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "duration": {
                  "enum": [
                    6,
                    10
                  ],
                  "type": "integer"
                },
                "end_image": {
                  "type": "string"
                },
                "image": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "minimaxi-hailuo-02"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "resolution": {
                  "enum": [
                    "512P",
                    "768P",
                    "1080P"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "minimaxi-hailuo-02",
                "prompt": "A cat is walking on grass."
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Χρησιμοποιήστε τον ακριβή επιλογέα μοντέλου Ailoot.",
              "Περιγράψτε τη σκηνή και την κίνηση.",
              "Στείλτε μία από τις αναγραφόμενες τιμές διάρκειας· δεν δηλώνεται προεπιλογή.",
              "Ένα τελικό καρέ ισχύει μόνο σε υποστηριζόμενη λειτουργία εισόδου εικόνας.",
              "Χρησιμοποιήστε πραγματικό δημόσια προσβάσιμο URL εικόνας ή συμβολοσειρά εικόνας base64· δεν δηλώνεται εδώ μέγιστο πλήθος εικόνων.",
              "Στείλτε μία από τις αναγραφόμενες τιμές ανάλυσης· δεν δηλώνεται προεπιλογή."
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "duration",
              "end_image",
              "image",
              "resolution"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "completed_states": [
              "completed"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed"
            ],
            "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
            "mode": "submit_once_poll_original",
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "pending_states": [
              "pending",
              "processing"
            ],
            "state_field": "status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "output": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "name": "id",
                "type": "string"
              },
              {
                "name": "polling_url",
                "type": "string"
              },
              {
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "name": "task_id",
                "type": "string"
              },
              {
                "name": "status",
                "type": "string"
              },
              {
                "name": "video_url",
                "type": "string"
              }
            ],
            "maximum_outputs": 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"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.2",
                "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.2",
                "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}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"minimaxi-hailuo-02\",\n  \"prompt\": \"A cat is walking on grass.\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Create once; retain id, polling_url, original task identifiers and every header.\n",
            "label": "curl · create once and retain receipt",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_STATUS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\nu=urljoin(\"https://api.ailoot.ai\",r[\"polling_url\"])\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or p.username or p.password:\n    raise SystemExit(\"Unexpected returned polling URL; preserve the response\")\nsubprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-D\",\"status-headers.txt\",\"-o\",\"status.json\"],check=True)\n# Read this same original polling_url again while pending.\n# Preserve unknown/result_pending_check; do not repeat creation.\nPY_STATUS\n",
            "label": "Read the original task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nroles={}\ndef visit(v,path=\"\"):\n    if isinstance(v,dict):\n        for k,x in v.items(): visit(x,path+\"/\"+k)\n    elif isinstance(v,list):\n        for i,x in enumerate(v): visit(x,path+\"/\"+str(i))\n    elif isinstance(v,str):\n        u=urljoin(\"https://api.ailoot.ai\",v); p=urlsplit(u)\n        if p.scheme==\"https\" and p.netloc==\"api.ailoot.ai\" and not p.username and not p.password and p.path.startswith(\"/v1/media/assets/\") and p.path.endswith(\"/content\"):\n            roles.setdefault(u,[]).append(path)\nvisit(r)\nif not roles: raise SystemExit(\"No completed owned assets; retain the original status\")\nmanifest=[]\nfor i,(u,paths) in enumerate(roles.items()):\n    target=Path(f\"asset-{i}.bin\")\n    subprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-o\",str(target)],check=True)\n    raw=target.read_bytes()\n    if not raw: raise SystemExit(\"Empty asset; retain original status and metadata\")\n    ext=\"glb\" if raw[:4]==b\"glTF\" else \"png\" if raw[:8]==b\"\\x89PNG\\r\\n\\x1a\\n\" else \"jpg\" if raw[:3]==b\"\\xff\\xd8\\xff\" else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"mp4\" if raw[4:8]==b\"ftyp\" else \"bin\"\n    name=f\"asset-{i}.{ext}\"\n    if target.name!=name: target.rename(name)\n    manifest.append({\"file\":name,\"response_paths\":paths,\"bytes\":len(raw)})\nPath(\"asset-manifest.json\").write_text(json.dumps(manifest,indent=2))\nprint(\"Saved\",len(manifest),\"unique owned assets; every response role retained\")\nPY_ASSETS\n",
            "label": "Save every completed owned asset",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Βίντεο",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "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"
              }
            ]
          },
          {
            "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.2",
                "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.2",
                "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": "minimaxi-hailuo-02",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_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.2",
            "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.2",
            "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": "minimaxi-hailuo-02",
        "request_model_id": "minimaxi-hailuo-02",
        "route_label": "Ultra"
      }
    ],
    "name": "MiniMax: Hailuo 02",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.2,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.2,
      "varies": false
    },
    "short": "Το Hailuo 02 δημιουργεί βίντεο από κείμενο ή εικόνα πρώτου καρέ και υποστηρίζει τεκμηριωμένη ροή εργασίας με πρώτο και τελευταίο καρέ. Οι εντολές κάμερας, η βελτιστοποίηση της προτροπής και οι επιλογές διάρκειας και ανάλυσης ανά λειτουργία βοηθούν στη διαμόρφωση του επιθυμητού πλάνου.",
    "short_sha256": "185685eaa8ffcec9c12e5b80bd952d94c1cad60364c639700347fb1fa2228a68"
  },
  "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": "Το Hailuo 02 δημιουργεί βίντεο από κείμενο ή εικόνα πρώτου καρέ και υποστηρίζει τεκμηριωμένη ροή εργασίας με πρώτο και τελευταίο καρέ. Οι εντολές κάμερας, η βελτιστοποίηση της προτροπής και οι επιλογές διάρκειας και ανάλυσης ανά λειτουργία βοηθούν στη διαμόρφωση του επιθυμητού πλάνου.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "c9f5ab081d332276eaf3c502280afe664f2846d018545f624afd1389c8d40537",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "d4d420aa32bdeb38dddf7e6003998efe1efdaddb96f16189656b636e394ddd58"
}
