{
  "aboutHtml": "<p>Το Alibaba Wan 2.7 είναι οικογένεια δημιουργίας βίντεο με ονομασμένα προφίλ δημιουργίας από κείμενο, από εικόνα και με καθοδήγηση αναφορών. Ο κατασκευαστής τεκμηριώνει σκηνές με συγχρονισμένο ήχο και αφηγήσεις πολλών πλάνων, ενώ η ροή εικόνας προσθέτει δημιουργία από πρώτο/τελευταίο καρέ και συνέχεια ενός αρχικού βίντεο. Το χρήσιμο αποτέλεσμα είναι ένα σύντομο κλιπ με τον ήχο του, όπως μετάβαση προϊόντος, συμπαγής ιστορία ή συνέχεια που ταιριάζει σε υπάρχον πλάνο. Επιλέξτε τη λειτουργία σύμφωνα με το αρχικό υλικό και τον απαιτούμενο έλεγχο της αρχής ή του τέλους.</p><p>Για δημιουργία από κείμενο, περιγράψτε το θέμα, το περιβάλλον, τη δράση, την κάμερα, το ύφος και τον ήχο. Ένα storyboard μπορεί να προσδιορίζει κάθε πλάνο και χρονικό διάστημα, ενώ η περιγραφή ενός μόνο πλάνου πρέπει να δηλώνει ότι η δράση παραμένει συνεχής. Ο οδηγός προτροπών Wan 2.7 αφήνει το μοντέλο να ερμηνεύσει τη δομή πλάνων από τη γραπτή περιγραφή, αντί να χρησιμοποιεί τον έλεγχο shot_type του 2.6. Το τρέχον API κειμένου δέχεται κινεζικές ή αγγλικές προτροπές έως 5,000 χαρακτήρες, με χωριστή αρνητική προτροπή 500 χαρακτήρων· το επιπλέον κείμενο περικόπτεται. Διατηρήστε σαφή την ουσιώδη δράση και τους περιορισμούς μέσα σε αυτό το όριο.</p><p>Η δημιουργία από εικόνα πρώτου καρέ ζωντανεύει μια παρεχόμενη αρχική εικόνα. Η δημιουργία από πρώτο/τελευταίο καρέ ορίζει επιπλέον το τελικό σημείο και την κίνηση που τα συνδέει. Ο οδηγός εικόνας 2.7 υποστηρίζει πηγή ήχου καθοδήγησης μαζί με αυτούς τους συνδυασμούς καρέ. Προετοιμάστε άκρα που μοιράζονται σκηνή και επιθυμητό θέμα και περιγράψτε τη μετάβαση, αντί να ζητάτε από το μοντέλο να επανερμηνεύσει τις δύο εικόνες ως άσχετες υφολογικές αναφορές. Η έξοδος προσεγγίζει τις αναλογίες της πρώτης εικόνας· ο οδηγός αντιμετωπίζει την ανάλυση ως βαθμίδα αριθμού pixel και στρογγυλοποιεί ανάλογα τις κωδικοποιημένες διαστάσεις.</p><p>Η συνέχεια βίντεο ξεκινά από αρχικό κλιπ και μπορεί επίσης να χρησιμοποιεί τελική εικόνα. Η ζητούμενη διάρκεια είναι ο συνολικός χρόνος του επιστρεφόμενου βίντεο, μαζί με το αρχικό τμήμα. Το παράδειγμα του οδηγού συνδυάζει πηγή δύο δευτερολέπτων με δέκα δευτερόλεπτα νέου περιεχομένου σε αποτέλεσμα δώδεκα δευτερολέπτων. Προετοιμάστε την τελική δράση της πηγής και δηλώστε τι ακολουθεί, ώστε η κάμερα και το θέμα να συνεχίζουν προς συνεκτική κατεύθυνση. Ελέγξτε την ένωση ως προς εμφάνιση, κίνηση, φως και ήχο, αντί να αξιολογείτε μόνο το νέο παραγόμενο τέλος.</p><p>Το τρέχον χωριστό προφίλ αναφορών του κατασκευαστή χρησιμοποιεί εικόνες ή βίντεο για να καθοδηγήσει χαρακτήρες, αντικείμενα ή σκηνή. Ο οδηγός επιτρέπει συνολικά έως πέντε εικόνες και βίντεο αναφοράς και χρησιμοποιεί ετικέτες ανά τύπο, όπως Image 1 και Video 1. Περιγράψτε τον ρόλο κάθε υλικού και την επιθυμητή αλληλεπίδραση. Για σκηνή με καθοδήγηση αναφορών, δείξτε τον χαρακτήρα μιας αναφοράς να μεταφέρει το αντικείμενο μιας άλλης σε συγκεκριμένη τοποθεσία. Το κάδρο αναφορών διαφέρει από τη δημιουργία από πρώτο καρέ: η περιγραφή μπορεί να ορίζει νέα σύνθεση, χωρίς να απαιτεί το βίντεο να ανοίγει σε συγκεκριμένη παρεχόμενη στατική εικόνα.</p><p>Για προσαρμοσμένο ήχο στη δημιουργία από κείμενο, οι τεκμηριωμένες μορφές είναι WAV και MP3, με διάρκεια δύο έως τριάντα δευτερολέπτων και μέγιστο 15 MB. Η επιλεγμένη διάρκεια βίντεο καθορίζει το χρησιμοποιούμενο τμήμα: ο μεγαλύτερος ήχος περικόπτεται σε αυτή τη διάρκεια, ενώ ήχος μικρότερος από το βίντεο αφήνει το υπόλοιπο σιωπηλό. Προετοιμάστε ακριβώς το ηχητικό απόσπασμα που ανήκει στο πλάνο και αφήστε χώρο για την επιθυμητή οπτική δράση. Χωρίς παρεχόμενο αρχείο ήχου, ο κατασκευαστής περιγράφει δημιουργία μουσικής υπόκρουσης ή εφέ κατάλληλων για τη σκηνή· ελέγξτε τον πραγματικό ήχο και οποιαδήποτε ζητούμενη ομιλία μαζί με την εικόνα.</p><p>Ο τρέχων πίνακας μοντέλων αναφέρει MP4 720p ή 1080p στα 30 fps, με έξοδο από κείμενο και εικόνα δύο έως δεκαπέντε δευτερολέπτων. Το χωριστό προφίλ αναφορών περιορίζεται σε δύο έως δέκα δευτερόλεπτα. Η δημιουργία από κείμενο προσφέρει κάδρο 16:9, 9:16, 1:1, 4:3 και 3:4. Οι εργασίες με εικόνες ακολουθούν δικούς τους κανόνες προσεγγιστικών αναλογιών πηγής, επομένως προετοιμάστε την περικοπή εισόδου για τον επιθυμητό προορισμό. Ένας κανόνας διάρκειας ή αναλογίας του προφίλ αναφορών δεν πρέπει να αντικαθιστά εκείνον της ροής καρέ ή συνέχειας.</p><p>Η τεκμηριωμένη ροή του κατασκευαστή είναι ασύγχρονη: ένα αναγνωριστικό εργασίας παρακολουθεί την επεξεργασία και το επιτυχές αποτέλεσμα παρέχει τη διεύθυνση βίντεο. Για τα αποτελέσματα τεκμηριώνεται ισχύς συνδέσμου είκοσι τεσσάρων ωρών, επομένως διατηρήστε το πραγματικό κλιπ και τα δημιουργικά υλικά για έλεγχο επεξεργασίας. Οι επιλογές επαναδιατύπωσης προτροπής, υδατογραφήματος και seed ανήκουν στην επιλεγμένη διεπαφή. Ο κατασκευαστής αναφέρει ότι σταθερό seed μπορεί να βελτιώσει την αναπαραγωγιμότητα, αλλά δεν εγγυάται πανομοιότυπο αποτέλεσμα. Συγκρίνετε το παραδοτέο με την περιγραφή, αντί να θεωρείτε ότι οι ρυθμίσεις διατηρούν από μόνες τους κάθε λεπτομέρεια.</p><p>Σε σύγκριση με το Wan 2.6, ο οδηγός εικόνας 2.7 προσθέτει ειδικά έλεγχο πρώτου/τελευταίου καρέ και συνέχεια βίντεο μέσω πολυτροπικών εισόδων μέσων. Το Wan 3.0 εισάγει διαφορετική ενοποιημένη δομή και μεγαλύτερο περιθώριο δημιουργίας. Το προφίλ 2.7 διατηρεί τους δικούς του ελέγχους και όρια ανά εργασία. Ελέγξτε ολόκληρη τη σκηνή για συνέχεια θέματος, σταθερά καρέ, ταυτότητα αναφορών, διάλογο, κίνηση και ενώσεις και κάντε την επόμενη διόρθωση συγκεκριμένη ως προς το πραγματικό πρόβλημα που βρέθηκε.</p>",
  "aboutText": "Το Alibaba Wan 2.7 είναι οικογένεια δημιουργίας βίντεο με ονομασμένα προφίλ δημιουργίας από κείμενο, από εικόνα και με καθοδήγηση αναφορών. Ο κατασκευαστής τεκμηριώνει σκηνές με συγχρονισμένο ήχο και αφηγήσεις πολλών πλάνων, ενώ η ροή εικόνας προσθέτει δημιουργία από πρώτο/τελευταίο καρέ και συνέχεια ενός αρχικού βίντεο. Το χρήσιμο αποτέλεσμα είναι ένα σύντομο κλιπ με τον ήχο του, όπως μετάβαση προϊόντος, συμπαγής ιστορία ή συνέχεια που ταιριάζει σε υπάρχον πλάνο. Επιλέξτε τη λειτουργία σύμφωνα με το αρχικό υλικό και τον απαιτούμενο έλεγχο της αρχής ή του τέλους.\n\nΓια δημιουργία από κείμενο, περιγράψτε το θέμα, το περιβάλλον, τη δράση, την κάμερα, το ύφος και τον ήχο. Ένα storyboard μπορεί να προσδιορίζει κάθε πλάνο και χρονικό διάστημα, ενώ η περιγραφή ενός μόνο πλάνου πρέπει να δηλώνει ότι η δράση παραμένει συνεχής. Ο οδηγός προτροπών Wan 2.7 αφήνει το μοντέλο να ερμηνεύσει τη δομή πλάνων από τη γραπτή περιγραφή, αντί να χρησιμοποιεί τον έλεγχο shot_type του 2.6. Το τρέχον API κειμένου δέχεται κινεζικές ή αγγλικές προτροπές έως 5,000 χαρακτήρες, με χωριστή αρνητική προτροπή 500 χαρακτήρων· το επιπλέον κείμενο περικόπτεται. Διατηρήστε σαφή την ουσιώδη δράση και τους περιορισμούς μέσα σε αυτό το όριο.\n\nΗ δημιουργία από εικόνα πρώτου καρέ ζωντανεύει μια παρεχόμενη αρχική εικόνα. Η δημιουργία από πρώτο/τελευταίο καρέ ορίζει επιπλέον το τελικό σημείο και την κίνηση που τα συνδέει. Ο οδηγός εικόνας 2.7 υποστηρίζει πηγή ήχου καθοδήγησης μαζί με αυτούς τους συνδυασμούς καρέ. Προετοιμάστε άκρα που μοιράζονται σκηνή και επιθυμητό θέμα και περιγράψτε τη μετάβαση, αντί να ζητάτε από το μοντέλο να επανερμηνεύσει τις δύο εικόνες ως άσχετες υφολογικές αναφορές. Η έξοδος προσεγγίζει τις αναλογίες της πρώτης εικόνας· ο οδηγός αντιμετωπίζει την ανάλυση ως βαθμίδα αριθμού pixel και στρογγυλοποιεί ανάλογα τις κωδικοποιημένες διαστάσεις.\n\nΗ συνέχεια βίντεο ξεκινά από αρχικό κλιπ και μπορεί επίσης να χρησιμοποιεί τελική εικόνα. Η ζητούμενη διάρκεια είναι ο συνολικός χρόνος του επιστρεφόμενου βίντεο, μαζί με το αρχικό τμήμα. Το παράδειγμα του οδηγού συνδυάζει πηγή δύο δευτερολέπτων με δέκα δευτερόλεπτα νέου περιεχομένου σε αποτέλεσμα δώδεκα δευτερολέπτων. Προετοιμάστε την τελική δράση της πηγής και δηλώστε τι ακολουθεί, ώστε η κάμερα και το θέμα να συνεχίζουν προς συνεκτική κατεύθυνση. Ελέγξτε την ένωση ως προς εμφάνιση, κίνηση, φως και ήχο, αντί να αξιολογείτε μόνο το νέο παραγόμενο τέλος.\n\nΤο τρέχον χωριστό προφίλ αναφορών του κατασκευαστή χρησιμοποιεί εικόνες ή βίντεο για να καθοδηγήσει χαρακτήρες, αντικείμενα ή σκηνή. Ο οδηγός επιτρέπει συνολικά έως πέντε εικόνες και βίντεο αναφοράς και χρησιμοποιεί ετικέτες ανά τύπο, όπως Image 1 και Video 1. Περιγράψτε τον ρόλο κάθε υλικού και την επιθυμητή αλληλεπίδραση. Για σκηνή με καθοδήγηση αναφορών, δείξτε τον χαρακτήρα μιας αναφοράς να μεταφέρει το αντικείμενο μιας άλλης σε συγκεκριμένη τοποθεσία. Το κάδρο αναφορών διαφέρει από τη δημιουργία από πρώτο καρέ: η περιγραφή μπορεί να ορίζει νέα σύνθεση, χωρίς να απαιτεί το βίντεο να ανοίγει σε συγκεκριμένη παρεχόμενη στατική εικόνα.\n\nΓια προσαρμοσμένο ήχο στη δημιουργία από κείμενο, οι τεκμηριωμένες μορφές είναι WAV και MP3, με διάρκεια δύο έως τριάντα δευτερολέπτων και μέγιστο 15 MB. Η επιλεγμένη διάρκεια βίντεο καθορίζει το χρησιμοποιούμενο τμήμα: ο μεγαλύτερος ήχος περικόπτεται σε αυτή τη διάρκεια, ενώ ήχος μικρότερος από το βίντεο αφήνει το υπόλοιπο σιωπηλό. Προετοιμάστε ακριβώς το ηχητικό απόσπασμα που ανήκει στο πλάνο και αφήστε χώρο για την επιθυμητή οπτική δράση. Χωρίς παρεχόμενο αρχείο ήχου, ο κατασκευαστής περιγράφει δημιουργία μουσικής υπόκρουσης ή εφέ κατάλληλων για τη σκηνή· ελέγξτε τον πραγματικό ήχο και οποιαδήποτε ζητούμενη ομιλία μαζί με την εικόνα.\n\nΟ τρέχων πίνακας μοντέλων αναφέρει MP4 720p ή 1080p στα 30 fps, με έξοδο από κείμενο και εικόνα δύο έως δεκαπέντε δευτερολέπτων. Το χωριστό προφίλ αναφορών περιορίζεται σε δύο έως δέκα δευτερόλεπτα. Η δημιουργία από κείμενο προσφέρει κάδρο 16:9, 9:16, 1:1, 4:3 και 3:4. Οι εργασίες με εικόνες ακολουθούν δικούς τους κανόνες προσεγγιστικών αναλογιών πηγής, επομένως προετοιμάστε την περικοπή εισόδου για τον επιθυμητό προορισμό. Ένας κανόνας διάρκειας ή αναλογίας του προφίλ αναφορών δεν πρέπει να αντικαθιστά εκείνον της ροής καρέ ή συνέχειας.\n\nΗ τεκμηριωμένη ροή του κατασκευαστή είναι ασύγχρονη: ένα αναγνωριστικό εργασίας παρακολουθεί την επεξεργασία και το επιτυχές αποτέλεσμα παρέχει τη διεύθυνση βίντεο. Για τα αποτελέσματα τεκμηριώνεται ισχύς συνδέσμου είκοσι τεσσάρων ωρών, επομένως διατηρήστε το πραγματικό κλιπ και τα δημιουργικά υλικά για έλεγχο επεξεργασίας. Οι επιλογές επαναδιατύπωσης προτροπής, υδατογραφήματος και seed ανήκουν στην επιλεγμένη διεπαφή. Ο κατασκευαστής αναφέρει ότι σταθερό seed μπορεί να βελτιώσει την αναπαραγωγιμότητα, αλλά δεν εγγυάται πανομοιότυπο αποτέλεσμα. Συγκρίνετε το παραδοτέο με την περιγραφή, αντί να θεωρείτε ότι οι ρυθμίσεις διατηρούν από μόνες τους κάθε λεπτομέρεια.\n\nΣε σύγκριση με το Wan 2.6, ο οδηγός εικόνας 2.7 προσθέτει ειδικά έλεγχο πρώτου/τελευταίου καρέ και συνέχεια βίντεο μέσω πολυτροπικών εισόδων μέσων. Το Wan 3.0 εισάγει διαφορετική ενοποιημένη δομή και μεγαλύτερο περιθώριο δημιουργίας. Το προφίλ 2.7 διατηρεί τους δικούς του ελέγχους και όρια ανά εργασία. Ελέγξτε ολόκληρη τη σκηνή για συνέχεια θέματος, σταθερά καρέ, ταυτότητα αναφορών, διάλογο, κίνηση και ενώσεις και κάντε την επόμενη διόρθωση συγκεκριμένη ως προς το πραγματικό πρόβλημα που βρέθηκε.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "f5e3586fb5bd8eb9ef1200acf222b024c729caa58517d4958290ffc6a8409a47",
    "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\">Al</span><h2 id=\"sheet-title\">Alibaba: Wan 2.7</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Alibaba /</span><code>alibaba/wan-2.7</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|alibaba%2Fwan-2.7\">Βίντεο</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\">Το Alibaba Wan 2.7 δημιουργεί βίντεο με ήχο από κείμενο, αρχικές και τελικές εικόνες ή οπτικές αναφορές. Η ροή εικόνας του συνεχίζει επίσης ένα απόσπασμα πηγής, χρησιμοποιώντας τη ζητούμενη συνολική διάρκεια. Ο κατασκευαστής αναφέρει MP4 σε 720p ή 1080p στα 30 fps: 2–15 δευτερόλεπτα για λειτουργίες κειμένου/εικόνας και έως 10 δευτερόλεπτα για δημιουργία βάσει αναφορών.</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>Το Alibaba Wan 2.7 είναι οικογένεια δημιουργίας βίντεο με ονομασμένα προφίλ δημιουργίας από κείμενο, από εικόνα και με καθοδήγηση αναφορών. Ο κατασκευαστής τεκμηριώνει σκηνές με συγχρονισμένο ήχο και αφηγήσεις πολλών πλάνων, ενώ η ροή εικόνας προσθέτει δημιουργία από πρώτο/τελευταίο καρέ και συνέχεια ενός αρχικού βίντεο. Το χρήσιμο αποτέλεσμα είναι ένα σύντομο κλιπ με τον ήχο του, όπως μετάβαση προϊόντος, συμπαγής ιστορία ή συνέχεια που ταιριάζει σε υπάρχον πλάνο. Επιλέξτε τη λειτουργία σύμφωνα με το αρχικό υλικό και τον απαιτούμενο έλεγχο της αρχής ή του τέλους.</p><p>Για δημιουργία από κείμενο, περιγράψτε το θέμα, το περιβάλλον, τη δράση, την κάμερα, το ύφος και τον ήχο. Ένα storyboard μπορεί να προσδιορίζει κάθε πλάνο και χρονικό διάστημα, ενώ η περιγραφή ενός μόνο πλάνου πρέπει να δηλώνει ότι η δράση παραμένει συνεχής. Ο οδηγός προτροπών Wan 2.7 αφήνει το μοντέλο να ερμηνεύσει τη δομή πλάνων από τη γραπτή περιγραφή, αντί να χρησιμοποιεί τον έλεγχο shot_type του 2.6. Το τρέχον API κειμένου δέχεται κινεζικές ή αγγλικές προτροπές έως 5,000 χαρακτήρες, με χωριστή αρνητική προτροπή 500 χαρακτήρων· το επιπλέον κείμενο περικόπτεται. Διατηρήστε σαφή την ουσιώδη δράση και τους περιορισμούς μέσα σε αυτό το όριο.</p><p>Η δημιουργία από εικόνα πρώτου καρέ ζωντανεύει μια παρεχόμενη αρχική εικόνα. Η δημιουργία από πρώτο/τελευταίο καρέ ορίζει επιπλέον το τελικό σημείο και την κίνηση που τα συνδέει. Ο οδηγός εικόνας 2.7 υποστηρίζει πηγή ήχου καθοδήγησης μαζί με αυτούς τους συνδυασμούς καρέ. Προετοιμάστε άκρα που μοιράζονται σκηνή και επιθυμητό θέμα και περιγράψτε τη μετάβαση, αντί να ζητάτε από το μοντέλο να επανερμηνεύσει τις δύο εικόνες ως άσχετες υφολογικές αναφορές. Η έξοδος προσεγγίζει τις αναλογίες της πρώτης εικόνας· ο οδηγός αντιμετωπίζει την ανάλυση ως βαθμίδα αριθμού pixel και στρογγυλοποιεί ανάλογα τις κωδικοποιημένες διαστάσεις.</p><p>Η συνέχεια βίντεο ξεκινά από αρχικό κλιπ και μπορεί επίσης να χρησιμοποιεί τελική εικόνα. Η ζητούμενη διάρκεια είναι ο συνολικός χρόνος του επιστρεφόμενου βίντεο, μαζί με το αρχικό τμήμα. Το παράδειγμα του οδηγού συνδυάζει πηγή δύο δευτερολέπτων με δέκα δευτερόλεπτα νέου περιεχομένου σε αποτέλεσμα δώδεκα δευτερολέπτων. Προετοιμάστε την τελική δράση της πηγής και δηλώστε τι ακολουθεί, ώστε η κάμερα και το θέμα να συνεχίζουν προς συνεκτική κατεύθυνση. Ελέγξτε την ένωση ως προς εμφάνιση, κίνηση, φως και ήχο, αντί να αξιολογείτε μόνο το νέο παραγόμενο τέλος.</p><p>Το τρέχον χωριστό προφίλ αναφορών του κατασκευαστή χρησιμοποιεί εικόνες ή βίντεο για να καθοδηγήσει χαρακτήρες, αντικείμενα ή σκηνή. Ο οδηγός επιτρέπει συνολικά έως πέντε εικόνες και βίντεο αναφοράς και χρησιμοποιεί ετικέτες ανά τύπο, όπως Image 1 και Video 1. Περιγράψτε τον ρόλο κάθε υλικού και την επιθυμητή αλληλεπίδραση. Για σκηνή με καθοδήγηση αναφορών, δείξτε τον χαρακτήρα μιας αναφοράς να μεταφέρει το αντικείμενο μιας άλλης σε συγκεκριμένη τοποθεσία. Το κάδρο αναφορών διαφέρει από τη δημιουργία από πρώτο καρέ: η περιγραφή μπορεί να ορίζει νέα σύνθεση, χωρίς να απαιτεί το βίντεο να ανοίγει σε συγκεκριμένη παρεχόμενη στατική εικόνα.</p><p>Για προσαρμοσμένο ήχο στη δημιουργία από κείμενο, οι τεκμηριωμένες μορφές είναι WAV και MP3, με διάρκεια δύο έως τριάντα δευτερολέπτων και μέγιστο 15 MB. Η επιλεγμένη διάρκεια βίντεο καθορίζει το χρησιμοποιούμενο τμήμα: ο μεγαλύτερος ήχος περικόπτεται σε αυτή τη διάρκεια, ενώ ήχος μικρότερος από το βίντεο αφήνει το υπόλοιπο σιωπηλό. Προετοιμάστε ακριβώς το ηχητικό απόσπασμα που ανήκει στο πλάνο και αφήστε χώρο για την επιθυμητή οπτική δράση. Χωρίς παρεχόμενο αρχείο ήχου, ο κατασκευαστής περιγράφει δημιουργία μουσικής υπόκρουσης ή εφέ κατάλληλων για τη σκηνή· ελέγξτε τον πραγματικό ήχο και οποιαδήποτε ζητούμενη ομιλία μαζί με την εικόνα.</p><p>Ο τρέχων πίνακας μοντέλων αναφέρει MP4 720p ή 1080p στα 30 fps, με έξοδο από κείμενο και εικόνα δύο έως δεκαπέντε δευτερολέπτων. Το χωριστό προφίλ αναφορών περιορίζεται σε δύο έως δέκα δευτερόλεπτα. Η δημιουργία από κείμενο προσφέρει κάδρο 16:9, 9:16, 1:1, 4:3 και 3:4. Οι εργασίες με εικόνες ακολουθούν δικούς τους κανόνες προσεγγιστικών αναλογιών πηγής, επομένως προετοιμάστε την περικοπή εισόδου για τον επιθυμητό προορισμό. Ένας κανόνας διάρκειας ή αναλογίας του προφίλ αναφορών δεν πρέπει να αντικαθιστά εκείνον της ροής καρέ ή συνέχειας.</p><p>Η τεκμηριωμένη ροή του κατασκευαστή είναι ασύγχρονη: ένα αναγνωριστικό εργασίας παρακολουθεί την επεξεργασία και το επιτυχές αποτέλεσμα παρέχει τη διεύθυνση βίντεο. Για τα αποτελέσματα τεκμηριώνεται ισχύς συνδέσμου είκοσι τεσσάρων ωρών, επομένως διατηρήστε το πραγματικό κλιπ και τα δημιουργικά υλικά για έλεγχο επεξεργασίας. Οι επιλογές επαναδιατύπωσης προτροπής, υδατογραφήματος και seed ανήκουν στην επιλεγμένη διεπαφή. Ο κατασκευαστής αναφέρει ότι σταθερό seed μπορεί να βελτιώσει την αναπαραγωγιμότητα, αλλά δεν εγγυάται πανομοιότυπο αποτέλεσμα. Συγκρίνετε το παραδοτέο με την περιγραφή, αντί να θεωρείτε ότι οι ρυθμίσεις διατηρούν από μόνες τους κάθε λεπτομέρεια.</p><p>Σε σύγκριση με το Wan 2.6, ο οδηγός εικόνας 2.7 προσθέτει ειδικά έλεγχο πρώτου/τελευταίου καρέ και συνέχεια βίντεο μέσω πολυτροπικών εισόδων μέσων. Το Wan 3.0 εισάγει διαφορετική ενοποιημένη δομή και μεγαλύτερο περιθώριο δημιουργίας. Το προφίλ 2.7 διατηρεί τους δικούς του ελέγχους και όρια ανά εργασία. Ελέγξτε ολόκληρη τη σκηνή για συνέχεια θέματος, σταθερά καρέ, ταυτότητα αναφορών, διάλογο, κίνηση και ενώσεις και κάντε την επόμενη διόρθωση συγκεκριμένη ως προς το πραγματικό πρόβλημα που βρέθηκε.</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></dd></div><div><dt>Έξοδος</dt><dd><code>video</code></dd></div><div><dt>Μορφή εξόδου</dt><dd>mp4</dd></div><div><dt>Πλήθος εξόδων</dt><dd>Έως 4 έξοδοςs</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 data-parameter-availability=\"source_interface\"><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>alibaba/wan-2.7</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><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>Μέγιστο πλήθος byte UTF-8: 10.000</div><div>Απαιτείται περιεχόμενο πέρα από κενά διαστήματα: Ναι</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><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>2, 3, 4, 5, 6, 7, 8, 9, 10</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><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>720p</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>16:9, 9:16, 1:1, 4:3, 3:4</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>boolean</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>false, true</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Συνδυασμοί υλικών εισόδου</summary><p class=\"note-s\"><b>Κείμενο σε βίντεο</b> · Υποχρεωτικό: prompt</p></details><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, duration, resolution, aspect_ratio, generate_audio</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>additional_properties</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>false</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>parameters</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>{&quot;name&quot;:&quot;model&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;enum&quot;:[&quot;alibaba/wan-2.7&quot;]}, {&quot;name&quot;:&quot;prompt&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;non_whitespace&quot;:true,&quot;max_utf8_bytes&quot;:10000}, {&quot;name&quot;:&quot;duration&quot;,&quot;type&quot;:&quot;integer&quot;,&quot;required&quot;:true,&quot;enum&quot;:[2,3,4,5,6,7,8,9,10]}, {&quot;name&quot;:&quot;resolution&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;enum&quot;:[&quot;720p&quot;]}, {&quot;name&quot;:&quot;aspect_ratio&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;enum&quot;:[&quot;16:9&quot;,&quot;9:16&quot;,&quot;1:1&quot;,&quot;4:3&quot;,&quot;3:4&quot;]}, {&quot;name&quot;:&quot;generate_audio&quot;,&quot;type&quot;:&quot;boolean&quot;,&quot;required&quot;:true,&quot;enum&quot;:[false,true]}</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</td></tr></tbody></table></div><p>Εναλλακτικά ονόματα μεθόδου: <code>/v1/videos/generations</code>, <code>/videos</code>, <code>/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/videos/generations/{request_id}/content</code></p><p class=\"note-s\">Διατηρήστε ολόκληρη την απόκριση και τα αρχικά ID που επιστρέφονται.</p><p class=\"note-s\">Μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Τιμολόγηση</h3><div class=\"card-result-process\" data-billing-basis><h5>Πώς υπολογίζεται η τελική χρέωση</h5><p class=\"note-s\">Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.</p><dl data-price-conditions><dt>Γρήγορη λειτουργία</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η γρήγορη λειτουργία</span></dd><dt>Λειτουργία flex</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η λειτουργία flex</span></dd><dt>Μέγιστη προσπάθεια συλλογισμού</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Εκτιμώμενες χρεώσεις για σύγκριση</h4><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Πίνακας χρεώσεων</th><th>Προβλεπόμενη ποσότητα</th><th>Επιλογές δημιουργίας ήχου</th><th>Ανάλυση</th><th>Μονάδα τιμολόγησης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Βασικές χρεώσεις token</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>Βασική χρέωση</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>—</td><td data-cell-label=\"Επιλογές δημιουργίας ήχου\"><span class=\"card-cell-label\">Επιλογές δημιουργίας ήχου</span>—</td><td data-cell-label=\"Ανάλυση\"><span class=\"card-cell-label\">Ανάλυση</span>—</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>Ultra</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>Ζητούμενες ρυθμίσεις· μόνο εκτίμηση.</td><td data-cell-label=\"Επιλογές δημιουργίας ήχου\"><span class=\"card-cell-label\">Επιλογές δημιουργίας ήχου</span>Χωρίς ήχο · Με ήχο</td><td data-cell-label=\"Ανάλυση\"><span class=\"card-cell-label\">Ανάλυση</span>720p</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><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Εκτιμώμενο κόστος δημιουργίας</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>εκτίμηση για μία δημιουργία</td><td data-cell-label=\"Επιλογές δημιουργίας ήχου\"><span class=\"card-cell-label\">Επιλογές δημιουργίας ήχου</span>—</td><td data-cell-label=\"Ανάλυση\"><span class=\"card-cell-label\">Ανάλυση</span>—</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.4</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><div data-declared-reference-pricing><h4>Στοιχεία τιμοκαταλόγου αναφοράς</h4><p class=\"note-s\">Οι πίνακες αναφοράς του μοντέλου δεν αλλάζουν την επιλογή μεθόδου, τις εκτιμήσεις τιμής ή τις χρεώσεις. Οι εφαρμοζόμενες χρεώσεις χρησιμοποιούν τις τιμές της επιλεγμένης μεθόδου Ailoot.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Τιμές αναφοράς για διαμορφώσεις βίντεο</summary><h4>Τιμές ανά διαμόρφωση</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Συνθήκες χρέωσης</th><th>Χρέωση</th></tr></thead><tbody><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><div><span>Έξοδος · Τιμή βίντεο</span> <b>$0.2</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο</span></div><p class=\"note-s\">Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.</p></td></tr></tbody></table></div></details></div></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-1006-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1006-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · το ακριβές ρυθμισμένο προφίλ</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1006-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1006-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;alibaba/wan-2.7&quot;, &quot;prompt&quot;: &quot;a calm greenhouse&quot;, &quot;duration&quot;: 6, &quot;resolution&quot;: &quot;720p&quot;, &quot;aspect_ratio&quot;: &quot;16:9&quot;, &quot;generate_audio&quot;: true}&#39;)\nPath(&#39;request.json&#39;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\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\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · Βίντεο</h4><p class=\"note-s\">mp4</p><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/videos/generations/{request_id}/content</code></li></ul><h5>Έλεγχος κατάστασης εργασίας</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1007-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1007-panel-0\" aria-selected=\"true\" tabindex=\"0\">Λήψη της κατάστασης της αρχικής ενέργειας με GET</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-1007-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1007-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>Άλλες ανακτήσεις περιεχομένου</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1008-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1008-panel-0\" aria-selected=\"true\" tabindex=\"0\">Αποθηκεύστε κάθε ολοκληρωμένο αποτέλεσμα που σας ανήκει</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1008-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1008-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε κάθε ολοκληρωμένο υπογεγραμμένο URL του data[] που σας ανήκει και όλα τα μεταδεδομένα κατάστασης. Αποθηκεύστε κάθε έξοδο, μαζί με τον παραγόμενο ήχο της. Έγκυρο ηχητικό κομμάτι AAC μπορεί να υπάρχει ακόμη και με generate_audio=false· διατηρήστε ολόκληρο το αρχικό MP4 μαζί με αυτόν τον ήχο.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.</p></div><p class=\"note-s\">Μέγιστο πλήθος εξόδων: 4.</p><details class=\"card-about\" data-output-fields><summary>Πεδία απάντησης</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><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\">id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><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\">object</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><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\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><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\">status</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>signed content URL</td><td data-cell-label=\"Σημασία\"><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\">charge_pending_check</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>boolean</td><td data-cell-label=\"Σημασία\"><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\">error.code</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><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\">error.message</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><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\">operation_id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Αρχική απόκριση κατάστασης ή περιεχομένου HTTP503 result_pending_check: το ίδιο αρχικό δημόσιο ID βίντεο ως id.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">error.type</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>server_error σε HTTP503 result_pending_check.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Σφάλματα και επόμενα βήματα</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Απάντηση</th><th>Συνθήκη</th><th>Επόμενο βήμα</th></tr></thead><tbody><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η ανάγνωση του ακατέργαστου σώματος αιτήματος αποτυγχάνει πριν από την ανάλυση του προφίλ βίντεο</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε την απόκριση που επιστρέφεται και διορθώστε το μη αναγνώσιμο σώμα αιτήματος.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Αποτυγχάνει η ανάλυση του ακριβούς προφίλ βίντεο ή το πλήρες αναλυμένο προφίλ δεν διαθέτει έτοιμη κάρτα με την ακριβή τιμή</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε την απόκριση· χρησιμοποιήστε το πλήρες, ακριβές προφίλ που έχει άδεια πρόσβασης και τη δημοσιευμένη κάρτα του. Αυτός ο κλάδος εκτελείται πριν από αποστολή στον πάροχο.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span><code>server_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>GET αρχικής κατάστασης ή περιεχομένου: η εργασία δεν έχει δημοσιευτεί, η αρχική εργασία δεν είναι failed/cancelled/expired και η τοπική κατάσταση είναι unknown ή η κατάσταση της αρχικής εργασίας είναι completed.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε τα αρχικά id και operation_id (το ίδιο δημόσιο ID βίντεο), την απόκριση και τις κεφαλίδες· διαβάστε μόνο την αρχική κατάσταση ή περιεχόμενο. Μην υποβάλετε ποτέ νέο αίτημα δημιουργίας.</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=alibaba%2Fwan-2.7&amp;route=Ultra&amp;caller=alibaba%2Fwan-2.7&amp;fmt=videos\"><code>alibaba/wan-2.7</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\"><code>/v1/videos/generations</code>, <code>/videos</code>, <code>/videos/generations</code></p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=alibaba%2Fwan-2.7&amp;route=Ultra&amp;caller=alibaba%2Fwan-2.7&amp;fmt=videos\"><code>alibaba/wan-2.7</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "alibaba/wan-2.7",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "alibaba/wan-2.7",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|alibaba%2Fwan-2.7",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every completed data[] signed owned URL and the full status metadata. Save every output, including its generated audio.",
            "errors": [
              {
                "code": null,
                "condition": "Η ανάγνωση του ακατέργαστου σώματος αιτήματος αποτυγχάνει πριν από την ανάλυση του προφίλ βίντεο",
                "http_status": 400,
                "recovery": "Διατηρήστε την απόκριση που επιστρέφεται και διορθώστε το μη αναγνώσιμο σώμα αιτήματος.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Αποτυγχάνει η ανάλυση του ακριβούς προφίλ βίντεο ή το πλήρες αναλυμένο προφίλ δεν διαθέτει έτοιμη κάρτα με την ακριβή τιμή",
                "http_status": 422,
                "message": "The complete video request cannot be priced",
                "recovery": "Διατηρήστε την απόκριση· χρησιμοποιήστε το πλήρες, ακριβές προφίλ που έχει άδεια πρόσβασης και τη δημοσιευμένη κάρτα του. Αυτός ο κλάδος εκτελείται πριν από αποστολή στον πάροχο.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Το περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο",
                "http_status": 409,
                "recovery": "Ελέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After.",
                "type": "video_not_ready"
              },
              {
                "code": null,
                "condition": "Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο",
                "http_status": null,
                "recovery": "Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.",
                "type": "server_error"
              },
              {
                "absent_fields": [
                  "status",
                  "object",
                  "model",
                  "data"
                ],
                "code": "result_pending_check",
                "condition": "GET αρχικής κατάστασης ή περιεχομένου: η εργασία δεν έχει δημοσιευτεί, η αρχική εργασία δεν είναι failed/cancelled/expired και η τοπική κατάσταση είναι unknown ή η κατάσταση της αρχικής εργασίας είναι completed.",
                "friendly_fields": "error.reason=result_pending_check,error.param=null; error.operation_id and error.request_id when the existing context supplies them. error.message is rewritten/localized.",
                "headers": {
                  "Retry-After": null,
                  "X-Should-Retry": "false"
                },
                "http_status": 503,
                "recovery": "Διατηρήστε τα αρχικά id και operation_id (το ίδιο δημόσιο ID βίντεο), την απόκριση και τις κεφαλίδες· διαβάστε μόνο την αρχική κατάσταση ή περιεχόμενο. Μην υποβάλετε ποτέ νέο αίτημα δημιουργίας.",
                "response_fields": {
                  "charge_pending_check": true,
                  "error.code": "result_pending_check",
                  "error.type": "server_error",
                  "id": "original public video ID",
                  "operation_id": "same as id"
                },
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "content": [
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default0"
                  }
                },
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/generations/{request_id}/content"
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
              "mode": "submit_once_poll_original",
              "multioutputs": "retain every completed data output; index0 alone is not all outputs",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 202,
              "unknown": "Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_video",
                "required": [
                  "prompt"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "Use actual returned task_id or original public video id from response/media library. On HTTP503 result_pending_check from original video status/content GET, operation_id equals that original public video id. Do not assume unrelated operation IDs name media tasks.",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_video"
            ],
            "outputs": {
              "all_results": "Διατηρήστε κάθε ολοκληρωμένο υπογεγραμμένο URL του data[] που σας ανήκει και όλα τα μεταδεδομένα κατάστασης. Αποθηκεύστε κάθε έξοδο, μαζί με τον παραγόμενο ήχο της. Έγκυρο ηχητικό κομμάτι AAC μπορεί να υπάρχει ακόμη και με generate_audio=false· διατηρήστε ολόκληρο το αρχικό MP4 μαζί με αυτόν τον ήχο.",
              "create_status": 202,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "signed content URL"
                },
                {
                  "description": null,
                  "name": "charge_pending_check",
                  "type": "boolean"
                },
                {
                  "description": null,
                  "name": "error.code",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "error.message",
                  "type": "string"
                },
                {
                  "description": "Αρχική απόκριση κατάστασης ή περιεχομένου HTTP503 result_pending_check: το ίδιο αρχικό δημόσιο ID βίντεο ως id.",
                  "name": "operation_id",
                  "type": "string"
                },
                {
                  "description": "server_error σε HTTP503 result_pending_check.",
                  "name": "error.type",
                  "type": "string"
                }
              ],
              "format": "mp4",
              "maximum_outputs": 4,
              "status_enum": [
                "in_progress",
                "completed",
                "failed"
              ]
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "alibaba/wan-2.7"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "max_utf8_bytes": 10000,
                "name": "prompt",
                "non_whitespace": true,
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10
                ],
                "enum_known": true,
                "name": "duration",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "all fields outside the exact required six-key profile",
              "image or reference inputs",
              "1080p or 4K"
            ]
          },
          "hints": [
            "Διατηρήστε ολόκληρη την απόκριση και τα αρχικά ID που επιστρέφονται.",
            "Μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα."
          ],
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "parameters": [
              {
                "enum": [
                  "alibaba/wan-2.7"
                ],
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "max_utf8_bytes": 10000,
                "name": "prompt",
                "non_whitespace": true,
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10
                ],
                "name": "duration",
                "required": true,
                "type": "integer"
              },
              {
                "enum": [
                  "720p"
                ],
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  false,
                  true
                ],
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              }
            ],
            "required": [
              "model",
              "prompt",
              "duration",
              "resolution",
              "aspect_ratio",
              "generate_audio"
            ]
          },
          "lifecycle": {
            "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
            "content": [
              {
                "http": "GET",
                "parameters": [
                  {
                    "availability": "source_interface",
                    "conditions": "Must be less than the actual returned output count.",
                    "default": 0,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": null,
                    "maximum_known": false,
                    "minimum": 0,
                    "name": "index",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default0"
                }
              },
              {
                "http": "GET",
                "parameters": [
                  {
                    "availability": "source_interface",
                    "conditions": "Must be less than the actual returned output count.",
                    "default": 0,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": null,
                    "maximum_known": false,
                    "minimum": 0,
                    "name": "index",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/videos/generations/{request_id}/content"
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
            "mode": "submit_once_poll_original",
            "multioutputs": "retain every completed data output; index0 alone is not all outputs",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 202,
            "unknown": "Read existing original job; never resubmit unknown send.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations",
            "/videos",
            "/videos/generations"
          ],
          "operation_modes": [
            "text_to_video"
          ],
          "output": {
            "family": "video",
            "format": "mp4",
            "max_outputs": 4,
            "priced_duration": "Video-file duration is not the billing quantity; final charge follows the actual billed configuration."
          }
        },
        "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": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio_allowed": [
                false,
                true
              ],
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "estimated video second",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.4",
                "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.4",
                "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}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"alibaba/wan-2.7\", \"prompt\": \"a calm greenhouse\", \"duration\": 6, \"resolution\": \"720p\", \"aspect_ratio\": \"16:9\", \"generate_audio\": true}')\nPath('request.json').write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/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\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · exact configured profile",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "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())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Keep the complete response and the original returned IDs.",
          "Never resubmit an unknown creation."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations",
          "/videos",
          "/videos/generations"
        ],
        "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": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio_allowed": [
                false,
                true
              ],
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "estimated video second",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "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.4",
                "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.4",
                "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": "alibaba/wan-2.7",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "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_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "estimated video second",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "per output video second",
            "quantity": "1",
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_video_second"
          },
          {
            "amount": "0.4",
            "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.4",
            "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": "alibaba/wan-2.7",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "f7bcd482b173ad1780108e9117111498205c96b371fcf2e98df51ca5a9e6e6be",
    "input_html_sha256": "52917ddc5632e47a1e2039c82a9a421063030030cc25cefe24d34171923817bb",
    "private_audit_sha256": "583c3f3a3466559df053c231a17be6a10c2036181e111dea47c2f39e824e6c88",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/alibaba-wan-2-7/",
    "description": "Το Alibaba Wan 2.7 δημιουργεί βίντεο με ήχο από κείμενο, αρχικές και τελικές εικόνες ή οπτικές αναφορές. Η ροή εικόνας του συνεχίζει επίσης ένα απόσπασμα πηγής, χρησιμοποιώντας τη ζητούμενη συνολική διάρκεια. Ο κατασκευαστής αναφέρει MP4 σε 720p ή 1080p στα 30 fps: 2–15 δευτερόλεπτα για λειτουργίες κειμένου/εικόνας και έως 10 δευτερόλεπτα για δημιουργία βάσει αναφορών.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/alibaba-wan-2-7/index.md",
    "title": "Alibaba: Wan 2.7 — Ailoot",
    "url": "https://ailoot.ai/models/el/alibaba-wan-2-7/"
  },
  "rawModel": {
    "about": "Το Alibaba Wan 2.7 είναι οικογένεια δημιουργίας βίντεο με ονομασμένα προφίλ δημιουργίας από κείμενο, από εικόνα και με καθοδήγηση αναφορών. Ο κατασκευαστής τεκμηριώνει σκηνές με συγχρονισμένο ήχο και αφηγήσεις πολλών πλάνων, ενώ η ροή εικόνας προσθέτει δημιουργία από πρώτο/τελευταίο καρέ και συνέχεια ενός αρχικού βίντεο. Το χρήσιμο αποτέλεσμα είναι ένα σύντομο κλιπ με τον ήχο του, όπως μετάβαση προϊόντος, συμπαγής ιστορία ή συνέχεια που ταιριάζει σε υπάρχον πλάνο. Επιλέξτε τη λειτουργία σύμφωνα με το αρχικό υλικό και τον απαιτούμενο έλεγχο της αρχής ή του τέλους.\n\nΓια δημιουργία από κείμενο, περιγράψτε το θέμα, το περιβάλλον, τη δράση, την κάμερα, το ύφος και τον ήχο. Ένα storyboard μπορεί να προσδιορίζει κάθε πλάνο και χρονικό διάστημα, ενώ η περιγραφή ενός μόνο πλάνου πρέπει να δηλώνει ότι η δράση παραμένει συνεχής. Ο οδηγός προτροπών Wan 2.7 αφήνει το μοντέλο να ερμηνεύσει τη δομή πλάνων από τη γραπτή περιγραφή, αντί να χρησιμοποιεί τον έλεγχο shot_type του 2.6. Το τρέχον API κειμένου δέχεται κινεζικές ή αγγλικές προτροπές έως 5,000 χαρακτήρες, με χωριστή αρνητική προτροπή 500 χαρακτήρων· το επιπλέον κείμενο περικόπτεται. Διατηρήστε σαφή την ουσιώδη δράση και τους περιορισμούς μέσα σε αυτό το όριο.\n\nΗ δημιουργία από εικόνα πρώτου καρέ ζωντανεύει μια παρεχόμενη αρχική εικόνα. Η δημιουργία από πρώτο/τελευταίο καρέ ορίζει επιπλέον το τελικό σημείο και την κίνηση που τα συνδέει. Ο οδηγός εικόνας 2.7 υποστηρίζει πηγή ήχου καθοδήγησης μαζί με αυτούς τους συνδυασμούς καρέ. Προετοιμάστε άκρα που μοιράζονται σκηνή και επιθυμητό θέμα και περιγράψτε τη μετάβαση, αντί να ζητάτε από το μοντέλο να επανερμηνεύσει τις δύο εικόνες ως άσχετες υφολογικές αναφορές. Η έξοδος προσεγγίζει τις αναλογίες της πρώτης εικόνας· ο οδηγός αντιμετωπίζει την ανάλυση ως βαθμίδα αριθμού pixel και στρογγυλοποιεί ανάλογα τις κωδικοποιημένες διαστάσεις.\n\nΗ συνέχεια βίντεο ξεκινά από αρχικό κλιπ και μπορεί επίσης να χρησιμοποιεί τελική εικόνα. Η ζητούμενη διάρκεια είναι ο συνολικός χρόνος του επιστρεφόμενου βίντεο, μαζί με το αρχικό τμήμα. Το παράδειγμα του οδηγού συνδυάζει πηγή δύο δευτερολέπτων με δέκα δευτερόλεπτα νέου περιεχομένου σε αποτέλεσμα δώδεκα δευτερολέπτων. Προετοιμάστε την τελική δράση της πηγής και δηλώστε τι ακολουθεί, ώστε η κάμερα και το θέμα να συνεχίζουν προς συνεκτική κατεύθυνση. Ελέγξτε την ένωση ως προς εμφάνιση, κίνηση, φως και ήχο, αντί να αξιολογείτε μόνο το νέο παραγόμενο τέλος.\n\nΤο τρέχον χωριστό προφίλ αναφορών του κατασκευαστή χρησιμοποιεί εικόνες ή βίντεο για να καθοδηγήσει χαρακτήρες, αντικείμενα ή σκηνή. Ο οδηγός επιτρέπει συνολικά έως πέντε εικόνες και βίντεο αναφοράς και χρησιμοποιεί ετικέτες ανά τύπο, όπως Image 1 και Video 1. Περιγράψτε τον ρόλο κάθε υλικού και την επιθυμητή αλληλεπίδραση. Για σκηνή με καθοδήγηση αναφορών, δείξτε τον χαρακτήρα μιας αναφοράς να μεταφέρει το αντικείμενο μιας άλλης σε συγκεκριμένη τοποθεσία. Το κάδρο αναφορών διαφέρει από τη δημιουργία από πρώτο καρέ: η περιγραφή μπορεί να ορίζει νέα σύνθεση, χωρίς να απαιτεί το βίντεο να ανοίγει σε συγκεκριμένη παρεχόμενη στατική εικόνα.\n\nΓια προσαρμοσμένο ήχο στη δημιουργία από κείμενο, οι τεκμηριωμένες μορφές είναι WAV και MP3, με διάρκεια δύο έως τριάντα δευτερολέπτων και μέγιστο 15 MB. Η επιλεγμένη διάρκεια βίντεο καθορίζει το χρησιμοποιούμενο τμήμα: ο μεγαλύτερος ήχος περικόπτεται σε αυτή τη διάρκεια, ενώ ήχος μικρότερος από το βίντεο αφήνει το υπόλοιπο σιωπηλό. Προετοιμάστε ακριβώς το ηχητικό απόσπασμα που ανήκει στο πλάνο και αφήστε χώρο για την επιθυμητή οπτική δράση. Χωρίς παρεχόμενο αρχείο ήχου, ο κατασκευαστής περιγράφει δημιουργία μουσικής υπόκρουσης ή εφέ κατάλληλων για τη σκηνή· ελέγξτε τον πραγματικό ήχο και οποιαδήποτε ζητούμενη ομιλία μαζί με την εικόνα.\n\nΟ τρέχων πίνακας μοντέλων αναφέρει MP4 720p ή 1080p στα 30 fps, με έξοδο από κείμενο και εικόνα δύο έως δεκαπέντε δευτερολέπτων. Το χωριστό προφίλ αναφορών περιορίζεται σε δύο έως δέκα δευτερόλεπτα. Η δημιουργία από κείμενο προσφέρει κάδρο 16:9, 9:16, 1:1, 4:3 και 3:4. Οι εργασίες με εικόνες ακολουθούν δικούς τους κανόνες προσεγγιστικών αναλογιών πηγής, επομένως προετοιμάστε την περικοπή εισόδου για τον επιθυμητό προορισμό. Ένας κανόνας διάρκειας ή αναλογίας του προφίλ αναφορών δεν πρέπει να αντικαθιστά εκείνον της ροής καρέ ή συνέχειας.\n\nΗ τεκμηριωμένη ροή του κατασκευαστή είναι ασύγχρονη: ένα αναγνωριστικό εργασίας παρακολουθεί την επεξεργασία και το επιτυχές αποτέλεσμα παρέχει τη διεύθυνση βίντεο. Για τα αποτελέσματα τεκμηριώνεται ισχύς συνδέσμου είκοσι τεσσάρων ωρών, επομένως διατηρήστε το πραγματικό κλιπ και τα δημιουργικά υλικά για έλεγχο επεξεργασίας. Οι επιλογές επαναδιατύπωσης προτροπής, υδατογραφήματος και seed ανήκουν στην επιλεγμένη διεπαφή. Ο κατασκευαστής αναφέρει ότι σταθερό seed μπορεί να βελτιώσει την αναπαραγωγιμότητα, αλλά δεν εγγυάται πανομοιότυπο αποτέλεσμα. Συγκρίνετε το παραδοτέο με την περιγραφή, αντί να θεωρείτε ότι οι ρυθμίσεις διατηρούν από μόνες τους κάθε λεπτομέρεια.\n\nΣε σύγκριση με το Wan 2.6, ο οδηγός εικόνας 2.7 προσθέτει ειδικά έλεγχο πρώτου/τελευταίου καρέ και συνέχεια βίντεο μέσω πολυτροπικών εισόδων μέσων. Το Wan 3.0 εισάγει διαφορετική ενοποιημένη δομή και μεγαλύτερο περιθώριο δημιουργίας. Το προφίλ 2.7 διατηρεί τους δικούς του ελέγχους και όρια ανά εργασία. Ελέγξτε ολόκληρη τη σκηνή για συνέχεια θέματος, σταθερά καρέ, ταυτότητα αναφορών, διάλογο, κίνηση και ενώσεις και κάντε την επόμενη διόρθωση συγκεκριμένη ως προς το πραγματικό πρόβλημα που βρέθηκε.",
    "alias_of": null,
    "aliases": [],
    "author": "Alibaba",
    "available": null,
    "canonical_model": "alibaba/wan-2.7",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.4",
            "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.4",
            "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,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "8f1523154b37e6b9d0124ed1",
        "label": "Τιμές αναφοράς για διαμορφώσεις βίντεο",
        "profiles": [
          {
            "basis": "Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.",
            "dimensions": {
              "conditions": "Δεν δηλώνεται πρόσθετη συνθήκη σε αυτό το κλειδί τιμολόγησης."
            },
            "label": "Τιμή βίντεο",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "alibaba/wan-2.7",
    "input": [
      "text"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every completed data[] signed owned URL and the full status metadata. Save every output, including its generated audio.",
            "errors": [
              {
                "code": null,
                "condition": "Η ανάγνωση του ακατέργαστου σώματος αιτήματος αποτυγχάνει πριν από την ανάλυση του προφίλ βίντεο",
                "http_status": 400,
                "recovery": "Διατηρήστε την απόκριση που επιστρέφεται και διορθώστε το μη αναγνώσιμο σώμα αιτήματος.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Αποτυγχάνει η ανάλυση του ακριβούς προφίλ βίντεο ή το πλήρες αναλυμένο προφίλ δεν διαθέτει έτοιμη κάρτα με την ακριβή τιμή",
                "http_status": 422,
                "message": "The complete video request cannot be priced",
                "recovery": "Διατηρήστε την απόκριση· χρησιμοποιήστε το πλήρες, ακριβές προφίλ που έχει άδεια πρόσβασης και τη δημοσιευμένη κάρτα του. Αυτός ο κλάδος εκτελείται πριν από αποστολή στον πάροχο.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Το περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο",
                "http_status": 409,
                "recovery": "Ελέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After.",
                "type": "video_not_ready"
              },
              {
                "code": null,
                "condition": "Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο",
                "http_status": null,
                "recovery": "Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.",
                "type": "server_error"
              },
              {
                "absent_fields": [
                  "status",
                  "object",
                  "model",
                  "data"
                ],
                "code": "result_pending_check",
                "condition": "GET αρχικής κατάστασης ή περιεχομένου: η εργασία δεν έχει δημοσιευτεί, η αρχική εργασία δεν είναι failed/cancelled/expired και η τοπική κατάσταση είναι unknown ή η κατάσταση της αρχικής εργασίας είναι completed.",
                "friendly_fields": "error.reason=result_pending_check,error.param=null; error.operation_id and error.request_id when the existing context supplies them. error.message is rewritten/localized.",
                "headers": {
                  "Retry-After": null,
                  "X-Should-Retry": "false"
                },
                "http_status": 503,
                "recovery": "Διατηρήστε τα αρχικά id και operation_id (το ίδιο δημόσιο ID βίντεο), την απόκριση και τις κεφαλίδες· διαβάστε μόνο την αρχική κατάσταση ή περιεχόμενο. Μην υποβάλετε ποτέ νέο αίτημα δημιουργίας.",
                "response_fields": {
                  "charge_pending_check": true,
                  "error.code": "result_pending_check",
                  "error.type": "server_error",
                  "id": "original public video ID",
                  "operation_id": "same as id"
                },
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "content": [
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default0"
                  }
                },
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/generations/{request_id}/content"
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
              "mode": "submit_once_poll_original",
              "multioutputs": "retain every completed data output; index0 alone is not all outputs",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 202,
              "unknown": "Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_video",
                "required": [
                  "prompt"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "Use actual returned task_id or original public video id from response/media library. On HTTP503 result_pending_check from original video status/content GET, operation_id equals that original public video id. Do not assume unrelated operation IDs name media tasks.",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_video"
            ],
            "outputs": {
              "all_results": "Διατηρήστε κάθε ολοκληρωμένο υπογεγραμμένο URL του data[] που σας ανήκει και όλα τα μεταδεδομένα κατάστασης. Αποθηκεύστε κάθε έξοδο, μαζί με τον παραγόμενο ήχο της. Έγκυρο ηχητικό κομμάτι AAC μπορεί να υπάρχει ακόμη και με generate_audio=false· διατηρήστε ολόκληρο το αρχικό MP4 μαζί με αυτόν τον ήχο.",
              "create_status": 202,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "signed content URL"
                },
                {
                  "description": null,
                  "name": "charge_pending_check",
                  "type": "boolean"
                },
                {
                  "description": null,
                  "name": "error.code",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "error.message",
                  "type": "string"
                },
                {
                  "description": "Αρχική απόκριση κατάστασης ή περιεχομένου HTTP503 result_pending_check: το ίδιο αρχικό δημόσιο ID βίντεο ως id.",
                  "name": "operation_id",
                  "type": "string"
                },
                {
                  "description": "server_error σε HTTP503 result_pending_check.",
                  "name": "error.type",
                  "type": "string"
                }
              ],
              "format": "mp4",
              "maximum_outputs": 4,
              "status_enum": [
                "in_progress",
                "completed",
                "failed"
              ]
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "alibaba/wan-2.7"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "max_utf8_bytes": 10000,
                "name": "prompt",
                "non_whitespace": true,
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10
                ],
                "enum_known": true,
                "name": "duration",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "all fields outside the exact required six-key profile",
              "image or reference inputs",
              "1080p or 4K"
            ]
          },
          "hints": [
            "Διατηρήστε ολόκληρη την απόκριση και τα αρχικά ID που επιστρέφονται.",
            "Μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα."
          ],
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "parameters": [
              {
                "enum": [
                  "alibaba/wan-2.7"
                ],
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "max_utf8_bytes": 10000,
                "name": "prompt",
                "non_whitespace": true,
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10
                ],
                "name": "duration",
                "required": true,
                "type": "integer"
              },
              {
                "enum": [
                  "720p"
                ],
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  false,
                  true
                ],
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              }
            ],
            "required": [
              "model",
              "prompt",
              "duration",
              "resolution",
              "aspect_ratio",
              "generate_audio"
            ]
          },
          "lifecycle": {
            "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
            "content": [
              {
                "http": "GET",
                "parameters": [
                  {
                    "availability": "source_interface",
                    "conditions": "Must be less than the actual returned output count.",
                    "default": 0,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": null,
                    "maximum_known": false,
                    "minimum": 0,
                    "name": "index",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default0"
                }
              },
              {
                "http": "GET",
                "parameters": [
                  {
                    "availability": "source_interface",
                    "conditions": "Must be less than the actual returned output count.",
                    "default": 0,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": null,
                    "maximum_known": false,
                    "minimum": 0,
                    "name": "index",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/videos/generations/{request_id}/content"
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
            "mode": "submit_once_poll_original",
            "multioutputs": "retain every completed data output; index0 alone is not all outputs",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 202,
            "unknown": "Read existing original job; never resubmit unknown send.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations",
            "/videos",
            "/videos/generations"
          ],
          "operation_modes": [
            "text_to_video"
          ],
          "output": {
            "family": "video",
            "format": "mp4",
            "max_outputs": 4,
            "priced_duration": "Video-file duration is not the billing quantity; final charge follows the actual billed configuration."
          }
        },
        "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": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio_allowed": [
                false,
                true
              ],
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "estimated video second",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.4",
                "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.4",
                "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}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"alibaba/wan-2.7\", \"prompt\": \"a calm greenhouse\", \"duration\": 6, \"resolution\": \"720p\", \"aspect_ratio\": \"16:9\", \"generate_audio\": true}')\nPath('request.json').write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/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\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · exact configured profile",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "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())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Keep the complete response and the original returned IDs.",
          "Never resubmit an unknown creation."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations",
          "/videos",
          "/videos/generations"
        ],
        "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": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio_allowed": [
                false,
                true
              ],
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "estimated video second",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "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.4",
                "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.4",
                "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": "alibaba/wan-2.7",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "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_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "estimated video second",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "per output video second",
            "quantity": "1",
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_video_second"
          },
          {
            "amount": "0.4",
            "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.4",
            "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": "alibaba/wan-2.7",
        "request_model_id": "alibaba/wan-2.7",
        "route_label": "Ultra"
      }
    ],
    "name": "Alibaba: Wan 2.7",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.4,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.4,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-t2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "wan2.7-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.20",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-t2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "wan2.7-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-t2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "wan2.7-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.30",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-t2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "wan2.7-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-t2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "wan2.7-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.172024",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "wan2.7-t2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "wan2.7-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-t2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "wan2.7-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.286706",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "wan2.7-t2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "wan2.7-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-i2v",
          "Output video resolution": "720P",
          "Output video type": "Audio video",
          "maker_published_model_id": "wan2.7-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.20",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-i2v",
              "Output video resolution": "720P",
              "Output video type": "Audio video",
              "maker_published_model_id": "wan2.7-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 4,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-i2v",
          "Output video resolution": "1080P",
          "Output video type": "Audio video",
          "maker_published_model_id": "wan2.7-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.30",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-i2v",
              "Output video resolution": "1080P",
              "Output video type": "Audio video",
              "maker_published_model_id": "wan2.7-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 5,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-i2v",
          "Output video resolution": "720P",
          "Output video type": "Audio video",
          "maker_published_model_id": "wan2.7-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.172024",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "wan2.7-i2v",
              "Output video resolution": "720P",
              "Output video type": "Audio video",
              "maker_published_model_id": "wan2.7-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 6,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-i2v",
          "Output video resolution": "1080P",
          "Output video type": "Audio video",
          "maker_published_model_id": "wan2.7-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.286706",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "wan2.7-i2v",
              "Output video resolution": "1080P",
              "Output video type": "Audio video",
              "maker_published_model_id": "wan2.7-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 7,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-r2v",
          "Output video resolution": "720P",
          "Output video type": "Audio video",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-r2v"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.20",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-r2v",
              "Output video resolution": "720P",
              "Output video type": "Audio video",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-r2v"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 8,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-r2v",
          "Output video resolution": "720P",
          "Output video type": "Audio video",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-r2v"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.20",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-r2v",
              "Output video resolution": "720P",
              "Output video type": "Audio video",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-r2v"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 9,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-r2v",
          "Output video resolution": "1080P",
          "Output video type": "Audio video",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-r2v"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.30",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-r2v",
              "Output video resolution": "1080P",
              "Output video type": "Audio video",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-r2v"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 10,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-r2v",
          "Output video resolution": "1080P",
          "Output video type": "Audio video",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-r2v"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.30",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-r2v",
              "Output video resolution": "1080P",
              "Output video type": "Audio video",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-r2v"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 11,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-r2v",
          "Output video resolution": "720P",
          "Output video type": "Audio video",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-r2v"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.172024",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Model ID": "wan2.7-r2v",
              "Output video resolution": "720P",
              "Output video type": "Audio video",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-r2v"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 12,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-r2v",
          "Output video resolution": "720P",
          "Output video type": "Audio video",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-r2v"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.172024",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "wan2.7-r2v",
              "Output video resolution": "720P",
              "Output video type": "Audio video",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-r2v"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 13,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-r2v",
          "Output video resolution": "1080P",
          "Output video type": "Audio video",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-r2v"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.286706",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Model ID": "wan2.7-r2v",
              "Output video resolution": "1080P",
              "Output video type": "Audio video",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-r2v"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 14,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-r2v",
          "Output video resolution": "1080P",
          "Output video type": "Audio video",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-r2v"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.286706",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "wan2.7-r2v",
              "Output video resolution": "1080P",
              "Output video type": "Audio video",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-r2v"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 15,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-videoedit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-videoedit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.20",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-videoedit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-videoedit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 16,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-videoedit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-videoedit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.20",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-videoedit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-videoedit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 17,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-videoedit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-videoedit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.30",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-videoedit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-videoedit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 18,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "wan2.7-videoedit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-videoedit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.30",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "wan2.7-videoedit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-videoedit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 19,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-videoedit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-videoedit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.172024",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Model ID": "wan2.7-videoedit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-videoedit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 20,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-videoedit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-videoedit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.172024",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "wan2.7-videoedit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-videoedit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 21,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-videoedit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-videoedit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.286706",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Model ID": "wan2.7-videoedit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-videoedit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 22,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "wan2.7-videoedit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "wan2.7-videoedit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.286706",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "wan2.7-videoedit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "wan2.7-videoedit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 23,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.2",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "output second",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.2",
            "key": "duration_seconds",
            "label": "output second",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "alibaba/wan-2.7",
    "short": "Το Alibaba Wan 2.7 δημιουργεί βίντεο με ήχο από κείμενο, αρχικές και τελικές εικόνες ή οπτικές αναφορές. Η ροή εικόνας του συνεχίζει επίσης ένα απόσπασμα πηγής, χρησιμοποιώντας τη ζητούμενη συνολική διάρκεια. Ο κατασκευαστής αναφέρει MP4 σε 720p ή 1080p στα 30 fps: 2–15 δευτερόλεπτα για λειτουργίες κειμένου/εικόνας και έως 10 δευτερόλεπτα για δημιουργία βάσει αναφορών."
  },
  "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": "Το Alibaba Wan 2.7 δημιουργεί βίντεο με ήχο από κείμενο, αρχικές και τελικές εικόνες ή οπτικές αναφορές. Η ροή εικόνας του συνεχίζει επίσης ένα απόσπασμα πηγής, χρησιμοποιώντας τη ζητούμενη συνολική διάρκεια. Ο κατασκευαστής αναφέρει MP4 σε 720p ή 1080p στα 30 fps: 2–15 δευτερόλεπτα για λειτουργίες κειμένου/εικόνας και έως 10 δευτερόλεπτα για δημιουργία βάσει αναφορών.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "05e575be5dc586cbe25c6359294b1824a28ab80a70c661af74789833f7c1bf22",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "e8682f55f07a5914e1952ee2d74875f3e1ad8ee154cb61022d763e4aaae74879"
}
