{
  "aboutHtml": "<p>Το Grok Imagine Video είναι η κλασική έκδοση της οικογένειας βίντεο Grok Imagine. Η τρέχουσα τεκμηρίωση του κατασκευαστή καλύπτει παραγωγή νέου αποσπάσματος από προτροπή, κίνηση αρχικής εικόνας, χρήση οπτικών αναφορών και αλλαγή ή συνέχεια υπάρχοντος βίντεο. Αυτές οι ροές παράγουν διαφορετικά τεχνουργήματα: νέα σκηνή, επεξεργασμένη έκδοση παρεχόμενου υλικού ή ένα βίντεο που περιέχει το αρχικό υλικό ακολουθούμενο από νέο περιεχόμενο. Επιλέξτε τη ροή από το ήδη διαθέσιμο υλικό και το μέρος του πλάνου που χρειάζεται αλλαγή.</p><p>Για νέο πλάνο από κείμενο σε βίντεο, περιγράψτε θέμα, περιβάλλον, ορατή δράση, κάμερα και ήχο. Η τυπική παραγωγή υποστηρίζει αποσπάσματα 1–15 δευτερολέπτων, με έξοδο 480p ή 720p και παραγόμενο ήχο. Τεκμηριώνονται τετράγωνες, οριζόντιες, κατακόρυφες και ευρύτερες αναλογίες, συμπεριλαμβανομένων των 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 και 5:2. Μια πρωτότυπη οδηγία θα μπορούσε να ζητά χάρτινο φανάρι που κινείται απαλά πάνω από ήσυχη αυλή καθώς η κάμερα μετακινείται πλαγίως. Ο χρήσιμος έλεγχος εξετάζει αν η κίνηση, το κάδρο και ο ήχος περιβάλλοντος υπηρετούν αυτό το ένα πλάνο.</p><p>Στη μετατροπή εικόνας σε βίντεο, η παρεχόμενη στατική εικόνα είναι το πρώτο καρέ. Προετοιμάστε τη με την επιδιωκόμενη περικοπή, το θέμα και τις ορατές λεπτομέρειες και έπειτα περιγράψτε τη δράση που ακολουθεί. Η έξοδος ακολουθεί την αναλογία διαστάσεων της εικόνας. Μια αρχική στατική εικόνα δίνει ακριβή αρχική σύνθεση, ενώ η μετατροπή αναφορών σε βίντεο χρησιμοποιεί εικόνες για να καθοδηγεί ανθρώπους, προϊόντα ή περιβάλλον σε νέα σύνθεση σκηνής. Η διάκριση αυτών των δύο ρόλων βοηθά να αποφευχθεί ανεπιθύμητη αρχή όταν στόχος είναι η τοποθέτηση γνωστού αντικειμένου σε άλλο σκηνικό.</p><p>Το κλασικό μοντέλο δέχεται έως επτά εικόνες αναφοράς ανά αίτημα με καθοδήγηση αναφορών. Αυτή η λειτουργία περιορίζεται σε δέκα δευτερόλεπτα και 720p. Δώστε σε κάθε αναφορά σαφή ρόλο και προσδιορίστε τη από τη θέση της στη λίστα, αρχίζοντας από &lt;IMAGE_0&gt;. Για σύντομη σκηνή προϊόντος, μία αναφορά μπορεί να προσδιορίζει το αντικείμενο και άλλη την επιθυμητή τοποθεσία. Εστιάστε την οδηγία στην τοποθέτηση του αντικειμένου και στην κύρια δράση του πλάνου. Η κλασική λειτουργία αναφορών χρησιμοποιεί δική της ρύθμιση· η πλήρης έκδοση 1.5 παρέχει τα πρόσθετα χειριστήρια επιλεγμένης φωνής και καθορισμένων καρέ.</p><p>Η επεξεργασία βίντεο δέχεται υπάρχον απόσπασμα και προτροπή που περιγράφει την αλλαγή. Ο κατασκευαστής δέχεται πηγές MP4 με υποστηριζόμενους κωδικοποιητές όπως H.264, H.265 ή AV1, διάρκειας έως 8.7 δευτερολέπτων. Το επεξεργασμένο αποτέλεσμα διατηρεί τη διάρκεια και την αναλογία διαστάσεων της πηγής και ακολουθεί την ανάλυσή της έως ανώτατο όριο 720p. Τα προσαρμοσμένα χειριστήρια διάρκειας, αναλογίας διαστάσεων και ανάλυσης δεν εφαρμόζονται σε αυτή τη ροή επεξεργασίας. Προετοιμάστε πηγή που έχει ήδη τη σύνθεση και τον χρονισμό που χρειάζεται η τελική χρήση, ώστε η προτροπή να εστιάζει στην επιδιωκόμενη οπτική τροποποίηση.</p><p>Μια πρωτότυπη οδηγία επεξεργασίας θα μπορούσε να αλλάζει το χρώμα ενός κασκόλ διατηρώντας το πρόσωπο, την κίνηση, το φόντο και την κάμερα του ατόμου. Δηλώστε ρητά αυτά τα διατηρούμενα στοιχεία μαζί με την αλλαγή. Ο κατασκευαστής περιγράφει διατήρηση της υπόλοιπης πηγής όσο το δυνατόν πιο κοντά στο αρχικό, κάτι που είναι χρήσιμος στόχος ελέγχου και όχι εγγύηση ότι κάθε pixel μένει πανομοιότυπο. Συγκρίνετε το αποτέλεσμα σε όλο το απόσπασμα, ιδιαίτερα όπου το αντικείμενο κινείται, διασταυρώνεται με άλλο αντικείμενο ή κρύβεται μερικώς. Το τελικό τεχνούργημα είναι το επεξεργασμένο απόσπασμα, όχι απλώς μια στατική εικόνα που δείχνει το νέο χρώμα.</p><p>Η επέκταση βίντεο συνεχίζει από το τελευταίο καρέ υπάρχοντος MP4. Η τεκμηριωμένη διάρκεια πηγής είναι 2–15 δευτερόλεπτα· το πρόσθετο τμήμα είναι 2–10 δευτερόλεπτα, με προεπιλογή έξι δευτερολέπτων. Η διάρκεια επέκτασης αφορά μόνο το νέο τμήμα. Μια πηγή δέκα δευτερολέπτων ακολουθούμενη από πέντε δευτερόλεπτα συνέχειας παράγει βίντεο δεκαπέντε δευτερολέπτων που περιέχει και τα δύο μέρη. Το αποτέλεσμα διατηρεί την αναλογία διαστάσεων και την ανάλυση της πηγής εντός ορίου 720p. Προετοιμάστε την τελική στιγμή της πηγής και περιγράψτε τι πρέπει να συμβεί έπειτα, όπως το θέμα να στρέφεται προς ένα αντικείμενο που πλησιάζει ενώ η κάμερα συνεχίζει την τρέχουσα κίνησή της.</p><p>Ελέγξτε μια επέκταση γύρω από το όριο μεταξύ πηγής και νέου περιεχομένου. Ελέγξτε ταυτότητα θέματος, κατεύθυνση κίνησης, ρυθμό κάμερας, φως και ήχο, ώστε η συνέχεια να ταιριάζει στην προηγούμενη δράση. Αν ένα απόσπασμα τελειώνει σε οπτικά αμήχανο σημείο, κάντε αυτό το όριο ρητό μέρος του σχεδίου επόμενου πλάνου. Η συναρμολόγηση μεγαλύτερης σκηνής είναι απόφαση μοντάζ: τα όρια διάρκειας παραγωγής, αναφορών, επεξεργασίας και επέκτασης του μοντέλου είναι ξεχωριστά και το συνολικό αποτέλεσμα επέκτασης μπορεί να είναι μεγαλύτερο από ένα τυπικό νέο παραγόμενο απόσπασμα.</p><p>Η ροή βίντεο του κατασκευαστή είναι ασύγχρονη. Ένα αναγνωριστικό αιτήματος παρακολουθεί εργασία μέχρι το ολοκληρωμένο αποτέλεσμα να δώσει τη θέση και τη διάρκεια βίντεο· οι θέσεις εξόδου είναι προσωρινές. Διατηρήστε το αναπαραγώγιμο αποτέλεσμα και τα αρχικά υλικά του όταν προετοιμάζετε μοντάζ παραγωγής. Το πλήρες Grok Imagine Video 1.5 προσφέρει εγγενή παραγωγή 1080p και πλουσιότερη οπτική, φωνητική και καρέ-κλειδιών καθοδήγηση, ενώ το Lite εξυπηρετεί απλές εργασίες προτροπής ή αρχικής εικόνας. Η κλασική έκδοση παραμένει χρήσιμη όταν το αρχικό υλικό είναι ήδη βίντεο που χρειάζεται κατευθυνόμενη αλλαγή ή συνέχεια.</p>",
  "aboutText": "Το Grok Imagine Video είναι η κλασική έκδοση της οικογένειας βίντεο Grok Imagine. Η τρέχουσα τεκμηρίωση του κατασκευαστή καλύπτει παραγωγή νέου αποσπάσματος από προτροπή, κίνηση αρχικής εικόνας, χρήση οπτικών αναφορών και αλλαγή ή συνέχεια υπάρχοντος βίντεο. Αυτές οι ροές παράγουν διαφορετικά τεχνουργήματα: νέα σκηνή, επεξεργασμένη έκδοση παρεχόμενου υλικού ή ένα βίντεο που περιέχει το αρχικό υλικό ακολουθούμενο από νέο περιεχόμενο. Επιλέξτε τη ροή από το ήδη διαθέσιμο υλικό και το μέρος του πλάνου που χρειάζεται αλλαγή.\n\nΓια νέο πλάνο από κείμενο σε βίντεο, περιγράψτε θέμα, περιβάλλον, ορατή δράση, κάμερα και ήχο. Η τυπική παραγωγή υποστηρίζει αποσπάσματα 1–15 δευτερολέπτων, με έξοδο 480p ή 720p και παραγόμενο ήχο. Τεκμηριώνονται τετράγωνες, οριζόντιες, κατακόρυφες και ευρύτερες αναλογίες, συμπεριλαμβανομένων των 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 και 5:2. Μια πρωτότυπη οδηγία θα μπορούσε να ζητά χάρτινο φανάρι που κινείται απαλά πάνω από ήσυχη αυλή καθώς η κάμερα μετακινείται πλαγίως. Ο χρήσιμος έλεγχος εξετάζει αν η κίνηση, το κάδρο και ο ήχος περιβάλλοντος υπηρετούν αυτό το ένα πλάνο.\n\nΣτη μετατροπή εικόνας σε βίντεο, η παρεχόμενη στατική εικόνα είναι το πρώτο καρέ. Προετοιμάστε τη με την επιδιωκόμενη περικοπή, το θέμα και τις ορατές λεπτομέρειες και έπειτα περιγράψτε τη δράση που ακολουθεί. Η έξοδος ακολουθεί την αναλογία διαστάσεων της εικόνας. Μια αρχική στατική εικόνα δίνει ακριβή αρχική σύνθεση, ενώ η μετατροπή αναφορών σε βίντεο χρησιμοποιεί εικόνες για να καθοδηγεί ανθρώπους, προϊόντα ή περιβάλλον σε νέα σύνθεση σκηνής. Η διάκριση αυτών των δύο ρόλων βοηθά να αποφευχθεί ανεπιθύμητη αρχή όταν στόχος είναι η τοποθέτηση γνωστού αντικειμένου σε άλλο σκηνικό.\n\nΤο κλασικό μοντέλο δέχεται έως επτά εικόνες αναφοράς ανά αίτημα με καθοδήγηση αναφορών. Αυτή η λειτουργία περιορίζεται σε δέκα δευτερόλεπτα και 720p. Δώστε σε κάθε αναφορά σαφή ρόλο και προσδιορίστε τη από τη θέση της στη λίστα, αρχίζοντας από <IMAGE_0>. Για σύντομη σκηνή προϊόντος, μία αναφορά μπορεί να προσδιορίζει το αντικείμενο και άλλη την επιθυμητή τοποθεσία. Εστιάστε την οδηγία στην τοποθέτηση του αντικειμένου και στην κύρια δράση του πλάνου. Η κλασική λειτουργία αναφορών χρησιμοποιεί δική της ρύθμιση· η πλήρης έκδοση 1.5 παρέχει τα πρόσθετα χειριστήρια επιλεγμένης φωνής και καθορισμένων καρέ.\n\nΗ επεξεργασία βίντεο δέχεται υπάρχον απόσπασμα και προτροπή που περιγράφει την αλλαγή. Ο κατασκευαστής δέχεται πηγές MP4 με υποστηριζόμενους κωδικοποιητές όπως H.264, H.265 ή AV1, διάρκειας έως 8.7 δευτερολέπτων. Το επεξεργασμένο αποτέλεσμα διατηρεί τη διάρκεια και την αναλογία διαστάσεων της πηγής και ακολουθεί την ανάλυσή της έως ανώτατο όριο 720p. Τα προσαρμοσμένα χειριστήρια διάρκειας, αναλογίας διαστάσεων και ανάλυσης δεν εφαρμόζονται σε αυτή τη ροή επεξεργασίας. Προετοιμάστε πηγή που έχει ήδη τη σύνθεση και τον χρονισμό που χρειάζεται η τελική χρήση, ώστε η προτροπή να εστιάζει στην επιδιωκόμενη οπτική τροποποίηση.\n\nΜια πρωτότυπη οδηγία επεξεργασίας θα μπορούσε να αλλάζει το χρώμα ενός κασκόλ διατηρώντας το πρόσωπο, την κίνηση, το φόντο και την κάμερα του ατόμου. Δηλώστε ρητά αυτά τα διατηρούμενα στοιχεία μαζί με την αλλαγή. Ο κατασκευαστής περιγράφει διατήρηση της υπόλοιπης πηγής όσο το δυνατόν πιο κοντά στο αρχικό, κάτι που είναι χρήσιμος στόχος ελέγχου και όχι εγγύηση ότι κάθε pixel μένει πανομοιότυπο. Συγκρίνετε το αποτέλεσμα σε όλο το απόσπασμα, ιδιαίτερα όπου το αντικείμενο κινείται, διασταυρώνεται με άλλο αντικείμενο ή κρύβεται μερικώς. Το τελικό τεχνούργημα είναι το επεξεργασμένο απόσπασμα, όχι απλώς μια στατική εικόνα που δείχνει το νέο χρώμα.\n\nΗ επέκταση βίντεο συνεχίζει από το τελευταίο καρέ υπάρχοντος MP4. Η τεκμηριωμένη διάρκεια πηγής είναι 2–15 δευτερόλεπτα· το πρόσθετο τμήμα είναι 2–10 δευτερόλεπτα, με προεπιλογή έξι δευτερολέπτων. Η διάρκεια επέκτασης αφορά μόνο το νέο τμήμα. Μια πηγή δέκα δευτερολέπτων ακολουθούμενη από πέντε δευτερόλεπτα συνέχειας παράγει βίντεο δεκαπέντε δευτερολέπτων που περιέχει και τα δύο μέρη. Το αποτέλεσμα διατηρεί την αναλογία διαστάσεων και την ανάλυση της πηγής εντός ορίου 720p. Προετοιμάστε την τελική στιγμή της πηγής και περιγράψτε τι πρέπει να συμβεί έπειτα, όπως το θέμα να στρέφεται προς ένα αντικείμενο που πλησιάζει ενώ η κάμερα συνεχίζει την τρέχουσα κίνησή της.\n\nΕλέγξτε μια επέκταση γύρω από το όριο μεταξύ πηγής και νέου περιεχομένου. Ελέγξτε ταυτότητα θέματος, κατεύθυνση κίνησης, ρυθμό κάμερας, φως και ήχο, ώστε η συνέχεια να ταιριάζει στην προηγούμενη δράση. Αν ένα απόσπασμα τελειώνει σε οπτικά αμήχανο σημείο, κάντε αυτό το όριο ρητό μέρος του σχεδίου επόμενου πλάνου. Η συναρμολόγηση μεγαλύτερης σκηνής είναι απόφαση μοντάζ: τα όρια διάρκειας παραγωγής, αναφορών, επεξεργασίας και επέκτασης του μοντέλου είναι ξεχωριστά και το συνολικό αποτέλεσμα επέκτασης μπορεί να είναι μεγαλύτερο από ένα τυπικό νέο παραγόμενο απόσπασμα.\n\nΗ ροή βίντεο του κατασκευαστή είναι ασύγχρονη. Ένα αναγνωριστικό αιτήματος παρακολουθεί εργασία μέχρι το ολοκληρωμένο αποτέλεσμα να δώσει τη θέση και τη διάρκεια βίντεο· οι θέσεις εξόδου είναι προσωρινές. Διατηρήστε το αναπαραγώγιμο αποτέλεσμα και τα αρχικά υλικά του όταν προετοιμάζετε μοντάζ παραγωγής. Το πλήρες Grok Imagine Video 1.5 προσφέρει εγγενή παραγωγή 1080p και πλουσιότερη οπτική, φωνητική και καρέ-κλειδιών καθοδήγηση, ενώ το Lite εξυπηρετεί απλές εργασίες προτροπής ή αρχικής εικόνας. Η κλασική έκδοση παραμένει χρήσιμη όταν το αρχικό υλικό είναι ήδη βίντεο που χρειάζεται κατευθυνόμενη αλλαγή ή συνέχεια.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "165090b45655434ab7350c2a1332bc473e5305443bf37130d9ef4ed0a2e0c16e",
    "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\">SpaceXAI: Grok Imagine Video</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>SpaceXAI /</span><code>x-ai/grok-imagine-video</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|x-ai%2Fgrok-imagine-video\">Βίντεο</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\">Το Grok Imagine Video παράγει σύντομα αποσπάσματα από κείμενο, αρχική εικόνα ή έως επτά οπτικές αναφορές. Η κλασική έκδοσή του επεξεργάζεται επίσης υπάρχοντα αποσπάσματα MP4 και προσθέτει 2–10 δευτερόλεπτα συνέχειας. Η παραγωγή φτάνει σε 720p με ήχο· η επεξεργασία και η επέκταση διατηρούν το αρχικό κάδρο εντός των δικών τους ορίων.</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>Το Grok Imagine Video είναι η κλασική έκδοση της οικογένειας βίντεο Grok Imagine. Η τρέχουσα τεκμηρίωση του κατασκευαστή καλύπτει παραγωγή νέου αποσπάσματος από προτροπή, κίνηση αρχικής εικόνας, χρήση οπτικών αναφορών και αλλαγή ή συνέχεια υπάρχοντος βίντεο. Αυτές οι ροές παράγουν διαφορετικά τεχνουργήματα: νέα σκηνή, επεξεργασμένη έκδοση παρεχόμενου υλικού ή ένα βίντεο που περιέχει το αρχικό υλικό ακολουθούμενο από νέο περιεχόμενο. Επιλέξτε τη ροή από το ήδη διαθέσιμο υλικό και το μέρος του πλάνου που χρειάζεται αλλαγή.</p><p>Για νέο πλάνο από κείμενο σε βίντεο, περιγράψτε θέμα, περιβάλλον, ορατή δράση, κάμερα και ήχο. Η τυπική παραγωγή υποστηρίζει αποσπάσματα 1–15 δευτερολέπτων, με έξοδο 480p ή 720p και παραγόμενο ήχο. Τεκμηριώνονται τετράγωνες, οριζόντιες, κατακόρυφες και ευρύτερες αναλογίες, συμπεριλαμβανομένων των 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 και 5:2. Μια πρωτότυπη οδηγία θα μπορούσε να ζητά χάρτινο φανάρι που κινείται απαλά πάνω από ήσυχη αυλή καθώς η κάμερα μετακινείται πλαγίως. Ο χρήσιμος έλεγχος εξετάζει αν η κίνηση, το κάδρο και ο ήχος περιβάλλοντος υπηρετούν αυτό το ένα πλάνο.</p><p>Στη μετατροπή εικόνας σε βίντεο, η παρεχόμενη στατική εικόνα είναι το πρώτο καρέ. Προετοιμάστε τη με την επιδιωκόμενη περικοπή, το θέμα και τις ορατές λεπτομέρειες και έπειτα περιγράψτε τη δράση που ακολουθεί. Η έξοδος ακολουθεί την αναλογία διαστάσεων της εικόνας. Μια αρχική στατική εικόνα δίνει ακριβή αρχική σύνθεση, ενώ η μετατροπή αναφορών σε βίντεο χρησιμοποιεί εικόνες για να καθοδηγεί ανθρώπους, προϊόντα ή περιβάλλον σε νέα σύνθεση σκηνής. Η διάκριση αυτών των δύο ρόλων βοηθά να αποφευχθεί ανεπιθύμητη αρχή όταν στόχος είναι η τοποθέτηση γνωστού αντικειμένου σε άλλο σκηνικό.</p><p>Το κλασικό μοντέλο δέχεται έως επτά εικόνες αναφοράς ανά αίτημα με καθοδήγηση αναφορών. Αυτή η λειτουργία περιορίζεται σε δέκα δευτερόλεπτα και 720p. Δώστε σε κάθε αναφορά σαφή ρόλο και προσδιορίστε τη από τη θέση της στη λίστα, αρχίζοντας από &lt;IMAGE_0&gt;. Για σύντομη σκηνή προϊόντος, μία αναφορά μπορεί να προσδιορίζει το αντικείμενο και άλλη την επιθυμητή τοποθεσία. Εστιάστε την οδηγία στην τοποθέτηση του αντικειμένου και στην κύρια δράση του πλάνου. Η κλασική λειτουργία αναφορών χρησιμοποιεί δική της ρύθμιση· η πλήρης έκδοση 1.5 παρέχει τα πρόσθετα χειριστήρια επιλεγμένης φωνής και καθορισμένων καρέ.</p><p>Η επεξεργασία βίντεο δέχεται υπάρχον απόσπασμα και προτροπή που περιγράφει την αλλαγή. Ο κατασκευαστής δέχεται πηγές MP4 με υποστηριζόμενους κωδικοποιητές όπως H.264, H.265 ή AV1, διάρκειας έως 8.7 δευτερολέπτων. Το επεξεργασμένο αποτέλεσμα διατηρεί τη διάρκεια και την αναλογία διαστάσεων της πηγής και ακολουθεί την ανάλυσή της έως ανώτατο όριο 720p. Τα προσαρμοσμένα χειριστήρια διάρκειας, αναλογίας διαστάσεων και ανάλυσης δεν εφαρμόζονται σε αυτή τη ροή επεξεργασίας. Προετοιμάστε πηγή που έχει ήδη τη σύνθεση και τον χρονισμό που χρειάζεται η τελική χρήση, ώστε η προτροπή να εστιάζει στην επιδιωκόμενη οπτική τροποποίηση.</p><p>Μια πρωτότυπη οδηγία επεξεργασίας θα μπορούσε να αλλάζει το χρώμα ενός κασκόλ διατηρώντας το πρόσωπο, την κίνηση, το φόντο και την κάμερα του ατόμου. Δηλώστε ρητά αυτά τα διατηρούμενα στοιχεία μαζί με την αλλαγή. Ο κατασκευαστής περιγράφει διατήρηση της υπόλοιπης πηγής όσο το δυνατόν πιο κοντά στο αρχικό, κάτι που είναι χρήσιμος στόχος ελέγχου και όχι εγγύηση ότι κάθε pixel μένει πανομοιότυπο. Συγκρίνετε το αποτέλεσμα σε όλο το απόσπασμα, ιδιαίτερα όπου το αντικείμενο κινείται, διασταυρώνεται με άλλο αντικείμενο ή κρύβεται μερικώς. Το τελικό τεχνούργημα είναι το επεξεργασμένο απόσπασμα, όχι απλώς μια στατική εικόνα που δείχνει το νέο χρώμα.</p><p>Η επέκταση βίντεο συνεχίζει από το τελευταίο καρέ υπάρχοντος MP4. Η τεκμηριωμένη διάρκεια πηγής είναι 2–15 δευτερόλεπτα· το πρόσθετο τμήμα είναι 2–10 δευτερόλεπτα, με προεπιλογή έξι δευτερολέπτων. Η διάρκεια επέκτασης αφορά μόνο το νέο τμήμα. Μια πηγή δέκα δευτερολέπτων ακολουθούμενη από πέντε δευτερόλεπτα συνέχειας παράγει βίντεο δεκαπέντε δευτερολέπτων που περιέχει και τα δύο μέρη. Το αποτέλεσμα διατηρεί την αναλογία διαστάσεων και την ανάλυση της πηγής εντός ορίου 720p. Προετοιμάστε την τελική στιγμή της πηγής και περιγράψτε τι πρέπει να συμβεί έπειτα, όπως το θέμα να στρέφεται προς ένα αντικείμενο που πλησιάζει ενώ η κάμερα συνεχίζει την τρέχουσα κίνησή της.</p><p>Ελέγξτε μια επέκταση γύρω από το όριο μεταξύ πηγής και νέου περιεχομένου. Ελέγξτε ταυτότητα θέματος, κατεύθυνση κίνησης, ρυθμό κάμερας, φως και ήχο, ώστε η συνέχεια να ταιριάζει στην προηγούμενη δράση. Αν ένα απόσπασμα τελειώνει σε οπτικά αμήχανο σημείο, κάντε αυτό το όριο ρητό μέρος του σχεδίου επόμενου πλάνου. Η συναρμολόγηση μεγαλύτερης σκηνής είναι απόφαση μοντάζ: τα όρια διάρκειας παραγωγής, αναφορών, επεξεργασίας και επέκτασης του μοντέλου είναι ξεχωριστά και το συνολικό αποτέλεσμα επέκτασης μπορεί να είναι μεγαλύτερο από ένα τυπικό νέο παραγόμενο απόσπασμα.</p><p>Η ροή βίντεο του κατασκευαστή είναι ασύγχρονη. Ένα αναγνωριστικό αιτήματος παρακολουθεί εργασία μέχρι το ολοκληρωμένο αποτέλεσμα να δώσει τη θέση και τη διάρκεια βίντεο· οι θέσεις εξόδου είναι προσωρινές. Διατηρήστε το αναπαραγώγιμο αποτέλεσμα και τα αρχικά υλικά του όταν προετοιμάζετε μοντάζ παραγωγής. Το πλήρες Grok Imagine Video 1.5 προσφέρει εγγενή παραγωγή 1080p και πλουσιότερη οπτική, φωνητική και καρέ-κλειδιών καθοδήγηση, ενώ το Lite εξυπηρετεί απλές εργασίες προτροπής ή αρχικής εικόνας. Η κλασική έκδοση παραμένει χρήσιμη όταν το αρχικό υλικό είναι ήδη βίντεο που χρειάζεται κατευθυνόμενη αλλαγή ή συνέχεια.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Βίντεο</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Έξοδος</dt><dd><code>video</code></dd></div><div><dt>Μορφή εξόδου</dt><dd>αρχικά byte του MP4· χωρίς κανονικοποίηση ή διακωδικοποίηση</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Απαίτηση</th><th>Τιμές και όρια</th><th>Προεπιλογή</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>x-ai/grok-imagine-video</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>integer</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</div><div>Ελάχιστο: 1</div><div>Μέγιστο: 600</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>480p, 720p</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>boolean</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>false</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">frame_images</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>array</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Ελάχιστο πλήθος στοιχείων: 1</div><div>Μέγιστο πλήθος στοιχείων: 1</div><div>Περιεχόμενο εισόδου: Πίνακας αντικειμένων καρέ. Κάθε αντικείμενο έχει type=image_url, image_url που περιέχει url και frame_type. Χρησιμοποιήστε HTTPS URL εικόνας και ορίστε το frame_type σε first_frame. Κάθε ρόλος καρέ εμφανίζεται το πολύ μία φορά.</div><div>Ακριβή κλειδιά: type, image_url, frame_type</div><div>Συνθήκες: Αυτά τα κλειδιά περιγράφουν κάθε αντικείμενο καρέ· το image_url περιέχει μόνο url. Παραλείψτε το frame_images για αίτημα μόνο με κείμενο.</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>array</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">size</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>854x480, 1280x720, 480x854, 720x1280, 480x480, 720x720, 640x480, 960x720, 480x640, 720x960, 720x480, 1080x720, 480x720, 720x1080</div><div>Μοτίβο: ^[1-9][0-9]*x[1-9][0-9]*$</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">callback_url</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Μοτίβο: ^https://</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>object</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Συνδυασμοί υλικών εισόδου</summary><p class=\"note-s\"><b>Κείμενο σε βίντεο</b> · Μια γραπτή προτροπή. · Υποχρεωτικό: model, prompt, duration</p><p class=\"note-s\"><code>Δώστε την προτροπή ως κείμενο και τη διάρκεια σε ακέραια δευτερόλεπτα. Επιλέξτε υποστηριζόμενη ανάλυση· προσθέστε αναλογία διαστάσεων ή χρησιμοποιήστε αναγραφόμενο μέγεθος.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Τύπος: string · x-ai/grok-imagine-video</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Τύπος: string · Μέγιστο πλήθος byte UTF-8: 10.000 · Απαιτείται περιεχόμενο πέρα από κενά διαστήματα: Ναι</p><p class=\"note-s\"><b>Εικόνα σε βίντεο</b> · Μια γραπτή προτροπή και μια εικόνα πρώτου καρέ. · Υποχρεωτικό: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>Το frame_images είναι πίνακας. Κάθε αντικείμενο καρέ έχει type, image_url και frame_type· το image_url περιέχει url. Ορίστε το type σε image_url. Χρησιμοποιήστε first_frame. Κάθε ρόλος καρέ εμφανίζεται το πολύ μία φορά. Δώστε ένα δημόσιο HTTPS URL εικόνας για κάθε καρέ. Χρησιμοποιήστε είτε εικόνες καρέ είτε εικόνες αναφοράς σε ένα αίτημα· μην συνδυάζετε και τα δύο. Επιλέξτε υποστηριζόμενη ανάλυση· προσθέστε αναλογία διαστάσεων ή χρησιμοποιήστε αναγραφόμενο μέγεθος.</code></p><p class=\"note-s\">Ακριβή κλειδιά: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Τύπος: string · x-ai/grok-imagine-video</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Τύπος: string · Μέγιστο πλήθος byte UTF-8: 10.000 · Απαιτείται περιεχόμενο πέρα από κενά διαστήματα: Ναι</p><p class=\"note-s\"><b>Reference to video</b> · Μια γραπτή προτροπή και υποστηριζόμενες εικόνες αναφοράς. · Υποχρεωτικό: model, prompt, duration, input_references</p><p class=\"note-s\"><code>Το input_references είναι πίνακας αντικειμένων. Ορίστε το type σε image_url και χρησιμοποιήστε το αντίστοιχο πεδίο που περιέχει url. Χρησιμοποιήστε δημόσια HTTPS URL. Παραλείψτε το frame_images για να επιλέξετε λειτουργία αναφορών. Μην συνδυάζετε εικόνες αναφοράς με εικόνες καρέ. Επιλέξτε υποστηριζόμενη ανάλυση· προσθέστε αναλογία διαστάσεων ή χρησιμοποιήστε αναγραφόμενο μέγεθος.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Τύπος: string · x-ai/grok-imagine-video</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Τύπος: string · Μέγιστο πλήθος byte UTF-8: 10.000 · Απαιτείται περιεχόμενο πέρα από κενά διαστήματα: Ναι</p></details><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>content_type</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>application/json</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>required</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>model, prompt, duration</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>material_types</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>text, image</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>additional_properties</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>false</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>optional_controls</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, size, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>Κύκλος ζωής: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Τιμολόγηση</h3><div class=\"card-result-process\" data-billing-basis><h5>Πώς υπολογίζεται η τελική χρέωση</h5><p class=\"note-s\">Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.</p><dl data-price-conditions><dt>Γρήγορη λειτουργία</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η γρήγορη λειτουργία</span></dd><dt>Λειτουργία flex</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η λειτουργία flex</span></dd><dt>Μέγιστη προσπάθεια συλλογισμού</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Εκτιμώμενες χρεώσεις για σύγκριση</h4><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Πίνακας χρεώσεων</th><th>Προβλεπόμενη ποσότητα</th><th>Μονάδα τιμολόγησης</th><th>Συνθήκες χρέωσης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Βασικές χρεώσεις token</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>Βασική χρέωση</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>—</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Token εισόδου · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Έξοδος · Token εξόδου · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Ανάγνωση από την κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Εικόνα εισόδου</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά εικόνα</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>Δεν δηλώνεται πρόσθετη συνθήκη σε αυτό το κλειδί τιμολόγησης.</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Εικόνα εισόδου · Εκτίμηση μόνο για σύγκριση</span> <b>$0.004</b> <span class=\"price-unit\">ανά εικόνα</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>resolution: 480p</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή βίντεο · Εκτίμηση μόνο για σύγκριση</span> <b>$0.1</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο</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>resolution: 720p</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή βίντεο · Εκτίμηση μόνο για σύγκριση</span> <b>$0.14</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Εκτιμώμενο κόστος δημιουργίας</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>εκτίμηση για μία δημιουργία</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>—</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτιμώμενο κόστος δημιουργίας · Εκτίμηση μόνο για σύγκριση</span> <b>$0.1</b> <span class=\"price-unit\">εκτίμηση πριν από τη δημιουργία</span></div><p class=\"note-s\">Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. <a href=\"/docs/el/billing/reserve/\">Πώς λειτουργούν η δέσμευση και η εκκαθάριση →</a></p><div data-declared-reference-pricing><h4>Στοιχεία τιμοκαταλόγου αναφοράς</h4><p class=\"note-s\">Οι πίνακες αναφοράς του μοντέλου δεν αλλάζουν την επιλογή μεθόδου, τις εκτιμήσεις τιμής ή τις χρεώσεις. Οι εφαρμοζόμενες χρεώσεις χρησιμοποιούν τις τιμές της επιλεγμένης μεθόδου Ailoot.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Τιμές αναφοράς για διαμορφώσεις βίντεο</summary><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Συνθήκες χρέωσης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Εικόνα εισόδου</th><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>Δεν δηλώνεται πρόσθετη συνθήκη σε αυτό το κλειδί τιμολόγησης.</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Εικόνα εισόδου</span> <b>$0.004</b> <span class=\"price-unit\">ανά εικόνα</span></div><p class=\"note-s\">Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.</p></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Τιμή βίντεο</th><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>resolution: 480p</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή βίντεο</span> <b>$0.1</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο</span></div><p class=\"note-s\">Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.</p></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Τιμή βίντεο</th><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>resolution: 720p</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή βίντεο</span> <b>$0.14</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο</span></div><p class=\"note-s\">Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Παραδείγματα αιτημάτων</h3><h4>Ailoot Ultra · Βίντεο</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-2720-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2720-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · δημιουργήστε βίντεο</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2720-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2720-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;aspect_ratio&quot;:&quot;16:9&quot;,&quot;duration&quot;:8,&quot;model&quot;:&quot;x-ai/grok-imagine-video&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;resolution&quot;:&quot;720p&quot;}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · Βίντεο</h4><p class=\"note-s\">υπογεγραμμένα URL περιεχομένου που σας ανήκει</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_id}/content</code></li></ul><h5>Έλεγχος κατάστασης εργασίας</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-2721-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2721-panel-0\" aria-selected=\"true\" tabindex=\"0\">Λήψη της κατάστασης της αρχικής ενέργειας με GET</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2721-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2721-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>Άλλες ανακτήσεις περιεχομένου</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-2722-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2722-panel-0\" aria-selected=\"true\" tabindex=\"0\">Αποθηκεύστε κάθε ολοκληρωμένο αποτέλεσμα που σας ανήκει</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2722-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2722-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε κάθε πραγματική έξοδο που σας ανήκει και τα μετρημένα μεταδεδομένα που επιστρέφονται μαζί της.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">503 result_pending_check + αρχικό id + X-Should-Retry:false· μην επαναλάβετε ποτέ το αρχικό αίτημα</p></div><details class=\"card-about\" data-output-fields><summary>Πεδία απάντησης</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Σημασία</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Θέση αυτού του βίντεο στη λίστα εξόδων, με αρίθμηση από το μηδέν.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Υπογεγραμμένο HTTPS URL λήψης για αυτό το ολοκληρωμένο βίντεο.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Σύνοψη SHA-256 των αρχικών byte βίντεο· null αν δεν είναι διαθέσιμη.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Μέγεθος του αρχικού αρχείου βίντεο σε byte· null αν δεν είναι διαθέσιμο.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Μετρημένη διάρκεια βίντεο σε χιλιοστά του δευτερολέπτου· null αν δεν είναι διαθέσιμη.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Πλάτος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Ύψος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Αναγνωριστικό κωδικοποιητή βίντεο· null αν δεν έχει καταγραφεί.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>boolean | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Αν το βίντεο περιέχει ηχητικό κομμάτι· null αν δεν έχει μετρηθεί.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string | null</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Αναγνωριστικό κωδικοποιητή ήχου· null όταν δεν έχει καταγραφεί αναγνωριστικό.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Σφάλματα και επόμενα βήματα</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Απάντηση</th><th>Συνθήκη</th><th>Επόμενο βήμα</th></tr></thead><tbody><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η πρόσβαση στο βίντεο δεν είναι διαθέσιμη ή αυτό το ID βίντεο δεν βρέθηκε.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγξτε την πρόσβαση στο βίντεο. Για υπάρχον βίντεο, χρησιμοποιήστε το αρχικό δημόσιο ID του και το ίδιο κλειδί API.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το κλειδί API δεν αντιστοιχεί στον ταυτοποιημένο λογαριασμό.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγξτε το κλειδί API και την πρόσβαση του λογαριασμού σας πριν υποβάλετε αίτημα.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Δεν ήταν δυνατή η ανάγνωση του αιτήματος ή ο δείκτης λήψης δεν είναι έγκυρος.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διορθώστε το σώμα αιτήματος. Για λήψη, επιλέξτε δείκτη εξόδου που επιστράφηκε από την αρχική εργασία.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η επιλεγμένη διαμόρφωση βίντεο δεν μπορεί να τιμολογηθεί.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Επιλέξτε μια υποστηριζόμενη διαμόρφωση βίντεο και συμπληρώστε τις απαιτούμενες επιλογές της πριν υποβάλετε διορθωμένο αίτημα.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Μια είσοδος βίντεο ή η αρχική εργασία συνέχισης δεν είναι έγκυρη.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Χρησιμοποιήστε έγκυρες εισόδους HTTPS. Για συνέχιση, χρησιμοποιήστε το δημόσιο ID του ολοκληρωμένου αρχικού σας βίντεο με το ίδιο κλειδί API.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>402 · <code>billing_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το διαθέσιμο υπόλοιπο ή τα όρια δεν επιτρέπουν δέσμευση ποσού.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγξτε το διαθέσιμο υπόλοιπο και τα όριά σας πριν στείλετε νέο αίτημα.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>server_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η επαλήθευση βίντεο, η αποθήκευση ή η πρόσβαση στην υπηρεσία είναι προσωρινά μη διαθέσιμη.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Περιμένετε να γίνει διαθέσιμη η υπηρεσία. Αν έχετε ήδη ID βίντεο, ελέγξτε αυτή την αρχική εργασία αντί να ξεκινήσετε άλλη δημιουργία.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το αρχικό αποτέλεσμα βίντεο και η χρέωση χρειάζονται έλεγχο.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε το ID βίντεο που επιστρέφεται και ελέγξτε αυτή την εργασία. Μην στέλνετε νέο αίτημα δημιουργίας για αντικατάσταση όσο διαρκεί ο έλεγχος.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η λήψη του υπάρχοντος βίντεο είναι προσωρινά μη διαθέσιμη.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγξτε αργότερα την ίδια εργασία βίντεο και κατεβάστε την υπάρχουσα έξοδό της. Μια νέα δημιουργία παράγει ξεχωριστή λειτουργία.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το περιεχόμενο βίντεο δεν έχει δημοσιευτεί.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγξτε την κατάσταση της αρχικής εργασίας. Κατεβάστε το αποτέλεσμα όταν αναφέρει completed· αν αναφέρει failed, ακολουθήστε την ειδοποίησή της για έλεγχο χρέωσης.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Εναλλακτικά ονόματα</h3><h4>Εναλλακτικά ονόματα μοντέλου</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=x-ai%2Fgrok-imagine-video&amp;route=Ultra&amp;caller=x-ai%2Fgrok-imagine-video&amp;fmt=videos\"><code>x-ai/grok-imagine-video</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\">Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.</p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=x-ai%2Fgrok-imagine-video&amp;route=Ultra&amp;caller=x-ai%2Fgrok-imagine-video&amp;fmt=videos\"><code>x-ai/grok-imagine-video</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "x-ai/grok-imagine-video",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "x-ai/grok-imagine-video",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|x-ai%2Fgrok-imagine-video",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Διατηρήστε κάθε πραγματική έξοδο που σας ανήκει και τα μετρημένα μεταδεδομένα που επιστρέφονται μαζί της.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Η πρόσβαση στο βίντεο δεν είναι διαθέσιμη ή αυτό το ID βίντεο δεν βρέθηκε.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε την πρόσβαση στο βίντεο. Για υπάρχον βίντεο, χρησιμοποιήστε το αρχικό δημόσιο ID του και το ίδιο κλειδί API.",
                "type": "not_found_error"
              },
              {
                "condition": "Το κλειδί API δεν αντιστοιχεί στον ταυτοποιημένο λογαριασμό.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε το κλειδί API και την πρόσβαση του λογαριασμού σας πριν υποβάλετε αίτημα.",
                "type": "authentication_error"
              },
              {
                "condition": "Δεν ήταν δυνατή η ανάγνωση του αιτήματος ή ο δείκτης λήψης δεν είναι έγκυρος.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Διορθώστε το σώμα αιτήματος. Για λήψη, επιλέξτε δείκτη εξόδου που επιστράφηκε από την αρχική εργασία.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Η επιλεγμένη διαμόρφωση βίντεο δεν μπορεί να τιμολογηθεί.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Επιλέξτε μια υποστηριζόμενη διαμόρφωση βίντεο και συμπληρώστε τις απαιτούμενες επιλογές της πριν υποβάλετε διορθωμένο αίτημα.",
                "type": "price_unavailable"
              },
              {
                "condition": "Μια είσοδος βίντεο ή η αρχική εργασία συνέχισης δεν είναι έγκυρη.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Χρησιμοποιήστε έγκυρες εισόδους HTTPS. Για συνέχιση, χρησιμοποιήστε το δημόσιο ID του ολοκληρωμένου αρχικού σας βίντεο με το ίδιο κλειδί API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Το διαθέσιμο υπόλοιπο ή τα όρια δεν επιτρέπουν δέσμευση ποσού.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε το διαθέσιμο υπόλοιπο και τα όριά σας πριν στείλετε νέο αίτημα.",
                "type": "billing_error"
              },
              {
                "condition": "Η επαλήθευση βίντεο, η αποθήκευση ή η πρόσβαση στην υπηρεσία είναι προσωρινά μη διαθέσιμη.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Περιμένετε να γίνει διαθέσιμη η υπηρεσία. Αν έχετε ήδη ID βίντεο, ελέγξτε αυτή την αρχική εργασία αντί να ξεκινήσετε άλλη δημιουργία.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Το αρχικό αποτέλεσμα βίντεο και η χρέωση χρειάζονται έλεγχο.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Διατηρήστε το ID βίντεο που επιστρέφεται και ελέγξτε αυτή την εργασία. Μην στέλνετε νέο αίτημα δημιουργίας για αντικατάσταση όσο διαρκεί ο έλεγχος.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Η λήψη του υπάρχοντος βίντεο είναι προσωρινά μη διαθέσιμη.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Ελέγξτε αργότερα την ίδια εργασία βίντεο και κατεβάστε την υπάρχουσα έξοδό της. Μια νέα δημιουργία παράγει ξεχωριστή λειτουργία.",
                "type": "server_error"
              },
              {
                "condition": "Το περιεχόμενο βίντεο δεν έχει δημοσιευτεί.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε την κατάσταση της αρχικής εργασίας. Κατεβάστε το αποτέλεσμα όταν αναφέρει completed· αν αναφέρει failed, ακολουθήστε την ειδοποίησή της για έλεγχο χρέωσης.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + αρχικό id + X-Should-Retry:false· μην επαναλάβετε ποτέ το αρχικό αίτημα"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "x-ai/grok-imagine-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Δώστε την προτροπή ως κείμενο και τη διάρκεια σε ακέραια δευτερόλεπτα. Επιλέξτε υποστηριζόμενη ανάλυση· προσθέστε αναλογία διαστάσεων ή χρησιμοποιήστε αναγραφόμενο μέγεθος.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Μια γραπτή προτροπή."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "x-ai/grok-imagine-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Το frame_images είναι πίνακας. Κάθε αντικείμενο καρέ έχει type, image_url και frame_type· το image_url περιέχει url. Ορίστε το type σε image_url. Χρησιμοποιήστε first_frame. Κάθε ρόλος καρέ εμφανίζεται το πολύ μία φορά. Δώστε ένα δημόσιο HTTPS URL εικόνας για κάθε καρέ. Χρησιμοποιήστε είτε εικόνες καρέ είτε εικόνες αναφοράς σε ένα αίτημα· μην συνδυάζετε και τα δύο. Επιλέξτε υποστηριζόμενη ανάλυση· προσθέστε αναλογία διαστάσεων ή χρησιμοποιήστε αναγραφόμενο μέγεθος.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Μια γραπτή προτροπή και μια εικόνα πρώτου καρέ."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "x-ai/grok-imagine-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Το input_references είναι πίνακας αντικειμένων. Ορίστε το type σε image_url και χρησιμοποιήστε το αντίστοιχο πεδίο που περιέχει url. Χρησιμοποιήστε δημόσια HTTPS URL. Παραλείψτε το frame_images για να επιλέξετε λειτουργία αναφορών. Μην συνδυάζετε εικόνες αναφοράς με εικόνες καρέ. Επιλέξτε υποστηριζόμενη ανάλυση· προσθέστε αναλογία διαστάσεων ή χρησιμοποιήστε αναγραφόμενο μέγεθος.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Μια γραπτή προτροπή και υποστηριζόμενες εικόνες αναφοράς."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Θέση αυτού του βίντεο στη λίστα εξόδων, με αρίθμηση από το μηδέν.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Υπογεγραμμένο HTTPS URL λήψης για αυτό το ολοκληρωμένο βίντεο.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Σύνοψη SHA-256 των αρχικών byte βίντεο· null αν δεν είναι διαθέσιμη.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Μέγεθος του αρχικού αρχείου βίντεο σε byte· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Μετρημένη διάρκεια βίντεο σε χιλιοστά του δευτερολέπτου· null αν δεν είναι διαθέσιμη.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Πλάτος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Ύψος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Αναγνωριστικό κωδικοποιητή βίντεο· null αν δεν έχει καταγραφεί.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Αν το βίντεο περιέχει ηχητικό κομμάτι· null αν δεν έχει μετρηθεί.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Αναγνωριστικό κωδικοποιητή ήχου· null όταν δεν έχει καταγραφεί αναγνωριστικό.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "υπογεγραμμένα URL περιεχομένου που σας ανήκει",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "x-ai/grok-imagine-video"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "x-ai/grok-imagine-video"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  1,
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4",
                  "3:2",
                  "2:3"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1",
                    "4:3",
                    "3:4",
                    "3:2",
                    "2:3"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Αυτά τα κλειδιά περιγράφουν κάθε αντικείμενο καρέ· το image_url περιέχει μόνο url. Παραλείψτε το frame_images για αίτημα μόνο με κείμενο.",
                "content": "Πίνακας αντικειμένων καρέ. Κάθε αντικείμενο έχει type=image_url, image_url που περιέχει url και frame_type. Χρησιμοποιήστε HTTPS URL εικόνας και ορίστε το frame_type σε first_frame. Κάθε ρόλος καρέ εμφανίζεται το πολύ μία φορά.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 1,
                "max_items": 1,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "854x480",
                  "1280x720",
                  "480x854",
                  "720x1280",
                  "480x480",
                  "720x720",
                  "640x480",
                  "960x720",
                  "480x640",
                  "720x960",
                  "720x480",
                  "1080x720",
                  "480x720",
                  "720x1080"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "854x480",
                    "1280x720",
                    "480x854",
                    "720x1280",
                    "480x480",
                    "720x720",
                    "640x480",
                    "960x720",
                    "480x640",
                    "720x960",
                    "720x480",
                    "1080x720",
                    "480x720",
                    "720x1080"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1",
                    "4:3",
                    "3:4",
                    "3:2",
                    "2:3"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "x-ai/grok-imagine-video"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "854x480",
                    "1280x720",
                    "480x854",
                    "720x1280",
                    "480x480",
                    "720x720",
                    "640x480",
                    "960x720",
                    "480x640",
                    "720x960",
                    "720x480",
                    "1080x720",
                    "480x720",
                    "720x1080"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Frame images plus image references are rejected because mixed additive input count is unproved; pure frame or pure reference mode remains separately priced."
              ]
            },
            "unsupported": [
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per image"
            },
            "label": "Input image",
            "units": [
              {
                "amount": "0.004",
                "amount_unit": "usd_per_image",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_image_input",
                "label": "Input image",
                "native_amount_usd_per_unit": "0.004",
                "native_quantity": 1,
                "public_unit_label": "per image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Τιμή βίντεο",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_video_output_second_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.14",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_video_output_second_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.14",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.1",
                "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.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"x-ai/grok-imagine-video\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per image"
            },
            "label": "Input image",
            "units": [
              {
                "amount": "0.004",
                "amount_unit": "usd_per_image",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_image_input",
                "label": "Input image",
                "native_amount_usd_per_unit": "0.004",
                "native_quantity": 1,
                "public_unit_label": "per image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_video_output_second_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.14",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_video_output_second_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.14",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.1",
                "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.1",
                "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": "x-ai/grok-imagine-video",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.004",
            "amount_unit": "usd_per_image",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_image_input",
            "label": "Input image",
            "native_amount_usd_per_unit": "0.004",
            "native_quantity": 1,
            "public_unit_label": "per image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_video_output_second_480p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.14",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_video_output_second_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.14",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.1",
            "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.1",
            "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": "x-ai/grok-imagine-video",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "c0fa10a7c6a0d995669205f93ceafee66512ab76c696fa794c7dfdc6117cd544",
    "input_html_sha256": "98f401343739a53e4a3e56d505473f5235e231140a3c1248a210eb82ea66be21",
    "private_audit_sha256": "dab590a2feac92142cfee757b50974a8504a9f42f655941c4907acacded9ad69",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/x-ai-grok-imagine-video/",
    "description": "Το Grok Imagine Video παράγει σύντομα αποσπάσματα από κείμενο, αρχική εικόνα ή έως επτά οπτικές αναφορές. Η κλασική έκδοσή του επεξεργάζεται επίσης υπάρχοντα αποσπάσματα MP4 και προσθέτει 2–10 δευτερόλεπτα συνέχειας. Η παραγωγή φτάνει σε 720p με ήχο· η επεξεργασία και η επέκταση διατηρούν το αρχικό κάδρο εντός των δικών τους ορίων.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/x-ai-grok-imagine-video/index.md",
    "title": "SpaceXAI: Grok Imagine Video — Ailoot",
    "url": "https://ailoot.ai/models/el/x-ai-grok-imagine-video/"
  },
  "rawModel": {
    "about": "Το Grok Imagine Video είναι η κλασική έκδοση της οικογένειας βίντεο Grok Imagine. Η τρέχουσα τεκμηρίωση του κατασκευαστή καλύπτει παραγωγή νέου αποσπάσματος από προτροπή, κίνηση αρχικής εικόνας, χρήση οπτικών αναφορών και αλλαγή ή συνέχεια υπάρχοντος βίντεο. Αυτές οι ροές παράγουν διαφορετικά τεχνουργήματα: νέα σκηνή, επεξεργασμένη έκδοση παρεχόμενου υλικού ή ένα βίντεο που περιέχει το αρχικό υλικό ακολουθούμενο από νέο περιεχόμενο. Επιλέξτε τη ροή από το ήδη διαθέσιμο υλικό και το μέρος του πλάνου που χρειάζεται αλλαγή.\n\nΓια νέο πλάνο από κείμενο σε βίντεο, περιγράψτε θέμα, περιβάλλον, ορατή δράση, κάμερα και ήχο. Η τυπική παραγωγή υποστηρίζει αποσπάσματα 1–15 δευτερολέπτων, με έξοδο 480p ή 720p και παραγόμενο ήχο. Τεκμηριώνονται τετράγωνες, οριζόντιες, κατακόρυφες και ευρύτερες αναλογίες, συμπεριλαμβανομένων των 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 και 5:2. Μια πρωτότυπη οδηγία θα μπορούσε να ζητά χάρτινο φανάρι που κινείται απαλά πάνω από ήσυχη αυλή καθώς η κάμερα μετακινείται πλαγίως. Ο χρήσιμος έλεγχος εξετάζει αν η κίνηση, το κάδρο και ο ήχος περιβάλλοντος υπηρετούν αυτό το ένα πλάνο.\n\nΣτη μετατροπή εικόνας σε βίντεο, η παρεχόμενη στατική εικόνα είναι το πρώτο καρέ. Προετοιμάστε τη με την επιδιωκόμενη περικοπή, το θέμα και τις ορατές λεπτομέρειες και έπειτα περιγράψτε τη δράση που ακολουθεί. Η έξοδος ακολουθεί την αναλογία διαστάσεων της εικόνας. Μια αρχική στατική εικόνα δίνει ακριβή αρχική σύνθεση, ενώ η μετατροπή αναφορών σε βίντεο χρησιμοποιεί εικόνες για να καθοδηγεί ανθρώπους, προϊόντα ή περιβάλλον σε νέα σύνθεση σκηνής. Η διάκριση αυτών των δύο ρόλων βοηθά να αποφευχθεί ανεπιθύμητη αρχή όταν στόχος είναι η τοποθέτηση γνωστού αντικειμένου σε άλλο σκηνικό.\n\nΤο κλασικό μοντέλο δέχεται έως επτά εικόνες αναφοράς ανά αίτημα με καθοδήγηση αναφορών. Αυτή η λειτουργία περιορίζεται σε δέκα δευτερόλεπτα και 720p. Δώστε σε κάθε αναφορά σαφή ρόλο και προσδιορίστε τη από τη θέση της στη λίστα, αρχίζοντας από <IMAGE_0>. Για σύντομη σκηνή προϊόντος, μία αναφορά μπορεί να προσδιορίζει το αντικείμενο και άλλη την επιθυμητή τοποθεσία. Εστιάστε την οδηγία στην τοποθέτηση του αντικειμένου και στην κύρια δράση του πλάνου. Η κλασική λειτουργία αναφορών χρησιμοποιεί δική της ρύθμιση· η πλήρης έκδοση 1.5 παρέχει τα πρόσθετα χειριστήρια επιλεγμένης φωνής και καθορισμένων καρέ.\n\nΗ επεξεργασία βίντεο δέχεται υπάρχον απόσπασμα και προτροπή που περιγράφει την αλλαγή. Ο κατασκευαστής δέχεται πηγές MP4 με υποστηριζόμενους κωδικοποιητές όπως H.264, H.265 ή AV1, διάρκειας έως 8.7 δευτερολέπτων. Το επεξεργασμένο αποτέλεσμα διατηρεί τη διάρκεια και την αναλογία διαστάσεων της πηγής και ακολουθεί την ανάλυσή της έως ανώτατο όριο 720p. Τα προσαρμοσμένα χειριστήρια διάρκειας, αναλογίας διαστάσεων και ανάλυσης δεν εφαρμόζονται σε αυτή τη ροή επεξεργασίας. Προετοιμάστε πηγή που έχει ήδη τη σύνθεση και τον χρονισμό που χρειάζεται η τελική χρήση, ώστε η προτροπή να εστιάζει στην επιδιωκόμενη οπτική τροποποίηση.\n\nΜια πρωτότυπη οδηγία επεξεργασίας θα μπορούσε να αλλάζει το χρώμα ενός κασκόλ διατηρώντας το πρόσωπο, την κίνηση, το φόντο και την κάμερα του ατόμου. Δηλώστε ρητά αυτά τα διατηρούμενα στοιχεία μαζί με την αλλαγή. Ο κατασκευαστής περιγράφει διατήρηση της υπόλοιπης πηγής όσο το δυνατόν πιο κοντά στο αρχικό, κάτι που είναι χρήσιμος στόχος ελέγχου και όχι εγγύηση ότι κάθε pixel μένει πανομοιότυπο. Συγκρίνετε το αποτέλεσμα σε όλο το απόσπασμα, ιδιαίτερα όπου το αντικείμενο κινείται, διασταυρώνεται με άλλο αντικείμενο ή κρύβεται μερικώς. Το τελικό τεχνούργημα είναι το επεξεργασμένο απόσπασμα, όχι απλώς μια στατική εικόνα που δείχνει το νέο χρώμα.\n\nΗ επέκταση βίντεο συνεχίζει από το τελευταίο καρέ υπάρχοντος MP4. Η τεκμηριωμένη διάρκεια πηγής είναι 2–15 δευτερόλεπτα· το πρόσθετο τμήμα είναι 2–10 δευτερόλεπτα, με προεπιλογή έξι δευτερολέπτων. Η διάρκεια επέκτασης αφορά μόνο το νέο τμήμα. Μια πηγή δέκα δευτερολέπτων ακολουθούμενη από πέντε δευτερόλεπτα συνέχειας παράγει βίντεο δεκαπέντε δευτερολέπτων που περιέχει και τα δύο μέρη. Το αποτέλεσμα διατηρεί την αναλογία διαστάσεων και την ανάλυση της πηγής εντός ορίου 720p. Προετοιμάστε την τελική στιγμή της πηγής και περιγράψτε τι πρέπει να συμβεί έπειτα, όπως το θέμα να στρέφεται προς ένα αντικείμενο που πλησιάζει ενώ η κάμερα συνεχίζει την τρέχουσα κίνησή της.\n\nΕλέγξτε μια επέκταση γύρω από το όριο μεταξύ πηγής και νέου περιεχομένου. Ελέγξτε ταυτότητα θέματος, κατεύθυνση κίνησης, ρυθμό κάμερας, φως και ήχο, ώστε η συνέχεια να ταιριάζει στην προηγούμενη δράση. Αν ένα απόσπασμα τελειώνει σε οπτικά αμήχανο σημείο, κάντε αυτό το όριο ρητό μέρος του σχεδίου επόμενου πλάνου. Η συναρμολόγηση μεγαλύτερης σκηνής είναι απόφαση μοντάζ: τα όρια διάρκειας παραγωγής, αναφορών, επεξεργασίας και επέκτασης του μοντέλου είναι ξεχωριστά και το συνολικό αποτέλεσμα επέκτασης μπορεί να είναι μεγαλύτερο από ένα τυπικό νέο παραγόμενο απόσπασμα.\n\nΗ ροή βίντεο του κατασκευαστή είναι ασύγχρονη. Ένα αναγνωριστικό αιτήματος παρακολουθεί εργασία μέχρι το ολοκληρωμένο αποτέλεσμα να δώσει τη θέση και τη διάρκεια βίντεο· οι θέσεις εξόδου είναι προσωρινές. Διατηρήστε το αναπαραγώγιμο αποτέλεσμα και τα αρχικά υλικά του όταν προετοιμάζετε μοντάζ παραγωγής. Το πλήρες Grok Imagine Video 1.5 προσφέρει εγγενή παραγωγή 1080p και πλουσιότερη οπτική, φωνητική και καρέ-κλειδιών καθοδήγηση, ενώ το Lite εξυπηρετεί απλές εργασίες προτροπής ή αρχικής εικόνας. Η κλασική έκδοση παραμένει χρήσιμη όταν το αρχικό υλικό είναι ήδη βίντεο που χρειάζεται κατευθυνόμενη αλλαγή ή συνέχεια.",
    "alias_of": null,
    "aliases": [],
    "author": "SpaceXAI",
    "available": null,
    "canonical_model": "x-ai/grok-imagine-video",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.1",
            "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.1",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "5028ba460dfc0ba205d6f290",
        "label": "Τιμές αναφοράς για διαμορφώσεις βίντεο",
        "profiles": [
          {
            "basis": "Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.",
            "dimensions": {
              "conditions": "Δεν δηλώνεται πρόσθετη συνθήκη σε αυτό το κλειδί τιμολόγησης."
            },
            "label": "Εικόνα εισόδου",
            "units": [
              {
                "amount": "0.004",
                "amount_unit": "usd_per_image",
                "billing_input": false,
                "key": "input_image",
                "label": "Input image",
                "public_unit_label": "per image",
                "quantity": 1,
                "rate_role": "typed_video_image_reference",
                "side": "in",
                "unit": "image"
              }
            ]
          },
          {
            "basis": "Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.",
            "dimensions": {
              "conditions": "resolution: 480p"
            },
            "label": "Τιμή βίντεο",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.",
            "dimensions": {
              "conditions": "resolution: 720p"
            },
            "label": "Τιμή βίντεο",
            "units": [
              {
                "amount": "0.14",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "x-ai/grok-imagine-video",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Διατηρήστε κάθε πραγματική έξοδο που σας ανήκει και τα μετρημένα μεταδεδομένα που επιστρέφονται μαζί της.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Η πρόσβαση στο βίντεο δεν είναι διαθέσιμη ή αυτό το ID βίντεο δεν βρέθηκε.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε την πρόσβαση στο βίντεο. Για υπάρχον βίντεο, χρησιμοποιήστε το αρχικό δημόσιο ID του και το ίδιο κλειδί API.",
                "type": "not_found_error"
              },
              {
                "condition": "Το κλειδί API δεν αντιστοιχεί στον ταυτοποιημένο λογαριασμό.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε το κλειδί API και την πρόσβαση του λογαριασμού σας πριν υποβάλετε αίτημα.",
                "type": "authentication_error"
              },
              {
                "condition": "Δεν ήταν δυνατή η ανάγνωση του αιτήματος ή ο δείκτης λήψης δεν είναι έγκυρος.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Διορθώστε το σώμα αιτήματος. Για λήψη, επιλέξτε δείκτη εξόδου που επιστράφηκε από την αρχική εργασία.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Η επιλεγμένη διαμόρφωση βίντεο δεν μπορεί να τιμολογηθεί.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Επιλέξτε μια υποστηριζόμενη διαμόρφωση βίντεο και συμπληρώστε τις απαιτούμενες επιλογές της πριν υποβάλετε διορθωμένο αίτημα.",
                "type": "price_unavailable"
              },
              {
                "condition": "Μια είσοδος βίντεο ή η αρχική εργασία συνέχισης δεν είναι έγκυρη.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Χρησιμοποιήστε έγκυρες εισόδους HTTPS. Για συνέχιση, χρησιμοποιήστε το δημόσιο ID του ολοκληρωμένου αρχικού σας βίντεο με το ίδιο κλειδί API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Το διαθέσιμο υπόλοιπο ή τα όρια δεν επιτρέπουν δέσμευση ποσού.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε το διαθέσιμο υπόλοιπο και τα όριά σας πριν στείλετε νέο αίτημα.",
                "type": "billing_error"
              },
              {
                "condition": "Η επαλήθευση βίντεο, η αποθήκευση ή η πρόσβαση στην υπηρεσία είναι προσωρινά μη διαθέσιμη.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Περιμένετε να γίνει διαθέσιμη η υπηρεσία. Αν έχετε ήδη ID βίντεο, ελέγξτε αυτή την αρχική εργασία αντί να ξεκινήσετε άλλη δημιουργία.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Το αρχικό αποτέλεσμα βίντεο και η χρέωση χρειάζονται έλεγχο.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Διατηρήστε το ID βίντεο που επιστρέφεται και ελέγξτε αυτή την εργασία. Μην στέλνετε νέο αίτημα δημιουργίας για αντικατάσταση όσο διαρκεί ο έλεγχος.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Η λήψη του υπάρχοντος βίντεο είναι προσωρινά μη διαθέσιμη.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Ελέγξτε αργότερα την ίδια εργασία βίντεο και κατεβάστε την υπάρχουσα έξοδό της. Μια νέα δημιουργία παράγει ξεχωριστή λειτουργία.",
                "type": "server_error"
              },
              {
                "condition": "Το περιεχόμενο βίντεο δεν έχει δημοσιευτεί.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Ελέγξτε την κατάσταση της αρχικής εργασίας. Κατεβάστε το αποτέλεσμα όταν αναφέρει completed· αν αναφέρει failed, ακολουθήστε την ειδοποίησή της για έλεγχο χρέωσης.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + αρχικό id + X-Should-Retry:false· μην επαναλάβετε ποτέ το αρχικό αίτημα"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "x-ai/grok-imagine-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Δώστε την προτροπή ως κείμενο και τη διάρκεια σε ακέραια δευτερόλεπτα. Επιλέξτε υποστηριζόμενη ανάλυση· προσθέστε αναλογία διαστάσεων ή χρησιμοποιήστε αναγραφόμενο μέγεθος.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Μια γραπτή προτροπή."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "x-ai/grok-imagine-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Το frame_images είναι πίνακας. Κάθε αντικείμενο καρέ έχει type, image_url και frame_type· το image_url περιέχει url. Ορίστε το type σε image_url. Χρησιμοποιήστε first_frame. Κάθε ρόλος καρέ εμφανίζεται το πολύ μία φορά. Δώστε ένα δημόσιο HTTPS URL εικόνας για κάθε καρέ. Χρησιμοποιήστε είτε εικόνες καρέ είτε εικόνες αναφοράς σε ένα αίτημα· μην συνδυάζετε και τα δύο. Επιλέξτε υποστηριζόμενη ανάλυση· προσθέστε αναλογία διαστάσεων ή χρησιμοποιήστε αναγραφόμενο μέγεθος.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Μια γραπτή προτροπή και μια εικόνα πρώτου καρέ."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "x-ai/grok-imagine-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Το input_references είναι πίνακας αντικειμένων. Ορίστε το type σε image_url και χρησιμοποιήστε το αντίστοιχο πεδίο που περιέχει url. Χρησιμοποιήστε δημόσια HTTPS URL. Παραλείψτε το frame_images για να επιλέξετε λειτουργία αναφορών. Μην συνδυάζετε εικόνες αναφοράς με εικόνες καρέ. Επιλέξτε υποστηριζόμενη ανάλυση· προσθέστε αναλογία διαστάσεων ή χρησιμοποιήστε αναγραφόμενο μέγεθος.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Μια γραπτή προτροπή και υποστηριζόμενες εικόνες αναφοράς."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Θέση αυτού του βίντεο στη λίστα εξόδων, με αρίθμηση από το μηδέν.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Υπογεγραμμένο HTTPS URL λήψης για αυτό το ολοκληρωμένο βίντεο.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Σύνοψη SHA-256 των αρχικών byte βίντεο· null αν δεν είναι διαθέσιμη.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Μέγεθος του αρχικού αρχείου βίντεο σε byte· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Μετρημένη διάρκεια βίντεο σε χιλιοστά του δευτερολέπτου· null αν δεν είναι διαθέσιμη.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Πλάτος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Ύψος βίντεο σε pixel· null αν δεν είναι διαθέσιμο.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Αναγνωριστικό κωδικοποιητή βίντεο· null αν δεν έχει καταγραφεί.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Αν το βίντεο περιέχει ηχητικό κομμάτι· null αν δεν έχει μετρηθεί.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Αναγνωριστικό κωδικοποιητή ήχου· null όταν δεν έχει καταγραφεί αναγνωριστικό.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "υπογεγραμμένα URL περιεχομένου που σας ανήκει",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "x-ai/grok-imagine-video"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "x-ai/grok-imagine-video"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  1,
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4",
                  "3:2",
                  "2:3"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1",
                    "4:3",
                    "3:4",
                    "3:2",
                    "2:3"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Αυτά τα κλειδιά περιγράφουν κάθε αντικείμενο καρέ· το image_url περιέχει μόνο url. Παραλείψτε το frame_images για αίτημα μόνο με κείμενο.",
                "content": "Πίνακας αντικειμένων καρέ. Κάθε αντικείμενο έχει type=image_url, image_url που περιέχει url και frame_type. Χρησιμοποιήστε HTTPS URL εικόνας και ορίστε το frame_type σε first_frame. Κάθε ρόλος καρέ εμφανίζεται το πολύ μία φορά.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 1,
                "max_items": 1,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "854x480",
                  "1280x720",
                  "480x854",
                  "720x1280",
                  "480x480",
                  "720x720",
                  "640x480",
                  "960x720",
                  "480x640",
                  "720x960",
                  "720x480",
                  "1080x720",
                  "480x720",
                  "720x1080"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "854x480",
                    "1280x720",
                    "480x854",
                    "720x1280",
                    "480x480",
                    "720x720",
                    "640x480",
                    "960x720",
                    "480x640",
                    "720x960",
                    "720x480",
                    "1080x720",
                    "480x720",
                    "720x1080"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1",
                    "4:3",
                    "3:4",
                    "3:2",
                    "2:3"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "x-ai/grok-imagine-video"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "854x480",
                    "1280x720",
                    "480x854",
                    "720x1280",
                    "480x480",
                    "720x720",
                    "640x480",
                    "960x720",
                    "480x640",
                    "720x960",
                    "720x480",
                    "1080x720",
                    "480x720",
                    "720x1080"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Frame images plus image references are rejected because mixed additive input count is unproved; pure frame or pure reference mode remains separately priced."
              ]
            },
            "unsupported": [
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per image"
            },
            "label": "Input image",
            "units": [
              {
                "amount": "0.004",
                "amount_unit": "usd_per_image",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_image_input",
                "label": "Input image",
                "native_amount_usd_per_unit": "0.004",
                "native_quantity": 1,
                "public_unit_label": "per image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Τιμή βίντεο",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_video_output_second_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.14",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_video_output_second_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.14",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "0.1",
                "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.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"x-ai/grok-imagine-video\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per image"
            },
            "label": "Input image",
            "units": [
              {
                "amount": "0.004",
                "amount_unit": "usd_per_image",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_image_input",
                "label": "Input image",
                "native_amount_usd_per_unit": "0.004",
                "native_quantity": 1,
                "public_unit_label": "per image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_video_output_second_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.14",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_video_output_second_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.14",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.1",
                "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.1",
                "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": "x-ai/grok-imagine-video",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.004",
            "amount_unit": "usd_per_image",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_image_input",
            "label": "Input image",
            "native_amount_usd_per_unit": "0.004",
            "native_quantity": 1,
            "public_unit_label": "per image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_video_output_second_480p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.14",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_video_output_second_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.14",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.1",
            "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.1",
            "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": "x-ai/grok-imagine-video",
        "request_model_id": "x-ai/grok-imagine-video",
        "route_label": "Ultra"
      }
    ],
    "name": "SpaceXAI: Grok Imagine Video",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.1,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.1,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "input_assets_additive": true,
          "resolution": "480p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.10",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "input_assets_additive": true,
              "resolution": "480p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "input_assets_additive": true,
          "resolution": "720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.14",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "input_assets_additive": true,
              "resolution": "720p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "adds_to_output": true,
          "start_frame_or_reference_image_charged": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.004",
            "amount_unit": "usd_per_input_image",
            "conditions": {
              "adds_to_output": true,
              "start_frame_or_reference_image_charged": true
            },
            "key": "input_image",
            "label": "input image",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_image"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "adds_to_output_seconds": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.02",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "adds_to_output_seconds": true
            },
            "key": "input_video",
            "label": "input video",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.004",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "image input",
            "billing_original_currency": "USD_cent",
            "billing_original_rate": "0.4",
            "key": "cents_per_image_input",
            "label": "image input",
            "native_amount_usd_per_unit": "0.004",
            "native_quantity": 1,
            "quantity": 1,
            "side": "in",
            "unit": "image_input"
          },
          {
            "amount": "0.10",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=480p",
            "billing_original_currency": "USD_cent",
            "billing_original_rate": "10",
            "key": "cents_per_video_output_second_480p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.10",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.14",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p",
            "billing_original_currency": "USD_cent",
            "billing_original_rate": "14",
            "key": "cents_per_video_output_second_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.14",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "x-ai/grok-imagine-video",
    "short": "Το Grok Imagine Video παράγει σύντομα αποσπάσματα από κείμενο, αρχική εικόνα ή έως επτά οπτικές αναφορές. Η κλασική έκδοσή του επεξεργάζεται επίσης υπάρχοντα αποσπάσματα MP4 και προσθέτει 2–10 δευτερόλεπτα συνέχειας. Η παραγωγή φτάνει σε 720p με ήχο· η επεξεργασία και η επέκταση διατηρούν το αρχικό κάδρο εντός των δικών τους ορίων."
  },
  "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": "Το Grok Imagine Video παράγει σύντομα αποσπάσματα από κείμενο, αρχική εικόνα ή έως επτά οπτικές αναφορές. Η κλασική έκδοσή του επεξεργάζεται επίσης υπάρχοντα αποσπάσματα MP4 και προσθέτει 2–10 δευτερόλεπτα συνέχειας. Η παραγωγή φτάνει σε 720p με ήχο· η επεξεργασία και η επέκταση διατηρούν το αρχικό κάδρο εντός των δικών τους ορίων.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "173b30125e6b4a5d1e71e7654cf8cb2ae5cd1c7bacd48bf40c74af6f4917631a",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "932b3faa1a8a1cd2037e7c583768a7df5158be6bb10f3407ca4d57bea9ab50e1"
}
