{
  "aboutHtml": "<p>Το Seedance 2.0 είναι το τυπικό μοντέλο της ByteDance Seed για πολυτροπική δημιουργία ήχου και βίντεο. Συνδυάζει κείμενο, εικόνες, βίντεο και ήχο σε αρχιτεκτονική κοινής παραγωγής, με ξεχωριστές δημιουργικές ροές για σκηνές βάσει αναφορών, επεξεργασία και επέκταση βίντεο. Είναι χρήσιμο όταν η οδηγία χρειάζεται τόσο συνεκτική ερμηνεία όσο και συγκεκριμένες οπτικές ή ηχητικές πληροφορίες από προετοιμασμένα υλικά.</p><h4>Πολυτροπικές αναφορές και σκηνοθετικός έλεγχος</h4><p>Οι εικόνες μπορούν να ορίζουν την εμφάνιση θέματος, το οπτικό ύφος και τη σύνθεση. Οι αναφορές βίντεο μπορούν να καθοδηγούν δράση, κίνηση κάμερας και εφέ. Ο ήχος μπορεί να καθοδηγεί χροιά φωνής, μουσική ή διάλογο. Ορίστε τον ρόλο κάθε υλικού και έπειτα περιγράψτε τη σκηνή που πρέπει να προκύψει. Ο κατασκευαστής δίνει έμφαση στον έλεγχο ερμηνείας, φωτισμού, σκιών και κινηματογραφικής γλώσσας.</p><p>Για μια ιστορία προϊόντος, προετοιμάστε εικόνα προϊόντος, αναφορά κίνησης κάμερας και ηχητική οδηγία. Μια οδηγία θα μπορούσε να είναι: «Διατηρήστε το μπλε γυάλινο βάζο του Image 1. Χρησιμοποιήστε την αργή πλάγια κίνηση παρακολούθησης του Video 1. Το βάζο βρίσκεται σε ένα ηλιόλουστο ράφι, με απαλή οργανική μουσική βάσει του Audio 1». Η επιδιωκόμενη έξοδος είναι μια νέα σκηνοθετημένη σκηνή που συνδυάζει επιλεγμένες πληροφορίες αναφοράς.</p><p>Οι είσοδοι αναφοράς μπορούν να συνδυάζουν εικόνα και ήχο, εικόνα και βίντεο, βίντεο και ήχο ή και τους τρεις τύπους. Δεν υποστηρίζονται είσοδος μόνο ήχου και κείμενο μαζί με ήχο χωρίς εικόνα ή βίντεο. Τεκμηριώνονται επίσης η παραδοσιακή μετατροπή κειμένου σε βίντεο, η παραγωγή από πρώτο καρέ και η παραγωγή από πρώτο και τελευταίο καρέ. Αν είναι σημαντικές οι σταθερές αρχικές και τελικές συνθέσεις, χρησιμοποιήστε την ειδική ροή ορίων: η ονομασία μιας εικόνας αναφοράς ως τελικού σημείου μέσα σε προτροπή omni-reference είναι μόνο έμμεσος τρόπος καθοδήγησης.</p><h4>Επεξεργασία υλικού</h4><p>Το μοντέλο μπορεί να αντικαθιστά θέμα, να προσθέτει ή να αφαιρεί αντικείμενα, να αλλάζει στοιχεία και να επανασχεδιάζει ή να επισκευάζει μέρη βίντεο. Περιγράψτε τη συγκεκριμένη αλλαγή και προσδιορίστε το αρχικό υλικό. Για προσθήκη, συμπεριλάβετε χρόνο εμφάνισης και θέση· για αφαίρεση ή αντικατάσταση, δηλώστε με ακρίβεια το αντικείμενο και κατονομάστε όσα πρέπει να διατηρηθούν.</p><p>Για παράδειγμα: «Αντικαταστήστε το φωτιστικό γραφείου του Video 1 με το ορειχάλκινο φωτιστικό του Image 1. Διατηρήστε την κίνηση κάμερας, τη διάταξη γραφείου και την κατεύθυνση φωτισμού». Το επιθυμητό αποτέλεσμα είναι επεξεργασμένη εκδοχή της σκηνής με την προβλεπόμενη αντικατάσταση. Επιθεωρήστε τις αμετάβλητες περιοχές καθώς και το νέο αντικείμενο, ιδιαίτερα κατά την απόκρυψη, την κίνηση και τις αλλαγές πλάνων.</p><h4>Επέκταση και σύνδεση ακολουθίας</h4><p>Το Seedance 2.0 μπορεί να επεκτείνει ένα βίντεο προς τα εμπρός ή πίσω και να συνδέσει έως τρία παρεχόμενα αποσπάσματα με παραγόμενες μεταβάσεις. Προσδιορίστε τη χρονική κατεύθυνση και το νέο συμβάν. Για γέφυρα, βάλτε τα αποσπάσματα με σειρά και περιγράψτε τη μετάβαση μεταξύ κάθε ζεύγους, όπως μια κάμερα που εισέρχεται σε πόρτα σε ένα πλάνο και φτάνει στο επόμενο περιβάλλον.</p><p>Μια απλή επέκταση συνήθως επιστρέφει τη συνέχεια που αναπτύχθηκε γύρω από το αρχικό υλικό· συμπεριλάβετε σαφή οδηγία αν το τελικό αποτέλεσμα πρέπει επίσης να επαναλαμβάνει το αρχικό τμήμα. Κατά την ολοκλήρωση σύνδεσης δύο ή τριών αποσπασμάτων, η τεκμηριωμένη ροή μπορεί να περιλαμβάνει τόσο αρχικό υλικό όσο και νέο περιεχόμενο μετάβασης. Αυτό είναι χρήσιμο για ανάπτυξη αρχής ή τέλους ή σύνδεση έτοιμων σκηνών χωρίς να μένει απροσδιόριστη η ενωτική δράση.</p><h4>Έξοδος τυπικής έκδοσης και 4K</h4><p>Η τυπική έκδοση τεκμηριώνει MP4 στα 24 fps και διάρκειες από 4 έως 15 δευτερόλεπτα. Τα επίπεδα εξόδου είναι 480p, 720p και 1080p με βάθος χρώματος 8-bit, καθώς και 4K με βάθος χρώματος 10-bit. Οι υποστηριζόμενες αναλογίες είναι 21:9, 16:9, 4:3, 1:1, 3:4 και 9:16. Τεκμηριώνονται επίσης προσαρμοστικό καδράρισμα και αυτόματη επιλογή διάρκειας. Η έκδοση Fast έχει δική της στενότερη προδιαγραφή εξόδου 480p/720p.</p><p>Η έξοδος 4K χρησιμοποιεί κωδικοποίηση H.265/HEVC. Η κωδικοποίηση δέκα bit διατηρεί πρόσθετες τονικές διαβαθμίσεις και ομαλότερες χρωματικές μεταβάσεις, κάτι που έχει σημασία για υλικό με λεπτές διαβαθμίσεις φωτός ή χρώματος. Ελέγξτε ότι το προβλεπόμενο περιβάλλον αναπαραγωγής και μοντάζ μπορεί να αποκωδικοποιήσει αυτή τη μορφή· ορισμένοι φυλλομετρητές και συσκευές δεν την αναπαράγουν απευθείας. Ένας συμβατός περιέκτης δεν εξασφαλίζει από μόνος του συμβατή αποκωδικοποίηση βίντεο.</p><p>Το μοντέλο μπορεί να παράγει συγχρονισμένο ήχο ή σιωπηλό βίντεο και να επιστρέφει το τελευταίο παραγόμενο καρέ για επόμενη σκηνή. Ο παραγόμενος ήχος είναι μονοφωνικός. Η οικογένεια 2.0 δεν υποστηρίζει την ξεχωριστή λειτουργία προεπισκόπησης Draft δύο σταδίων, επομένως αυτή η δυνατότητα δεν πρέπει να συνάγεται από άλλη έκδοση Seedance.</p><h4>Προετοιμασία αναφορών και ουσιαστικά όρια</h4><p>Η τεκμηριωμένη χωρητικότητα αναφορών είναι έως εννέα εικόνες, τρία βίντεο και τρία αποσπάσματα ήχου. Στο συγκεκριμένο τεκμηριωμένο προφίλ του κατασκευαστή δεν γίνονται δεκτές απευθείας μεταφορτώσεις εικόνων ή βίντεο αναφοράς που περιέχουν πραγματικά ανθρώπινα πρόσωπα· οι εργασίες πορτρέτων χρησιμοποιούν την υποστηριζόμενη ροή στοιχείων πορτρέτου. Κάθε απόσπασμα βίντεο και ήχου πρέπει να διαρκεί 2–15 δευτερόλεπτα. Όλες οι αναφορές βίντεο μαζί πρέπει να χωρούν σε 15 δευτερόλεπτα και όλες οι αναφορές ήχου έχουν δικό τους συνολικό όριο 15 δευτερολέπτων. Τα αρχεία βίντεο χρησιμοποιούν MP4 ή MOV στα 24–60 fps, έως 200 MB το καθένα· τα αρχεία ήχου χρησιμοποιούν WAV ή MP3, έως 15 MB το καθένα. Οι καταγεγραμμένες μορφές εικόνας είναι JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC και HEIF. Κάθε εικόνα πρέπει να είναι μικρότερη από 30 MB και το σώμα αιτήματος να μην υπερβαίνει τα 64 MB. Στο τεκμηριωμένο προφίλ εισόδου αναφορών, το πλάτος και το ύψος εικόνας πρέπει να είναι αυστηρά μεταξύ 300 και 6.000 pixel, με λόγο πλάτους προς ύψος αυστηρά μεταξύ 0.4 και 2.5. Τα βίντεο αναφοράς επιτρέπουν 300–6.000 pixel σε κάθε διάσταση και αναλογίες 0.4–2.5, συμπεριλαμβανομένων των ορίων, με συνολικά 407.696–8.295.044 pixel. Τα βίντεο MP4 ή MOV χρησιμοποιούν βίντεο H.264/AVC ή H.265/HEVC και ήχο AAC ή MP3.</p><p>Βάλτε τα αρχεία σκόπιμα σε σειρά και αναφερθείτε στο καθένα με τον τύπο μέσου και τον αριθμό του: Image 1, Video 1 και Audio 1. Ο αριθμός ακολουθεί τη σειρά μεταξύ αρχείων αυτού του τύπου. Εξηγήστε ποια χαρακτηριστικά μεταφέρονται και ποιο περιεχόμενο πηγής δεν πρέπει να ορίζει τη νέα σκηνή. Οι τεκμηριωμένες γλώσσες προτροπών περιλαμβάνουν αγγλικά, ισπανικά, ινδονησιακά, πορτογαλικά και ιαπωνικά. Διατηρήστε συνεπή την εκφωνούμενη γλώσσα σε διάλογο· ο οδηγός συνιστά να αποφεύγεται η ανάμειξη γλωσσών, εκτός από κύρια ονόματα. Για εργασία με φωνητική καθοδήγηση, διαχωρίστε τον ομιλητή, την ακριβή ατάκα και την οδηγία εκφοράς.</p><p>Προετοιμάστε την πρώτη και την τελευταία εικόνα με συμβατό κάδρο. Μια αναντιστοιχία μεταξύ αρχικής εικόνας και διαστάσεων εξόδου μπορεί να προκαλέσει περικοπή ή απότομη οπτική αλλαγή· οι ίδιες διαστάσεις και το προσαρμοστικό καδράρισμα είναι τεκμηριωμένες λύσεις. Εστιάστε την περιγραφή στο συμβάν και στους ρόλους αναφορών. Ο κατασκευαστής προειδοποιεί ότι οι μεγάλες προτροπές μπορεί να διασκορπίσουν τις πληροφορίες, με αποτέλεσμα να αγνοούνται λεπτομέρειες. Ελέγξτε την κίνηση που προκύπτει, τη συνέχεια αναφορών, την ηχητική ερμηνεία και τις ενώσεις σκηνών ως διακριτά μέρη του δημιουργικού αποτελέσματος.</p><h4>Σχεδιασμός πλάνων και κατεύθυνση κειμένου</h4><p>Για μια σύνθετη σκηνή, οργανώστε την οδηγία ως Shot 1, Shot 2 και Shot 3, προσδιορίζοντας κάμερα, δράση θέματος, θέση και ήχο με σειρά. Ο οδηγός συνιστά μία κίνηση κάμερας ανά πλάνο και προτεραιότητα σε αργές, συνδεδεμένες ενέργειες. Οι ακριβείς χρονικές σημάνσεις ανά πλάνο είναι ασταθείς, επομένως μια ακολουθία γεγονότων αποτελεί καλύτερο έλεγχο από την επιβολή πολλών ακριβών χρονικών παραθύρων.</p><p>Το μοντέλο παράγει επίσης συνηθισμένο κείμενο, όπως συνθήματα, υπότιτλους και συννεφάκια ομιλίας. Μπορείτε να κατευθύνετε το χρώμα, την οπτική απόδοση, τη θέση και την εμφάνισή του. Χρησιμοποιήστε συνηθισμένους χαρακτήρες αντί σπάνιων χαρακτήρων ή ειδικών συμβόλων και ελέγξτε τη διατύπωση καθώς κινείται. Για αναφορές θέματος, συνδέστε σαφώς κάθε στοιχείο με τον προβλεπόμενο χαρακτήρα ή αντικείμενο. Οι όψεις προϊόντος μπορούν να παρέχουν διαφορετικές οπτικές πληροφορίες· τα κολάζ πολλαπλών όψεων χαρακτήρα μπορούν να προκαλέσουν σύγχυση στην ταυτότητα προσώπου. Η τεκμηριωμένη σύσταση αναφοράς χαρακτήρα είναι ξεχωριστό καθαρό κοντινό προσώπου και ολόσωμη εικόνα.</p><h4>Συμπεριφορές για επιθεώρηση πριν από μοντάζ</h4><p>Ο οδηγός τεκμηριώνει ανεπιθύμητους υπότιτλους, λογότυπα, διπλούς χαρακτήρες και απόκλιση ύφους. Το καθαρό αρχικό υλικό, οι συνεπείς ετικέτες και οι ρητοί περιορισμοί μειώνουν αυτούς τους κινδύνους, αλλά δεν εγγυώνται ότι θα εξαφανιστούν ανεπιθύμητο κείμενο ή διπλές φιγούρες. Περισσότερα από τέσσερα άτομα αναφοράς αναφέρονται ως κίνδυνος σταθερότητας, διακριτός από τον αριθμό αρχείων που δέχεται το μοντέλο.</p><p>Η επέκταση βίντεο μπορεί να δημιουργήσει άλμα ή επιστροφή στην ένωση και οι επαναλαμβανόμενες συνέχειες μπορούν να συσσωρεύσουν υποβάθμιση ποιότητας εικόνας. Επιθεωρήστε τα οριακά καρέ και περιορίστε τις διαδοχικές επεκτάσεις. Μια φωνή αναφοράς μπορεί να διαφέρει από την αρχική χροιά· η αφήγηση μπορεί να τελειώσει με κλικ ή απότομη διακοπή, για την οποία το σταδιακό σβήσιμο ήχου είναι τεκμηριωμένη λύση. Οι κινεζικοί πολυφωνικοί, ασυνήθιστοι ή οπτικά παρόμοιοι χαρακτήρες μπορεί να προφερθούν λανθασμένα. Για ακριβές κινούμενο εφέ, όπως αντίστροφη μέτρηση, μια αναφορά κίνησης παρέχει περισσότερες πληροφορίες από ένα απλό λεκτικό αίτημα. Αυτοί είναι συγκεκριμένοι λόγοι για ξεχωριστό έλεγχο ταυτότητας, κειμένου, κίνησης και ήχου κατά την επιλογή αποσπάσματος.</p>",
  "aboutText": "Το Seedance 2.0 είναι το τυπικό μοντέλο της ByteDance Seed για πολυτροπική δημιουργία ήχου και βίντεο. Συνδυάζει κείμενο, εικόνες, βίντεο και ήχο σε αρχιτεκτονική κοινής παραγωγής, με ξεχωριστές δημιουργικές ροές για σκηνές βάσει αναφορών, επεξεργασία και επέκταση βίντεο. Είναι χρήσιμο όταν η οδηγία χρειάζεται τόσο συνεκτική ερμηνεία όσο και συγκεκριμένες οπτικές ή ηχητικές πληροφορίες από προετοιμασμένα υλικά.\n\n### Πολυτροπικές αναφορές και σκηνοθετικός έλεγχος\n\nΟι εικόνες μπορούν να ορίζουν την εμφάνιση θέματος, το οπτικό ύφος και τη σύνθεση. Οι αναφορές βίντεο μπορούν να καθοδηγούν δράση, κίνηση κάμερας και εφέ. Ο ήχος μπορεί να καθοδηγεί χροιά φωνής, μουσική ή διάλογο. Ορίστε τον ρόλο κάθε υλικού και έπειτα περιγράψτε τη σκηνή που πρέπει να προκύψει. Ο κατασκευαστής δίνει έμφαση στον έλεγχο ερμηνείας, φωτισμού, σκιών και κινηματογραφικής γλώσσας.\n\nΓια μια ιστορία προϊόντος, προετοιμάστε εικόνα προϊόντος, αναφορά κίνησης κάμερας και ηχητική οδηγία. Μια οδηγία θα μπορούσε να είναι: «Διατηρήστε το μπλε γυάλινο βάζο του Image 1. Χρησιμοποιήστε την αργή πλάγια κίνηση παρακολούθησης του Video 1. Το βάζο βρίσκεται σε ένα ηλιόλουστο ράφι, με απαλή οργανική μουσική βάσει του Audio 1». Η επιδιωκόμενη έξοδος είναι μια νέα σκηνοθετημένη σκηνή που συνδυάζει επιλεγμένες πληροφορίες αναφοράς.\n\nΟι είσοδοι αναφοράς μπορούν να συνδυάζουν εικόνα και ήχο, εικόνα και βίντεο, βίντεο και ήχο ή και τους τρεις τύπους. Δεν υποστηρίζονται είσοδος μόνο ήχου και κείμενο μαζί με ήχο χωρίς εικόνα ή βίντεο. Τεκμηριώνονται επίσης η παραδοσιακή μετατροπή κειμένου σε βίντεο, η παραγωγή από πρώτο καρέ και η παραγωγή από πρώτο και τελευταίο καρέ. Αν είναι σημαντικές οι σταθερές αρχικές και τελικές συνθέσεις, χρησιμοποιήστε την ειδική ροή ορίων: η ονομασία μιας εικόνας αναφοράς ως τελικού σημείου μέσα σε προτροπή omni-reference είναι μόνο έμμεσος τρόπος καθοδήγησης.\n\n### Επεξεργασία υλικού\n\nΤο μοντέλο μπορεί να αντικαθιστά θέμα, να προσθέτει ή να αφαιρεί αντικείμενα, να αλλάζει στοιχεία και να επανασχεδιάζει ή να επισκευάζει μέρη βίντεο. Περιγράψτε τη συγκεκριμένη αλλαγή και προσδιορίστε το αρχικό υλικό. Για προσθήκη, συμπεριλάβετε χρόνο εμφάνισης και θέση· για αφαίρεση ή αντικατάσταση, δηλώστε με ακρίβεια το αντικείμενο και κατονομάστε όσα πρέπει να διατηρηθούν.\n\nΓια παράδειγμα: «Αντικαταστήστε το φωτιστικό γραφείου του Video 1 με το ορειχάλκινο φωτιστικό του Image 1. Διατηρήστε την κίνηση κάμερας, τη διάταξη γραφείου και την κατεύθυνση φωτισμού». Το επιθυμητό αποτέλεσμα είναι επεξεργασμένη εκδοχή της σκηνής με την προβλεπόμενη αντικατάσταση. Επιθεωρήστε τις αμετάβλητες περιοχές καθώς και το νέο αντικείμενο, ιδιαίτερα κατά την απόκρυψη, την κίνηση και τις αλλαγές πλάνων.\n\n### Επέκταση και σύνδεση ακολουθίας\n\nΤο Seedance 2.0 μπορεί να επεκτείνει ένα βίντεο προς τα εμπρός ή πίσω και να συνδέσει έως τρία παρεχόμενα αποσπάσματα με παραγόμενες μεταβάσεις. Προσδιορίστε τη χρονική κατεύθυνση και το νέο συμβάν. Για γέφυρα, βάλτε τα αποσπάσματα με σειρά και περιγράψτε τη μετάβαση μεταξύ κάθε ζεύγους, όπως μια κάμερα που εισέρχεται σε πόρτα σε ένα πλάνο και φτάνει στο επόμενο περιβάλλον.\n\nΜια απλή επέκταση συνήθως επιστρέφει τη συνέχεια που αναπτύχθηκε γύρω από το αρχικό υλικό· συμπεριλάβετε σαφή οδηγία αν το τελικό αποτέλεσμα πρέπει επίσης να επαναλαμβάνει το αρχικό τμήμα. Κατά την ολοκλήρωση σύνδεσης δύο ή τριών αποσπασμάτων, η τεκμηριωμένη ροή μπορεί να περιλαμβάνει τόσο αρχικό υλικό όσο και νέο περιεχόμενο μετάβασης. Αυτό είναι χρήσιμο για ανάπτυξη αρχής ή τέλους ή σύνδεση έτοιμων σκηνών χωρίς να μένει απροσδιόριστη η ενωτική δράση.\n\n### Έξοδος τυπικής έκδοσης και 4K\n\nΗ τυπική έκδοση τεκμηριώνει MP4 στα 24 fps και διάρκειες από 4 έως 15 δευτερόλεπτα. Τα επίπεδα εξόδου είναι 480p, 720p και 1080p με βάθος χρώματος 8-bit, καθώς και 4K με βάθος χρώματος 10-bit. Οι υποστηριζόμενες αναλογίες είναι 21:9, 16:9, 4:3, 1:1, 3:4 και 9:16. Τεκμηριώνονται επίσης προσαρμοστικό καδράρισμα και αυτόματη επιλογή διάρκειας. Η έκδοση Fast έχει δική της στενότερη προδιαγραφή εξόδου 480p/720p.\n\nΗ έξοδος 4K χρησιμοποιεί κωδικοποίηση H.265/HEVC. Η κωδικοποίηση δέκα bit διατηρεί πρόσθετες τονικές διαβαθμίσεις και ομαλότερες χρωματικές μεταβάσεις, κάτι που έχει σημασία για υλικό με λεπτές διαβαθμίσεις φωτός ή χρώματος. Ελέγξτε ότι το προβλεπόμενο περιβάλλον αναπαραγωγής και μοντάζ μπορεί να αποκωδικοποιήσει αυτή τη μορφή· ορισμένοι φυλλομετρητές και συσκευές δεν την αναπαράγουν απευθείας. Ένας συμβατός περιέκτης δεν εξασφαλίζει από μόνος του συμβατή αποκωδικοποίηση βίντεο.\n\nΤο μοντέλο μπορεί να παράγει συγχρονισμένο ήχο ή σιωπηλό βίντεο και να επιστρέφει το τελευταίο παραγόμενο καρέ για επόμενη σκηνή. Ο παραγόμενος ήχος είναι μονοφωνικός. Η οικογένεια 2.0 δεν υποστηρίζει την ξεχωριστή λειτουργία προεπισκόπησης Draft δύο σταδίων, επομένως αυτή η δυνατότητα δεν πρέπει να συνάγεται από άλλη έκδοση Seedance.\n\n### Προετοιμασία αναφορών και ουσιαστικά όρια\n\nΗ τεκμηριωμένη χωρητικότητα αναφορών είναι έως εννέα εικόνες, τρία βίντεο και τρία αποσπάσματα ήχου. Στο συγκεκριμένο τεκμηριωμένο προφίλ του κατασκευαστή δεν γίνονται δεκτές απευθείας μεταφορτώσεις εικόνων ή βίντεο αναφοράς που περιέχουν πραγματικά ανθρώπινα πρόσωπα· οι εργασίες πορτρέτων χρησιμοποιούν την υποστηριζόμενη ροή στοιχείων πορτρέτου. Κάθε απόσπασμα βίντεο και ήχου πρέπει να διαρκεί 2–15 δευτερόλεπτα. Όλες οι αναφορές βίντεο μαζί πρέπει να χωρούν σε 15 δευτερόλεπτα και όλες οι αναφορές ήχου έχουν δικό τους συνολικό όριο 15 δευτερολέπτων. Τα αρχεία βίντεο χρησιμοποιούν MP4 ή MOV στα 24–60 fps, έως 200 MB το καθένα· τα αρχεία ήχου χρησιμοποιούν WAV ή MP3, έως 15 MB το καθένα. Οι καταγεγραμμένες μορφές εικόνας είναι JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC και HEIF. Κάθε εικόνα πρέπει να είναι μικρότερη από 30 MB και το σώμα αιτήματος να μην υπερβαίνει τα 64 MB. Στο τεκμηριωμένο προφίλ εισόδου αναφορών, το πλάτος και το ύψος εικόνας πρέπει να είναι αυστηρά μεταξύ 300 και 6.000 pixel, με λόγο πλάτους προς ύψος αυστηρά μεταξύ 0.4 και 2.5. Τα βίντεο αναφοράς επιτρέπουν 300–6.000 pixel σε κάθε διάσταση και αναλογίες 0.4–2.5, συμπεριλαμβανομένων των ορίων, με συνολικά 407.696–8.295.044 pixel. Τα βίντεο MP4 ή MOV χρησιμοποιούν βίντεο H.264/AVC ή H.265/HEVC και ήχο AAC ή MP3.\n\nΒάλτε τα αρχεία σκόπιμα σε σειρά και αναφερθείτε στο καθένα με τον τύπο μέσου και τον αριθμό του: Image 1, Video 1 και Audio 1. Ο αριθμός ακολουθεί τη σειρά μεταξύ αρχείων αυτού του τύπου. Εξηγήστε ποια χαρακτηριστικά μεταφέρονται και ποιο περιεχόμενο πηγής δεν πρέπει να ορίζει τη νέα σκηνή. Οι τεκμηριωμένες γλώσσες προτροπών περιλαμβάνουν αγγλικά, ισπανικά, ινδονησιακά, πορτογαλικά και ιαπωνικά. Διατηρήστε συνεπή την εκφωνούμενη γλώσσα σε διάλογο· ο οδηγός συνιστά να αποφεύγεται η ανάμειξη γλωσσών, εκτός από κύρια ονόματα. Για εργασία με φωνητική καθοδήγηση, διαχωρίστε τον ομιλητή, την ακριβή ατάκα και την οδηγία εκφοράς.\n\nΠροετοιμάστε την πρώτη και την τελευταία εικόνα με συμβατό κάδρο. Μια αναντιστοιχία μεταξύ αρχικής εικόνας και διαστάσεων εξόδου μπορεί να προκαλέσει περικοπή ή απότομη οπτική αλλαγή· οι ίδιες διαστάσεις και το προσαρμοστικό καδράρισμα είναι τεκμηριωμένες λύσεις. Εστιάστε την περιγραφή στο συμβάν και στους ρόλους αναφορών. Ο κατασκευαστής προειδοποιεί ότι οι μεγάλες προτροπές μπορεί να διασκορπίσουν τις πληροφορίες, με αποτέλεσμα να αγνοούνται λεπτομέρειες. Ελέγξτε την κίνηση που προκύπτει, τη συνέχεια αναφορών, την ηχητική ερμηνεία και τις ενώσεις σκηνών ως διακριτά μέρη του δημιουργικού αποτελέσματος.\n\n### Σχεδιασμός πλάνων και κατεύθυνση κειμένου\n\nΓια μια σύνθετη σκηνή, οργανώστε την οδηγία ως Shot 1, Shot 2 και Shot 3, προσδιορίζοντας κάμερα, δράση θέματος, θέση και ήχο με σειρά. Ο οδηγός συνιστά μία κίνηση κάμερας ανά πλάνο και προτεραιότητα σε αργές, συνδεδεμένες ενέργειες. Οι ακριβείς χρονικές σημάνσεις ανά πλάνο είναι ασταθείς, επομένως μια ακολουθία γεγονότων αποτελεί καλύτερο έλεγχο από την επιβολή πολλών ακριβών χρονικών παραθύρων.\n\nΤο μοντέλο παράγει επίσης συνηθισμένο κείμενο, όπως συνθήματα, υπότιτλους και συννεφάκια ομιλίας. Μπορείτε να κατευθύνετε το χρώμα, την οπτική απόδοση, τη θέση και την εμφάνισή του. Χρησιμοποιήστε συνηθισμένους χαρακτήρες αντί σπάνιων χαρακτήρων ή ειδικών συμβόλων και ελέγξτε τη διατύπωση καθώς κινείται. Για αναφορές θέματος, συνδέστε σαφώς κάθε στοιχείο με τον προβλεπόμενο χαρακτήρα ή αντικείμενο. Οι όψεις προϊόντος μπορούν να παρέχουν διαφορετικές οπτικές πληροφορίες· τα κολάζ πολλαπλών όψεων χαρακτήρα μπορούν να προκαλέσουν σύγχυση στην ταυτότητα προσώπου. Η τεκμηριωμένη σύσταση αναφοράς χαρακτήρα είναι ξεχωριστό καθαρό κοντινό προσώπου και ολόσωμη εικόνα.\n\n### Συμπεριφορές για επιθεώρηση πριν από μοντάζ\n\nΟ οδηγός τεκμηριώνει ανεπιθύμητους υπότιτλους, λογότυπα, διπλούς χαρακτήρες και απόκλιση ύφους. Το καθαρό αρχικό υλικό, οι συνεπείς ετικέτες και οι ρητοί περιορισμοί μειώνουν αυτούς τους κινδύνους, αλλά δεν εγγυώνται ότι θα εξαφανιστούν ανεπιθύμητο κείμενο ή διπλές φιγούρες. Περισσότερα από τέσσερα άτομα αναφοράς αναφέρονται ως κίνδυνος σταθερότητας, διακριτός από τον αριθμό αρχείων που δέχεται το μοντέλο.\n\nΗ επέκταση βίντεο μπορεί να δημιουργήσει άλμα ή επιστροφή στην ένωση και οι επαναλαμβανόμενες συνέχειες μπορούν να συσσωρεύσουν υποβάθμιση ποιότητας εικόνας. Επιθεωρήστε τα οριακά καρέ και περιορίστε τις διαδοχικές επεκτάσεις. Μια φωνή αναφοράς μπορεί να διαφέρει από την αρχική χροιά· η αφήγηση μπορεί να τελειώσει με κλικ ή απότομη διακοπή, για την οποία το σταδιακό σβήσιμο ήχου είναι τεκμηριωμένη λύση. Οι κινεζικοί πολυφωνικοί, ασυνήθιστοι ή οπτικά παρόμοιοι χαρακτήρες μπορεί να προφερθούν λανθασμένα. Για ακριβές κινούμενο εφέ, όπως αντίστροφη μέτρηση, μια αναφορά κίνησης παρέχει περισσότερες πληροφορίες από ένα απλό λεκτικό αίτημα. Αυτοί είναι συγκεκριμένοι λόγοι για ξεχωριστό έλεγχο ταυτότητας, κειμένου, κίνησης και ήχου κατά την επιλογή αποσπάσματος.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "85fe2a633055cb1ac5f27906efe7521ed06c7f5e7eea9594bf247f90cfc5aee2",
    "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 2.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>ByteDance /</span><code>bytedance/seedance-2.0</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|bytedance%2Fseedance-2.0\">Βίντεο</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\">Το ByteDance Seedance 2.0 συνδυάζει εγγενή παραγωγή ήχου και βίντεο με αναφορές εικόνας, βίντεο και ήχου. Σκηνοθετήστε νέες σκηνές, επεξεργαστείτε υπάρχον υλικό ή επεκτείνετε μια ακολουθία· η τυπική έκδοση περιλαμβάνει τεκμηριωμένη έξοδο 1080p και 4K 10-bit.</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 2.0 είναι το τυπικό μοντέλο της ByteDance Seed για πολυτροπική δημιουργία ήχου και βίντεο. Συνδυάζει κείμενο, εικόνες, βίντεο και ήχο σε αρχιτεκτονική κοινής παραγωγής, με ξεχωριστές δημιουργικές ροές για σκηνές βάσει αναφορών, επεξεργασία και επέκταση βίντεο. Είναι χρήσιμο όταν η οδηγία χρειάζεται τόσο συνεκτική ερμηνεία όσο και συγκεκριμένες οπτικές ή ηχητικές πληροφορίες από προετοιμασμένα υλικά.</p><h4>Πολυτροπικές αναφορές και σκηνοθετικός έλεγχος</h4><p>Οι εικόνες μπορούν να ορίζουν την εμφάνιση θέματος, το οπτικό ύφος και τη σύνθεση. Οι αναφορές βίντεο μπορούν να καθοδηγούν δράση, κίνηση κάμερας και εφέ. Ο ήχος μπορεί να καθοδηγεί χροιά φωνής, μουσική ή διάλογο. Ορίστε τον ρόλο κάθε υλικού και έπειτα περιγράψτε τη σκηνή που πρέπει να προκύψει. Ο κατασκευαστής δίνει έμφαση στον έλεγχο ερμηνείας, φωτισμού, σκιών και κινηματογραφικής γλώσσας.</p><p>Για μια ιστορία προϊόντος, προετοιμάστε εικόνα προϊόντος, αναφορά κίνησης κάμερας και ηχητική οδηγία. Μια οδηγία θα μπορούσε να είναι: «Διατηρήστε το μπλε γυάλινο βάζο του Image 1. Χρησιμοποιήστε την αργή πλάγια κίνηση παρακολούθησης του Video 1. Το βάζο βρίσκεται σε ένα ηλιόλουστο ράφι, με απαλή οργανική μουσική βάσει του Audio 1». Η επιδιωκόμενη έξοδος είναι μια νέα σκηνοθετημένη σκηνή που συνδυάζει επιλεγμένες πληροφορίες αναφοράς.</p><p>Οι είσοδοι αναφοράς μπορούν να συνδυάζουν εικόνα και ήχο, εικόνα και βίντεο, βίντεο και ήχο ή και τους τρεις τύπους. Δεν υποστηρίζονται είσοδος μόνο ήχου και κείμενο μαζί με ήχο χωρίς εικόνα ή βίντεο. Τεκμηριώνονται επίσης η παραδοσιακή μετατροπή κειμένου σε βίντεο, η παραγωγή από πρώτο καρέ και η παραγωγή από πρώτο και τελευταίο καρέ. Αν είναι σημαντικές οι σταθερές αρχικές και τελικές συνθέσεις, χρησιμοποιήστε την ειδική ροή ορίων: η ονομασία μιας εικόνας αναφοράς ως τελικού σημείου μέσα σε προτροπή omni-reference είναι μόνο έμμεσος τρόπος καθοδήγησης.</p><h4>Επεξεργασία υλικού</h4><p>Το μοντέλο μπορεί να αντικαθιστά θέμα, να προσθέτει ή να αφαιρεί αντικείμενα, να αλλάζει στοιχεία και να επανασχεδιάζει ή να επισκευάζει μέρη βίντεο. Περιγράψτε τη συγκεκριμένη αλλαγή και προσδιορίστε το αρχικό υλικό. Για προσθήκη, συμπεριλάβετε χρόνο εμφάνισης και θέση· για αφαίρεση ή αντικατάσταση, δηλώστε με ακρίβεια το αντικείμενο και κατονομάστε όσα πρέπει να διατηρηθούν.</p><p>Για παράδειγμα: «Αντικαταστήστε το φωτιστικό γραφείου του Video 1 με το ορειχάλκινο φωτιστικό του Image 1. Διατηρήστε την κίνηση κάμερας, τη διάταξη γραφείου και την κατεύθυνση φωτισμού». Το επιθυμητό αποτέλεσμα είναι επεξεργασμένη εκδοχή της σκηνής με την προβλεπόμενη αντικατάσταση. Επιθεωρήστε τις αμετάβλητες περιοχές καθώς και το νέο αντικείμενο, ιδιαίτερα κατά την απόκρυψη, την κίνηση και τις αλλαγές πλάνων.</p><h4>Επέκταση και σύνδεση ακολουθίας</h4><p>Το Seedance 2.0 μπορεί να επεκτείνει ένα βίντεο προς τα εμπρός ή πίσω και να συνδέσει έως τρία παρεχόμενα αποσπάσματα με παραγόμενες μεταβάσεις. Προσδιορίστε τη χρονική κατεύθυνση και το νέο συμβάν. Για γέφυρα, βάλτε τα αποσπάσματα με σειρά και περιγράψτε τη μετάβαση μεταξύ κάθε ζεύγους, όπως μια κάμερα που εισέρχεται σε πόρτα σε ένα πλάνο και φτάνει στο επόμενο περιβάλλον.</p><p>Μια απλή επέκταση συνήθως επιστρέφει τη συνέχεια που αναπτύχθηκε γύρω από το αρχικό υλικό· συμπεριλάβετε σαφή οδηγία αν το τελικό αποτέλεσμα πρέπει επίσης να επαναλαμβάνει το αρχικό τμήμα. Κατά την ολοκλήρωση σύνδεσης δύο ή τριών αποσπασμάτων, η τεκμηριωμένη ροή μπορεί να περιλαμβάνει τόσο αρχικό υλικό όσο και νέο περιεχόμενο μετάβασης. Αυτό είναι χρήσιμο για ανάπτυξη αρχής ή τέλους ή σύνδεση έτοιμων σκηνών χωρίς να μένει απροσδιόριστη η ενωτική δράση.</p><h4>Έξοδος τυπικής έκδοσης και 4K</h4><p>Η τυπική έκδοση τεκμηριώνει MP4 στα 24 fps και διάρκειες από 4 έως 15 δευτερόλεπτα. Τα επίπεδα εξόδου είναι 480p, 720p και 1080p με βάθος χρώματος 8-bit, καθώς και 4K με βάθος χρώματος 10-bit. Οι υποστηριζόμενες αναλογίες είναι 21:9, 16:9, 4:3, 1:1, 3:4 και 9:16. Τεκμηριώνονται επίσης προσαρμοστικό καδράρισμα και αυτόματη επιλογή διάρκειας. Η έκδοση Fast έχει δική της στενότερη προδιαγραφή εξόδου 480p/720p.</p><p>Η έξοδος 4K χρησιμοποιεί κωδικοποίηση H.265/HEVC. Η κωδικοποίηση δέκα bit διατηρεί πρόσθετες τονικές διαβαθμίσεις και ομαλότερες χρωματικές μεταβάσεις, κάτι που έχει σημασία για υλικό με λεπτές διαβαθμίσεις φωτός ή χρώματος. Ελέγξτε ότι το προβλεπόμενο περιβάλλον αναπαραγωγής και μοντάζ μπορεί να αποκωδικοποιήσει αυτή τη μορφή· ορισμένοι φυλλομετρητές και συσκευές δεν την αναπαράγουν απευθείας. Ένας συμβατός περιέκτης δεν εξασφαλίζει από μόνος του συμβατή αποκωδικοποίηση βίντεο.</p><p>Το μοντέλο μπορεί να παράγει συγχρονισμένο ήχο ή σιωπηλό βίντεο και να επιστρέφει το τελευταίο παραγόμενο καρέ για επόμενη σκηνή. Ο παραγόμενος ήχος είναι μονοφωνικός. Η οικογένεια 2.0 δεν υποστηρίζει την ξεχωριστή λειτουργία προεπισκόπησης Draft δύο σταδίων, επομένως αυτή η δυνατότητα δεν πρέπει να συνάγεται από άλλη έκδοση Seedance.</p><h4>Προετοιμασία αναφορών και ουσιαστικά όρια</h4><p>Η τεκμηριωμένη χωρητικότητα αναφορών είναι έως εννέα εικόνες, τρία βίντεο και τρία αποσπάσματα ήχου. Στο συγκεκριμένο τεκμηριωμένο προφίλ του κατασκευαστή δεν γίνονται δεκτές απευθείας μεταφορτώσεις εικόνων ή βίντεο αναφοράς που περιέχουν πραγματικά ανθρώπινα πρόσωπα· οι εργασίες πορτρέτων χρησιμοποιούν την υποστηριζόμενη ροή στοιχείων πορτρέτου. Κάθε απόσπασμα βίντεο και ήχου πρέπει να διαρκεί 2–15 δευτερόλεπτα. Όλες οι αναφορές βίντεο μαζί πρέπει να χωρούν σε 15 δευτερόλεπτα και όλες οι αναφορές ήχου έχουν δικό τους συνολικό όριο 15 δευτερολέπτων. Τα αρχεία βίντεο χρησιμοποιούν MP4 ή MOV στα 24–60 fps, έως 200 MB το καθένα· τα αρχεία ήχου χρησιμοποιούν WAV ή MP3, έως 15 MB το καθένα. Οι καταγεγραμμένες μορφές εικόνας είναι JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC και HEIF. Κάθε εικόνα πρέπει να είναι μικρότερη από 30 MB και το σώμα αιτήματος να μην υπερβαίνει τα 64 MB. Στο τεκμηριωμένο προφίλ εισόδου αναφορών, το πλάτος και το ύψος εικόνας πρέπει να είναι αυστηρά μεταξύ 300 και 6.000 pixel, με λόγο πλάτους προς ύψος αυστηρά μεταξύ 0.4 και 2.5. Τα βίντεο αναφοράς επιτρέπουν 300–6.000 pixel σε κάθε διάσταση και αναλογίες 0.4–2.5, συμπεριλαμβανομένων των ορίων, με συνολικά 407.696–8.295.044 pixel. Τα βίντεο MP4 ή MOV χρησιμοποιούν βίντεο H.264/AVC ή H.265/HEVC και ήχο AAC ή MP3.</p><p>Βάλτε τα αρχεία σκόπιμα σε σειρά και αναφερθείτε στο καθένα με τον τύπο μέσου και τον αριθμό του: Image 1, Video 1 και Audio 1. Ο αριθμός ακολουθεί τη σειρά μεταξύ αρχείων αυτού του τύπου. Εξηγήστε ποια χαρακτηριστικά μεταφέρονται και ποιο περιεχόμενο πηγής δεν πρέπει να ορίζει τη νέα σκηνή. Οι τεκμηριωμένες γλώσσες προτροπών περιλαμβάνουν αγγλικά, ισπανικά, ινδονησιακά, πορτογαλικά και ιαπωνικά. Διατηρήστε συνεπή την εκφωνούμενη γλώσσα σε διάλογο· ο οδηγός συνιστά να αποφεύγεται η ανάμειξη γλωσσών, εκτός από κύρια ονόματα. Για εργασία με φωνητική καθοδήγηση, διαχωρίστε τον ομιλητή, την ακριβή ατάκα και την οδηγία εκφοράς.</p><p>Προετοιμάστε την πρώτη και την τελευταία εικόνα με συμβατό κάδρο. Μια αναντιστοιχία μεταξύ αρχικής εικόνας και διαστάσεων εξόδου μπορεί να προκαλέσει περικοπή ή απότομη οπτική αλλαγή· οι ίδιες διαστάσεις και το προσαρμοστικό καδράρισμα είναι τεκμηριωμένες λύσεις. Εστιάστε την περιγραφή στο συμβάν και στους ρόλους αναφορών. Ο κατασκευαστής προειδοποιεί ότι οι μεγάλες προτροπές μπορεί να διασκορπίσουν τις πληροφορίες, με αποτέλεσμα να αγνοούνται λεπτομέρειες. Ελέγξτε την κίνηση που προκύπτει, τη συνέχεια αναφορών, την ηχητική ερμηνεία και τις ενώσεις σκηνών ως διακριτά μέρη του δημιουργικού αποτελέσματος.</p><h4>Σχεδιασμός πλάνων και κατεύθυνση κειμένου</h4><p>Για μια σύνθετη σκηνή, οργανώστε την οδηγία ως Shot 1, Shot 2 και Shot 3, προσδιορίζοντας κάμερα, δράση θέματος, θέση και ήχο με σειρά. Ο οδηγός συνιστά μία κίνηση κάμερας ανά πλάνο και προτεραιότητα σε αργές, συνδεδεμένες ενέργειες. Οι ακριβείς χρονικές σημάνσεις ανά πλάνο είναι ασταθείς, επομένως μια ακολουθία γεγονότων αποτελεί καλύτερο έλεγχο από την επιβολή πολλών ακριβών χρονικών παραθύρων.</p><p>Το μοντέλο παράγει επίσης συνηθισμένο κείμενο, όπως συνθήματα, υπότιτλους και συννεφάκια ομιλίας. Μπορείτε να κατευθύνετε το χρώμα, την οπτική απόδοση, τη θέση και την εμφάνισή του. Χρησιμοποιήστε συνηθισμένους χαρακτήρες αντί σπάνιων χαρακτήρων ή ειδικών συμβόλων και ελέγξτε τη διατύπωση καθώς κινείται. Για αναφορές θέματος, συνδέστε σαφώς κάθε στοιχείο με τον προβλεπόμενο χαρακτήρα ή αντικείμενο. Οι όψεις προϊόντος μπορούν να παρέχουν διαφορετικές οπτικές πληροφορίες· τα κολάζ πολλαπλών όψεων χαρακτήρα μπορούν να προκαλέσουν σύγχυση στην ταυτότητα προσώπου. Η τεκμηριωμένη σύσταση αναφοράς χαρακτήρα είναι ξεχωριστό καθαρό κοντινό προσώπου και ολόσωμη εικόνα.</p><h4>Συμπεριφορές για επιθεώρηση πριν από μοντάζ</h4><p>Ο οδηγός τεκμηριώνει ανεπιθύμητους υπότιτλους, λογότυπα, διπλούς χαρακτήρες και απόκλιση ύφους. Το καθαρό αρχικό υλικό, οι συνεπείς ετικέτες και οι ρητοί περιορισμοί μειώνουν αυτούς τους κινδύνους, αλλά δεν εγγυώνται ότι θα εξαφανιστούν ανεπιθύμητο κείμενο ή διπλές φιγούρες. Περισσότερα από τέσσερα άτομα αναφοράς αναφέρονται ως κίνδυνος σταθερότητας, διακριτός από τον αριθμό αρχείων που δέχεται το μοντέλο.</p><p>Η επέκταση βίντεο μπορεί να δημιουργήσει άλμα ή επιστροφή στην ένωση και οι επαναλαμβανόμενες συνέχειες μπορούν να συσσωρεύσουν υποβάθμιση ποιότητας εικόνας. Επιθεωρήστε τα οριακά καρέ και περιορίστε τις διαδοχικές επεκτάσεις. Μια φωνή αναφοράς μπορεί να διαφέρει από την αρχική χροιά· η αφήγηση μπορεί να τελειώσει με κλικ ή απότομη διακοπή, για την οποία το σταδιακό σβήσιμο ήχου είναι τεκμηριωμένη λύση. Οι κινεζικοί πολυφωνικοί, ασυνήθιστοι ή οπτικά παρόμοιοι χαρακτήρες μπορεί να προφερθούν λανθασμένα. Για ακριβές κινούμενο εφέ, όπως αντίστροφη μέτρηση, μια αναφορά κίνησης παρέχει περισσότερες πληροφορίες από ένα απλό λεκτικό αίτημα. Αυτοί είναι συγκεκριμένοι λόγοι για ξεχωριστό έλεγχο ταυτότητας, κειμένου, κίνησης και ήχου κατά την επιλογή αποσπάσματος.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Βίντεο</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code>, <code>image</code>, <code>audio</code></dd></div><div><dt>Έξοδος</dt><dd><code>video</code></dd></div><div><dt>Μορφή εξόδου</dt><dd>αρχικά byte του MP4· χωρίς κανονικοποίηση ή διακωδικοποίηση</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>bytedance/seedance-2.0</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></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>4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</div><div>Ελάχιστο: 1</div><div>Μέγιστο: 600</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>480p, 720p, 1080p, 4K</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>1:1, 3:4, 9:16, 4:3, 16:9, 21:9, 9:21</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>boolean</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>false, true</div><div>Συνθήκες: Στα 480p και 720p, η παράλειψη του generate_audio επιλέγει την τιμή με ήχο και το false επιλέγει την τιμή χωρίς ήχο. Στα 1080p και 4K, η τιμή της ανάλυσης ισχύει και για τις δύο ρυθμίσεις. Ελέγξτε το has_audio στο αποτέλεσμα για το ηχητικό κομμάτι που επιστρέφεται.</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\">frame_images</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>Ελάχιστο πλήθος στοιχείων: 1</div><div>Μέγιστο πλήθος στοιχείων: 2</div><div>Περιεχόμενο εισόδου: Πίνακας αντικειμένων καρέ. Κάθε αντικείμενο έχει type=image_url, image_url που περιέχει url και frame_type=first_frame ή last_frame. Κάθε ρόλος εμφανίζεται το πολύ μία φορά. Χρησιμοποιήστε δημόσια HTTPS URL.</div><div>Ακριβή κλειδιά: type, image_url, frame_type</div><div>Συνθήκες: Αυτά τα κλειδιά ισχύουν για κάθε αντικείμενο καρέ. Παραλείψτε το frame_images για αίτημα μόνο με κείμενο.</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\">input_references</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>array</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Περιεχόμενο εισόδου: Πίνακας αντικειμένων αναφοράς εικόνας ή ήχου. Ορίστε το type σε image_url ή audio_url και δώστε το αντίστοιχο αντικείμενο URL που περιέχει url. Οι αναφορές βίντεο εξακολουθούν να μην μπορούν να τιμολογηθούν.</div><div>Συνθήκες: Παραλείψτε το frame_images για να χρησιμοποιήσετε λειτουργία αναφορών. Χρησιμοποιήστε δημόσια HTTPS URL.</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\">size</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>480x480, 480x640, 480x854, 640x480, 854x480, 1120x480, 720x720, 720x960, 720x1280, 720x1680, 960x720, 1280x720, 1680x720, 1080x1080, 1080x1440, 1080x1920, 1440x1080, 1920x1080, 2520x1080, 3840x2160, 2160x3840, 2160x2160, 2880x2160, 2160x2880, 5040x2160</div><div>Μοτίβο: ^[1-9][0-9]*x[1-9][0-9]*$</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\">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>Ελάχιστο: -9.223.372.036.854.775.808</div><div>Μέγιστο: 9.223.372.036.854.775.807</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\">callback_url</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>Μοτίβο: ^https://</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\">session_id</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></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\">trace</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>object</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">user</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></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Συνδυασμοί υλικών εισόδου</summary><p class=\"note-s\"><b>Κείμενο σε βίντεο</b> · Μια γραπτή προτροπή. · Υποχρεωτικό: model, prompt, duration</p><p class=\"note-s\"><code>Δώστε προτροπή κειμένου και υποστηριζόμενη διάρκεια σε ακέραια δευτερόλεπτα. Χρησιμοποιήστε ακριβές αναγραφόμενο μέγεθος ή ανάλυση και αναλογία διαστάσεων που αντιστοιχούν σε αναγραφόμενες διαστάσεις.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Τύπος: string · bytedance/seedance-2.0</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Τύπος: string · Μέγιστο πλήθος byte UTF-8: 10.000 · Απαιτείται περιεχόμενο πέρα από κενά διαστήματα: Ναι</p><p class=\"note-s\"><b>Εικόνα σε βίντεο</b> · Μια γραπτή προτροπή και μια εικόνα καρέ. · Υποχρεωτικό: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>Το frame_images είναι πίνακας αντικειμένων με type=image_url, image_url που περιέχει url και frame_type. Χρησιμοποιήστε δημόσιο HTTPS URL εικόνας· τα first_frame και last_frame μπορούν να εμφανιστούν από μία φορά το καθένα. Χρησιμοποιήστε αναγραφόμενο μέγεθος εξόδου ή συμβατές διαστάσεις. Μην προσθέτετε αναφορές βίντεο.</code></p><p class=\"note-s\">Ακριβή κλειδιά: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Τύπος: string · bytedance/seedance-2.0</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Τύπος: string · Μέγιστο πλήθος byte UTF-8: 10.000 · Απαιτείται περιεχόμενο πέρα από κενά διαστήματα: Ναι</p><p class=\"note-s\"><b>Reference to video</b> · Μια γραπτή προτροπή και αναφορές εικόνας ή ήχου. · Υποχρεωτικό: model, prompt, duration, input_references</p><p class=\"note-s\"><code>Το input_references είναι πίνακας. Κάθε αντικείμενο έχει type=image_url ή type=audio_url και ένα αντίστοιχο αντικείμενο URL που περιέχει url. Χρησιμοποιήστε δημόσιους συνδέσμους HTTPS. Παραλείψτε το frame_images για να επιλέξετε λειτουργία αναφορών. Οι αναφορές βίντεο δεν μπορούν να τιμολογηθούν.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Τύπος: string · bytedance/seedance-2.0</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Τύπος: string · Μέγιστο πλήθος byte UTF-8: 10.000 · Απαιτείται περιεχόμενο πέρα από κενά διαστήματα: Ναι</p></details><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>content_type</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>application/json</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>required</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>model, prompt, duration</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, audio</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>additional_properties</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>false</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>optional_controls</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>Κύκλος ζωής: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Τιμολόγηση</h3><div class=\"card-result-process\" data-billing-basis><h5>Πώς υπολογίζεται η τελική χρέωση</h5><p class=\"note-s\">Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.</p><dl data-price-conditions><dt>Γρήγορη λειτουργία</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η γρήγορη λειτουργία</span></dd><dt>Λειτουργία flex</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η λειτουργία flex</span></dd><dt>Μέγιστη προσπάθεια συλλογισμού</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Εκτιμώμενες χρεώσεις για σύγκριση</h4><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Πίνακας χρεώσεων</th><th>Προβλεπόμενη ποσότητα</th><th>Μονάδα τιμολόγησης</th><th>Συνθήκες χρέωσης</th><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><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>Τιμή 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>ανά 1K token βίντεο</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>$0.014</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>ανά 1K token βίντεο</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>resolution: 1080p</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή ανά token βίντεο · Εκτίμηση μόνο για σύγκριση</span> <b>$0.0154</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>ανά 1K token βίντεο</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>είσοδος: with_video_input; ανάλυση: 1080p</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>reference · Τιμή ανά token βίντεο · Εκτίμηση μόνο για σύγκριση</span> <b>$0.0094</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>ανά 1K token βίντεο</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>resolution: 4k</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή ανά token βίντεο · Εκτίμηση μόνο για σύγκριση</span> <b>$0.008</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>ανά 1K token βίντεο</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>είσοδος: with_video_input; ανάλυση: 4k</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>reference · Τιμή ανά token βίντεο · Εκτίμηση μόνο για σύγκριση</span> <b>$0.0048</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>ανά 1K token βίντεο</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>είσοδος: with_video_input</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>reference · Τιμή ανά token βίντεο · Εκτίμηση μόνο για σύγκριση</span> <b>$0.0086</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>ανά 1K token βίντεο</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>ήχος: without_audio</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή ανά token βίντεο · Εκτίμηση μόνο για σύγκριση</span> <b>$0.014</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Εκτιμώμενο κόστος δημιουργίας</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>εκτίμηση για μία δημιουργία</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>—</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτιμώμενο κόστος δημιουργίας · Εκτίμηση μόνο για σύγκριση</span> <b>$0.3024</b> <span class=\"price-unit\">εκτίμηση πριν από τη δημιουργία</span></div><p class=\"note-s\">Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. <a href=\"/docs/el/billing/reserve/\">Πώς λειτουργούν η δέσμευση και η εκκαθάριση →</a></p><div data-declared-reference-pricing><h4>Στοιχεία τιμοκαταλόγου αναφοράς</h4><p class=\"note-s\">Οι πίνακες αναφοράς του μοντέλου δεν αλλάζουν την επιλογή μεθόδου, τις εκτιμήσεις τιμής ή τις χρεώσεις. Οι εφαρμοζόμενες χρεώσεις χρησιμοποιούν τις τιμές της επιλεγμένης μεθόδου Ailoot.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Τιμές αναφοράς για διαμορφώσεις βίντεο</summary><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Συνθήκες χρέωσης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Τιμή token βίντεο</th><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>$0.014</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>resolution: 4k</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή ανά token βίντεο</span> <b>$0.008</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>resolution: 1080p</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή ανά token βίντεο</span> <b>$0.0154</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>ήχος: without_audio</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή ανά token βίντεο</span> <b>$0.014</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>είσοδος: with_video_input</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>reference · Τιμή ανά token βίντεο</span> <b>$0.0086</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>είσοδος: with_video_input; ανάλυση: 4k</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>reference · Τιμή ανά token βίντεο</span> <b>$0.0048</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr><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>είσοδος: with_video_input; ανάλυση: 1080p</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>reference · Τιμή ανά token βίντεο</span> <b>$0.0094</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div><p class=\"note-s\">Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Παραδείγματα αιτημάτων</h3><h4>Ailoot Ultra · Βίντεο</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1131-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1131-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · δημιουργήστε βίντεο</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1131-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1131-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;model&quot;:&quot;bytedance/seedance-2.0&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;duration&quot;:4,&quot;resolution&quot;:&quot;480p&quot;,&quot;size&quot;:&quot;480x480&quot;,&quot;generate_audio&quot;:false}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · Βίντεο</h4><p class=\"note-s\">υπογεγραμμένα URL περιεχομένου που σας ανήκει</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_id}/content</code></li></ul><h5>Έλεγχος κατάστασης εργασίας</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1132-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1132-panel-0\" aria-selected=\"true\" tabindex=\"0\">Λήψη της κατάστασης της αρχικής ενέργειας με GET</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1132-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1132-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>Άλλες ανακτήσεις περιεχομένου</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1133-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1133-panel-0\" aria-selected=\"true\" tabindex=\"0\">Αποθηκεύστε κάθε ολοκληρωμένο αποτέλεσμα που σας ανήκει</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1133-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1133-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε κάθε πραγματική έξοδο που σας ανήκει και τα μετρημένα μεταδεδομένα που επιστρέφονται μαζί της.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">503 result_pending_check + αρχικό id + X-Should-Retry:false· μην επαναλάβετε ποτέ το αρχικό αίτημα</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><th>Σημασία</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Θέση αυτού του βίντεο στη λίστα εξόδων, με αρίθμηση από το μηδέν.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Υπογεγραμμένο HTTPS URL λήψης για αυτό το ολοκληρωμένο βίντεο.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Σύνοψη SHA-256 των αρχικών byte βίντεο· null αν δεν είναι διαθέσιμη.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Μέγεθος του αρχικού αρχείου βίντεο σε byte· null αν δεν είναι διαθέσιμο.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Μετρημένη διάρκεια βίντεο σε χιλιοστά του δευτερολέπτου· null αν δεν είναι διαθέσιμη.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Πλάτος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Ύψος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Αναγνωριστικό κωδικοποιητή βίντεο· null αν δεν έχει καταγραφεί.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>boolean | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Αν το βίντεο περιέχει ηχητικό κομμάτι· null αν δεν έχει μετρηθεί.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Αναγνωριστικό κωδικοποιητή ήχου· null όταν δεν έχει καταγραφεί αναγνωριστικό.</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>404 · <code>not_found_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η πρόσβαση στο βίντεο δεν είναι διαθέσιμη ή αυτό το ID βίντεο δεν βρέθηκε.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγξτε την πρόσβαση στο βίντεο. Για υπάρχον βίντεο, χρησιμοποιήστε το αρχικό δημόσιο ID του και το ίδιο κλειδί API.</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 δεν αντιστοιχεί στον ταυτοποιημένο λογαριασμό.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγξτε το κλειδί API και την πρόσβαση του λογαριασμού σας πριν υποβάλετε αίτημα.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Δεν ήταν δυνατή η ανάγνωση του αιτήματος ή ο δείκτης λήψης δεν είναι έγκυρος.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διορθώστε το σώμα αιτήματος. Για λήψη, επιλέξτε δείκτη εξόδου που επιστράφηκε από την αρχική εργασία.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η επιλεγμένη διαμόρφωση βίντεο δεν μπορεί να τιμολογηθεί.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Επιλέξτε μια υποστηριζόμενη διαμόρφωση βίντεο και συμπληρώστε τις απαιτούμενες επιλογές της πριν υποβάλετε διορθωμένο αίτημα.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Μια είσοδος βίντεο ή η αρχική εργασία συνέχισης δεν είναι έγκυρη.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Χρησιμοποιήστε έγκυρες εισόδους HTTPS. Για συνέχιση, χρησιμοποιήστε το δημόσιο ID του ολοκληρωμένου αρχικού σας βίντεο με το ίδιο κλειδί API.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>402 · <code>billing_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το διαθέσιμο υπόλοιπο ή τα όρια δεν επιτρέπουν δέσμευση ποσού.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγξτε το διαθέσιμο υπόλοιπο και τα όριά σας πριν στείλετε νέο αίτημα.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>server_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η επαλήθευση βίντεο, η αποθήκευση ή η πρόσβαση στην υπηρεσία είναι προσωρινά μη διαθέσιμη.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Περιμένετε να γίνει διαθέσιμη η υπηρεσία. Αν έχετε ήδη ID βίντεο, ελέγξτε αυτή την αρχική εργασία αντί να ξεκινήσετε άλλη δημιουργία.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το αρχικό αποτέλεσμα βίντεο και η χρέωση χρειάζονται έλεγχο.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε το ID βίντεο που επιστρέφεται και ελέγξτε αυτή την εργασία. Μην στέλνετε νέο αίτημα δημιουργίας για αντικατάσταση όσο διαρκεί ο έλεγχος.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η λήψη του υπάρχοντος βίντεο είναι προσωρινά μη διαθέσιμη.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγξτε αργότερα την ίδια εργασία βίντεο και κατεβάστε την υπάρχουσα έξοδό της. Μια νέα δημιουργία παράγει ξεχωριστή λειτουργία.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το περιεχόμενο βίντεο δεν έχει δημοσιευτεί.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγξτε την κατάσταση της αρχικής εργασίας. Κατεβάστε το αποτέλεσμα όταν αναφέρει completed· αν αναφέρει failed, ακολουθήστε την ειδοποίησή της για έλεγχο χρέωσης.</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=bytedance%2Fseedance-2.0&amp;route=Ultra&amp;caller=bytedance%2Fseedance-2.0&amp;fmt=videos\"><code>bytedance/seedance-2.0</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\">Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.</p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=bytedance%2Fseedance-2.0&amp;route=Ultra&amp;caller=bytedance%2Fseedance-2.0&amp;fmt=videos\"><code>bytedance/seedance-2.0</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "bytedance/seedance-2.0",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "bytedance/seedance-2.0",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|bytedance%2Fseedance-2.0",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Διατηρήστε κάθε πραγματική έξοδο που σας ανήκει και τα μετρημένα μεταδεδομένα που επιστρέφονται μαζί της.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Η πρόσβαση στο βίντεο δεν είναι διαθέσιμη ή αυτό το ID βίντεο δεν βρέθηκε.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε την πρόσβαση στο βίντεο. Για υπάρχον βίντεο, χρησιμοποιήστε το αρχικό δημόσιο ID του και το ίδιο κλειδί API.",
                "type": "not_found_error"
              },
              {
                "condition": "Το κλειδί API δεν αντιστοιχεί στον ταυτοποιημένο λογαριασμό.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε το κλειδί API και την πρόσβαση του λογαριασμού σας πριν υποβάλετε αίτημα.",
                "type": "authentication_error"
              },
              {
                "condition": "Δεν ήταν δυνατή η ανάγνωση του αιτήματος ή ο δείκτης λήψης δεν είναι έγκυρος.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Διορθώστε το σώμα αιτήματος. Για λήψη, επιλέξτε δείκτη εξόδου που επιστράφηκε από την αρχική εργασία.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Η επιλεγμένη διαμόρφωση βίντεο δεν μπορεί να τιμολογηθεί.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Επιλέξτε μια υποστηριζόμενη διαμόρφωση βίντεο και συμπληρώστε τις απαιτούμενες επιλογές της πριν υποβάλετε διορθωμένο αίτημα.",
                "type": "price_unavailable"
              },
              {
                "condition": "Μια είσοδος βίντεο ή η αρχική εργασία συνέχισης δεν είναι έγκυρη.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Χρησιμοποιήστε έγκυρες εισόδους HTTPS. Για συνέχιση, χρησιμοποιήστε το δημόσιο ID του ολοκληρωμένου αρχικού σας βίντεο με το ίδιο κλειδί API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Το διαθέσιμο υπόλοιπο ή τα όρια δεν επιτρέπουν δέσμευση ποσού.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε το διαθέσιμο υπόλοιπο και τα όριά σας πριν στείλετε νέο αίτημα.",
                "type": "billing_error"
              },
              {
                "condition": "Η επαλήθευση βίντεο, η αποθήκευση ή η πρόσβαση στην υπηρεσία είναι προσωρινά μη διαθέσιμη.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Περιμένετε να γίνει διαθέσιμη η υπηρεσία. Αν έχετε ήδη ID βίντεο, ελέγξτε αυτή την αρχική εργασία αντί να ξεκινήσετε άλλη δημιουργία.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Το αρχικό αποτέλεσμα βίντεο και η χρέωση χρειάζονται έλεγχο.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Διατηρήστε το ID βίντεο που επιστρέφεται και ελέγξτε αυτή την εργασία. Μην στέλνετε νέο αίτημα δημιουργίας για αντικατάσταση όσο διαρκεί ο έλεγχος.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Η λήψη του υπάρχοντος βίντεο είναι προσωρινά μη διαθέσιμη.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Ελέγξτε αργότερα την ίδια εργασία βίντεο και κατεβάστε την υπάρχουσα έξοδό της. Μια νέα δημιουργία παράγει ξεχωριστή λειτουργία.",
                "type": "server_error"
              },
              {
                "condition": "Το περιεχόμενο βίντεο δεν έχει δημοσιευτεί.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε την κατάσταση της αρχικής εργασίας. Κατεβάστε το αποτέλεσμα όταν αναφέρει completed· αν αναφέρει failed, ακολουθήστε την ειδοποίησή της για έλεγχο χρέωσης.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + αρχικό id + X-Should-Retry:false· μην επαναλάβετε ποτέ το αρχικό αίτημα"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Δώστε προτροπή κειμένου και υποστηριζόμενη διάρκεια σε ακέραια δευτερόλεπτα. Χρησιμοποιήστε ακριβές αναγραφόμενο μέγεθος ή ανάλυση και αναλογία διαστάσεων που αντιστοιχούν σε αναγραφόμενες διαστάσεις.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Μια γραπτή προτροπή."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Το frame_images είναι πίνακας αντικειμένων με type=image_url, image_url που περιέχει url και frame_type. Χρησιμοποιήστε δημόσιο HTTPS URL εικόνας· τα first_frame και last_frame μπορούν να εμφανιστούν από μία φορά το καθένα. Χρησιμοποιήστε αναγραφόμενο μέγεθος εξόδου ή συμβατές διαστάσεις. Μην προσθέτετε αναφορές βίντεο.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Μια γραπτή προτροπή και μια εικόνα καρέ."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Το input_references είναι πίνακας. Κάθε αντικείμενο έχει type=image_url ή type=audio_url και ένα αντίστοιχο αντικείμενο URL που περιέχει url. Χρησιμοποιήστε δημόσιους συνδέσμους HTTPS. Παραλείψτε το frame_images για να επιλέξετε λειτουργία αναφορών. Οι αναφορές βίντεο δεν μπορούν να τιμολογηθούν.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Μια γραπτή προτροπή και αναφορές εικόνας ή ήχου."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Θέση αυτού του βίντεο στη λίστα εξόδων, με αρίθμηση από το μηδέν.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Υπογεγραμμένο HTTPS URL λήψης για αυτό το ολοκληρωμένο βίντεο.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Σύνοψη SHA-256 των αρχικών byte βίντεο· null αν δεν είναι διαθέσιμη.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Μέγεθος του αρχικού αρχείου βίντεο σε byte· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Μετρημένη διάρκεια βίντεο σε χιλιοστά του δευτερολέπτου· null αν δεν είναι διαθέσιμη.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Πλάτος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Ύψος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Αναγνωριστικό κωδικοποιητή βίντεο· null αν δεν έχει καταγραφεί.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Αν το βίντεο περιέχει ηχητικό κομμάτι· null αν δεν έχει μετρηθεί.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Αναγνωριστικό κωδικοποιητή ήχου· null όταν δεν έχει καταγραφεί αναγνωριστικό.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "υπογεγραμμένα URL περιεχομένου που σας ανήκει",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "bytedance/seedance-2.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-2.0"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p",
                  "1080p",
                  "4K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p",
                    "4K"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "4:3",
                  "16:9",
                  "21:9",
                  "9:21"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Στα 480p και 720p, η παράλειψη του generate_audio επιλέγει την τιμή με ήχο και το false επιλέγει την τιμή χωρίς ήχο. Στα 1080p και 4K, η τιμή της ανάλυσης ισχύει και για τις δύο ρυθμίσεις. Ελέγξτε το has_audio στο αποτέλεσμα για το ηχητικό κομμάτι που επιστρέφεται.",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Αυτά τα κλειδιά ισχύουν για κάθε αντικείμενο καρέ. Παραλείψτε το frame_images για αίτημα μόνο με κείμενο.",
                "content": "Πίνακας αντικειμένων καρέ. Κάθε αντικείμενο έχει type=image_url, image_url που περιέχει url και frame_type=first_frame ή last_frame. Κάθε ρόλος εμφανίζεται το πολύ μία φορά. Χρησιμοποιήστε δημόσια HTTPS URL.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "Παραλείψτε το frame_images για να χρησιμοποιήσετε λειτουργία αναφορών. Χρησιμοποιήστε δημόσια HTTPS URL.",
                "content": "Πίνακας αντικειμένων αναφοράς εικόνας ή ήχου. Ορίστε το type σε image_url ή audio_url και δώστε το αντίστοιχο αντικείμενο URL που περιέχει url. Οι αναφορές βίντεο εξακολουθούν να μην μπορούν να τιμολογηθούν.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "640x480",
                  "854x480",
                  "1120x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "960x720",
                  "1280x720",
                  "1680x720",
                  "1080x1080",
                  "1080x1440",
                  "1080x1920",
                  "1440x1080",
                  "1920x1080",
                  "2520x1080",
                  "3840x2160",
                  "2160x3840",
                  "2160x2160",
                  "2880x2160",
                  "2160x2880",
                  "5040x2160"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1440x1080",
                    "1920x1080",
                    "2520x1080",
                    "3840x2160",
                    "2160x3840",
                    "2160x2160",
                    "2880x2160",
                    "2160x2880",
                    "5040x2160"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "bytedance/seedance-2.0"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p",
                    "4K"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1440x1080",
                    "1920x1080",
                    "2520x1080",
                    "3840x2160",
                    "2160x3840",
                    "2160x2160",
                    "2880x2160",
                    "2160x2880",
                    "5040x2160"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Request geometry is required for the pre-generation estimate and reserve. Returned geometry and track time describe the generated output; final charge follows the actual billed configuration.",
                "Video references with *_with_video_input quantity are rejected; image/audio references only where model reference types admit them."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "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_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0154000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000154",
                "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_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0094000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000094",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000008",
                "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_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "είσοδος: with_video_input; ανάλυση: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k_with_video_input",
                "label": "Video-token price",
                "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": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000086",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "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_token"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.3024",
                "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.3024",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"model\":\"bytedance/seedance-2.0\",\"prompt\":\"A serene mountain landscape at sunset\",\"duration\":4,\"resolution\":\"480p\",\"size\":\"480x480\",\"generate_audio\":false}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "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_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0154000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000154",
                "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_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0094000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000094",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000008",
                "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_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k_with_video_input",
                "label": "Video-token price",
                "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": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000086",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "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_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.3024",
                "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.3024",
                "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": "bytedance/seedance-2.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_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.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000014",
            "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_token"
          },
          {
            "amount": "0.0154000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_1080p",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000154",
            "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_token"
          },
          {
            "amount": "0.0094000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_1080p_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000094",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_4k",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000008",
            "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_token"
          },
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_4k_with_video_input",
            "label": "Video-token price",
            "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": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.0086000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000086",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_without_audio",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000014",
            "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_token"
          },
          {
            "amount": "0.3024",
            "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.3024",
            "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": "bytedance/seedance-2.0",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "2f7e51dd50f9ce0996f017f68c326938ba46ca04cd56fc4254bafb7087bfacb7",
    "input_html_sha256": "94638b164be623d51f348612445d5aa00a94e3fc76d2000461c9e27e2db5eed7",
    "private_audit_sha256": "1e1ccca4946553657582de8134909a1b5ef613cbb5215c561d2d3d0ff34d47d3",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/bytedance-seedance-2-0/",
    "description": "Το ByteDance Seedance 2.0 συνδυάζει εγγενή παραγωγή ήχου και βίντεο με αναφορές εικόνας, βίντεο και ήχου. Σκηνοθετήστε νέες σκηνές, επεξεργαστείτε υπάρχον υλικό ή επεκτείνετε μια ακολουθία· η τυπική έκδοση περιλαμβάνει τεκμηριωμένη έξοδο 1080p και 4K 10-bit.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/bytedance-seedance-2-0/index.md",
    "title": "ByteDance: Seedance 2.0 — Ailoot",
    "url": "https://ailoot.ai/models/el/bytedance-seedance-2-0/"
  },
  "rawModel": {
    "about": "Το Seedance 2.0 είναι το τυπικό μοντέλο της ByteDance Seed για πολυτροπική δημιουργία ήχου και βίντεο. Συνδυάζει κείμενο, εικόνες, βίντεο και ήχο σε αρχιτεκτονική κοινής παραγωγής, με ξεχωριστές δημιουργικές ροές για σκηνές βάσει αναφορών, επεξεργασία και επέκταση βίντεο. Είναι χρήσιμο όταν η οδηγία χρειάζεται τόσο συνεκτική ερμηνεία όσο και συγκεκριμένες οπτικές ή ηχητικές πληροφορίες από προετοιμασμένα υλικά.\n\n### Πολυτροπικές αναφορές και σκηνοθετικός έλεγχος\n\nΟι εικόνες μπορούν να ορίζουν την εμφάνιση θέματος, το οπτικό ύφος και τη σύνθεση. Οι αναφορές βίντεο μπορούν να καθοδηγούν δράση, κίνηση κάμερας και εφέ. Ο ήχος μπορεί να καθοδηγεί χροιά φωνής, μουσική ή διάλογο. Ορίστε τον ρόλο κάθε υλικού και έπειτα περιγράψτε τη σκηνή που πρέπει να προκύψει. Ο κατασκευαστής δίνει έμφαση στον έλεγχο ερμηνείας, φωτισμού, σκιών και κινηματογραφικής γλώσσας.\n\nΓια μια ιστορία προϊόντος, προετοιμάστε εικόνα προϊόντος, αναφορά κίνησης κάμερας και ηχητική οδηγία. Μια οδηγία θα μπορούσε να είναι: «Διατηρήστε το μπλε γυάλινο βάζο του Image 1. Χρησιμοποιήστε την αργή πλάγια κίνηση παρακολούθησης του Video 1. Το βάζο βρίσκεται σε ένα ηλιόλουστο ράφι, με απαλή οργανική μουσική βάσει του Audio 1». Η επιδιωκόμενη έξοδος είναι μια νέα σκηνοθετημένη σκηνή που συνδυάζει επιλεγμένες πληροφορίες αναφοράς.\n\nΟι είσοδοι αναφοράς μπορούν να συνδυάζουν εικόνα και ήχο, εικόνα και βίντεο, βίντεο και ήχο ή και τους τρεις τύπους. Δεν υποστηρίζονται είσοδος μόνο ήχου και κείμενο μαζί με ήχο χωρίς εικόνα ή βίντεο. Τεκμηριώνονται επίσης η παραδοσιακή μετατροπή κειμένου σε βίντεο, η παραγωγή από πρώτο καρέ και η παραγωγή από πρώτο και τελευταίο καρέ. Αν είναι σημαντικές οι σταθερές αρχικές και τελικές συνθέσεις, χρησιμοποιήστε την ειδική ροή ορίων: η ονομασία μιας εικόνας αναφοράς ως τελικού σημείου μέσα σε προτροπή omni-reference είναι μόνο έμμεσος τρόπος καθοδήγησης.\n\n### Επεξεργασία υλικού\n\nΤο μοντέλο μπορεί να αντικαθιστά θέμα, να προσθέτει ή να αφαιρεί αντικείμενα, να αλλάζει στοιχεία και να επανασχεδιάζει ή να επισκευάζει μέρη βίντεο. Περιγράψτε τη συγκεκριμένη αλλαγή και προσδιορίστε το αρχικό υλικό. Για προσθήκη, συμπεριλάβετε χρόνο εμφάνισης και θέση· για αφαίρεση ή αντικατάσταση, δηλώστε με ακρίβεια το αντικείμενο και κατονομάστε όσα πρέπει να διατηρηθούν.\n\nΓια παράδειγμα: «Αντικαταστήστε το φωτιστικό γραφείου του Video 1 με το ορειχάλκινο φωτιστικό του Image 1. Διατηρήστε την κίνηση κάμερας, τη διάταξη γραφείου και την κατεύθυνση φωτισμού». Το επιθυμητό αποτέλεσμα είναι επεξεργασμένη εκδοχή της σκηνής με την προβλεπόμενη αντικατάσταση. Επιθεωρήστε τις αμετάβλητες περιοχές καθώς και το νέο αντικείμενο, ιδιαίτερα κατά την απόκρυψη, την κίνηση και τις αλλαγές πλάνων.\n\n### Επέκταση και σύνδεση ακολουθίας\n\nΤο Seedance 2.0 μπορεί να επεκτείνει ένα βίντεο προς τα εμπρός ή πίσω και να συνδέσει έως τρία παρεχόμενα αποσπάσματα με παραγόμενες μεταβάσεις. Προσδιορίστε τη χρονική κατεύθυνση και το νέο συμβάν. Για γέφυρα, βάλτε τα αποσπάσματα με σειρά και περιγράψτε τη μετάβαση μεταξύ κάθε ζεύγους, όπως μια κάμερα που εισέρχεται σε πόρτα σε ένα πλάνο και φτάνει στο επόμενο περιβάλλον.\n\nΜια απλή επέκταση συνήθως επιστρέφει τη συνέχεια που αναπτύχθηκε γύρω από το αρχικό υλικό· συμπεριλάβετε σαφή οδηγία αν το τελικό αποτέλεσμα πρέπει επίσης να επαναλαμβάνει το αρχικό τμήμα. Κατά την ολοκλήρωση σύνδεσης δύο ή τριών αποσπασμάτων, η τεκμηριωμένη ροή μπορεί να περιλαμβάνει τόσο αρχικό υλικό όσο και νέο περιεχόμενο μετάβασης. Αυτό είναι χρήσιμο για ανάπτυξη αρχής ή τέλους ή σύνδεση έτοιμων σκηνών χωρίς να μένει απροσδιόριστη η ενωτική δράση.\n\n### Έξοδος τυπικής έκδοσης και 4K\n\nΗ τυπική έκδοση τεκμηριώνει MP4 στα 24 fps και διάρκειες από 4 έως 15 δευτερόλεπτα. Τα επίπεδα εξόδου είναι 480p, 720p και 1080p με βάθος χρώματος 8-bit, καθώς και 4K με βάθος χρώματος 10-bit. Οι υποστηριζόμενες αναλογίες είναι 21:9, 16:9, 4:3, 1:1, 3:4 και 9:16. Τεκμηριώνονται επίσης προσαρμοστικό καδράρισμα και αυτόματη επιλογή διάρκειας. Η έκδοση Fast έχει δική της στενότερη προδιαγραφή εξόδου 480p/720p.\n\nΗ έξοδος 4K χρησιμοποιεί κωδικοποίηση H.265/HEVC. Η κωδικοποίηση δέκα bit διατηρεί πρόσθετες τονικές διαβαθμίσεις και ομαλότερες χρωματικές μεταβάσεις, κάτι που έχει σημασία για υλικό με λεπτές διαβαθμίσεις φωτός ή χρώματος. Ελέγξτε ότι το προβλεπόμενο περιβάλλον αναπαραγωγής και μοντάζ μπορεί να αποκωδικοποιήσει αυτή τη μορφή· ορισμένοι φυλλομετρητές και συσκευές δεν την αναπαράγουν απευθείας. Ένας συμβατός περιέκτης δεν εξασφαλίζει από μόνος του συμβατή αποκωδικοποίηση βίντεο.\n\nΤο μοντέλο μπορεί να παράγει συγχρονισμένο ήχο ή σιωπηλό βίντεο και να επιστρέφει το τελευταίο παραγόμενο καρέ για επόμενη σκηνή. Ο παραγόμενος ήχος είναι μονοφωνικός. Η οικογένεια 2.0 δεν υποστηρίζει την ξεχωριστή λειτουργία προεπισκόπησης Draft δύο σταδίων, επομένως αυτή η δυνατότητα δεν πρέπει να συνάγεται από άλλη έκδοση Seedance.\n\n### Προετοιμασία αναφορών και ουσιαστικά όρια\n\nΗ τεκμηριωμένη χωρητικότητα αναφορών είναι έως εννέα εικόνες, τρία βίντεο και τρία αποσπάσματα ήχου. Στο συγκεκριμένο τεκμηριωμένο προφίλ του κατασκευαστή δεν γίνονται δεκτές απευθείας μεταφορτώσεις εικόνων ή βίντεο αναφοράς που περιέχουν πραγματικά ανθρώπινα πρόσωπα· οι εργασίες πορτρέτων χρησιμοποιούν την υποστηριζόμενη ροή στοιχείων πορτρέτου. Κάθε απόσπασμα βίντεο και ήχου πρέπει να διαρκεί 2–15 δευτερόλεπτα. Όλες οι αναφορές βίντεο μαζί πρέπει να χωρούν σε 15 δευτερόλεπτα και όλες οι αναφορές ήχου έχουν δικό τους συνολικό όριο 15 δευτερολέπτων. Τα αρχεία βίντεο χρησιμοποιούν MP4 ή MOV στα 24–60 fps, έως 200 MB το καθένα· τα αρχεία ήχου χρησιμοποιούν WAV ή MP3, έως 15 MB το καθένα. Οι καταγεγραμμένες μορφές εικόνας είναι JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC και HEIF. Κάθε εικόνα πρέπει να είναι μικρότερη από 30 MB και το σώμα αιτήματος να μην υπερβαίνει τα 64 MB. Στο τεκμηριωμένο προφίλ εισόδου αναφορών, το πλάτος και το ύψος εικόνας πρέπει να είναι αυστηρά μεταξύ 300 και 6.000 pixel, με λόγο πλάτους προς ύψος αυστηρά μεταξύ 0.4 και 2.5. Τα βίντεο αναφοράς επιτρέπουν 300–6.000 pixel σε κάθε διάσταση και αναλογίες 0.4–2.5, συμπεριλαμβανομένων των ορίων, με συνολικά 407.696–8.295.044 pixel. Τα βίντεο MP4 ή MOV χρησιμοποιούν βίντεο H.264/AVC ή H.265/HEVC και ήχο AAC ή MP3.\n\nΒάλτε τα αρχεία σκόπιμα σε σειρά και αναφερθείτε στο καθένα με τον τύπο μέσου και τον αριθμό του: Image 1, Video 1 και Audio 1. Ο αριθμός ακολουθεί τη σειρά μεταξύ αρχείων αυτού του τύπου. Εξηγήστε ποια χαρακτηριστικά μεταφέρονται και ποιο περιεχόμενο πηγής δεν πρέπει να ορίζει τη νέα σκηνή. Οι τεκμηριωμένες γλώσσες προτροπών περιλαμβάνουν αγγλικά, ισπανικά, ινδονησιακά, πορτογαλικά και ιαπωνικά. Διατηρήστε συνεπή την εκφωνούμενη γλώσσα σε διάλογο· ο οδηγός συνιστά να αποφεύγεται η ανάμειξη γλωσσών, εκτός από κύρια ονόματα. Για εργασία με φωνητική καθοδήγηση, διαχωρίστε τον ομιλητή, την ακριβή ατάκα και την οδηγία εκφοράς.\n\nΠροετοιμάστε την πρώτη και την τελευταία εικόνα με συμβατό κάδρο. Μια αναντιστοιχία μεταξύ αρχικής εικόνας και διαστάσεων εξόδου μπορεί να προκαλέσει περικοπή ή απότομη οπτική αλλαγή· οι ίδιες διαστάσεις και το προσαρμοστικό καδράρισμα είναι τεκμηριωμένες λύσεις. Εστιάστε την περιγραφή στο συμβάν και στους ρόλους αναφορών. Ο κατασκευαστής προειδοποιεί ότι οι μεγάλες προτροπές μπορεί να διασκορπίσουν τις πληροφορίες, με αποτέλεσμα να αγνοούνται λεπτομέρειες. Ελέγξτε την κίνηση που προκύπτει, τη συνέχεια αναφορών, την ηχητική ερμηνεία και τις ενώσεις σκηνών ως διακριτά μέρη του δημιουργικού αποτελέσματος.\n\n### Σχεδιασμός πλάνων και κατεύθυνση κειμένου\n\nΓια μια σύνθετη σκηνή, οργανώστε την οδηγία ως Shot 1, Shot 2 και Shot 3, προσδιορίζοντας κάμερα, δράση θέματος, θέση και ήχο με σειρά. Ο οδηγός συνιστά μία κίνηση κάμερας ανά πλάνο και προτεραιότητα σε αργές, συνδεδεμένες ενέργειες. Οι ακριβείς χρονικές σημάνσεις ανά πλάνο είναι ασταθείς, επομένως μια ακολουθία γεγονότων αποτελεί καλύτερο έλεγχο από την επιβολή πολλών ακριβών χρονικών παραθύρων.\n\nΤο μοντέλο παράγει επίσης συνηθισμένο κείμενο, όπως συνθήματα, υπότιτλους και συννεφάκια ομιλίας. Μπορείτε να κατευθύνετε το χρώμα, την οπτική απόδοση, τη θέση και την εμφάνισή του. Χρησιμοποιήστε συνηθισμένους χαρακτήρες αντί σπάνιων χαρακτήρων ή ειδικών συμβόλων και ελέγξτε τη διατύπωση καθώς κινείται. Για αναφορές θέματος, συνδέστε σαφώς κάθε στοιχείο με τον προβλεπόμενο χαρακτήρα ή αντικείμενο. Οι όψεις προϊόντος μπορούν να παρέχουν διαφορετικές οπτικές πληροφορίες· τα κολάζ πολλαπλών όψεων χαρακτήρα μπορούν να προκαλέσουν σύγχυση στην ταυτότητα προσώπου. Η τεκμηριωμένη σύσταση αναφοράς χαρακτήρα είναι ξεχωριστό καθαρό κοντινό προσώπου και ολόσωμη εικόνα.\n\n### Συμπεριφορές για επιθεώρηση πριν από μοντάζ\n\nΟ οδηγός τεκμηριώνει ανεπιθύμητους υπότιτλους, λογότυπα, διπλούς χαρακτήρες και απόκλιση ύφους. Το καθαρό αρχικό υλικό, οι συνεπείς ετικέτες και οι ρητοί περιορισμοί μειώνουν αυτούς τους κινδύνους, αλλά δεν εγγυώνται ότι θα εξαφανιστούν ανεπιθύμητο κείμενο ή διπλές φιγούρες. Περισσότερα από τέσσερα άτομα αναφοράς αναφέρονται ως κίνδυνος σταθερότητας, διακριτός από τον αριθμό αρχείων που δέχεται το μοντέλο.\n\nΗ επέκταση βίντεο μπορεί να δημιουργήσει άλμα ή επιστροφή στην ένωση και οι επαναλαμβανόμενες συνέχειες μπορούν να συσσωρεύσουν υποβάθμιση ποιότητας εικόνας. Επιθεωρήστε τα οριακά καρέ και περιορίστε τις διαδοχικές επεκτάσεις. Μια φωνή αναφοράς μπορεί να διαφέρει από την αρχική χροιά· η αφήγηση μπορεί να τελειώσει με κλικ ή απότομη διακοπή, για την οποία το σταδιακό σβήσιμο ήχου είναι τεκμηριωμένη λύση. Οι κινεζικοί πολυφωνικοί, ασυνήθιστοι ή οπτικά παρόμοιοι χαρακτήρες μπορεί να προφερθούν λανθασμένα. Για ακριβές κινούμενο εφέ, όπως αντίστροφη μέτρηση, μια αναφορά κίνησης παρέχει περισσότερες πληροφορίες από ένα απλό λεκτικό αίτημα. Αυτοί είναι συγκεκριμένοι λόγοι για ξεχωριστό έλεγχο ταυτότητας, κειμένου, κίνησης και ήχου κατά την επιλογή αποσπάσματος.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance",
    "available": null,
    "canonical_model": "bytedance/seedance-2.0",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.3024",
            "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.3024",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "cb128050bf8483dc92f31388",
        "label": "Τιμές αναφοράς για διαμορφώσεις βίντεο",
        "profiles": [
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "Δεν δηλώνεται πρόσθετη συνθήκη σε αυτό το κλειδί τιμολόγησης."
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.014",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "resolution: 4k"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.008",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "resolution: 1080p"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0154",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "ήχος: without_audio"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.014",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "είσοδος: with_video_input"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0086",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "είσοδος: with_video_input; ανάλυση: 4k"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0048",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "είσοδος: with_video_input; ανάλυση: 1080p"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0094",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "bytedance/seedance-2.0",
    "input": [
      "text",
      "image",
      "audio"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Διατηρήστε κάθε πραγματική έξοδο που σας ανήκει και τα μετρημένα μεταδεδομένα που επιστρέφονται μαζί της.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Η πρόσβαση στο βίντεο δεν είναι διαθέσιμη ή αυτό το ID βίντεο δεν βρέθηκε.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε την πρόσβαση στο βίντεο. Για υπάρχον βίντεο, χρησιμοποιήστε το αρχικό δημόσιο ID του και το ίδιο κλειδί API.",
                "type": "not_found_error"
              },
              {
                "condition": "Το κλειδί API δεν αντιστοιχεί στον ταυτοποιημένο λογαριασμό.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε το κλειδί API και την πρόσβαση του λογαριασμού σας πριν υποβάλετε αίτημα.",
                "type": "authentication_error"
              },
              {
                "condition": "Δεν ήταν δυνατή η ανάγνωση του αιτήματος ή ο δείκτης λήψης δεν είναι έγκυρος.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Διορθώστε το σώμα αιτήματος. Για λήψη, επιλέξτε δείκτη εξόδου που επιστράφηκε από την αρχική εργασία.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Η επιλεγμένη διαμόρφωση βίντεο δεν μπορεί να τιμολογηθεί.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Επιλέξτε μια υποστηριζόμενη διαμόρφωση βίντεο και συμπληρώστε τις απαιτούμενες επιλογές της πριν υποβάλετε διορθωμένο αίτημα.",
                "type": "price_unavailable"
              },
              {
                "condition": "Μια είσοδος βίντεο ή η αρχική εργασία συνέχισης δεν είναι έγκυρη.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Χρησιμοποιήστε έγκυρες εισόδους HTTPS. Για συνέχιση, χρησιμοποιήστε το δημόσιο ID του ολοκληρωμένου αρχικού σας βίντεο με το ίδιο κλειδί API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Το διαθέσιμο υπόλοιπο ή τα όρια δεν επιτρέπουν δέσμευση ποσού.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε το διαθέσιμο υπόλοιπο και τα όριά σας πριν στείλετε νέο αίτημα.",
                "type": "billing_error"
              },
              {
                "condition": "Η επαλήθευση βίντεο, η αποθήκευση ή η πρόσβαση στην υπηρεσία είναι προσωρινά μη διαθέσιμη.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Περιμένετε να γίνει διαθέσιμη η υπηρεσία. Αν έχετε ήδη ID βίντεο, ελέγξτε αυτή την αρχική εργασία αντί να ξεκινήσετε άλλη δημιουργία.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Το αρχικό αποτέλεσμα βίντεο και η χρέωση χρειάζονται έλεγχο.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Διατηρήστε το ID βίντεο που επιστρέφεται και ελέγξτε αυτή την εργασία. Μην στέλνετε νέο αίτημα δημιουργίας για αντικατάσταση όσο διαρκεί ο έλεγχος.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Η λήψη του υπάρχοντος βίντεο είναι προσωρινά μη διαθέσιμη.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Ελέγξτε αργότερα την ίδια εργασία βίντεο και κατεβάστε την υπάρχουσα έξοδό της. Μια νέα δημιουργία παράγει ξεχωριστή λειτουργία.",
                "type": "server_error"
              },
              {
                "condition": "Το περιεχόμενο βίντεο δεν έχει δημοσιευτεί.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε την κατάσταση της αρχικής εργασίας. Κατεβάστε το αποτέλεσμα όταν αναφέρει completed· αν αναφέρει failed, ακολουθήστε την ειδοποίησή της για έλεγχο χρέωσης.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + αρχικό id + X-Should-Retry:false· μην επαναλάβετε ποτέ το αρχικό αίτημα"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Δώστε προτροπή κειμένου και υποστηριζόμενη διάρκεια σε ακέραια δευτερόλεπτα. Χρησιμοποιήστε ακριβές αναγραφόμενο μέγεθος ή ανάλυση και αναλογία διαστάσεων που αντιστοιχούν σε αναγραφόμενες διαστάσεις.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Μια γραπτή προτροπή."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Το frame_images είναι πίνακας αντικειμένων με type=image_url, image_url που περιέχει url και frame_type. Χρησιμοποιήστε δημόσιο HTTPS URL εικόνας· τα first_frame και last_frame μπορούν να εμφανιστούν από μία φορά το καθένα. Χρησιμοποιήστε αναγραφόμενο μέγεθος εξόδου ή συμβατές διαστάσεις. Μην προσθέτετε αναφορές βίντεο.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Μια γραπτή προτροπή και μια εικόνα καρέ."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Το input_references είναι πίνακας. Κάθε αντικείμενο έχει type=image_url ή type=audio_url και ένα αντίστοιχο αντικείμενο URL που περιέχει url. Χρησιμοποιήστε δημόσιους συνδέσμους HTTPS. Παραλείψτε το frame_images για να επιλέξετε λειτουργία αναφορών. Οι αναφορές βίντεο δεν μπορούν να τιμολογηθούν.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Μια γραπτή προτροπή και αναφορές εικόνας ή ήχου."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Θέση αυτού του βίντεο στη λίστα εξόδων, με αρίθμηση από το μηδέν.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Υπογεγραμμένο HTTPS URL λήψης για αυτό το ολοκληρωμένο βίντεο.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Σύνοψη SHA-256 των αρχικών byte βίντεο· null αν δεν είναι διαθέσιμη.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Μέγεθος του αρχικού αρχείου βίντεο σε byte· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Μετρημένη διάρκεια βίντεο σε χιλιοστά του δευτερολέπτου· null αν δεν είναι διαθέσιμη.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Πλάτος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Ύψος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Αναγνωριστικό κωδικοποιητή βίντεο· null αν δεν έχει καταγραφεί.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Αν το βίντεο περιέχει ηχητικό κομμάτι· null αν δεν έχει μετρηθεί.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Αναγνωριστικό κωδικοποιητή ήχου· null όταν δεν έχει καταγραφεί αναγνωριστικό.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "υπογεγραμμένα URL περιεχομένου που σας ανήκει",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "bytedance/seedance-2.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-2.0"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p",
                  "1080p",
                  "4K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p",
                    "4K"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "4:3",
                  "16:9",
                  "21:9",
                  "9:21"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Στα 480p και 720p, η παράλειψη του generate_audio επιλέγει την τιμή με ήχο και το false επιλέγει την τιμή χωρίς ήχο. Στα 1080p και 4K, η τιμή της ανάλυσης ισχύει και για τις δύο ρυθμίσεις. Ελέγξτε το has_audio στο αποτέλεσμα για το ηχητικό κομμάτι που επιστρέφεται.",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Αυτά τα κλειδιά ισχύουν για κάθε αντικείμενο καρέ. Παραλείψτε το frame_images για αίτημα μόνο με κείμενο.",
                "content": "Πίνακας αντικειμένων καρέ. Κάθε αντικείμενο έχει type=image_url, image_url που περιέχει url και frame_type=first_frame ή last_frame. Κάθε ρόλος εμφανίζεται το πολύ μία φορά. Χρησιμοποιήστε δημόσια HTTPS URL.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "Παραλείψτε το frame_images για να χρησιμοποιήσετε λειτουργία αναφορών. Χρησιμοποιήστε δημόσια HTTPS URL.",
                "content": "Πίνακας αντικειμένων αναφοράς εικόνας ή ήχου. Ορίστε το type σε image_url ή audio_url και δώστε το αντίστοιχο αντικείμενο URL που περιέχει url. Οι αναφορές βίντεο εξακολουθούν να μην μπορούν να τιμολογηθούν.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "640x480",
                  "854x480",
                  "1120x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "960x720",
                  "1280x720",
                  "1680x720",
                  "1080x1080",
                  "1080x1440",
                  "1080x1920",
                  "1440x1080",
                  "1920x1080",
                  "2520x1080",
                  "3840x2160",
                  "2160x3840",
                  "2160x2160",
                  "2880x2160",
                  "2160x2880",
                  "5040x2160"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1440x1080",
                    "1920x1080",
                    "2520x1080",
                    "3840x2160",
                    "2160x3840",
                    "2160x2160",
                    "2880x2160",
                    "2160x2880",
                    "5040x2160"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "bytedance/seedance-2.0"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p",
                    "4K"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1440x1080",
                    "1920x1080",
                    "2520x1080",
                    "3840x2160",
                    "2160x3840",
                    "2160x2160",
                    "2880x2160",
                    "2160x2880",
                    "5040x2160"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Request geometry is required for the pre-generation estimate and reserve. Returned geometry and track time describe the generated output; final charge follows the actual billed configuration.",
                "Video references with *_with_video_input quantity are rejected; image/audio references only where model reference types admit them."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "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_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0154000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000154",
                "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_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0094000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000094",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000008",
                "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_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "είσοδος: with_video_input; ανάλυση: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k_with_video_input",
                "label": "Video-token price",
                "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": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "Η τιμή ανά token βίντεο είναι η κύρια αναφορά τιμής. Οι ενδεικτικές εκτιμήσεις ανά δευτερόλεπτο είναι ξεχωριστές αναφορές και όχι πρόσθετη χρέωση.",
            "dimensions": {
              "conditions": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Τιμή token βίντεο",
            "units": [
              {
                "amount": "0.0086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000086",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "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_token"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.3024",
                "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.3024",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"model\":\"bytedance/seedance-2.0\",\"prompt\":\"A serene mountain landscape at sunset\",\"duration\":4,\"resolution\":\"480p\",\"size\":\"480x480\",\"generate_audio\":false}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "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_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0154000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000154",
                "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_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0094000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000094",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000008",
                "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_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k_with_video_input",
                "label": "Video-token price",
                "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": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000086",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "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_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.3024",
                "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.3024",
                "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": "bytedance/seedance-2.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_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.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000014",
            "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_token"
          },
          {
            "amount": "0.0154000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_1080p",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000154",
            "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_token"
          },
          {
            "amount": "0.0094000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_1080p_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000094",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_4k",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000008",
            "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_token"
          },
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_4k_with_video_input",
            "label": "Video-token price",
            "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": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.0086000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000086",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_without_audio",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000014",
            "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_token"
          },
          {
            "amount": "0.3024",
            "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.3024",
            "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": "bytedance/seedance-2.0",
        "request_model_id": "bytedance/seedance-2.0",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance: Seedance 2.0",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.3024,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.3024,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": false,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": false,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "480p/720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000014",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": false,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": false,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "480p/720p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": true,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": true,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "480p/720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000086",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": true,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": true,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "480p/720p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": false,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": false,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "1080p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000154",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": false,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": false,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "1080p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": true,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": true,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "1080p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000094",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": true,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": true,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "1080p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": false,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": false,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "4K"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000008",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": false,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": false,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "4K"
            },
            "key": "base",
            "label": "base",
            "profile_index": 4,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": true,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": true,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "4K"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000048",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": true,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": true,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "4K"
            },
            "key": "base",
            "label": "base",
            "profile_index": 5,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "video token",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.000014",
            "key": "video_tokens",
            "label": "video token",
            "native_amount_usd_per_unit": "0.000014",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.008000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "resolution=4k",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.000008",
            "key": "video_tokens_4k",
            "label": "video token",
            "native_amount_usd_per_unit": "0.000008",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0154000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "resolution=1080p",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000154",
            "key": "video_tokens_1080p",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000154",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "audio=false",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.000014",
            "key": "video_tokens_without_audio",
            "label": "video token",
            "native_amount_usd_per_unit": "0.000014",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0086000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "video_reference_present Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000086",
            "key": "video_tokens_with_video_input",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000086",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "resolution=4k · video_reference_present Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000048",
            "key": "video_tokens_4k_with_video_input",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0094000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "resolution=1080p · video_reference_present Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000094",
            "key": "video_tokens_1080p_with_video_input",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000094",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          }
        ]
      }
    ],
    "public_id": "bytedance/seedance-2.0",
    "short": "Το ByteDance Seedance 2.0 συνδυάζει εγγενή παραγωγή ήχου και βίντεο με αναφορές εικόνας, βίντεο και ήχου. Σκηνοθετήστε νέες σκηνές, επεξεργαστείτε υπάρχον υλικό ή επεκτείνετε μια ακολουθία· η τυπική έκδοση περιλαμβάνει τεκμηριωμένη έξοδο 1080p και 4K 10-bit."
  },
  "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": "Το ByteDance Seedance 2.0 συνδυάζει εγγενή παραγωγή ήχου και βίντεο με αναφορές εικόνας, βίντεο και ήχου. Σκηνοθετήστε νέες σκηνές, επεξεργαστείτε υπάρχον υλικό ή επεκτείνετε μια ακολουθία· η τυπική έκδοση περιλαμβάνει τεκμηριωμένη έξοδο 1080p και 4K 10-bit.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_exact_canonical_sha256": "7811b262175bb115376deb6813b29da90895f18acae5ec90862fbb27c5d27e02",
    "raw_model_js_projection_sha256": "ca017147bfc237ffbc5b5c22bd1574b43655d43f44c99b0f200d2ff9cdf20dd0",
    "raw_model_json_sha256": "7811b262175bb115376deb6813b29da90895f18acae5ec90862fbb27c5d27e02",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "79a2db76cdf91081c7836ac8da3bd52f8ece2cb8a6eb32d35ac1b3a138186af8"
}
