{
  "aboutHtml": "<p>Το Seedance 1.5 Pro δημιουργεί βίντεο από κείμενο ή εικόνα και μπορεί να δημιουργήσει ήχο μαζί με την εικόνα. Το συγκεκριμένο αναγνωριστικό επιλογής είναι doubao-seedance-1-5-pro-251215. Ο έλεγχος ήχου το διακρίνει από τα αθόρυβα προφίλ Seedance 1.0: το generate_audio=true ζητά συγχρονισμένο ήχο, ενώ το false ζητά βίντεο χωρίς ήχο. Χρησιμοποίησε μια γραπτή σκηνή για νέα ιδέα ή μια εικόνα για να καθορίσεις το αρχικό θέμα και τη σύνθεση.</p><p>Περιέγραψε την οπτική δράση και τον ήχο ως μέρη της ίδιας σκηνής. Προσδιόρισε το θέμα, το περιβάλλον, την κίνηση και την κάμερα και μετά εξήγησε τις επιθυμητές φωνές, τα ηχητικά εφέ ή τη μουσική υπόκρουση. Μια σκηνή πορτρέτου θα μπορούσε να δείχνει ένα πρόσωπο να ανοίγει τα μάτια του καθώς η κάμερα απομακρύνεται αργά, με άνεμο στο περιβάλλον. Για μια σκηνή προϊόντος, σύνδεσε τον ήχο με το ορατό γεγονός, όπως το άνοιγμα ενός καπακιού ή την επαφή ενός αντικειμένου με επιφάνεια, αντί να προσθέτεις άσχετο κατάλογο εφέ.</p><p>Το μοντέλο μπορεί να δημιουργήσει φωνές, εφέ και μουσική υπόκρουση από τις οδηγίες και το οπτικό περιεχόμενο. Ο οδηγός συνιστά να βάζεις τον προφορικό διάλογο μέσα σε διπλά εισαγωγικά. Κράτησε την ομιλία αρκετά σύντομη για τη ζητούμενη δράση και τις παύσεις και ξεχώρισε ποιος μιλά όταν συμμετέχουν περισσότεροι από ένας χαρακτήρες. Έλεγξε την πραγματική διατύπωση, την αντιστοίχιση φωνών και τον συγχρονισμό με την εικόνα. Μια ηχητική οδηγία καθοδηγεί την παραγόμενη ερμηνεία· δεν αποτελεί ξεχωριστή είσοδο μεταφορτωμένης φωνητικής αναφοράς στο τεκμηριωμένο αίτημα αυτού του προφίλ.</p><p>Η δημιουργία βίντεο από εικόνα χρησιμοποιεί στοιχείο image_url μαζί με το κείμενο. Δώσε προσβάσιμο URL εικόνας ή URL δεδομένων Base64 σε μορφή JPEG, PNG, WEBP, BMP, TIFF ή GIF. Τα τεκμηριωμένα όρια εικόνας είναι μέγεθος κάτω από 30 MB, και οι δύο διαστάσεις αυστηρά μεταξύ 300 και 6000 εικονοστοιχείων και λόγος πλάτους προς ύψος αυστηρά μεταξύ 0.4 και 2.5. Προετοίμασε καθαρά την επιθυμητή περικοπή και το θέμα και μετά περιέγραψε την κίνηση από αυτή τη σύνθεση. Το παράδειγμα εικόνας χρησιμοποιεί την αναλογία adaptive (προσαρμοστική) για να ακολουθεί την αναφορά.</p><p>Ο ειδικός οδηγός διάρκειας του προφίλ αναφέρει ακέραια δευτερόλεπτα από τέσσερα έως δώδεκα ή -1 για να επιλέξει το μοντέλο διάρκεια μέσα σε αυτό το εύρος. Η προεπιλεγμένη διάρκεια είναι πέντε δευτερόλεπτα. Το Seedance 1.5 Pro έχει προεπιλογή το 720p και ο διατηρημένος πίνακας προφίλ τεκμηριώνει τα 480p και 720p· ο ειδικός οδηγός της λειτουργίας δεν προσφέρει 1080p για το 1.5 Pro. Οι σταθερές αναλογίες περιλαμβάνουν 16:9, 4:3, 1:1, 3:4, 9:16 και 21:9, με το adaptive ως τεκμηριωμένη προεπιλογή του 1.5. Εξέτασε τη διάρκεια και τις αναλογίες του πραγματικού αποσπάσματος, αντί να αντιμετωπίζεις τις ζητούμενες τιμές ως ήδη επιστρεφόμενο αρχείο.</p><p>Το αίτημα διαθέτει δύο βαθμίδες επεξεργασίας. Το service_tier=default επιλέγει διαδικτυακή επεξεργασία, ενώ το flex επιλέγει αναβαλλόμενη επεξεργασία για εργασίες που ανέχονται μεγαλύτερη καθυστέρηση. Η βαθμίδα δεν μπορεί να αλλάξει μετά την υποβολή της εργασίας. Διάλεξέ την σύμφωνα με τις ανάγκες χρονισμού της ροής και κράτησε την επιλογή στο αρχείο του αιτήματος. Ο τρόπος ήχου και η βαθμίδα επεξεργασίας είναι ξεχωριστές επιλογές: ένα βίντεο χωρίς ήχο δεν είναι αυτόματα αναβαλλόμενη εργασία και η ενεργοποίηση ήχου δεν επιλέγει βαθμίδα επεξεργασίας.</p><p>Κράτησε τις οδηγίες seed, watermark και κάμερας συνεπείς με τη σκηνή. Οι εντολές παραμέτρων που ενσωματώνονται στο κείμενο έχουν προτεραιότητα έναντι των ξεχωριστών προαιρετικών παραμέτρων. Ο έλεγχος σταθερής κάμερας αποκλείεται στην περίπτωση εικόνας αναφοράς και, όπου εφαρμόζεται, δεν εγγυάται οπτικά αμετακίνητη κάμερα. Για κίνηση που καθοδηγείται από εικόνα, εξήγησε άμεσα την επιθυμητή κίνηση, αντί να υποθέτεις ότι ένας έλεγχος κάμερας καταργεί την ανάγκη περιγραφής του πλάνου.</p><p>Η χρήση μετριέται σε token βίντεο: πλάτος εξόδου × ύψος εξόδου × ρυθμός καρέ × διάρκεια εξόδου / 1024. Η ολοκληρωμένη εργασία αναφέρει αυτή την ποσότητα ως usage.completion_tokens. Κράτησε την αναφερόμενη χρήση μαζί με το ολοκληρωμένο απόσπασμα και τις ζητούμενες ρυθμίσεις του. Ο ενεργοποιημένος ή απενεργοποιημένος ήχος και η διαδικτυακή επεξεργασία ή η επεξεργασία flex παραμένουν διακριτές κατηγορίες στη χρέωση βάσει χρήσης.</p><p>Η υποβολή επιστρέφει αναγνωριστικό ασύγχρονης εργασίας. Παρακολούθησε την εργασία μέχρι την ολοκλήρωση και μετά αποθήκευσε το βίντεο που παρέχεται στο content.video_url. Η τεκμηριωμένη περίοδος διατήρησης των παραγόμενων αρχείων είναι επτά ημέρες. Ο έλεγχος λήξης μετριέται από τη δημιουργία, έχει προεπιλογή 172800 δευτερόλεπτα και δέχεται τιμές από 3600 έως 259200 δευτερόλεπτα· μια ημιτελής εργασία γίνεται expired μετά το διαμορφωμένο διάστημά της. Κράτησε μαζί το τελικό απόσπασμα, την αρχική εικόνα και τις ακριβείς οπτικές και ηχητικές οδηγίες και μετά έλεγξε όλο το αποτέλεσμα για τη δράση, την ταυτότητα, τη συνέχεια στην κίνηση της κάμερας και τον συγχρονισμό του ήχου.</p>",
  "aboutText": "Το Seedance 1.5 Pro δημιουργεί βίντεο από κείμενο ή εικόνα και μπορεί να δημιουργήσει ήχο μαζί με την εικόνα. Το συγκεκριμένο αναγνωριστικό επιλογής είναι doubao-seedance-1-5-pro-251215. Ο έλεγχος ήχου το διακρίνει από τα αθόρυβα προφίλ Seedance 1.0: το generate_audio=true ζητά συγχρονισμένο ήχο, ενώ το false ζητά βίντεο χωρίς ήχο. Χρησιμοποίησε μια γραπτή σκηνή για νέα ιδέα ή μια εικόνα για να καθορίσεις το αρχικό θέμα και τη σύνθεση.\n\nΠεριέγραψε την οπτική δράση και τον ήχο ως μέρη της ίδιας σκηνής. Προσδιόρισε το θέμα, το περιβάλλον, την κίνηση και την κάμερα και μετά εξήγησε τις επιθυμητές φωνές, τα ηχητικά εφέ ή τη μουσική υπόκρουση. Μια σκηνή πορτρέτου θα μπορούσε να δείχνει ένα πρόσωπο να ανοίγει τα μάτια του καθώς η κάμερα απομακρύνεται αργά, με άνεμο στο περιβάλλον. Για μια σκηνή προϊόντος, σύνδεσε τον ήχο με το ορατό γεγονός, όπως το άνοιγμα ενός καπακιού ή την επαφή ενός αντικειμένου με επιφάνεια, αντί να προσθέτεις άσχετο κατάλογο εφέ.\n\nΤο μοντέλο μπορεί να δημιουργήσει φωνές, εφέ και μουσική υπόκρουση από τις οδηγίες και το οπτικό περιεχόμενο. Ο οδηγός συνιστά να βάζεις τον προφορικό διάλογο μέσα σε διπλά εισαγωγικά. Κράτησε την ομιλία αρκετά σύντομη για τη ζητούμενη δράση και τις παύσεις και ξεχώρισε ποιος μιλά όταν συμμετέχουν περισσότεροι από ένας χαρακτήρες. Έλεγξε την πραγματική διατύπωση, την αντιστοίχιση φωνών και τον συγχρονισμό με την εικόνα. Μια ηχητική οδηγία καθοδηγεί την παραγόμενη ερμηνεία· δεν αποτελεί ξεχωριστή είσοδο μεταφορτωμένης φωνητικής αναφοράς στο τεκμηριωμένο αίτημα αυτού του προφίλ.\n\nΗ δημιουργία βίντεο από εικόνα χρησιμοποιεί στοιχείο image_url μαζί με το κείμενο. Δώσε προσβάσιμο URL εικόνας ή URL δεδομένων Base64 σε μορφή JPEG, PNG, WEBP, BMP, TIFF ή GIF. Τα τεκμηριωμένα όρια εικόνας είναι μέγεθος κάτω από 30 MB, και οι δύο διαστάσεις αυστηρά μεταξύ 300 και 6000 εικονοστοιχείων και λόγος πλάτους προς ύψος αυστηρά μεταξύ 0.4 και 2.5. Προετοίμασε καθαρά την επιθυμητή περικοπή και το θέμα και μετά περιέγραψε την κίνηση από αυτή τη σύνθεση. Το παράδειγμα εικόνας χρησιμοποιεί την αναλογία adaptive (προσαρμοστική) για να ακολουθεί την αναφορά.\n\nΟ ειδικός οδηγός διάρκειας του προφίλ αναφέρει ακέραια δευτερόλεπτα από τέσσερα έως δώδεκα ή -1 για να επιλέξει το μοντέλο διάρκεια μέσα σε αυτό το εύρος. Η προεπιλεγμένη διάρκεια είναι πέντε δευτερόλεπτα. Το Seedance 1.5 Pro έχει προεπιλογή το 720p και ο διατηρημένος πίνακας προφίλ τεκμηριώνει τα 480p και 720p· ο ειδικός οδηγός της λειτουργίας δεν προσφέρει 1080p για το 1.5 Pro. Οι σταθερές αναλογίες περιλαμβάνουν 16:9, 4:3, 1:1, 3:4, 9:16 και 21:9, με το adaptive ως τεκμηριωμένη προεπιλογή του 1.5. Εξέτασε τη διάρκεια και τις αναλογίες του πραγματικού αποσπάσματος, αντί να αντιμετωπίζεις τις ζητούμενες τιμές ως ήδη επιστρεφόμενο αρχείο.\n\nΤο αίτημα διαθέτει δύο βαθμίδες επεξεργασίας. Το service_tier=default επιλέγει διαδικτυακή επεξεργασία, ενώ το flex επιλέγει αναβαλλόμενη επεξεργασία για εργασίες που ανέχονται μεγαλύτερη καθυστέρηση. Η βαθμίδα δεν μπορεί να αλλάξει μετά την υποβολή της εργασίας. Διάλεξέ την σύμφωνα με τις ανάγκες χρονισμού της ροής και κράτησε την επιλογή στο αρχείο του αιτήματος. Ο τρόπος ήχου και η βαθμίδα επεξεργασίας είναι ξεχωριστές επιλογές: ένα βίντεο χωρίς ήχο δεν είναι αυτόματα αναβαλλόμενη εργασία και η ενεργοποίηση ήχου δεν επιλέγει βαθμίδα επεξεργασίας.\n\nΚράτησε τις οδηγίες seed, watermark και κάμερας συνεπείς με τη σκηνή. Οι εντολές παραμέτρων που ενσωματώνονται στο κείμενο έχουν προτεραιότητα έναντι των ξεχωριστών προαιρετικών παραμέτρων. Ο έλεγχος σταθερής κάμερας αποκλείεται στην περίπτωση εικόνας αναφοράς και, όπου εφαρμόζεται, δεν εγγυάται οπτικά αμετακίνητη κάμερα. Για κίνηση που καθοδηγείται από εικόνα, εξήγησε άμεσα την επιθυμητή κίνηση, αντί να υποθέτεις ότι ένας έλεγχος κάμερας καταργεί την ανάγκη περιγραφής του πλάνου.\n\nΗ χρήση μετριέται σε token βίντεο: πλάτος εξόδου × ύψος εξόδου × ρυθμός καρέ × διάρκεια εξόδου / 1024. Η ολοκληρωμένη εργασία αναφέρει αυτή την ποσότητα ως usage.completion_tokens. Κράτησε την αναφερόμενη χρήση μαζί με το ολοκληρωμένο απόσπασμα και τις ζητούμενες ρυθμίσεις του. Ο ενεργοποιημένος ή απενεργοποιημένος ήχος και η διαδικτυακή επεξεργασία ή η επεξεργασία flex παραμένουν διακριτές κατηγορίες στη χρέωση βάσει χρήσης.\n\nΗ υποβολή επιστρέφει αναγνωριστικό ασύγχρονης εργασίας. Παρακολούθησε την εργασία μέχρι την ολοκλήρωση και μετά αποθήκευσε το βίντεο που παρέχεται στο content.video_url. Η τεκμηριωμένη περίοδος διατήρησης των παραγόμενων αρχείων είναι επτά ημέρες. Ο έλεγχος λήξης μετριέται από τη δημιουργία, έχει προεπιλογή 172800 δευτερόλεπτα και δέχεται τιμές από 3600 έως 259200 δευτερόλεπτα· μια ημιτελής εργασία γίνεται expired μετά το διαμορφωμένο διάστημά της. Κράτησε μαζί το τελικό απόσπασμα, την αρχική εικόνα και τις ακριβείς οπτικές και ηχητικές οδηγίες και μετά έλεγξε όλο το αποτέλεσμα για τη δράση, την ταυτότητα, τη συνέχεια στην κίνηση της κάμερας και τον συγχρονισμό του ήχου.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "737d424cb92b3889804d24bd72b6dd1e726f0778fa83765cbc2be6d8a078f6e0",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "el",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">ByteDance: Seedance 1.5 Pro</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>ByteDance /</span><code>doubao-seedance-1-5-pro-251215</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|doubao-seedance-1-5-pro-251215\">Βίντεο</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\">Το Seedance 1.5 Pro δημιουργεί βίντεο από κείμενο ή εικόνα και μπορεί να δημιουργήσει συγχρονισμένες φωνές, εφέ και μουσική υπόκρουση. Ο ήχος μπορεί να ενεργοποιηθεί ή να απενεργοποιηθεί· το τεκμηριωμένο προφίλ προσφέρει σκηνές 4–12 δευτερολέπτων, κάδρο adaptive (προσαρμοστικό) και διαδικτυακή επεξεργασία ή επεξεργασία flex.</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>Το Seedance 1.5 Pro δημιουργεί βίντεο από κείμενο ή εικόνα και μπορεί να δημιουργήσει ήχο μαζί με την εικόνα. Το συγκεκριμένο αναγνωριστικό επιλογής είναι doubao-seedance-1-5-pro-251215. Ο έλεγχος ήχου το διακρίνει από τα αθόρυβα προφίλ Seedance 1.0: το generate_audio=true ζητά συγχρονισμένο ήχο, ενώ το false ζητά βίντεο χωρίς ήχο. Χρησιμοποίησε μια γραπτή σκηνή για νέα ιδέα ή μια εικόνα για να καθορίσεις το αρχικό θέμα και τη σύνθεση.</p><p>Περιέγραψε την οπτική δράση και τον ήχο ως μέρη της ίδιας σκηνής. Προσδιόρισε το θέμα, το περιβάλλον, την κίνηση και την κάμερα και μετά εξήγησε τις επιθυμητές φωνές, τα ηχητικά εφέ ή τη μουσική υπόκρουση. Μια σκηνή πορτρέτου θα μπορούσε να δείχνει ένα πρόσωπο να ανοίγει τα μάτια του καθώς η κάμερα απομακρύνεται αργά, με άνεμο στο περιβάλλον. Για μια σκηνή προϊόντος, σύνδεσε τον ήχο με το ορατό γεγονός, όπως το άνοιγμα ενός καπακιού ή την επαφή ενός αντικειμένου με επιφάνεια, αντί να προσθέτεις άσχετο κατάλογο εφέ.</p><p>Το μοντέλο μπορεί να δημιουργήσει φωνές, εφέ και μουσική υπόκρουση από τις οδηγίες και το οπτικό περιεχόμενο. Ο οδηγός συνιστά να βάζεις τον προφορικό διάλογο μέσα σε διπλά εισαγωγικά. Κράτησε την ομιλία αρκετά σύντομη για τη ζητούμενη δράση και τις παύσεις και ξεχώρισε ποιος μιλά όταν συμμετέχουν περισσότεροι από ένας χαρακτήρες. Έλεγξε την πραγματική διατύπωση, την αντιστοίχιση φωνών και τον συγχρονισμό με την εικόνα. Μια ηχητική οδηγία καθοδηγεί την παραγόμενη ερμηνεία· δεν αποτελεί ξεχωριστή είσοδο μεταφορτωμένης φωνητικής αναφοράς στο τεκμηριωμένο αίτημα αυτού του προφίλ.</p><p>Η δημιουργία βίντεο από εικόνα χρησιμοποιεί στοιχείο image_url μαζί με το κείμενο. Δώσε προσβάσιμο URL εικόνας ή URL δεδομένων Base64 σε μορφή JPEG, PNG, WEBP, BMP, TIFF ή GIF. Τα τεκμηριωμένα όρια εικόνας είναι μέγεθος κάτω από 30 MB, και οι δύο διαστάσεις αυστηρά μεταξύ 300 και 6000 εικονοστοιχείων και λόγος πλάτους προς ύψος αυστηρά μεταξύ 0.4 και 2.5. Προετοίμασε καθαρά την επιθυμητή περικοπή και το θέμα και μετά περιέγραψε την κίνηση από αυτή τη σύνθεση. Το παράδειγμα εικόνας χρησιμοποιεί την αναλογία adaptive (προσαρμοστική) για να ακολουθεί την αναφορά.</p><p>Ο ειδικός οδηγός διάρκειας του προφίλ αναφέρει ακέραια δευτερόλεπτα από τέσσερα έως δώδεκα ή -1 για να επιλέξει το μοντέλο διάρκεια μέσα σε αυτό το εύρος. Η προεπιλεγμένη διάρκεια είναι πέντε δευτερόλεπτα. Το Seedance 1.5 Pro έχει προεπιλογή το 720p και ο διατηρημένος πίνακας προφίλ τεκμηριώνει τα 480p και 720p· ο ειδικός οδηγός της λειτουργίας δεν προσφέρει 1080p για το 1.5 Pro. Οι σταθερές αναλογίες περιλαμβάνουν 16:9, 4:3, 1:1, 3:4, 9:16 και 21:9, με το adaptive ως τεκμηριωμένη προεπιλογή του 1.5. Εξέτασε τη διάρκεια και τις αναλογίες του πραγματικού αποσπάσματος, αντί να αντιμετωπίζεις τις ζητούμενες τιμές ως ήδη επιστρεφόμενο αρχείο.</p><p>Το αίτημα διαθέτει δύο βαθμίδες επεξεργασίας. Το service_tier=default επιλέγει διαδικτυακή επεξεργασία, ενώ το flex επιλέγει αναβαλλόμενη επεξεργασία για εργασίες που ανέχονται μεγαλύτερη καθυστέρηση. Η βαθμίδα δεν μπορεί να αλλάξει μετά την υποβολή της εργασίας. Διάλεξέ την σύμφωνα με τις ανάγκες χρονισμού της ροής και κράτησε την επιλογή στο αρχείο του αιτήματος. Ο τρόπος ήχου και η βαθμίδα επεξεργασίας είναι ξεχωριστές επιλογές: ένα βίντεο χωρίς ήχο δεν είναι αυτόματα αναβαλλόμενη εργασία και η ενεργοποίηση ήχου δεν επιλέγει βαθμίδα επεξεργασίας.</p><p>Κράτησε τις οδηγίες seed, watermark και κάμερας συνεπείς με τη σκηνή. Οι εντολές παραμέτρων που ενσωματώνονται στο κείμενο έχουν προτεραιότητα έναντι των ξεχωριστών προαιρετικών παραμέτρων. Ο έλεγχος σταθερής κάμερας αποκλείεται στην περίπτωση εικόνας αναφοράς και, όπου εφαρμόζεται, δεν εγγυάται οπτικά αμετακίνητη κάμερα. Για κίνηση που καθοδηγείται από εικόνα, εξήγησε άμεσα την επιθυμητή κίνηση, αντί να υποθέτεις ότι ένας έλεγχος κάμερας καταργεί την ανάγκη περιγραφής του πλάνου.</p><p>Η χρήση μετριέται σε token βίντεο: πλάτος εξόδου × ύψος εξόδου × ρυθμός καρέ × διάρκεια εξόδου / 1024. Η ολοκληρωμένη εργασία αναφέρει αυτή την ποσότητα ως usage.completion_tokens. Κράτησε την αναφερόμενη χρήση μαζί με το ολοκληρωμένο απόσπασμα και τις ζητούμενες ρυθμίσεις του. Ο ενεργοποιημένος ή απενεργοποιημένος ήχος και η διαδικτυακή επεξεργασία ή η επεξεργασία flex παραμένουν διακριτές κατηγορίες στη χρέωση βάσει χρήσης.</p><p>Η υποβολή επιστρέφει αναγνωριστικό ασύγχρονης εργασίας. Παρακολούθησε την εργασία μέχρι την ολοκλήρωση και μετά αποθήκευσε το βίντεο που παρέχεται στο content.video_url. Η τεκμηριωμένη περίοδος διατήρησης των παραγόμενων αρχείων είναι επτά ημέρες. Ο έλεγχος λήξης μετριέται από τη δημιουργία, έχει προεπιλογή 172800 δευτερόλεπτα και δέχεται τιμές από 3600 έως 259200 δευτερόλεπτα· μια ημιτελής εργασία γίνεται expired μετά το διαμορφωμένο διάστημά της. Κράτησε μαζί το τελικό απόσπασμα, την αρχική εικόνα και τις ακριβείς οπτικές και ηχητικές οδηγίες και μετά έλεγξε όλο το αποτέλεσμα για τη δράση, την ταυτότητα, τη συνέχεια στην κίνηση της κάμερας και τον συγχρονισμό του ήχου.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Βίντεο</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Έξοδος</dt><dd><code>video</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Απαίτηση</th><th>Τιμές και όρια</th><th>Προεπιλογή</th></tr></thead><tbody><tr 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>doubao-seedance-1-5-pro-251215</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\">content</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>array</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Συνθήκες: Εγγενή αντικείμενα κειμένου και πολυμέσων· ο εξωτερικός πίνακας δεν πρέπει να είναι κενός. Οι τύποι εμφωλευμένων κόμβων δεν επικυρώνονται από αυτόν τον γενικό κατασκευαστή του Ailoot.</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>Συνθήκες: Το αρχικό σχήμα 1.x ορίζει 2–12· μεταγενέστερη κοινή περιγραφή ορίζει την 1.5 ως 4–12 ή -1. Το παράδειγμα χρησιμοποιεί την κοινά τεκμηριωμένη τιμή 5.</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>5</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>480p, 720p</div><div>Συνθήκες: Το Seedance 1.5 Pro υποστηρίζει 480p και 720p· το 1080p αποκλείεται. Η τεκμηριωμένη προεπιλογή ανάλυσης είναι 720p.</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>720p</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\">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, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive</div><div>Συνθήκες: Η τεκμηριωμένη προεπιλογή αναλογίας του Seedance 1.5 Pro είναι adaptive. Οι επιλογές σταθερής αναλογίας παραμένουν αμετάβλητες.</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>adaptive</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\">service_tier</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>default, flex</div><div>Συνθήκες: default=online, flex=offline· επιλέξτε πριν από τη δημιουργία.</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>default</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\">seed</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>integer</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Ελάχιστο: -1</div><div>Μέγιστο: 4.294.967.295</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>-1</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\">camerafixed</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>Συνθήκες: Απαιτείται από το Ailoot· ο έλεγχος κάμερας με εικόνα αναφοράς τεκμηριώνεται ως μη υποστηριζόμενος και η επίδρασή του δεν είναι εγγυημένη.</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>false</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\">watermark</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></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>false</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\">execution_expires_after</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>Ελάχιστο: 3.600</div><div>Μέγιστο: 259.200</div><div>Μονάδα: δευτερόλεπτα</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>172.800</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>Συνθήκες: Συγχρονισμένος ήχος ενσωματωμένος στο παραγόμενο βίντεο, μόνο για την 1.5.</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>true</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Συνδυασμοί υλικών εισόδου</summary><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></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>camerafixed, content, execution_expires_after, model, seed, watermark</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>optional</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>duration, resolution, ratio, service_tier, generate_audio</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>material_types</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>text, image</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>additional_properties</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>true</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>validation_scope</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Το Ailoot ελέγχει τους τύπους των απαιτούμενων πεδίων και ότι το model και ο πίνακας content δεν είναι κενά. Τα υπόλοιπα πεδία αιτήματος διατηρούνται για το επιλεγμένο μοντέλο.</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>image_constraints</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>{&quot;formats&quot;:[&quot;jpeg&quot;,&quot;png&quot;,&quot;webp&quot;,&quot;bmp&quot;,&quot;tiff&quot;,&quot;gif&quot;],&quot;aspect_ratio_exclusive&quot;:[0.4,2.5],&quot;dimensions_px_exclusive&quot;:[300,6000],&quot;file_size_mb_exclusive&quot;:30,&quot;mb_bytes_definition&quot;:null}</td></tr></tbody></table></div><p>Εναλλακτικά ονόματα μεθόδου: <code>/v1/videos/generations</code></p><p>Κύκλος ζωής: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}/content</code></p><p class=\"note-s\">Δημιουργήστε μία φορά και διατηρήστε το δημόσιο id/polling_url που επιστρέφεται.</p><p class=\"note-s\">Ελέγχετε περιοδικά την αρχική εργασία· κατεβάστε το πραγματικό content.video_url που σας ανήκει μετά το succeeded.</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>Βαθμίδα υπηρεσίας με επεξεργασία offline (flex). Έξοδος με συγχρονισμένο ήχο.</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>flex</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά 1K token βίντεο</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτίμηση μόνο για σύγκριση</span> <b>$0.0024</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Βαθμίδα υπηρεσίας με επεξεργασία offline (flex). Έξοδος χωρίς συγχρονισμένο ήχο.</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>flex</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά 1K token βίντεο</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτίμηση μόνο για σύγκριση</span> <b>$0.0012</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Βαθμίδα υπηρεσίας με επεξεργασία online (default). Έξοδος με συγχρονισμένο ήχο.</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>default</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά 1K token βίντεο</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτίμηση μόνο για σύγκριση</span> <b>$0.0048</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Βαθμίδα υπηρεσίας με επεξεργασία online (default). Έξοδος χωρίς συγχρονισμένο ήχο.</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>default</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά 1K token βίντεο</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτίμηση μόνο για σύγκριση</span> <b>$0.0024</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Εκτιμώμενο κόστος δημιουργίας</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>εκτίμηση για μία δημιουργία</td><td data-cell-label=\"Δημιουργία ήχου\"><span class=\"card-cell-label\">Δημιουργία ήχου</span>—</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.1152</b> <span class=\"price-unit\">εκτίμηση πριν από τη δημιουργία</span></div><p class=\"note-s\">Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. <a href=\"/docs/el/billing/reserve/\">Πώς λειτουργούν η δέσμευση και η εκκαθάριση →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Παραδείγματα αιτημάτων</h3><h4>Ailoot Ultra · Βίντεο</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-2778-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2778-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · δημιουργήστε βίντεο</button><button class=\"cg-tab\" id=\"model-code-2778-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2778-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · διαβάστε την αρχική εργασία</button><button class=\"cg-tab\" id=\"model-code-2778-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2778-panel-2\" aria-selected=\"false\" tabindex=\"-1\">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-2778-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2778-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON_REQUEST&#39;\n{&quot;model&quot;:&quot;doubao-seedance-1-5-pro-251215&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动&quot;}],&quot;resolution&quot;:&quot;480p&quot;,&quot;ratio&quot;:&quot;1:1&quot;,&quot;duration&quot;:5,&quot;service_tier&quot;:&quot;default&quot;,&quot;seed&quot;:-1,&quot;camerafixed&quot;:false,&quot;watermark&quot;:false,&quot;execution_expires_after&quot;:172800,&quot;generate_audio&quot;:false}\nJSON_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\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2778-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2778-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_POLL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(&quot;result.json&quot;).read_text())\ni=r.get(&quot;id&quot;)\nif not isinstance(i,str) or not i.startswith(&quot;native302_&quot;):raise SystemExit(&quot;Keep original response/headers/id; do not resubmit creation.&quot;)\nu=urljoin(&quot;https://api.ailoot.ai&quot;,r.get(&quot;polling_url&quot;) or &quot;/v1/videos/&quot;+quote(i,safe=&quot;&quot;))\np=urlsplit(u)\nif p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or not p.path.startswith(&quot;/v1/videos/&quot;):raise SystemExit(&quot;Use actual Ailoot lookup path.&quot;)\nPath(&quot;poll-url.txt&quot;).write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error &quot;$(cat poll-url.txt)&quot; -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2778-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2778-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(&quot;status.json&quot;).read_text())\nif r.get(&quot;status&quot;)!=&quot;succeeded&quot;:raise SystemExit(&quot;Poll same original job until an owned result is returned.&quot;)\nu=r.get(&quot;content&quot;,{}).get(&quot;video_url&quot;)\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(&quot;No completed video URL.&quot;)\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(&quot;Invalid returned URL.&quot;)\n    p=urlsplit(u)\n    if p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or not p.path.startswith(&quot;/v1/media/assets/&quot;) or not p.path.endswith(&quot;/content&quot;) or not p.query:raise SystemExit(&quot;Wait for actual Ailoot-owned signed result.&quot;)\nPath(&quot;asset-urls.txt&quot;).write_text(&quot;\\n&quot;.join(urls)+&quot;\\n&quot;)\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error &quot;$asset_url&quot; -o &quot;video-${index}.bin&quot;\n  index=$((index + 1))\ndone &lt; asset-urls.txt\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\">Εγγενές JSON με δημόσιο id/polling_url. Μετά τη δημοσίευση, το content.video_url περιέχει υπογεγραμμένα URL που ανήκουν στο Ailoot· πριν από τη δημοσίευση, τα επιλεγμένα URL εξόδου είναι κενά.</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><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε κάθε πραγματικό URL στο content.video_url· το index πρέπει να προσδιορίζει πραγματική έξοδο που επιστράφηκε.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε την αρχική απόκριση, τις κεφαλίδες και το id, και ελέγχετε περιοδικά αυτή τη λειτουργία· μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα.</p></div><details class=\"card-about\" data-output-fields><summary>Πεδία απάντησης</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Πεδίο</th><th>Τύπος</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">provider_task_id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">polling_url</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string when supplied</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">content.video_url</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string|string[]</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>object when supplied</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>Μη έγκυρο JSON, μοντέλο, τύποι απαιτούμενων πεδίων ή δείκτης περιεχομένου.</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>401 · <code>authentication_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Μη έγκυρο κλειδί API του Ailoot.</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>404 · <code>not_found_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η εργασία ή έξοδος απουσιάζει ή δεν ανήκει στον ίδιο χρήστη, κλειδί API ή ομάδα.</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>502 · <code>result_pending_check</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η αρχική υποβολή ή κατάστασή της είναι ελλιπής· διατηρήστε το αρχικό ID, χωρίς επανυποβολή.</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>503 · <code>result_pending_check</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></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=doubao-seedance-1-5-pro-251215&amp;route=Ultra&amp;caller=doubao-seedance-1-5-pro-251215&amp;fmt=videos\"><code>doubao-seedance-1-5-pro-251215</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\"><code>/v1/videos/generations</code></p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=doubao-seedance-1-5-pro-251215&amp;route=Ultra&amp;caller=doubao-seedance-1-5-pro-251215&amp;fmt=videos\"><code>doubao-seedance-1-5-pro-251215</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "doubao-seedance-1-5-pro-251215",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "doubao-seedance-1-5-pro-251215",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|doubao-seedance-1-5-pro-251215",
      "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": {
            "errors": [
              {
                "condition": "Μη έγκυρο JSON, μοντέλο, τύποι απαιτούμενων πεδίων ή δείκτης περιεχομένου.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "Μη έγκυρο κλειδί API του Ailoot.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "Η εργασία ή έξοδος απουσιάζει ή δεν ανήκει στον ίδιο χρήστη, κλειδί API ή ομάδα.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "Η αρχική υποβολή ή κατάστασή της είναι ελλιπής· διατηρήστε το αρχικό ID, χωρίς επανυποβολή.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "Τα αρχικά πολυμέσα, η διαδρομή ή η εκκαθάριση ελέγχονται· συνεχίστε την αρχική λειτουργία.",
                "http_status": 503,
                "type": "result_pending_check"
              }
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "succeeded"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed",
                "expired"
              ],
              "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "queued",
                "running"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "Διατηρήστε την αρχική απόκριση, τις κεφαλίδες και το id, και ελέγχετε περιοδικά αυτή τη λειτουργία· μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "text"
              ],
              [
                "text",
                "image"
              ]
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video"
            ],
            "outputs": {
              "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
              "all_results": "Διατηρήστε κάθε πραγματικό URL στο content.video_url· το index πρέπει να προσδιορίζει πραγματική έξοδο που επιστράφηκε.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string when supplied"
                },
                {
                  "description": null,
                  "name": "content.video_url",
                  "type": "string|string[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object when supplied"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
              "result": "Εγγενές JSON με δημόσιο id/polling_url. Μετά τη δημοσίευση, το content.video_url περιέχει υπογεγραμμένα URL που ανήκουν στο Ailoot· πριν από τη δημοσίευση, τα επιλεγμένα URL εξόδου είναι κενά."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "doubao-seedance-1-5-pro-251215"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Εγγενή αντικείμενα κειμένου και πολυμέσων· ο εξωτερικός πίνακας δεν πρέπει να είναι κενός. Οι τύποι εμφωλευμένων κόμβων δεν επικυρώνονται από αυτόν τον γενικό κατασκευαστή του Ailoot.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minItems": 1,
                "name": "content",
                "required": true,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "Το αρχικό σχήμα 1.x ορίζει 2–12· μεταγενέστερη κοινή περιγραφή ορίζει την 1.5 ως 4–12 ή -1. Το παράδειγμα χρησιμοποιεί την κοινά τεκμηριωμένη τιμή 5.",
                "default": 5,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "Το Seedance 1.5 Pro υποστηρίζει 480p και 720p· το 1080p αποκλείεται. Η τεκμηριωμένη προεπιλογή ανάλυσης είναι 720p.",
                "default": "720p",
                "default_known": true,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Η τεκμηριωμένη προεπιλογή αναλογίας του Seedance 1.5 Pro είναι adaptive. Οι επιλογές σταθερής αναλογίας παραμένουν αμετάβλητες.",
                "default": "adaptive",
                "default_known": true,
                "enum": [
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16",
                  "21:9",
                  "adaptive"
                ],
                "enum_known": true,
                "name": "ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "default=online, flex=offline· επιλέξτε πριν από τη δημιουργία.",
                "default": "default",
                "default_known": true,
                "enum": [
                  "default",
                  "flex"
                ],
                "enum_known": true,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": -1,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 4294967295,
                "minimum": -1,
                "name": "seed",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "Απαιτείται από το Ailoot· ο έλεγχος κάμερας με εικόνα αναφοράς τεκμηριώνεται ως μη υποστηριζόμενος και η επίδρασή του δεν είναι εγγυημένη.",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "camerafixed",
                "required": true,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "watermark",
                "required": true,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "default": 172800,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 259200,
                "minimum": 3600,
                "name": "execution_expires_after",
                "required": true,
                "type": "integer",
                "unit": "δευτερόλεπτα"
              },
              {
                "availability": "source_interface",
                "conditions": "Συγχρονισμένος ήχος ενσωματωμένος στο παραγόμενο βίντεο, μόνο για την 1.5.",
                "default": true,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "generate_audio",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Exact model ID and documented Ailoot video interface.",
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "camerafixed": {
                  "type": "boolean"
                },
                "content": {
                  "items": {
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "duration": {
                  "type": "integer"
                },
                "execution_expires_after": {
                  "maximum": 259200,
                  "minimum": 3600,
                  "type": "integer"
                },
                "generate_audio": {
                  "type": "boolean"
                },
                "model": {
                  "const": "doubao-seedance-1-5-pro-251215",
                  "type": "string"
                },
                "ratio": {
                  "default": "adaptive",
                  "enum": [
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16",
                    "21:9",
                    "adaptive"
                  ],
                  "type": "string"
                },
                "resolution": {
                  "default": "720p",
                  "enum": [
                    "480p",
                    "720p"
                  ],
                  "type": "string"
                },
                "seed": {
                  "maximum": 4294967295,
                  "minimum": -1,
                  "type": "integer"
                },
                "service_tier": {
                  "enum": [
                    "default",
                    "flex"
                  ],
                  "type": "string"
                },
                "watermark": {
                  "type": "boolean"
                }
              },
              "required": [
                "camerafixed",
                "content",
                "execution_expires_after",
                "model",
                "seed",
                "watermark"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              "1.5 bounds conflict: primary 1.x 2–12 versus later model-specific 4–12 or -1. No resolved bound for this persisted1.x path.",
              "Primary content.items.required says type+text even for its image example without text; preserve intended example branches and outer-array validation boundary."
            ],
            "unsupported": [
              "Separate cancel/delete for this generic method",
              "Separate edit/extension endpoint for this method"
            ]
          },
          "hints": [
            "Δημιουργήστε μία φορά και διατηρήστε το δημόσιο id/polling_url που επιστρέφεται.",
            "Ελέγχετε περιοδικά την αρχική εργασία· κατεβάστε το πραγματικό content.video_url που σας ανήκει μετά το succeeded."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "image_constraints": {
              "aspect_ratio_exclusive": [
                0.4,
                2.5
              ],
              "dimensions_px_exclusive": [
                300,
                6000
              ],
              "file_size_mb_exclusive": 30,
              "formats": [
                "jpeg",
                "png",
                "webp",
                "bmp",
                "tiff",
                "gif"
              ],
              "mb_bytes_definition": null
            },
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "duration",
              "resolution",
              "ratio",
              "service_tier",
              "generate_audio"
            ],
            "required": [
              "camerafixed",
              "content",
              "execution_expires_after",
              "model",
              "seed",
              "watermark"
            ],
            "validation_scope": "Το Ailoot ελέγχει τους τύπους των απαιτούμενων πεδίων και ότι το model και ο πίνακας content δεν είναι κενά. Τα υπόλοιπα πεδία αιτήματος διατηρούνται για το επιλεγμένο μοντέλο."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "succeeded"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed",
              "expired"
            ],
            "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "queued",
              "running"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "Preserve original response/headers/id and poll that operation; never resubmit unknown creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "text",
              "image"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "text_to_video",
            "image_to_video"
          ],
          "output": {
            "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
            "all_results": "Retain every actual URL in content.video_url; index must identify a real returned output.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": null,
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": null,
                "name": "status",
                "type": "string when supplied"
              },
              {
                "description": null,
                "name": "content.video_url",
                "type": "string|string[]"
              },
              {
                "description": null,
                "name": "usage",
                "type": "object when supplied"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
            "result": "Native JSON with public id/polling_url. After publication content.video_url contains Ailoot-owned signed URL(s); before publication selected output URLs are blanked."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": true,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "flex"
            },
            "label": "Βαθμίδα υπηρεσίας με επεξεργασία offline (flex). Έξοδος με συγχρονισμένο ήχο.",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_flex_with_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": false,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "flex"
            },
            "label": "Βαθμίδα υπηρεσίας με επεξεργασία offline (flex). Έξοδος χωρίς συγχρονισμένο ήχο.",
            "units": [
              {
                "amount": "0.0012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_flex_without_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": true,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "default"
            },
            "label": "Βαθμίδα υπηρεσίας με επεξεργασία online (default). Έξοδος με συγχρονισμένο ήχο.",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_online_with_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": false,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "default"
            },
            "label": "Βαθμίδα υπηρεσίας με επεξεργασία online (default). Έξοδος χωρίς συγχρονισμένο ήχο.",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_online_without_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.1152",
                "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.1152",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON_REQUEST'\n{\"model\":\"doubao-seedance-1-5-pro-251215\",\"content\":[{\"type\":\"text\",\"text\":\"女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动\"}],\"resolution\":\"480p\",\"ratio\":\"1:1\",\"duration\":5,\"service_tier\":\"default\",\"seed\":-1,\"camerafixed\":false,\"watermark\":false,\"execution_expires_after\":172800,\"generate_audio\":false}\nJSON_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\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i.startswith(\"native302_\"):raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          },
          {
            "code": "set -eu\npython3 - <<'PY_ASSETS'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nif r.get(\"status\")!=\"succeeded\":raise SystemExit(\"Poll same original job until an owned result is returned.\")\nu=r.get(\"content\",{}).get(\"video_url\")\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(\"No completed video URL.\")\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(\"Invalid returned URL.\")\n    p=urlsplit(u)\n    if p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/media/assets/\") or not p.path.endswith(\"/content\") or not p.query:raise SystemExit(\"Wait for actual Ailoot-owned signed result.\")\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" -o \"video-${index}.bin\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "curl · download owned video",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and retain returned public id/polling_url.",
          "Poll the original job; download actual owned content.video_url after succeeded."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Βίντεο",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/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"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": true,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "flex"
            },
            "label": "Offline service tier (flex). Output with synchronized audio.",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_flex_with_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": false,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "flex"
            },
            "label": "Offline service tier (flex). Output without synchronized audio.",
            "units": [
              {
                "amount": "0.0012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_flex_without_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": true,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "default"
            },
            "label": "Online service tier (default). Output with synchronized audio.",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_online_with_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": false,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "default"
            },
            "label": "Online service tier (default). Output without synchronized audio.",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_online_without_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.1152",
                "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.1152",
                "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": "doubao-seedance-1-5-pro-251215",
        "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.0024000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_flex_with_audio",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.0000024",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.0012000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_flex_without_audio",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.0000012",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_online_with_audio",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.0024000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_online_without_audio",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.0000024",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.1152",
            "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.1152",
            "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": "doubao-seedance-1-5-pro-251215",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "7142a14be7510c36fd6e13804c7560584064c1f735680256ecc655faa022ecaa",
    "input_html_sha256": "2eea98c4976d8fa950638ac349cd2e51a6c5fe8992ebab3f248b5f31ba092ff5",
    "private_audit_sha256": "30bb2228941e757acb4911afca3530fa0f2d6371962ab99823e66627b101175a",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/doubao-seedance-1-5-pro-251215/",
    "description": "Το Seedance 1.5 Pro δημιουργεί βίντεο από κείμενο ή εικόνα και μπορεί να δημιουργήσει συγχρονισμένες φωνές, εφέ και μουσική υπόκρουση. Ο ήχος μπορεί να ενεργοποιηθεί ή να απενεργοποιηθεί· το τεκμηριωμένο προφίλ προσφέρει σκηνές 4–12 δευτερολέπτων, κάδρο adaptive (προσαρμοστικό) και διαδικτυακή επεξεργασία ή επεξεργασία flex.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/doubao-seedance-1-5-pro-251215/index.md",
    "title": "ByteDance: Seedance 1.5 Pro — Ailoot",
    "url": "https://ailoot.ai/models/el/doubao-seedance-1-5-pro-251215/"
  },
  "rawModel": {
    "about": "Το Seedance 1.5 Pro δημιουργεί βίντεο από κείμενο ή εικόνα και μπορεί να δημιουργήσει ήχο μαζί με την εικόνα. Το συγκεκριμένο αναγνωριστικό επιλογής είναι doubao-seedance-1-5-pro-251215. Ο έλεγχος ήχου το διακρίνει από τα αθόρυβα προφίλ Seedance 1.0: το generate_audio=true ζητά συγχρονισμένο ήχο, ενώ το false ζητά βίντεο χωρίς ήχο. Χρησιμοποίησε μια γραπτή σκηνή για νέα ιδέα ή μια εικόνα για να καθορίσεις το αρχικό θέμα και τη σύνθεση.\n\nΠεριέγραψε την οπτική δράση και τον ήχο ως μέρη της ίδιας σκηνής. Προσδιόρισε το θέμα, το περιβάλλον, την κίνηση και την κάμερα και μετά εξήγησε τις επιθυμητές φωνές, τα ηχητικά εφέ ή τη μουσική υπόκρουση. Μια σκηνή πορτρέτου θα μπορούσε να δείχνει ένα πρόσωπο να ανοίγει τα μάτια του καθώς η κάμερα απομακρύνεται αργά, με άνεμο στο περιβάλλον. Για μια σκηνή προϊόντος, σύνδεσε τον ήχο με το ορατό γεγονός, όπως το άνοιγμα ενός καπακιού ή την επαφή ενός αντικειμένου με επιφάνεια, αντί να προσθέτεις άσχετο κατάλογο εφέ.\n\nΤο μοντέλο μπορεί να δημιουργήσει φωνές, εφέ και μουσική υπόκρουση από τις οδηγίες και το οπτικό περιεχόμενο. Ο οδηγός συνιστά να βάζεις τον προφορικό διάλογο μέσα σε διπλά εισαγωγικά. Κράτησε την ομιλία αρκετά σύντομη για τη ζητούμενη δράση και τις παύσεις και ξεχώρισε ποιος μιλά όταν συμμετέχουν περισσότεροι από ένας χαρακτήρες. Έλεγξε την πραγματική διατύπωση, την αντιστοίχιση φωνών και τον συγχρονισμό με την εικόνα. Μια ηχητική οδηγία καθοδηγεί την παραγόμενη ερμηνεία· δεν αποτελεί ξεχωριστή είσοδο μεταφορτωμένης φωνητικής αναφοράς στο τεκμηριωμένο αίτημα αυτού του προφίλ.\n\nΗ δημιουργία βίντεο από εικόνα χρησιμοποιεί στοιχείο image_url μαζί με το κείμενο. Δώσε προσβάσιμο URL εικόνας ή URL δεδομένων Base64 σε μορφή JPEG, PNG, WEBP, BMP, TIFF ή GIF. Τα τεκμηριωμένα όρια εικόνας είναι μέγεθος κάτω από 30 MB, και οι δύο διαστάσεις αυστηρά μεταξύ 300 και 6000 εικονοστοιχείων και λόγος πλάτους προς ύψος αυστηρά μεταξύ 0.4 και 2.5. Προετοίμασε καθαρά την επιθυμητή περικοπή και το θέμα και μετά περιέγραψε την κίνηση από αυτή τη σύνθεση. Το παράδειγμα εικόνας χρησιμοποιεί την αναλογία adaptive (προσαρμοστική) για να ακολουθεί την αναφορά.\n\nΟ ειδικός οδηγός διάρκειας του προφίλ αναφέρει ακέραια δευτερόλεπτα από τέσσερα έως δώδεκα ή -1 για να επιλέξει το μοντέλο διάρκεια μέσα σε αυτό το εύρος. Η προεπιλεγμένη διάρκεια είναι πέντε δευτερόλεπτα. Το Seedance 1.5 Pro έχει προεπιλογή το 720p και ο διατηρημένος πίνακας προφίλ τεκμηριώνει τα 480p και 720p· ο ειδικός οδηγός της λειτουργίας δεν προσφέρει 1080p για το 1.5 Pro. Οι σταθερές αναλογίες περιλαμβάνουν 16:9, 4:3, 1:1, 3:4, 9:16 και 21:9, με το adaptive ως τεκμηριωμένη προεπιλογή του 1.5. Εξέτασε τη διάρκεια και τις αναλογίες του πραγματικού αποσπάσματος, αντί να αντιμετωπίζεις τις ζητούμενες τιμές ως ήδη επιστρεφόμενο αρχείο.\n\nΤο αίτημα διαθέτει δύο βαθμίδες επεξεργασίας. Το service_tier=default επιλέγει διαδικτυακή επεξεργασία, ενώ το flex επιλέγει αναβαλλόμενη επεξεργασία για εργασίες που ανέχονται μεγαλύτερη καθυστέρηση. Η βαθμίδα δεν μπορεί να αλλάξει μετά την υποβολή της εργασίας. Διάλεξέ την σύμφωνα με τις ανάγκες χρονισμού της ροής και κράτησε την επιλογή στο αρχείο του αιτήματος. Ο τρόπος ήχου και η βαθμίδα επεξεργασίας είναι ξεχωριστές επιλογές: ένα βίντεο χωρίς ήχο δεν είναι αυτόματα αναβαλλόμενη εργασία και η ενεργοποίηση ήχου δεν επιλέγει βαθμίδα επεξεργασίας.\n\nΚράτησε τις οδηγίες seed, watermark και κάμερας συνεπείς με τη σκηνή. Οι εντολές παραμέτρων που ενσωματώνονται στο κείμενο έχουν προτεραιότητα έναντι των ξεχωριστών προαιρετικών παραμέτρων. Ο έλεγχος σταθερής κάμερας αποκλείεται στην περίπτωση εικόνας αναφοράς και, όπου εφαρμόζεται, δεν εγγυάται οπτικά αμετακίνητη κάμερα. Για κίνηση που καθοδηγείται από εικόνα, εξήγησε άμεσα την επιθυμητή κίνηση, αντί να υποθέτεις ότι ένας έλεγχος κάμερας καταργεί την ανάγκη περιγραφής του πλάνου.\n\nΗ χρήση μετριέται σε token βίντεο: πλάτος εξόδου × ύψος εξόδου × ρυθμός καρέ × διάρκεια εξόδου / 1024. Η ολοκληρωμένη εργασία αναφέρει αυτή την ποσότητα ως usage.completion_tokens. Κράτησε την αναφερόμενη χρήση μαζί με το ολοκληρωμένο απόσπασμα και τις ζητούμενες ρυθμίσεις του. Ο ενεργοποιημένος ή απενεργοποιημένος ήχος και η διαδικτυακή επεξεργασία ή η επεξεργασία flex παραμένουν διακριτές κατηγορίες στη χρέωση βάσει χρήσης.\n\nΗ υποβολή επιστρέφει αναγνωριστικό ασύγχρονης εργασίας. Παρακολούθησε την εργασία μέχρι την ολοκλήρωση και μετά αποθήκευσε το βίντεο που παρέχεται στο content.video_url. Η τεκμηριωμένη περίοδος διατήρησης των παραγόμενων αρχείων είναι επτά ημέρες. Ο έλεγχος λήξης μετριέται από τη δημιουργία, έχει προεπιλογή 172800 δευτερόλεπτα και δέχεται τιμές από 3600 έως 259200 δευτερόλεπτα· μια ημιτελής εργασία γίνεται expired μετά το διαμορφωμένο διάστημά της. Κράτησε μαζί το τελικό απόσπασμα, την αρχική εικόνα και τις ακριβείς οπτικές και ηχητικές οδηγίες και μετά έλεγξε όλο το αποτέλεσμα για τη δράση, την ταυτότητα, τη συνέχεια στην κίνηση της κάμερας και τον συγχρονισμό του ήχου.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.1152",
            "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.1152",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "display_name": "ByteDance: Seedance 1.5 Pro",
    "formats": [
      "videos"
    ],
    "id": "doubao-seedance-1-5-pro-251215",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "locale": "en",
    "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": {
            "errors": [
              {
                "condition": "Μη έγκυρο JSON, μοντέλο, τύποι απαιτούμενων πεδίων ή δείκτης περιεχομένου.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "Μη έγκυρο κλειδί API του Ailoot.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "Η εργασία ή έξοδος απουσιάζει ή δεν ανήκει στον ίδιο χρήστη, κλειδί API ή ομάδα.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "Η αρχική υποβολή ή κατάστασή της είναι ελλιπής· διατηρήστε το αρχικό ID, χωρίς επανυποβολή.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "Τα αρχικά πολυμέσα, η διαδρομή ή η εκκαθάριση ελέγχονται· συνεχίστε την αρχική λειτουργία.",
                "http_status": 503,
                "type": "result_pending_check"
              }
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "succeeded"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed",
                "expired"
              ],
              "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "queued",
                "running"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "Διατηρήστε την αρχική απόκριση, τις κεφαλίδες και το id, και ελέγχετε περιοδικά αυτή τη λειτουργία· μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "text"
              ],
              [
                "text",
                "image"
              ]
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video"
            ],
            "outputs": {
              "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
              "all_results": "Διατηρήστε κάθε πραγματικό URL στο content.video_url· το index πρέπει να προσδιορίζει πραγματική έξοδο που επιστράφηκε.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string when supplied"
                },
                {
                  "description": null,
                  "name": "content.video_url",
                  "type": "string|string[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object when supplied"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
              "result": "Εγγενές JSON με δημόσιο id/polling_url. Μετά τη δημοσίευση, το content.video_url περιέχει υπογεγραμμένα URL που ανήκουν στο Ailoot· πριν από τη δημοσίευση, τα επιλεγμένα URL εξόδου είναι κενά."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "doubao-seedance-1-5-pro-251215"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Εγγενή αντικείμενα κειμένου και πολυμέσων· ο εξωτερικός πίνακας δεν πρέπει να είναι κενός. Οι τύποι εμφωλευμένων κόμβων δεν επικυρώνονται από αυτόν τον γενικό κατασκευαστή του Ailoot.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minItems": 1,
                "name": "content",
                "required": true,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "Το αρχικό σχήμα 1.x ορίζει 2–12· μεταγενέστερη κοινή περιγραφή ορίζει την 1.5 ως 4–12 ή -1. Το παράδειγμα χρησιμοποιεί την κοινά τεκμηριωμένη τιμή 5.",
                "default": 5,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "Το Seedance 1.5 Pro υποστηρίζει 480p και 720p· το 1080p αποκλείεται. Η τεκμηριωμένη προεπιλογή ανάλυσης είναι 720p.",
                "default": "720p",
                "default_known": true,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Η τεκμηριωμένη προεπιλογή αναλογίας του Seedance 1.5 Pro είναι adaptive. Οι επιλογές σταθερής αναλογίας παραμένουν αμετάβλητες.",
                "default": "adaptive",
                "default_known": true,
                "enum": [
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16",
                  "21:9",
                  "adaptive"
                ],
                "enum_known": true,
                "name": "ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "default=online, flex=offline· επιλέξτε πριν από τη δημιουργία.",
                "default": "default",
                "default_known": true,
                "enum": [
                  "default",
                  "flex"
                ],
                "enum_known": true,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": -1,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 4294967295,
                "minimum": -1,
                "name": "seed",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "Απαιτείται από το Ailoot· ο έλεγχος κάμερας με εικόνα αναφοράς τεκμηριώνεται ως μη υποστηριζόμενος και η επίδρασή του δεν είναι εγγυημένη.",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "camerafixed",
                "required": true,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "watermark",
                "required": true,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "default": 172800,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 259200,
                "minimum": 3600,
                "name": "execution_expires_after",
                "required": true,
                "type": "integer",
                "unit": "δευτερόλεπτα"
              },
              {
                "availability": "source_interface",
                "conditions": "Συγχρονισμένος ήχος ενσωματωμένος στο παραγόμενο βίντεο, μόνο για την 1.5.",
                "default": true,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "generate_audio",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Exact model ID and documented Ailoot video interface.",
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "camerafixed": {
                  "type": "boolean"
                },
                "content": {
                  "items": {
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "duration": {
                  "type": "integer"
                },
                "execution_expires_after": {
                  "maximum": 259200,
                  "minimum": 3600,
                  "type": "integer"
                },
                "generate_audio": {
                  "type": "boolean"
                },
                "model": {
                  "const": "doubao-seedance-1-5-pro-251215",
                  "type": "string"
                },
                "ratio": {
                  "default": "adaptive",
                  "enum": [
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16",
                    "21:9",
                    "adaptive"
                  ],
                  "type": "string"
                },
                "resolution": {
                  "default": "720p",
                  "enum": [
                    "480p",
                    "720p"
                  ],
                  "type": "string"
                },
                "seed": {
                  "maximum": 4294967295,
                  "minimum": -1,
                  "type": "integer"
                },
                "service_tier": {
                  "enum": [
                    "default",
                    "flex"
                  ],
                  "type": "string"
                },
                "watermark": {
                  "type": "boolean"
                }
              },
              "required": [
                "camerafixed",
                "content",
                "execution_expires_after",
                "model",
                "seed",
                "watermark"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              "1.5 bounds conflict: primary 1.x 2–12 versus later model-specific 4–12 or -1. No resolved bound for this persisted1.x path.",
              "Primary content.items.required says type+text even for its image example without text; preserve intended example branches and outer-array validation boundary."
            ],
            "unsupported": [
              "Separate cancel/delete for this generic method",
              "Separate edit/extension endpoint for this method"
            ]
          },
          "hints": [
            "Δημιουργήστε μία φορά και διατηρήστε το δημόσιο id/polling_url που επιστρέφεται.",
            "Ελέγχετε περιοδικά την αρχική εργασία· κατεβάστε το πραγματικό content.video_url που σας ανήκει μετά το succeeded."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "image_constraints": {
              "aspect_ratio_exclusive": [
                0.4,
                2.5
              ],
              "dimensions_px_exclusive": [
                300,
                6000
              ],
              "file_size_mb_exclusive": 30,
              "formats": [
                "jpeg",
                "png",
                "webp",
                "bmp",
                "tiff",
                "gif"
              ],
              "mb_bytes_definition": null
            },
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "duration",
              "resolution",
              "ratio",
              "service_tier",
              "generate_audio"
            ],
            "required": [
              "camerafixed",
              "content",
              "execution_expires_after",
              "model",
              "seed",
              "watermark"
            ],
            "validation_scope": "Το Ailoot ελέγχει τους τύπους των απαιτούμενων πεδίων και ότι το model και ο πίνακας content δεν είναι κενά. Τα υπόλοιπα πεδία αιτήματος διατηρούνται για το επιλεγμένο μοντέλο."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "succeeded"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed",
              "expired"
            ],
            "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "queued",
              "running"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "Preserve original response/headers/id and poll that operation; never resubmit unknown creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "text",
              "image"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "text_to_video",
            "image_to_video"
          ],
          "output": {
            "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
            "all_results": "Retain every actual URL in content.video_url; index must identify a real returned output.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": null,
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": null,
                "name": "status",
                "type": "string when supplied"
              },
              {
                "description": null,
                "name": "content.video_url",
                "type": "string|string[]"
              },
              {
                "description": null,
                "name": "usage",
                "type": "object when supplied"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
            "result": "Native JSON with public id/polling_url. After publication content.video_url contains Ailoot-owned signed URL(s); before publication selected output URLs are blanked."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": true,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "flex"
            },
            "label": "Βαθμίδα υπηρεσίας με επεξεργασία offline (flex). Έξοδος με συγχρονισμένο ήχο.",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_flex_with_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": false,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "flex"
            },
            "label": "Βαθμίδα υπηρεσίας με επεξεργασία offline (flex). Έξοδος χωρίς συγχρονισμένο ήχο.",
            "units": [
              {
                "amount": "0.0012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_flex_without_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": true,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "default"
            },
            "label": "Βαθμίδα υπηρεσίας με επεξεργασία online (default). Έξοδος με συγχρονισμένο ήχο.",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_online_with_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": false,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "default"
            },
            "label": "Βαθμίδα υπηρεσίας με επεξεργασία online (default). Έξοδος χωρίς συγχρονισμένο ήχο.",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_online_without_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.1152",
                "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.1152",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON_REQUEST'\n{\"model\":\"doubao-seedance-1-5-pro-251215\",\"content\":[{\"type\":\"text\",\"text\":\"女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动\"}],\"resolution\":\"480p\",\"ratio\":\"1:1\",\"duration\":5,\"service_tier\":\"default\",\"seed\":-1,\"camerafixed\":false,\"watermark\":false,\"execution_expires_after\":172800,\"generate_audio\":false}\nJSON_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\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i.startswith(\"native302_\"):raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          },
          {
            "code": "set -eu\npython3 - <<'PY_ASSETS'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nif r.get(\"status\")!=\"succeeded\":raise SystemExit(\"Poll same original job until an owned result is returned.\")\nu=r.get(\"content\",{}).get(\"video_url\")\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(\"No completed video URL.\")\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(\"Invalid returned URL.\")\n    p=urlsplit(u)\n    if p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/media/assets/\") or not p.path.endswith(\"/content\") or not p.query:raise SystemExit(\"Wait for actual Ailoot-owned signed result.\")\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" -o \"video-${index}.bin\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "curl · download owned video",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and retain returned public id/polling_url.",
          "Poll the original job; download actual owned content.video_url after succeeded."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Βίντεο",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/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"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": true,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "flex"
            },
            "label": "Offline service tier (flex). Output with synchronized audio.",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_flex_with_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": false,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "flex"
            },
            "label": "Offline service tier (flex). Output without synchronized audio.",
            "units": [
              {
                "amount": "0.0012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_flex_without_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": true,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "default"
            },
            "label": "Online service tier (default). Output with synchronized audio.",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_online_with_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "generate_audio": false,
              "quoted_unit": "per 1,000 video tokens",
              "service_tier": "default"
            },
            "label": "Online service tier (default). Output without synchronized audio.",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_online_without_audio",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.1152",
                "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.1152",
                "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": "doubao-seedance-1-5-pro-251215",
        "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.0024000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_flex_with_audio",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.0000024",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.0012000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_flex_without_audio",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.0000012",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_online_with_audio",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.0024000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_online_without_audio",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.0000024",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.1152",
            "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.1152",
            "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": "doubao-seedance-1-5-pro-251215",
        "request_model_id": "doubao-seedance-1-5-pro-251215",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance: Seedance 1.5 Pro",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.1152,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.1152,
      "varies": false
    },
    "short": "Το Seedance 1.5 Pro δημιουργεί βίντεο από κείμενο ή εικόνα και μπορεί να δημιουργήσει συγχρονισμένες φωνές, εφέ και μουσική υπόκρουση. Ο ήχος μπορεί να ενεργοποιηθεί ή να απενεργοποιηθεί· το τεκμηριωμένο προφίλ προσφέρει σκηνές 4–12 δευτερολέπτων, κάδρο adaptive (προσαρμοστικό) και διαδικτυακή επεξεργασία ή επεξεργασία flex."
  },
  "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": "Το Seedance 1.5 Pro δημιουργεί βίντεο από κείμενο ή εικόνα και μπορεί να δημιουργήσει συγχρονισμένες φωνές, εφέ και μουσική υπόκρουση. Ο ήχος μπορεί να ενεργοποιηθεί ή να απενεργοποιηθεί· το τεκμηριωμένο προφίλ προσφέρει σκηνές 4–12 δευτερολέπτων, κάδρο adaptive (προσαρμοστικό) και διαδικτυακή επεξεργασία ή επεξεργασία flex.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "8300505b785079b4076cd6149a47c46c4d85f5e57ddef5c9d7257ca39278deb2",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "f650954d06fc29d9f6e29fe5905259bb05f3beb4f709f7d8aa94abc8570d4a07"
}
