{
  "aboutHtml": "<p>Το Seedance 2.5 δημιουργεί βίντεο χρησιμοποιώντας γραπτή σκηνή και πολυτροπικές αναφορές. Το συγκεκριμένο αναγνωριστικό επιλογής doubao-seedance-2-5-260628 έχει τη δική του τεκμηριωμένη λειτουργία και παράδειγμα. Αυτή η λειτουργία περιγράφει δημιουργία, επεξεργασία και επέκταση βίντεο, με εικόνες, βίντεο, ήχο και κείμενο ως μέσα εισόδου. Χρησιμοποίησε τις αναφορές για να μεταδώσεις την εμφάνιση του θέματος, τη δράση, την κίνηση της κάμερας, το ύφος και τον ήχο και μετά εξήγησε το αποτέλεσμα που θέλεις να δημιουργήσεις από αυτές.</p><p>Οι συνδυασμοί εισόδου περιλαμβάνουν μόνο κείμενο, εικόνες ή βίντεο με προαιρετικό κείμενο, εικόνες με ήχο, βίντεο με ήχο και εικόνες, βίντεο και ήχο μαζί. Οι αναφερόμενοι συνδυασμοί συνδέουν τον ήχο με οπτικά μέσα, αντί να περιγράφουν αίτημα μόνο με ήχο. Οργάνωσε κάθε στοιχείο ανάλογα με τον ρόλο του: μια εικόνα καθορίζει θέμα ή εμφάνιση, ένα βίντεο δείχνει κίνηση ή υπάρχουσα σκηνή και ο ήχος παρέχει ηχητική αναφορά. Δήλωσε ποιος ρόλος έχει σημασία για το ζητούμενο πλάνο, ώστε μια αναφορά φόντου να μη θεωρηθεί ο κύριος χαρακτήρας.</p><p>Το συγκεκριμένο παράδειγμα του 2.5 είναι μια διαφημιστική ακολουθία προϊόντος. Παρέχει μία εικόνα και πολλές αναφορές βίντεο και μετά περιγράφει ένα αρχικό σημείο εστίασης, τακτοποιημένες διατάξεις προϊόντων, πλάνα λεπτομερειών, μια ενέργεια σε αργή κίνηση και μια τελική σύνθεση της μάρκας. Το αίτημα αποδίδει ρόλους reference_image και reference_video και χρησιμοποιεί μεμονωμένες αναφορές για τη σύνθεση, την κίνηση, τον χειρισμό της κάμερας και τον αντίκτυπο. Αυτό δίνει μια πρακτική δομή για μια ιδέα καμπάνιας: σχεδίασε τα ορατά στάδια, προσδιόρισε την αναφορά κάθε σταδίου και καθόρισε την τελική διάταξη.</p><p>Μια γραπτή ακολουθία μπορεί να ξεχωρίζει τι συμβαίνει από το πώς κινηματογραφείται. Περιέγραψε πρώτα τι συμβαίνει με το προϊόν και μετά το μέγεθος πλάνου, τη διαδρομή της κάμερας, τον ρυθμό και τη μετάβαση στην επόμενη όψη. Αν μια αναφορά καθορίζει το προϊόν και μια άλλη δείχνει κίνηση της κάμερας, ονόμασε αυτές τις ξεχωριστές αρμοδιότητες. Για σκηνή με πολλά αντικείμενα, εξήγησε τις θέσεις τους και τη σειρά των αλληλεπιδράσεων. Εξέτασε το παραγόμενο αποτέλεσμα για το πραγματικό σχήμα, τη διάταξη και την κίνηση του προϊόντος, αντί να υποθέτεις ότι κάθε λεπτομέρεια των αναφορών εμφανίζεται αμετάβλητη.</p><p>Για επεξεργασία, προσδιόρισε το υπάρχον βίντεο και το στοιχείο προς αναθεώρηση, όπως το περιβάλλον, μια ενέργεια ή το οπτικό ύφος, δηλώνοντας παράλληλα τη συνέχεια που πρέπει να διατηρηθεί. Για επέκταση, περιέγραψε πώς πρέπει να συνεχιστεί η σκηνή από το παρεχόμενο υλικό. Έλεγξε το σημείο σύνδεσης μαζί με το νέο τμήμα: η εμφάνιση του θέματος, η κατεύθυνση κίνησης, η θέση της κάμερας και ο χρονισμός του ήχου επηρεάζουν αν το αποτέλεσμα γίνεται αντιληπτό ως μία σκηνή. Κράτησε μαζί το αρχικό βίντεο και την ολοκληρωμένη αναθεώρηση, ώστε η αλλαγή να ελεγχθεί σε σχέση με την επιθυμητή συνέχεια.</p><p>Το τεκμηριωμένο πολυτροπικό παράδειγμα του 2.5 θέτει generate_audio=true και ζητά ακολουθία δεκαπέντε δευτερολέπτων με κάδρο 16:9. Αυτές οι τιμές περιγράφουν το συγκεκριμένο παράδειγμα, όχι καθολικό ανώτατο όριο διάρκειας ή όριο αρχείων αναφοράς. Δώσε στη ζητούμενη σκηνή σαφή ηχητική κατεύθυνση, μαζί με τη σχέση μουσικής, εφέ και ορατής δράσης, και μετά αξιολόγησε την πραγματική οπτικοακουστική έξοδο. Η ηχητική αναφορά και η παραγόμενη ηχητική επένδυση πρέπει να ελεγχθούν μαζί ως προς τον επιθυμητό ρυθμό και την ερμηνεία.</p><p>Διάλεξε διάρκεια, κάδρο και ανάλυση από τις ρυθμίσεις που προσφέρονται για αυτό το συγκεκριμένο προφίλ. Κράτησε τη ζητούμενη διαμόρφωση μαζί με τις οδηγίες και σύγκρινέ την με τα πραγματικά επιστρεφόμενα πεδία της εργασίας. Χρησιμοποίησε την επιστρεφόμενη διάρκεια, ανάλυση και αναλογία όταν προετοιμάζεις το ολοκληρωμένο απόσπασμα για τον προορισμό του. Διατήρησε το ακριβές αναγνωριστικό προφίλ στο αρχείο αναθεώρησης, ώστε μια μεταγενέστερη σύγκριση να χρησιμοποιεί την ίδια επιλεγμένη έκδοση.</p><p>Η χρήση token βίντεο υπολογίζεται ως (διάρκεια βίντεο εισόδου + διάρκεια βίντεο εξόδου) × πλάτος εξόδου × ύψος εξόδου × ρυθμός καρέ εξόδου / 1024. Τα αιτήματα που περιέχουν βίντεο εισόδου και όσα δεν περιέχουν έχουν διακριτές κατηγορίες χρέωσης. Το ερώτημα για την εργασία αναφέρει usage.completion_tokens και usage.total_tokens· κράτησε αυτές τις αναφερόμενες ποσότητες μαζί με το ολοκληρωμένο απόσπασμα.</p><p>Η δημιουργία είναι ασύγχρονη. Η υποβολή επιστρέφει αναγνωριστικό και η διαμορφωμένη ροή εργασιών παρέχει την κατάσταση και κατόπιν το content.video_url μετά την επιτυχία. Αποθήκευσε το ολοκληρωμένο απόσπασμα μαζί με τα αρχικά μέσα και τις οδηγίες της ακολουθίας. Έλεγξε όλα τα σχεδιασμένα στάδια, τις αλληλεπιδράσεις αντικειμένων, την εμφάνιση των χαρακτήρων, το κάδρο και τον συγχρονισμό ήχου σε όλο το αποτέλεσμα. Για μια αναθεώρηση, προσδιόρισε τη συγκεκριμένη λεπτομέρεια που δεν πέτυχε και διατήρησε τα επιτυχημένα μέρη της σκηνής, αντί να αντικαθιστάς ολόκληρο το κείμενο με άσχετες οδηγίες.</p>",
  "aboutText": "Το Seedance 2.5 δημιουργεί βίντεο χρησιμοποιώντας γραπτή σκηνή και πολυτροπικές αναφορές. Το συγκεκριμένο αναγνωριστικό επιλογής doubao-seedance-2-5-260628 έχει τη δική του τεκμηριωμένη λειτουργία και παράδειγμα. Αυτή η λειτουργία περιγράφει δημιουργία, επεξεργασία και επέκταση βίντεο, με εικόνες, βίντεο, ήχο και κείμενο ως μέσα εισόδου. Χρησιμοποίησε τις αναφορές για να μεταδώσεις την εμφάνιση του θέματος, τη δράση, την κίνηση της κάμερας, το ύφος και τον ήχο και μετά εξήγησε το αποτέλεσμα που θέλεις να δημιουργήσεις από αυτές.\n\nΟι συνδυασμοί εισόδου περιλαμβάνουν μόνο κείμενο, εικόνες ή βίντεο με προαιρετικό κείμενο, εικόνες με ήχο, βίντεο με ήχο και εικόνες, βίντεο και ήχο μαζί. Οι αναφερόμενοι συνδυασμοί συνδέουν τον ήχο με οπτικά μέσα, αντί να περιγράφουν αίτημα μόνο με ήχο. Οργάνωσε κάθε στοιχείο ανάλογα με τον ρόλο του: μια εικόνα καθορίζει θέμα ή εμφάνιση, ένα βίντεο δείχνει κίνηση ή υπάρχουσα σκηνή και ο ήχος παρέχει ηχητική αναφορά. Δήλωσε ποιος ρόλος έχει σημασία για το ζητούμενο πλάνο, ώστε μια αναφορά φόντου να μη θεωρηθεί ο κύριος χαρακτήρας.\n\nΤο συγκεκριμένο παράδειγμα του 2.5 είναι μια διαφημιστική ακολουθία προϊόντος. Παρέχει μία εικόνα και πολλές αναφορές βίντεο και μετά περιγράφει ένα αρχικό σημείο εστίασης, τακτοποιημένες διατάξεις προϊόντων, πλάνα λεπτομερειών, μια ενέργεια σε αργή κίνηση και μια τελική σύνθεση της μάρκας. Το αίτημα αποδίδει ρόλους reference_image και reference_video και χρησιμοποιεί μεμονωμένες αναφορές για τη σύνθεση, την κίνηση, τον χειρισμό της κάμερας και τον αντίκτυπο. Αυτό δίνει μια πρακτική δομή για μια ιδέα καμπάνιας: σχεδίασε τα ορατά στάδια, προσδιόρισε την αναφορά κάθε σταδίου και καθόρισε την τελική διάταξη.\n\nΜια γραπτή ακολουθία μπορεί να ξεχωρίζει τι συμβαίνει από το πώς κινηματογραφείται. Περιέγραψε πρώτα τι συμβαίνει με το προϊόν και μετά το μέγεθος πλάνου, τη διαδρομή της κάμερας, τον ρυθμό και τη μετάβαση στην επόμενη όψη. Αν μια αναφορά καθορίζει το προϊόν και μια άλλη δείχνει κίνηση της κάμερας, ονόμασε αυτές τις ξεχωριστές αρμοδιότητες. Για σκηνή με πολλά αντικείμενα, εξήγησε τις θέσεις τους και τη σειρά των αλληλεπιδράσεων. Εξέτασε το παραγόμενο αποτέλεσμα για το πραγματικό σχήμα, τη διάταξη και την κίνηση του προϊόντος, αντί να υποθέτεις ότι κάθε λεπτομέρεια των αναφορών εμφανίζεται αμετάβλητη.\n\nΓια επεξεργασία, προσδιόρισε το υπάρχον βίντεο και το στοιχείο προς αναθεώρηση, όπως το περιβάλλον, μια ενέργεια ή το οπτικό ύφος, δηλώνοντας παράλληλα τη συνέχεια που πρέπει να διατηρηθεί. Για επέκταση, περιέγραψε πώς πρέπει να συνεχιστεί η σκηνή από το παρεχόμενο υλικό. Έλεγξε το σημείο σύνδεσης μαζί με το νέο τμήμα: η εμφάνιση του θέματος, η κατεύθυνση κίνησης, η θέση της κάμερας και ο χρονισμός του ήχου επηρεάζουν αν το αποτέλεσμα γίνεται αντιληπτό ως μία σκηνή. Κράτησε μαζί το αρχικό βίντεο και την ολοκληρωμένη αναθεώρηση, ώστε η αλλαγή να ελεγχθεί σε σχέση με την επιθυμητή συνέχεια.\n\nΤο τεκμηριωμένο πολυτροπικό παράδειγμα του 2.5 θέτει generate_audio=true και ζητά ακολουθία δεκαπέντε δευτερολέπτων με κάδρο 16:9. Αυτές οι τιμές περιγράφουν το συγκεκριμένο παράδειγμα, όχι καθολικό ανώτατο όριο διάρκειας ή όριο αρχείων αναφοράς. Δώσε στη ζητούμενη σκηνή σαφή ηχητική κατεύθυνση, μαζί με τη σχέση μουσικής, εφέ και ορατής δράσης, και μετά αξιολόγησε την πραγματική οπτικοακουστική έξοδο. Η ηχητική αναφορά και η παραγόμενη ηχητική επένδυση πρέπει να ελεγχθούν μαζί ως προς τον επιθυμητό ρυθμό και την ερμηνεία.\n\nΔιάλεξε διάρκεια, κάδρο και ανάλυση από τις ρυθμίσεις που προσφέρονται για αυτό το συγκεκριμένο προφίλ. Κράτησε τη ζητούμενη διαμόρφωση μαζί με τις οδηγίες και σύγκρινέ την με τα πραγματικά επιστρεφόμενα πεδία της εργασίας. Χρησιμοποίησε την επιστρεφόμενη διάρκεια, ανάλυση και αναλογία όταν προετοιμάζεις το ολοκληρωμένο απόσπασμα για τον προορισμό του. Διατήρησε το ακριβές αναγνωριστικό προφίλ στο αρχείο αναθεώρησης, ώστε μια μεταγενέστερη σύγκριση να χρησιμοποιεί την ίδια επιλεγμένη έκδοση.\n\nΗ χρήση token βίντεο υπολογίζεται ως (διάρκεια βίντεο εισόδου + διάρκεια βίντεο εξόδου) × πλάτος εξόδου × ύψος εξόδου × ρυθμός καρέ εξόδου / 1024. Τα αιτήματα που περιέχουν βίντεο εισόδου και όσα δεν περιέχουν έχουν διακριτές κατηγορίες χρέωσης. Το ερώτημα για την εργασία αναφέρει usage.completion_tokens και usage.total_tokens· κράτησε αυτές τις αναφερόμενες ποσότητες μαζί με το ολοκληρωμένο απόσπασμα.\n\nΗ δημιουργία είναι ασύγχρονη. Η υποβολή επιστρέφει αναγνωριστικό και η διαμορφωμένη ροή εργασιών παρέχει την κατάσταση και κατόπιν το content.video_url μετά την επιτυχία. Αποθήκευσε το ολοκληρωμένο απόσπασμα μαζί με τα αρχικά μέσα και τις οδηγίες της ακολουθίας. Έλεγξε όλα τα σχεδιασμένα στάδια, τις αλληλεπιδράσεις αντικειμένων, την εμφάνιση των χαρακτήρων, το κάδρο και τον συγχρονισμό ήχου σε όλο το αποτέλεσμα. Για μια αναθεώρηση, προσδιόρισε τη συγκεκριμένη λεπτομέρεια που δεν πέτυχε και διατήρησε τα επιτυχημένα μέρη της σκηνής, αντί να αντικαθιστάς ολόκληρο το κείμενο με άσχετες οδηγίες.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "9b91c2ac93b85ddbd6f14f896e1eac660f8af60b1efb619841001803a6950885",
    "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.5</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>ByteDance /</span><code>doubao-seedance-2-5-260628</code><button type=\"button\" id=\"copy-id\">Αντιγραφή ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Ενότητες κάρτας μοντέλου\"><button type=\"button\" data-card-jump=\"overview\">Εισαγωγή</button><button type=\"button\" data-card-jump=\"methods\">Είσοδοι και μέθοδοι</button><button type=\"button\" data-card-jump=\"pricing\">Τιμολόγηση</button><button type=\"button\" data-card-jump=\"examples\">Παραδείγματα</button><button type=\"button\" data-card-jump=\"results\">Αποτελέσματα</button><button type=\"button\" data-card-jump=\"aliases\">Εναλλακτικά ονόματα</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Μέθοδοι API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|doubao-seedance-2-5-260628\">Βίντεο</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Εισαγωγή</h3><p class=\"mdesc-full\">Το Seedance 2.5 δημιουργεί βίντεο από κείμενο και αναφορές εικόνας, βίντεο ή ήχου, με τεκμηριωμένες ροές επεξεργασίας και επέκτασης. Το συγκεκριμένο παράδειγμα του 2.5 συνδυάζει μια εικόνα προϊόντος με πολλές αναφορές κίνησης και ενεργοποιεί παραγόμενο ήχο για μια συντονισμένη διαφημιστική ακολουθία.</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.5 δημιουργεί βίντεο χρησιμοποιώντας γραπτή σκηνή και πολυτροπικές αναφορές. Το συγκεκριμένο αναγνωριστικό επιλογής doubao-seedance-2-5-260628 έχει τη δική του τεκμηριωμένη λειτουργία και παράδειγμα. Αυτή η λειτουργία περιγράφει δημιουργία, επεξεργασία και επέκταση βίντεο, με εικόνες, βίντεο, ήχο και κείμενο ως μέσα εισόδου. Χρησιμοποίησε τις αναφορές για να μεταδώσεις την εμφάνιση του θέματος, τη δράση, την κίνηση της κάμερας, το ύφος και τον ήχο και μετά εξήγησε το αποτέλεσμα που θέλεις να δημιουργήσεις από αυτές.</p><p>Οι συνδυασμοί εισόδου περιλαμβάνουν μόνο κείμενο, εικόνες ή βίντεο με προαιρετικό κείμενο, εικόνες με ήχο, βίντεο με ήχο και εικόνες, βίντεο και ήχο μαζί. Οι αναφερόμενοι συνδυασμοί συνδέουν τον ήχο με οπτικά μέσα, αντί να περιγράφουν αίτημα μόνο με ήχο. Οργάνωσε κάθε στοιχείο ανάλογα με τον ρόλο του: μια εικόνα καθορίζει θέμα ή εμφάνιση, ένα βίντεο δείχνει κίνηση ή υπάρχουσα σκηνή και ο ήχος παρέχει ηχητική αναφορά. Δήλωσε ποιος ρόλος έχει σημασία για το ζητούμενο πλάνο, ώστε μια αναφορά φόντου να μη θεωρηθεί ο κύριος χαρακτήρας.</p><p>Το συγκεκριμένο παράδειγμα του 2.5 είναι μια διαφημιστική ακολουθία προϊόντος. Παρέχει μία εικόνα και πολλές αναφορές βίντεο και μετά περιγράφει ένα αρχικό σημείο εστίασης, τακτοποιημένες διατάξεις προϊόντων, πλάνα λεπτομερειών, μια ενέργεια σε αργή κίνηση και μια τελική σύνθεση της μάρκας. Το αίτημα αποδίδει ρόλους reference_image και reference_video και χρησιμοποιεί μεμονωμένες αναφορές για τη σύνθεση, την κίνηση, τον χειρισμό της κάμερας και τον αντίκτυπο. Αυτό δίνει μια πρακτική δομή για μια ιδέα καμπάνιας: σχεδίασε τα ορατά στάδια, προσδιόρισε την αναφορά κάθε σταδίου και καθόρισε την τελική διάταξη.</p><p>Μια γραπτή ακολουθία μπορεί να ξεχωρίζει τι συμβαίνει από το πώς κινηματογραφείται. Περιέγραψε πρώτα τι συμβαίνει με το προϊόν και μετά το μέγεθος πλάνου, τη διαδρομή της κάμερας, τον ρυθμό και τη μετάβαση στην επόμενη όψη. Αν μια αναφορά καθορίζει το προϊόν και μια άλλη δείχνει κίνηση της κάμερας, ονόμασε αυτές τις ξεχωριστές αρμοδιότητες. Για σκηνή με πολλά αντικείμενα, εξήγησε τις θέσεις τους και τη σειρά των αλληλεπιδράσεων. Εξέτασε το παραγόμενο αποτέλεσμα για το πραγματικό σχήμα, τη διάταξη και την κίνηση του προϊόντος, αντί να υποθέτεις ότι κάθε λεπτομέρεια των αναφορών εμφανίζεται αμετάβλητη.</p><p>Για επεξεργασία, προσδιόρισε το υπάρχον βίντεο και το στοιχείο προς αναθεώρηση, όπως το περιβάλλον, μια ενέργεια ή το οπτικό ύφος, δηλώνοντας παράλληλα τη συνέχεια που πρέπει να διατηρηθεί. Για επέκταση, περιέγραψε πώς πρέπει να συνεχιστεί η σκηνή από το παρεχόμενο υλικό. Έλεγξε το σημείο σύνδεσης μαζί με το νέο τμήμα: η εμφάνιση του θέματος, η κατεύθυνση κίνησης, η θέση της κάμερας και ο χρονισμός του ήχου επηρεάζουν αν το αποτέλεσμα γίνεται αντιληπτό ως μία σκηνή. Κράτησε μαζί το αρχικό βίντεο και την ολοκληρωμένη αναθεώρηση, ώστε η αλλαγή να ελεγχθεί σε σχέση με την επιθυμητή συνέχεια.</p><p>Το τεκμηριωμένο πολυτροπικό παράδειγμα του 2.5 θέτει generate_audio=true και ζητά ακολουθία δεκαπέντε δευτερολέπτων με κάδρο 16:9. Αυτές οι τιμές περιγράφουν το συγκεκριμένο παράδειγμα, όχι καθολικό ανώτατο όριο διάρκειας ή όριο αρχείων αναφοράς. Δώσε στη ζητούμενη σκηνή σαφή ηχητική κατεύθυνση, μαζί με τη σχέση μουσικής, εφέ και ορατής δράσης, και μετά αξιολόγησε την πραγματική οπτικοακουστική έξοδο. Η ηχητική αναφορά και η παραγόμενη ηχητική επένδυση πρέπει να ελεγχθούν μαζί ως προς τον επιθυμητό ρυθμό και την ερμηνεία.</p><p>Διάλεξε διάρκεια, κάδρο και ανάλυση από τις ρυθμίσεις που προσφέρονται για αυτό το συγκεκριμένο προφίλ. Κράτησε τη ζητούμενη διαμόρφωση μαζί με τις οδηγίες και σύγκρινέ την με τα πραγματικά επιστρεφόμενα πεδία της εργασίας. Χρησιμοποίησε την επιστρεφόμενη διάρκεια, ανάλυση και αναλογία όταν προετοιμάζεις το ολοκληρωμένο απόσπασμα για τον προορισμό του. Διατήρησε το ακριβές αναγνωριστικό προφίλ στο αρχείο αναθεώρησης, ώστε μια μεταγενέστερη σύγκριση να χρησιμοποιεί την ίδια επιλεγμένη έκδοση.</p><p>Η χρήση token βίντεο υπολογίζεται ως (διάρκεια βίντεο εισόδου + διάρκεια βίντεο εξόδου) × πλάτος εξόδου × ύψος εξόδου × ρυθμός καρέ εξόδου / 1024. Τα αιτήματα που περιέχουν βίντεο εισόδου και όσα δεν περιέχουν έχουν διακριτές κατηγορίες χρέωσης. Το ερώτημα για την εργασία αναφέρει usage.completion_tokens και usage.total_tokens· κράτησε αυτές τις αναφερόμενες ποσότητες μαζί με το ολοκληρωμένο απόσπασμα.</p><p>Η δημιουργία είναι ασύγχρονη. Η υποβολή επιστρέφει αναγνωριστικό και η διαμορφωμένη ροή εργασιών παρέχει την κατάσταση και κατόπιν το content.video_url μετά την επιτυχία. Αποθήκευσε το ολοκληρωμένο απόσπασμα μαζί με τα αρχικά μέσα και τις οδηγίες της ακολουθίας. Έλεγξε όλα τα σχεδιασμένα στάδια, τις αλληλεπιδράσεις αντικειμένων, την εμφάνιση των χαρακτήρων, το κάδρο και τον συγχρονισμό ήχου σε όλο το αποτέλεσμα. Για μια αναθεώρηση, προσδιόρισε τη συγκεκριμένη λεπτομέρεια που δεν πέτυχε και διατήρησε τα επιτυχημένα μέρη της σκηνής, αντί να αντικαθιστάς ολόκληρο το κείμενο με άσχετες οδηγίες.</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>video</code>, <code>audio</code></dd></div><div><dt>Έξοδος</dt><dd><code>video</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Απαίτηση</th><th>Τιμές και όρια</th><th>Προεπιλογή</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>doubao-seedance-2-5-260628</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">content</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>array</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Συνθήκες: Εγγενή αντικείμενα κειμένου και πολυμέσων· ο εξωτερικός πίνακας δεν πρέπει να είναι κενός. Οι τύποι εμφωλευμένων κόμβων δεν επικυρώνονται από αυτόν τον γενικό κατασκευαστή του Ailoot.</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">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>Συνθήκες: Το παράδειγμα για την 2.5 ορίζει true, αλλά η αντιγραμμένη περιγραφή επιλογέα αναφέρει μόνο 2.0/fast/1.5· δεν παρέχεται ευρύτερη εγγύηση για ρυθμίσεις ή προεπιλογές.</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>integer</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Συνθήκες: Η κυριολεκτική τιμή 15 στο παράδειγμα για την 2.5 δεν είναι μέγιστο ή προεπιλογή.</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>Συνθήκες: Δεν συνάγεται προεπιλογή ή απαρίθμηση τιμών ειδική για την 2.5 από αντιγραμμένες περιγραφές.</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\">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>Συνθήκες: Το adaptive αφορά ρητά τα 2.0/fast/1.5· το παράδειγμα για το 2.5 δείχνει μόνο 16: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\">watermark</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>boolean</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>false</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">seed</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>integer</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Ελάχιστο: -1</div><div>Μέγιστο: 4.294.967.295</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>-1</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">execution_expires_after</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>integer</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Ελάχιστο: 3.600</div><div>Μέγιστο: 259.200</div><div>Μονάδα: δευτερόλεπτα</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>172.800</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">service_tier</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Συνθήκες: Τα 2.0/fast αποκλείουν το flex εκτός σύνδεσης· το πεδίο εφαρμογής για το 2.5 δεν έχει καθοριστεί.</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\">safety_identifier</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></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p></details><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>content_type</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>application/json</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>required</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>content, model</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>optional</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>generate_audio, duration, resolution, ratio, watermark, seed, execution_expires_after, service_tier, safety_identifier</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, video, 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>true</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>validation_scope</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Το Ailoot ελέγχει τους τύπους των απαιτούμενων πεδίων και ότι το model και ο πίνακας content δεν είναι κενά. Τα υπόλοιπα πεδία αιτήματος διατηρούνται για το επιλεγμένο μοντέλο.</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>material_combinations</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>text, image, video, image, audio, image, video, video, audio, image, video, audio</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>optional_text_with_media</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>true</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>reference_media_count_and_size_limits</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>null</td></tr></tbody></table></div><p>Εναλλακτικά ονόματα μεθόδου: <code>/v1/videos/generations</code></p><p>Κύκλος ζωής: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}/content</code></p><p class=\"note-s\">Δημιουργήστε μία φορά και διατηρήστε το δημόσιο id/polling_url που επιστρέφεται.</p><p class=\"note-s\">Ελέγχετε περιοδικά την αρχική εργασία· κατεβάστε το πραγματικό content.video_url που σας ανήκει μετά το succeeded.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Τιμολόγηση</h3><div class=\"card-result-process\" data-billing-basis><h5>Πώς υπολογίζεται η τελική χρέωση</h5><p class=\"note-s\">Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.</p><dl data-price-conditions><dt>Γρήγορη λειτουργία</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η γρήγορη λειτουργία</span></dd><dt>Λειτουργία flex</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η λειτουργία flex</span></dd><dt>Μέγιστη προσπάθεια συλλογισμού</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Εκτιμώμενες χρεώσεις για σύγκριση</h4><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Πίνακας χρεώσεων</th><th>Προβλεπόμενη ποσότητα</th><th>Μονάδα τιμολόγησης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Βασικές χρεώσεις token</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>Βασική χρέωση</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Token εισόδου · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Έξοδος · Token εξόδου · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Ανάγνωση από την κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Η είσοδος περιέχει βίντεο αναφοράς.</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><div><span>Έξοδος · Εκτίμηση μόνο για σύγκριση</span> <b>$0.012</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Η είσοδος δεν περιέχει βίντεο αναφοράς.</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά 1K token βίντεο</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτίμηση μόνο για σύγκριση</span> <b>$0.02</b> <span class=\"price-unit\">ανά 1K token βίντεο</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Εκτιμώμενο κόστος δημιουργίας</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>εκτίμηση για μία δημιουργία</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτιμώμενο κόστος δημιουργίας · Εκτίμηση μόνο για σύγκριση</span> <b>$0.822402</b> <span class=\"price-unit\">εκτίμηση πριν από τη δημιουργία</span></div><p class=\"note-s\">Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. <a href=\"/docs/el/billing/reserve/\">Πώς λειτουργούν η δέσμευση και η εκκαθάριση →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Παραδείγματα αιτημάτων</h3><h4>Ailoot Ultra · Βίντεο</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-2781-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2781-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · δημιουργήστε βίντεο</button><button class=\"cg-tab\" id=\"model-code-2781-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2781-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · διαβάστε την αρχική εργασία</button><button class=\"cg-tab\" id=\"model-code-2781-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2781-panel-2\" aria-selected=\"false\" tabindex=\"-1\">curl · κατεβάστε το βίντεο που σας ανήκει</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2781-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2781-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON_REQUEST&#39;\n{&quot;model&quot;:&quot;doubao-seedance-2-5-260628&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动&quot;}]}\nJSON_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2781-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2781-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_POLL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(&quot;result.json&quot;).read_text())\ni=r.get(&quot;id&quot;)\nif not isinstance(i,str) or not i.startswith(&quot;native302_&quot;):raise SystemExit(&quot;Keep original response/headers/id; do not resubmit creation.&quot;)\nu=urljoin(&quot;https://api.ailoot.ai&quot;,r.get(&quot;polling_url&quot;) or &quot;/v1/videos/&quot;+quote(i,safe=&quot;&quot;))\np=urlsplit(u)\nif p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or not p.path.startswith(&quot;/v1/videos/&quot;):raise SystemExit(&quot;Use actual Ailoot lookup path.&quot;)\nPath(&quot;poll-url.txt&quot;).write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error &quot;$(cat poll-url.txt)&quot; -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2781-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2781-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(&quot;status.json&quot;).read_text())\nif r.get(&quot;status&quot;)!=&quot;succeeded&quot;:raise SystemExit(&quot;Poll same original job until an owned result is returned.&quot;)\nu=r.get(&quot;content&quot;,{}).get(&quot;video_url&quot;)\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(&quot;No completed video URL.&quot;)\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(&quot;Invalid returned URL.&quot;)\n    p=urlsplit(u)\n    if p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or not p.path.startswith(&quot;/v1/media/assets/&quot;) or not p.path.endswith(&quot;/content&quot;) or not p.query:raise SystemExit(&quot;Wait for actual Ailoot-owned signed result.&quot;)\nPath(&quot;asset-urls.txt&quot;).write_text(&quot;\\n&quot;.join(urls)+&quot;\\n&quot;)\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error &quot;$asset_url&quot; -o &quot;video-${index}.bin&quot;\n  index=$((index + 1))\ndone &lt; asset-urls.txt\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · Βίντεο</h4><p class=\"note-s\">Εγγενές JSON με δημόσιο id/polling_url. Μετά τη δημοσίευση, το content.video_url περιέχει υπογεγραμμένα URL που ανήκουν στο Ailoot· πριν από τη δημοσίευση, τα επιλεγμένα URL εξόδου είναι κενά.</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li><li><code>GET /v1/videos/generations/{request_id}/content</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε κάθε πραγματικό URL στο content.video_url· το index πρέπει να προσδιορίζει πραγματική έξοδο που επιστράφηκε.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε την αρχική απόκριση, τις κεφαλίδες και το id, και ελέγχετε περιοδικά αυτή τη λειτουργία· μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα.</p></div><details class=\"card-about\" data-output-fields><summary>Πεδία απάντησης</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Πεδίο</th><th>Τύπος</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">provider_task_id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">polling_url</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string when supplied</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">content.video_url</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string|string[]</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>object when supplied</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Σφάλματα και επόμενα βήματα</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Απάντηση</th><th>Συνθήκη</th><th>Επόμενο βήμα</th></tr></thead><tbody><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Μη έγκυρο JSON, μοντέλο, τύποι απαιτούμενων πεδίων ή δείκτης περιεχομένου.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span></td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Μη έγκυρο κλειδί API του Ailoot.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span></td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η εργασία ή έξοδος απουσιάζει ή δεν ανήκει στον ίδιο χρήστη, κλειδί API ή ομάδα.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span></td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>502 · <code>result_pending_check</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η αρχική υποβολή ή κατάστασή της είναι ελλιπής· διατηρήστε το αρχικό ID, χωρίς επανυποβολή.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span></td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Τα αρχικά πολυμέσα, η διαδρομή ή η εκκαθάριση ελέγχονται· συνεχίστε την αρχική λειτουργία.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Εναλλακτικά ονόματα</h3><h4>Εναλλακτικά ονόματα μοντέλου</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=doubao-seedance-2-5-260628&amp;route=Ultra&amp;caller=doubao-seedance-2-5-260628&amp;fmt=videos\"><code>doubao-seedance-2-5-260628</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\"><code>/v1/videos/generations</code></p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=doubao-seedance-2-5-260628&amp;route=Ultra&amp;caller=doubao-seedance-2-5-260628&amp;fmt=videos\"><code>doubao-seedance-2-5-260628</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "doubao-seedance-2-5-260628",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "doubao-seedance-2-5-260628",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|doubao-seedance-2-5-260628",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "errors": [
              {
                "condition": "Μη έγκυρο JSON, μοντέλο, τύποι απαιτούμενων πεδίων ή δείκτης περιεχομένου.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "Μη έγκυρο κλειδί API του Ailoot.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "Η εργασία ή έξοδος απουσιάζει ή δεν ανήκει στον ίδιο χρήστη, κλειδί API ή ομάδα.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "Η αρχική υποβολή ή κατάστασή της είναι ελλιπής· διατηρήστε το αρχικό ID, χωρίς επανυποβολή.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "Τα αρχικά πολυμέσα, η διαδρομή ή η εκκαθάριση ελέγχονται· συνεχίστε την αρχική λειτουργία.",
                "http_status": 503,
                "type": "result_pending_check"
              }
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "succeeded"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed",
                "expired"
              ],
              "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "queued",
                "running"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "Διατηρήστε την αρχική απόκριση, τις κεφαλίδες και το id, και ελέγχετε περιοδικά αυτή τη λειτουργία· μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video",
              "multimodal_reference",
              "video_edit_via_content",
              "video_extend_via_content"
            ],
            "outputs": {
              "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
              "all_results": "Διατηρήστε κάθε πραγματικό URL στο content.video_url· το index πρέπει να προσδιορίζει πραγματική έξοδο που επιστράφηκε.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string when supplied"
                },
                {
                  "description": null,
                  "name": "content.video_url",
                  "type": "string|string[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object when supplied"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
              "result": "Εγγενές JSON με δημόσιο id/polling_url. Μετά τη δημοσίευση, το content.video_url περιέχει υπογεγραμμένα URL που ανήκουν στο Ailoot· πριν από τη δημοσίευση, τα επιλεγμένα URL εξόδου είναι κενά."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "doubao-seedance-2-5-260628"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Εγγενή αντικείμενα κειμένου και πολυμέσων· ο εξωτερικός πίνακας δεν πρέπει να είναι κενός. Οι τύποι εμφωλευμένων κόμβων δεν επικυρώνονται από αυτόν τον γενικό κατασκευαστή του Ailoot.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minItems": 1,
                "name": "content",
                "required": true,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "Το παράδειγμα για την 2.5 ορίζει true, αλλά η αντιγραμμένη περιγραφή επιλογέα αναφέρει μόνο 2.0/fast/1.5· δεν παρέχεται ευρύτερη εγγύηση για ρυθμίσεις ή προεπιλογές.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "generate_audio",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Η κυριολεκτική τιμή 15 στο παράδειγμα για την 2.5 δεν είναι μέγιστο ή προεπιλογή.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "Δεν συνάγεται προεπιλογή ή απαρίθμηση τιμών ειδική για την 2.5 από αντιγραμμένες περιγραφές.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Το adaptive αφορά ρητά τα 2.0/fast/1.5· το παράδειγμα για το 2.5 δείχνει μόνο 16:9.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "watermark",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "default": -1,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 4294967295,
                "minimum": -1,
                "name": "seed",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": 172800,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 259200,
                "minimum": 3600,
                "name": "execution_expires_after",
                "required": false,
                "type": "integer",
                "unit": "δευτερόλεπτα"
              },
              {
                "availability": "source_interface",
                "conditions": "Τα 2.0/fast αποκλείουν το flex εκτός σύνδεσης· το πεδίο εφαρμογής για το 2.5 δεν έχει καθοριστεί.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 64,
                "name": "safety_identifier",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact model ID and documented Ailoot video interface.",
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "content": {
                  "items": {
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "duration": {
                  "type": "integer"
                },
                "execution_expires_after": {
                  "maximum": 259200,
                  "minimum": 3600,
                  "type": "integer"
                },
                "generate_audio": {
                  "type": "boolean"
                },
                "model": {
                  "const": "doubao-seedance-2-5-260628",
                  "type": "string"
                },
                "ratio": {
                  "type": "string"
                },
                "resolution": {
                  "type": "string"
                },
                "safety_identifier": {
                  "maxLength": 64,
                  "type": "string"
                },
                "seed": {
                  "maximum": 4294967295,
                  "minimum": -1,
                  "type": "integer"
                },
                "service_tier": {
                  "type": "string"
                },
                "watermark": {
                  "type": "boolean"
                }
              },
              "required": [
                "content",
                "model"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              "Shared content.items.required demands image_url+role even for published text nodes; intended combinations/examples and actual outer-array validation remain distinct.",
              "return_last_frame and callback_url exist upstream but current output ownership selects content.video_url only. No owned last-frame/callback contract is asserted.",
              "2.5 duration/resolution/default/adaptive/service-tier scopes are not explicitly enumerated; no inherited 2.0 limits.",
              "2.5 generate_audio example = true conflicts with copied support-selector prose.",
              "2.5 example1 is a JSON string with trailing comma; not copied as runnable JSON.",
              "2.5 camera_fixed/frames scope unresolved; draft/tools descriptions name other models. No uncertain control added."
            ],
            "unsupported": [
              "Separate cancel/delete for this generic method",
              "Separate edit/extension endpoint for this method"
            ]
          },
          "hints": [
            "Δημιουργήστε μία φορά και διατηρήστε το δημόσιο id/polling_url που επιστρέφεται.",
            "Ελέγχετε περιοδικά την αρχική εργασία· κατεβάστε το πραγματικό content.video_url που σας ανήκει μετά το succeeded."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "material_types": [
              "text",
              "image",
              "video",
              "audio"
            ],
            "optional": [
              "generate_audio",
              "duration",
              "resolution",
              "ratio",
              "watermark",
              "seed",
              "execution_expires_after",
              "service_tier",
              "safety_identifier"
            ],
            "optional_text_with_media": true,
            "reference_media_count_and_size_limits": null,
            "required": [
              "content",
              "model"
            ],
            "validation_scope": "Το Ailoot ελέγχει τους τύπους των απαιτούμενων πεδίων και ότι το model και ο πίνακας content δεν είναι κενά. Τα υπόλοιπα πεδία αιτήματος διατηρούνται για το επιλεγμένο μοντέλο."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "succeeded"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed",
              "expired"
            ],
            "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "queued",
              "running"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "Preserve original response/headers/id and poll that operation; never resubmit unknown creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "text",
              "image",
              "video",
              "audio"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "text_to_video",
            "image_to_video",
            "multimodal_reference",
            "video_edit_via_content",
            "video_extend_via_content"
          ],
          "output": {
            "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
            "all_results": "Retain every actual URL in content.video_url; index must identify a real returned output.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": null,
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": null,
                "name": "status",
                "type": "string when supplied"
              },
              {
                "description": null,
                "name": "content.video_url",
                "type": "string|string[]"
              },
              {
                "description": null,
                "name": "usage",
                "type": "object when supplied"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
            "result": "Native JSON with public id/polling_url. After publication content.video_url contains Ailoot-owned signed URL(s); before publication selected output URLs are blanked."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "Η είσοδος περιέχει βίντεο αναφοράς.",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "Η είσοδος δεν περιέχει βίντεο αναφοράς.",
            "units": [
              {
                "amount": "0.02000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.822402",
                "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.822402",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON_REQUEST'\n{\"model\":\"doubao-seedance-2-5-260628\",\"content\":[{\"type\":\"text\",\"text\":\"女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动\"}]}\nJSON_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i.startswith(\"native302_\"):raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          },
          {
            "code": "set -eu\npython3 - <<'PY_ASSETS'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nif r.get(\"status\")!=\"succeeded\":raise SystemExit(\"Poll same original job until an owned result is returned.\")\nu=r.get(\"content\",{}).get(\"video_url\")\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(\"No completed video URL.\")\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(\"Invalid returned URL.\")\n    p=urlsplit(u)\n    if p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/media/assets/\") or not p.path.endswith(\"/content\") or not p.query:raise SystemExit(\"Wait for actual Ailoot-owned signed result.\")\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" -o \"video-${index}.bin\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "curl · download owned video",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and retain returned public id/polling_url.",
          "Poll the original job; download actual owned content.video_url after succeeded."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "video",
          "audio"
        ],
        "label": "Βίντεο",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "Input contains video.",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "Input contains no video.",
            "units": [
              {
                "amount": "0.02000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.822402",
                "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.822402",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "doubao-seedance-2-5-260628",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.012000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_with_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.000012",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.02000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_without_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.00002",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.822402",
            "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.822402",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "doubao-seedance-2-5-260628",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "0cfa11eddb38e76cb1313e4f3cfe232eebbd030829fd023c2031e6734c044138",
    "input_html_sha256": "8a25dcf53670b535f608965518ab2a1030b9160872d1a1ff945e2f836c20db13",
    "private_audit_sha256": "4a481f1557d647563e82eb847072c5a5f88a3e8591c9d1db359c36aeaf9f4a07",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/doubao-seedance-2-5-260628/",
    "description": "Το Seedance 2.5 δημιουργεί βίντεο από κείμενο και αναφορές εικόνας, βίντεο ή ήχου, με τεκμηριωμένες ροές επεξεργασίας και επέκτασης. Το συγκεκριμένο παράδειγμα του 2.5 συνδυάζει μια εικόνα προϊόντος με πολλές αναφορές κίνησης και ενεργοποιεί παραγόμενο ήχο για μια συντονισμένη διαφημιστική ακολουθία.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/doubao-seedance-2-5-260628/index.md",
    "title": "ByteDance: Seedance 2.5 — Ailoot",
    "url": "https://ailoot.ai/models/el/doubao-seedance-2-5-260628/"
  },
  "rawModel": {
    "about": "Το Seedance 2.5 δημιουργεί βίντεο χρησιμοποιώντας γραπτή σκηνή και πολυτροπικές αναφορές. Το συγκεκριμένο αναγνωριστικό επιλογής doubao-seedance-2-5-260628 έχει τη δική του τεκμηριωμένη λειτουργία και παράδειγμα. Αυτή η λειτουργία περιγράφει δημιουργία, επεξεργασία και επέκταση βίντεο, με εικόνες, βίντεο, ήχο και κείμενο ως μέσα εισόδου. Χρησιμοποίησε τις αναφορές για να μεταδώσεις την εμφάνιση του θέματος, τη δράση, την κίνηση της κάμερας, το ύφος και τον ήχο και μετά εξήγησε το αποτέλεσμα που θέλεις να δημιουργήσεις από αυτές.\n\nΟι συνδυασμοί εισόδου περιλαμβάνουν μόνο κείμενο, εικόνες ή βίντεο με προαιρετικό κείμενο, εικόνες με ήχο, βίντεο με ήχο και εικόνες, βίντεο και ήχο μαζί. Οι αναφερόμενοι συνδυασμοί συνδέουν τον ήχο με οπτικά μέσα, αντί να περιγράφουν αίτημα μόνο με ήχο. Οργάνωσε κάθε στοιχείο ανάλογα με τον ρόλο του: μια εικόνα καθορίζει θέμα ή εμφάνιση, ένα βίντεο δείχνει κίνηση ή υπάρχουσα σκηνή και ο ήχος παρέχει ηχητική αναφορά. Δήλωσε ποιος ρόλος έχει σημασία για το ζητούμενο πλάνο, ώστε μια αναφορά φόντου να μη θεωρηθεί ο κύριος χαρακτήρας.\n\nΤο συγκεκριμένο παράδειγμα του 2.5 είναι μια διαφημιστική ακολουθία προϊόντος. Παρέχει μία εικόνα και πολλές αναφορές βίντεο και μετά περιγράφει ένα αρχικό σημείο εστίασης, τακτοποιημένες διατάξεις προϊόντων, πλάνα λεπτομερειών, μια ενέργεια σε αργή κίνηση και μια τελική σύνθεση της μάρκας. Το αίτημα αποδίδει ρόλους reference_image και reference_video και χρησιμοποιεί μεμονωμένες αναφορές για τη σύνθεση, την κίνηση, τον χειρισμό της κάμερας και τον αντίκτυπο. Αυτό δίνει μια πρακτική δομή για μια ιδέα καμπάνιας: σχεδίασε τα ορατά στάδια, προσδιόρισε την αναφορά κάθε σταδίου και καθόρισε την τελική διάταξη.\n\nΜια γραπτή ακολουθία μπορεί να ξεχωρίζει τι συμβαίνει από το πώς κινηματογραφείται. Περιέγραψε πρώτα τι συμβαίνει με το προϊόν και μετά το μέγεθος πλάνου, τη διαδρομή της κάμερας, τον ρυθμό και τη μετάβαση στην επόμενη όψη. Αν μια αναφορά καθορίζει το προϊόν και μια άλλη δείχνει κίνηση της κάμερας, ονόμασε αυτές τις ξεχωριστές αρμοδιότητες. Για σκηνή με πολλά αντικείμενα, εξήγησε τις θέσεις τους και τη σειρά των αλληλεπιδράσεων. Εξέτασε το παραγόμενο αποτέλεσμα για το πραγματικό σχήμα, τη διάταξη και την κίνηση του προϊόντος, αντί να υποθέτεις ότι κάθε λεπτομέρεια των αναφορών εμφανίζεται αμετάβλητη.\n\nΓια επεξεργασία, προσδιόρισε το υπάρχον βίντεο και το στοιχείο προς αναθεώρηση, όπως το περιβάλλον, μια ενέργεια ή το οπτικό ύφος, δηλώνοντας παράλληλα τη συνέχεια που πρέπει να διατηρηθεί. Για επέκταση, περιέγραψε πώς πρέπει να συνεχιστεί η σκηνή από το παρεχόμενο υλικό. Έλεγξε το σημείο σύνδεσης μαζί με το νέο τμήμα: η εμφάνιση του θέματος, η κατεύθυνση κίνησης, η θέση της κάμερας και ο χρονισμός του ήχου επηρεάζουν αν το αποτέλεσμα γίνεται αντιληπτό ως μία σκηνή. Κράτησε μαζί το αρχικό βίντεο και την ολοκληρωμένη αναθεώρηση, ώστε η αλλαγή να ελεγχθεί σε σχέση με την επιθυμητή συνέχεια.\n\nΤο τεκμηριωμένο πολυτροπικό παράδειγμα του 2.5 θέτει generate_audio=true και ζητά ακολουθία δεκαπέντε δευτερολέπτων με κάδρο 16:9. Αυτές οι τιμές περιγράφουν το συγκεκριμένο παράδειγμα, όχι καθολικό ανώτατο όριο διάρκειας ή όριο αρχείων αναφοράς. Δώσε στη ζητούμενη σκηνή σαφή ηχητική κατεύθυνση, μαζί με τη σχέση μουσικής, εφέ και ορατής δράσης, και μετά αξιολόγησε την πραγματική οπτικοακουστική έξοδο. Η ηχητική αναφορά και η παραγόμενη ηχητική επένδυση πρέπει να ελεγχθούν μαζί ως προς τον επιθυμητό ρυθμό και την ερμηνεία.\n\nΔιάλεξε διάρκεια, κάδρο και ανάλυση από τις ρυθμίσεις που προσφέρονται για αυτό το συγκεκριμένο προφίλ. Κράτησε τη ζητούμενη διαμόρφωση μαζί με τις οδηγίες και σύγκρινέ την με τα πραγματικά επιστρεφόμενα πεδία της εργασίας. Χρησιμοποίησε την επιστρεφόμενη διάρκεια, ανάλυση και αναλογία όταν προετοιμάζεις το ολοκληρωμένο απόσπασμα για τον προορισμό του. Διατήρησε το ακριβές αναγνωριστικό προφίλ στο αρχείο αναθεώρησης, ώστε μια μεταγενέστερη σύγκριση να χρησιμοποιεί την ίδια επιλεγμένη έκδοση.\n\nΗ χρήση token βίντεο υπολογίζεται ως (διάρκεια βίντεο εισόδου + διάρκεια βίντεο εξόδου) × πλάτος εξόδου × ύψος εξόδου × ρυθμός καρέ εξόδου / 1024. Τα αιτήματα που περιέχουν βίντεο εισόδου και όσα δεν περιέχουν έχουν διακριτές κατηγορίες χρέωσης. Το ερώτημα για την εργασία αναφέρει usage.completion_tokens και usage.total_tokens· κράτησε αυτές τις αναφερόμενες ποσότητες μαζί με το ολοκληρωμένο απόσπασμα.\n\nΗ δημιουργία είναι ασύγχρονη. Η υποβολή επιστρέφει αναγνωριστικό και η διαμορφωμένη ροή εργασιών παρέχει την κατάσταση και κατόπιν το content.video_url μετά την επιτυχία. Αποθήκευσε το ολοκληρωμένο απόσπασμα μαζί με τα αρχικά μέσα και τις οδηγίες της ακολουθίας. Έλεγξε όλα τα σχεδιασμένα στάδια, τις αλληλεπιδράσεις αντικειμένων, την εμφάνιση των χαρακτήρων, το κάδρο και τον συγχρονισμό ήχου σε όλο το αποτέλεσμα. Για μια αναθεώρηση, προσδιόρισε τη συγκεκριμένη λεπτομέρεια που δεν πέτυχε και διατήρησε τα επιτυχημένα μέρη της σκηνής, αντί να αντικαθιστάς ολόκληρο το κείμενο με άσχετες οδηγίες.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.822402",
            "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.822402",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "display_name": "ByteDance: Seedance 2.5",
    "formats": [
      "videos"
    ],
    "id": "doubao-seedance-2-5-260628",
    "input": [
      "text",
      "image",
      "video",
      "audio"
    ],
    "kind": "video",
    "locale": "en",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "errors": [
              {
                "condition": "Μη έγκυρο JSON, μοντέλο, τύποι απαιτούμενων πεδίων ή δείκτης περιεχομένου.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "Μη έγκυρο κλειδί API του Ailoot.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "Η εργασία ή έξοδος απουσιάζει ή δεν ανήκει στον ίδιο χρήστη, κλειδί API ή ομάδα.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "Η αρχική υποβολή ή κατάστασή της είναι ελλιπής· διατηρήστε το αρχικό ID, χωρίς επανυποβολή.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "Τα αρχικά πολυμέσα, η διαδρομή ή η εκκαθάριση ελέγχονται· συνεχίστε την αρχική λειτουργία.",
                "http_status": 503,
                "type": "result_pending_check"
              }
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "succeeded"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed",
                "expired"
              ],
              "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "queued",
                "running"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "Διατηρήστε την αρχική απόκριση, τις κεφαλίδες και το id, και ελέγχετε περιοδικά αυτή τη λειτουργία· μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video",
              "multimodal_reference",
              "video_edit_via_content",
              "video_extend_via_content"
            ],
            "outputs": {
              "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
              "all_results": "Διατηρήστε κάθε πραγματικό URL στο content.video_url· το index πρέπει να προσδιορίζει πραγματική έξοδο που επιστράφηκε.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string when supplied"
                },
                {
                  "description": null,
                  "name": "content.video_url",
                  "type": "string|string[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object when supplied"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
              "result": "Εγγενές JSON με δημόσιο id/polling_url. Μετά τη δημοσίευση, το content.video_url περιέχει υπογεγραμμένα URL που ανήκουν στο Ailoot· πριν από τη δημοσίευση, τα επιλεγμένα URL εξόδου είναι κενά."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "doubao-seedance-2-5-260628"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Εγγενή αντικείμενα κειμένου και πολυμέσων· ο εξωτερικός πίνακας δεν πρέπει να είναι κενός. Οι τύποι εμφωλευμένων κόμβων δεν επικυρώνονται από αυτόν τον γενικό κατασκευαστή του Ailoot.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minItems": 1,
                "name": "content",
                "required": true,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "Το παράδειγμα για την 2.5 ορίζει true, αλλά η αντιγραμμένη περιγραφή επιλογέα αναφέρει μόνο 2.0/fast/1.5· δεν παρέχεται ευρύτερη εγγύηση για ρυθμίσεις ή προεπιλογές.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "generate_audio",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Η κυριολεκτική τιμή 15 στο παράδειγμα για την 2.5 δεν είναι μέγιστο ή προεπιλογή.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "Δεν συνάγεται προεπιλογή ή απαρίθμηση τιμών ειδική για την 2.5 από αντιγραμμένες περιγραφές.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Το adaptive αφορά ρητά τα 2.0/fast/1.5· το παράδειγμα για το 2.5 δείχνει μόνο 16:9.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "watermark",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "default": -1,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 4294967295,
                "minimum": -1,
                "name": "seed",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": 172800,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 259200,
                "minimum": 3600,
                "name": "execution_expires_after",
                "required": false,
                "type": "integer",
                "unit": "δευτερόλεπτα"
              },
              {
                "availability": "source_interface",
                "conditions": "Τα 2.0/fast αποκλείουν το flex εκτός σύνδεσης· το πεδίο εφαρμογής για το 2.5 δεν έχει καθοριστεί.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 64,
                "name": "safety_identifier",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact model ID and documented Ailoot video interface.",
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "content": {
                  "items": {
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "duration": {
                  "type": "integer"
                },
                "execution_expires_after": {
                  "maximum": 259200,
                  "minimum": 3600,
                  "type": "integer"
                },
                "generate_audio": {
                  "type": "boolean"
                },
                "model": {
                  "const": "doubao-seedance-2-5-260628",
                  "type": "string"
                },
                "ratio": {
                  "type": "string"
                },
                "resolution": {
                  "type": "string"
                },
                "safety_identifier": {
                  "maxLength": 64,
                  "type": "string"
                },
                "seed": {
                  "maximum": 4294967295,
                  "minimum": -1,
                  "type": "integer"
                },
                "service_tier": {
                  "type": "string"
                },
                "watermark": {
                  "type": "boolean"
                }
              },
              "required": [
                "content",
                "model"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              "Shared content.items.required demands image_url+role even for published text nodes; intended combinations/examples and actual outer-array validation remain distinct.",
              "return_last_frame and callback_url exist upstream but current output ownership selects content.video_url only. No owned last-frame/callback contract is asserted.",
              "2.5 duration/resolution/default/adaptive/service-tier scopes are not explicitly enumerated; no inherited 2.0 limits.",
              "2.5 generate_audio example = true conflicts with copied support-selector prose.",
              "2.5 example1 is a JSON string with trailing comma; not copied as runnable JSON.",
              "2.5 camera_fixed/frames scope unresolved; draft/tools descriptions name other models. No uncertain control added."
            ],
            "unsupported": [
              "Separate cancel/delete for this generic method",
              "Separate edit/extension endpoint for this method"
            ]
          },
          "hints": [
            "Δημιουργήστε μία φορά και διατηρήστε το δημόσιο id/polling_url που επιστρέφεται.",
            "Ελέγχετε περιοδικά την αρχική εργασία· κατεβάστε το πραγματικό content.video_url που σας ανήκει μετά το succeeded."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "material_types": [
              "text",
              "image",
              "video",
              "audio"
            ],
            "optional": [
              "generate_audio",
              "duration",
              "resolution",
              "ratio",
              "watermark",
              "seed",
              "execution_expires_after",
              "service_tier",
              "safety_identifier"
            ],
            "optional_text_with_media": true,
            "reference_media_count_and_size_limits": null,
            "required": [
              "content",
              "model"
            ],
            "validation_scope": "Το Ailoot ελέγχει τους τύπους των απαιτούμενων πεδίων και ότι το model και ο πίνακας content δεν είναι κενά. Τα υπόλοιπα πεδία αιτήματος διατηρούνται για το επιλεγμένο μοντέλο."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "succeeded"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed",
              "expired"
            ],
            "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "queued",
              "running"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "Preserve original response/headers/id and poll that operation; never resubmit unknown creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "text",
              "image",
              "video",
              "audio"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "text_to_video",
            "image_to_video",
            "multimodal_reference",
            "video_edit_via_content",
            "video_extend_via_content"
          ],
          "output": {
            "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
            "all_results": "Retain every actual URL in content.video_url; index must identify a real returned output.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": null,
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": null,
                "name": "status",
                "type": "string when supplied"
              },
              {
                "description": null,
                "name": "content.video_url",
                "type": "string|string[]"
              },
              {
                "description": null,
                "name": "usage",
                "type": "object when supplied"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
            "result": "Native JSON with public id/polling_url. After publication content.video_url contains Ailoot-owned signed URL(s); before publication selected output URLs are blanked."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "Η είσοδος περιέχει βίντεο αναφοράς.",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "Η είσοδος δεν περιέχει βίντεο αναφοράς.",
            "units": [
              {
                "amount": "0.02000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.822402",
                "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.822402",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON_REQUEST'\n{\"model\":\"doubao-seedance-2-5-260628\",\"content\":[{\"type\":\"text\",\"text\":\"女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动\"}]}\nJSON_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i.startswith(\"native302_\"):raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          },
          {
            "code": "set -eu\npython3 - <<'PY_ASSETS'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nif r.get(\"status\")!=\"succeeded\":raise SystemExit(\"Poll same original job until an owned result is returned.\")\nu=r.get(\"content\",{}).get(\"video_url\")\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(\"No completed video URL.\")\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(\"Invalid returned URL.\")\n    p=urlsplit(u)\n    if p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/media/assets/\") or not p.path.endswith(\"/content\") or not p.query:raise SystemExit(\"Wait for actual Ailoot-owned signed result.\")\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" -o \"video-${index}.bin\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "curl · download owned video",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and retain returned public id/polling_url.",
          "Poll the original job; download actual owned content.video_url after succeeded."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "video",
          "audio"
        ],
        "label": "Βίντεο",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "Input contains video.",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "Input contains no video.",
            "units": [
              {
                "amount": "0.02000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.822402",
                "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.822402",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "doubao-seedance-2-5-260628",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.012000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_with_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.000012",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.02000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_without_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.00002",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.822402",
            "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.822402",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "doubao-seedance-2-5-260628",
        "request_model_id": "doubao-seedance-2-5-260628",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance: Seedance 2.5",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.822402,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.822402,
      "varies": false
    },
    "short": "Το Seedance 2.5 δημιουργεί βίντεο από κείμενο και αναφορές εικόνας, βίντεο ή ήχου, με τεκμηριωμένες ροές επεξεργασίας και επέκτασης. Το συγκεκριμένο παράδειγμα του 2.5 συνδυάζει μια εικόνα προϊόντος με πολλές αναφορές κίνησης και ενεργοποιεί παραγόμενο ήχο για μια συντονισμένη διαφημιστική ακολουθία."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Το Seedance 2.5 δημιουργεί βίντεο από κείμενο και αναφορές εικόνας, βίντεο ή ήχου, με τεκμηριωμένες ροές επεξεργασίας και επέκτασης. Το συγκεκριμένο παράδειγμα του 2.5 συνδυάζει μια εικόνα προϊόντος με πολλές αναφορές κίνησης και ενεργοποιεί παραγόμενο ήχο για μια συντονισμένη διαφημιστική ακολουθία.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "7a38a097b5bfa122c917d22c8930b278334938a1a09fecc88ba707329a1f11f5",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "c57bc045a61a9633bb7e5c9bc3dc36122952a2e51b768ada51006552626391b8"
}
