{
  "aboutHtml": "<p>Ο ακριβής επιλογέας kling-v1-6 προσδιορίζει το προφίλ μετατροπής κειμένου σε βίντεο Kling. Υποβάλετε JSON στο POST /v1/videos/generations με model ορισμένο σε kling-v1-6 και τη γραπτή σκηνή στο prompt. Το POST /v1/videos δέχεται επίσης το ίδιο αίτημα δημιουργίας. Ένα σαφές αίτημα περιγράφει τι είναι ορατό, τι συμβαίνει κατά τη διάρκεια του πλάνου και πώς το παρατηρεί η κάμερα. Το ελάχιστο αίτημα σκηνής παρέχει τον επιλογέα μοντέλου και το prompt, αφήνοντας τους πρόσθετους ελέγχους πλάνου χωρίς ορισμό.</p><p>Για ένα πλάνο προϊόντος, περιγράψτε το αντικείμενο, την επιφάνεια, τον φωτισμό και μία ορατή ενέργεια, όπως μια αργή περιστροφή ή αλλαγή θέσης της κάμερας. Για μια ιδέα σκηνής, προσδιορίστε το περιβάλλον, το κύριο θέμα και την κίνηση μέσα στο κάδρο. Διατηρήστε τη δράση ευδιάκριτη μέσα στο ζητούμενο βίντεο. Ένα prompt μπορεί να περιγράφει ένα μικρό σκάφος που διασχίζει μια ήρεμη λίμνη, μια ευρεία όψη από την όχθη, πρωινό φως και μια σταθερή κάμερα που ακολουθεί την κατεύθυνση του σκάφους.</p><p>Το όριο του prompt είναι 500 χαρακτήρες. Το προαιρετικό negative_prompt μπορεί να περιέχει έως 200 χαρακτήρες και περιγράφει ανεπιθύμητα στοιχεία. Οι τεκμηριωμένες επιλογές duration για αυτό το προφίλ είναι 5 και 10 δευτερόλεπτα. Οι τιμές mode είναι std και pro. Το cfg_scale είναι αριθμός από 0 έως 1· η τεκμηρίωση περιγράφει τις υψηλότερες τιμές ως αυστηρότερη τήρηση του κειμένου. Επιλέξτε ελέγχους για το συγκεκριμένο πλάνο και διατηρήστε τις υποβληθείσες τιμές μαζί με το αποτέλεσμα.</p><p>Το τεκμηριωμένο αντικείμενο camera_control αναφέρει τους τύπους κάμερας simple, down_back, forward_up, right_turn_forward και left_turn_forward. Η διαμόρφωσή του simple κατονομάζει ελέγχους horizontal, vertical, pan, tilt, roll και zoom. Το ελάχιστο παράδειγμα κειμένου προσφέρει μια χρήσιμη αφετηρία όταν μια σκηνή μπορεί να περιγραφεί χωρίς ξεχωριστό αντικείμενο ελέγχου κάμερας. Δώστε στην κίνηση της κάμερας σαφή σκοπό μέσα στο prompt, όπως την αποκάλυψη του θέματος ή την παρακολούθηση της κίνησής του.</p><p>Η υποβολή ξεκινά ασύγχρονη εργασία. Κρατήστε το επιστρεφόμενο id, την κεφαλίδα X-Ailoot-Task-Id και το polling_url και στη συνέχεια χρησιμοποιήστε GET σε αυτό το polling_url με το ίδιο κλειδί API του Ailoot για να διαβάσετε την αρχική εργασία. Η κατάσταση της εργασίας βρίσκεται στο data.task_status: τα submitted και processing δηλώνουν εκκρεμότητα, το succeed επιτυχία και το failed αποτυχία. Επομένως, η επιβεβαίωση υποβολής είναι ενδιάμεσο αποτέλεσμα. Σε περίπτωση επιτυχίας, ανακτήστε κάθε URL στο data.task_result.videos[].url· αυτοί είναι σύνδεσμοι αρχείων αποτελεσμάτων που διαχειρίζεται το Ailoot. Το GET /v1/videos/{id}/content ανακτά την πρώτη έξοδο και η παράμετρος ερωτήματος index επιλέγει μια επιστρεφόμενη έξοδο με δείκτη που ξεκινά από το μηδέν. Κρατήστε την απάντηση κατάστασης μαζί με το επιλεγμένο βίντεο. Αν προκύψει λήξη χρόνου αναμονής ή απάντηση result_pending_check, διατηρήστε την αρχική επιστρεφόμενη ταυτότητα και ελέγξτε εκείνη τη λειτουργία αντί να υποβάλετε ξανά το πλάνο.</p><p>Ελέγξτε το ολοκληρωμένο υλικό σε όλη τη διάρκειά του: η επιθυμητή δράση, η εμφάνιση του θέματος, το κάδρο και η κίνηση αποτελούν όλα μέρος της περιγραφής του πλάνου. Αυτό ακριβώς το προφίλ παρέχει τη ροή μετατροπής κειμένου σε βίντεο που περιγράφεται εδώ. Μια επιστρεφόμενη εργασία που χρειάζεται ακόμη έλεγχο κατάστασης πρέπει να παρακολουθείται με την αρχική της ταυτότητα, ακόμη και όταν ένα αίτημα πελάτη υπερβεί τον χρόνο αναμονής· διατηρήστε αυτές τις πληροφορίες εργασίας πριν εξετάσετε νέο αίτημα δημιουργίας.</p>",
  "aboutText": "Ο ακριβής επιλογέας kling-v1-6 προσδιορίζει το προφίλ μετατροπής κειμένου σε βίντεο Kling. Υποβάλετε JSON στο POST /v1/videos/generations με model ορισμένο σε kling-v1-6 και τη γραπτή σκηνή στο prompt. Το POST /v1/videos δέχεται επίσης το ίδιο αίτημα δημιουργίας. Ένα σαφές αίτημα περιγράφει τι είναι ορατό, τι συμβαίνει κατά τη διάρκεια του πλάνου και πώς το παρατηρεί η κάμερα. Το ελάχιστο αίτημα σκηνής παρέχει τον επιλογέα μοντέλου και το prompt, αφήνοντας τους πρόσθετους ελέγχους πλάνου χωρίς ορισμό.\n\nΓια ένα πλάνο προϊόντος, περιγράψτε το αντικείμενο, την επιφάνεια, τον φωτισμό και μία ορατή ενέργεια, όπως μια αργή περιστροφή ή αλλαγή θέσης της κάμερας. Για μια ιδέα σκηνής, προσδιορίστε το περιβάλλον, το κύριο θέμα και την κίνηση μέσα στο κάδρο. Διατηρήστε τη δράση ευδιάκριτη μέσα στο ζητούμενο βίντεο. Ένα prompt μπορεί να περιγράφει ένα μικρό σκάφος που διασχίζει μια ήρεμη λίμνη, μια ευρεία όψη από την όχθη, πρωινό φως και μια σταθερή κάμερα που ακολουθεί την κατεύθυνση του σκάφους.\n\nΤο όριο του prompt είναι 500 χαρακτήρες. Το προαιρετικό negative_prompt μπορεί να περιέχει έως 200 χαρακτήρες και περιγράφει ανεπιθύμητα στοιχεία. Οι τεκμηριωμένες επιλογές duration για αυτό το προφίλ είναι 5 και 10 δευτερόλεπτα. Οι τιμές mode είναι std και pro. Το cfg_scale είναι αριθμός από 0 έως 1· η τεκμηρίωση περιγράφει τις υψηλότερες τιμές ως αυστηρότερη τήρηση του κειμένου. Επιλέξτε ελέγχους για το συγκεκριμένο πλάνο και διατηρήστε τις υποβληθείσες τιμές μαζί με το αποτέλεσμα.\n\nΤο τεκμηριωμένο αντικείμενο camera_control αναφέρει τους τύπους κάμερας simple, down_back, forward_up, right_turn_forward και left_turn_forward. Η διαμόρφωσή του simple κατονομάζει ελέγχους horizontal, vertical, pan, tilt, roll και zoom. Το ελάχιστο παράδειγμα κειμένου προσφέρει μια χρήσιμη αφετηρία όταν μια σκηνή μπορεί να περιγραφεί χωρίς ξεχωριστό αντικείμενο ελέγχου κάμερας. Δώστε στην κίνηση της κάμερας σαφή σκοπό μέσα στο prompt, όπως την αποκάλυψη του θέματος ή την παρακολούθηση της κίνησής του.\n\nΗ υποβολή ξεκινά ασύγχρονη εργασία. Κρατήστε το επιστρεφόμενο id, την κεφαλίδα X-Ailoot-Task-Id και το polling_url και στη συνέχεια χρησιμοποιήστε GET σε αυτό το polling_url με το ίδιο κλειδί API του Ailoot για να διαβάσετε την αρχική εργασία. Η κατάσταση της εργασίας βρίσκεται στο data.task_status: τα submitted και processing δηλώνουν εκκρεμότητα, το succeed επιτυχία και το failed αποτυχία. Επομένως, η επιβεβαίωση υποβολής είναι ενδιάμεσο αποτέλεσμα. Σε περίπτωση επιτυχίας, ανακτήστε κάθε URL στο data.task_result.videos[].url· αυτοί είναι σύνδεσμοι αρχείων αποτελεσμάτων που διαχειρίζεται το Ailoot. Το GET /v1/videos/{id}/content ανακτά την πρώτη έξοδο και η παράμετρος ερωτήματος index επιλέγει μια επιστρεφόμενη έξοδο με δείκτη που ξεκινά από το μηδέν. Κρατήστε την απάντηση κατάστασης μαζί με το επιλεγμένο βίντεο. Αν προκύψει λήξη χρόνου αναμονής ή απάντηση result_pending_check, διατηρήστε την αρχική επιστρεφόμενη ταυτότητα και ελέγξτε εκείνη τη λειτουργία αντί να υποβάλετε ξανά το πλάνο.\n\nΕλέγξτε το ολοκληρωμένο υλικό σε όλη τη διάρκειά του: η επιθυμητή δράση, η εμφάνιση του θέματος, το κάδρο και η κίνηση αποτελούν όλα μέρος της περιγραφής του πλάνου. Αυτό ακριβώς το προφίλ παρέχει τη ροή μετατροπής κειμένου σε βίντεο που περιγράφεται εδώ. Μια επιστρεφόμενη εργασία που χρειάζεται ακόμη έλεγχο κατάστασης πρέπει να παρακολουθείται με την αρχική της ταυτότητα, ακόμη και όταν ένα αίτημα πελάτη υπερβεί τον χρόνο αναμονής· διατηρήστε αυτές τις πληροφορίες εργασίας πριν εξετάσετε νέο αίτημα δημιουργίας.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "34ae20147618d206aa01b6adfe655610997ef3034110a640a2047154d3e6e799",
    "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\">kling-v1-6</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Kuaishou /</span><code>kling-v1-6</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|kling-v1-6\">Βίντεο</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\">Το προφίλ kling-v1-6 δημιουργεί βίντεο από γραπτή περιγραφή σκηνής. Σχεδιάστε ένα σύντομο πλάνο με σαφές θέμα, δράση και κατεύθυνση κάμερας, χρησιμοποιώντας τις τεκμηριωμένες επιλογές διάρκειας πέντε ή δέκα δευτερολέπτων. Η δημιουργία είναι ασύγχρονη: κρατήστε την επιστρεφόμενη ταυτότητα εργασίας και ανακτήστε το ολοκληρωμένο βίντεο αφού επιτύχει η αρχική εργασία.</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>Ο ακριβής επιλογέας kling-v1-6 προσδιορίζει το προφίλ μετατροπής κειμένου σε βίντεο Kling. Υποβάλετε JSON στο POST /v1/videos/generations με model ορισμένο σε kling-v1-6 και τη γραπτή σκηνή στο prompt. Το POST /v1/videos δέχεται επίσης το ίδιο αίτημα δημιουργίας. Ένα σαφές αίτημα περιγράφει τι είναι ορατό, τι συμβαίνει κατά τη διάρκεια του πλάνου και πώς το παρατηρεί η κάμερα. Το ελάχιστο αίτημα σκηνής παρέχει τον επιλογέα μοντέλου και το prompt, αφήνοντας τους πρόσθετους ελέγχους πλάνου χωρίς ορισμό.</p><p>Για ένα πλάνο προϊόντος, περιγράψτε το αντικείμενο, την επιφάνεια, τον φωτισμό και μία ορατή ενέργεια, όπως μια αργή περιστροφή ή αλλαγή θέσης της κάμερας. Για μια ιδέα σκηνής, προσδιορίστε το περιβάλλον, το κύριο θέμα και την κίνηση μέσα στο κάδρο. Διατηρήστε τη δράση ευδιάκριτη μέσα στο ζητούμενο βίντεο. Ένα prompt μπορεί να περιγράφει ένα μικρό σκάφος που διασχίζει μια ήρεμη λίμνη, μια ευρεία όψη από την όχθη, πρωινό φως και μια σταθερή κάμερα που ακολουθεί την κατεύθυνση του σκάφους.</p><p>Το όριο του prompt είναι 500 χαρακτήρες. Το προαιρετικό negative_prompt μπορεί να περιέχει έως 200 χαρακτήρες και περιγράφει ανεπιθύμητα στοιχεία. Οι τεκμηριωμένες επιλογές duration για αυτό το προφίλ είναι 5 και 10 δευτερόλεπτα. Οι τιμές mode είναι std και pro. Το cfg_scale είναι αριθμός από 0 έως 1· η τεκμηρίωση περιγράφει τις υψηλότερες τιμές ως αυστηρότερη τήρηση του κειμένου. Επιλέξτε ελέγχους για το συγκεκριμένο πλάνο και διατηρήστε τις υποβληθείσες τιμές μαζί με το αποτέλεσμα.</p><p>Το τεκμηριωμένο αντικείμενο camera_control αναφέρει τους τύπους κάμερας simple, down_back, forward_up, right_turn_forward και left_turn_forward. Η διαμόρφωσή του simple κατονομάζει ελέγχους horizontal, vertical, pan, tilt, roll και zoom. Το ελάχιστο παράδειγμα κειμένου προσφέρει μια χρήσιμη αφετηρία όταν μια σκηνή μπορεί να περιγραφεί χωρίς ξεχωριστό αντικείμενο ελέγχου κάμερας. Δώστε στην κίνηση της κάμερας σαφή σκοπό μέσα στο prompt, όπως την αποκάλυψη του θέματος ή την παρακολούθηση της κίνησής του.</p><p>Η υποβολή ξεκινά ασύγχρονη εργασία. Κρατήστε το επιστρεφόμενο id, την κεφαλίδα X-Ailoot-Task-Id και το polling_url και στη συνέχεια χρησιμοποιήστε GET σε αυτό το polling_url με το ίδιο κλειδί API του Ailoot για να διαβάσετε την αρχική εργασία. Η κατάσταση της εργασίας βρίσκεται στο data.task_status: τα submitted και processing δηλώνουν εκκρεμότητα, το succeed επιτυχία και το failed αποτυχία. Επομένως, η επιβεβαίωση υποβολής είναι ενδιάμεσο αποτέλεσμα. Σε περίπτωση επιτυχίας, ανακτήστε κάθε URL στο data.task_result.videos[].url· αυτοί είναι σύνδεσμοι αρχείων αποτελεσμάτων που διαχειρίζεται το Ailoot. Το GET /v1/videos/{id}/content ανακτά την πρώτη έξοδο και η παράμετρος ερωτήματος index επιλέγει μια επιστρεφόμενη έξοδο με δείκτη που ξεκινά από το μηδέν. Κρατήστε την απάντηση κατάστασης μαζί με το επιλεγμένο βίντεο. Αν προκύψει λήξη χρόνου αναμονής ή απάντηση result_pending_check, διατηρήστε την αρχική επιστρεφόμενη ταυτότητα και ελέγξτε εκείνη τη λειτουργία αντί να υποβάλετε ξανά το πλάνο.</p><p>Ελέγξτε το ολοκληρωμένο υλικό σε όλη τη διάρκειά του: η επιθυμητή δράση, η εμφάνιση του θέματος, το κάδρο και η κίνηση αποτελούν όλα μέρος της περιγραφής του πλάνου. Αυτό ακριβώς το προφίλ παρέχει τη ροή μετατροπής κειμένου σε βίντεο που περιγράφεται εδώ. Μια επιστρεφόμενη εργασία που χρειάζεται ακόμη έλεγχο κατάστασης πρέπει να παρακολουθείται με την αρχική της ταυτότητα, ακόμη και όταν ένα αίτημα πελάτη υπερβεί τον χρόνο αναμονής· διατηρήστε αυτές τις πληροφορίες εργασίας πριν εξετάσετε νέο αίτημα δημιουργίας.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Video</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code></dd></div><div><dt>Έξοδος</dt><dd><code>video</code></dd></div></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><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>kling-v1-6</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><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\">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><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">mode</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>std, pro</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model_name</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>kling-v1-6</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><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\">cfg_scale</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>number</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Ελάχιστο: 0</div><div>Μέγιστο: 1</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><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\">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></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><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\">negative_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><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>5, 10</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr></tbody></table></div><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, mode</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>optional</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>model_name, cfg_scale, aspect_ratio, negative_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</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>conditions</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>model selects this model. An omitted model_name uses the selected model; an explicit native model_name override is preserved.</td></tr></tbody></table></div><p>Εναλλακτικά ονόματα μεθόδου: <code>/v1/videos/generations</code></p><p>Κύκλος ζωής: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</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></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><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>Estimated generation cost</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><div><span>Είσοδος · Εκτιμώμενο κόστος δημιουργίας · Εκτίμηση μόνο για σύγκριση</span> <b>$6</b> <span class=\"price-unit\">εκτίμηση πριν από τη δημιουργία</span></div><p class=\"note-s\">This estimate is not an additional charge or a fixed rate for the completed generation.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. <a href=\"/docs/el/billing/reserve/\">Πώς λειτουργούν η δέσμευση και η εκκαθάριση →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Παραδείγματα αιτημάτων</h3><h4>Ailoot Ultra · Video</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-15-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-15-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-15-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-15-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_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;kling-v1-6&quot;, &quot;prompt&quot;: &quot;A happy holiday scene at the beach.&quot;, &quot;mode&quot;: &quot;pro&quot;}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · Video</h4><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.</p><p class=\"note-s\">Retain the complete response, all actual results, original identifiers, usage and response headers.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.</p></div><details class=\"card-about\" data-output-fields><summary>Πεδία απάντησης</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Πεδίο</th><th>Τύπος</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">data.task_result.videos[].url</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string or array, as returned</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=kling-v1-6&amp;route=Ultra&amp;caller=kling-v1-6&amp;fmt=videos\"><code>kling-v1-6</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\"><code>/v1/videos/generations</code></p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=kling-v1-6&amp;route=Ultra&amp;caller=kling-v1-6&amp;fmt=videos\"><code>kling-v1-6</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "kling-v1-6",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "kling-v1-6",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|kling-v1-6",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "The displayed rates estimate the cost before generation. The final charge is calculated from the cost recorded for the original generation. Measured output duration and forecast quantities are not the final billable quantity.",
          "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": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "example_body": {
              "mode": "pro",
              "model": "kling-v1-6",
              "prompt": "A happy holiday scene at the beach."
            },
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "completed_states": [
                "succeed"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed"
              ],
              "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
              "mode": "submit_once_poll_original",
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "pending_states": [
                "processing",
                "submitted"
              ],
              "state_field": "data.task_status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
              "family": "video",
              "fields": [
                {
                  "name": "data.task_result.videos[].url",
                  "type": "string or array, as returned"
                }
              ],
              "ownership": "Every returned selected video URL is an owned signed result after completion."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "kling-v1-6"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maxLength": 500,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  "std",
                  "pro"
                ],
                "enum_known": true,
                "name": "mode",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  "kling-v1-6"
                ],
                "enum_known": true,
                "name": "model_name",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maximum": 1,
                "minimum": 0,
                "name": "cfg_scale",
                "required": false,
                "type": "number"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maxLength": 200,
                "name": "negative_prompt",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  5,
                  10
                ],
                "enum_known": true,
                "name": "duration",
                "required": false,
                "type": "integer"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "type": "string"
                },
                "cfg_scale": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "duration": {
                  "enum": [
                    5,
                    10
                  ],
                  "type": "integer"
                },
                "mode": {
                  "enum": [
                    "std",
                    "pro"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "kling-v1-6"
                  ],
                  "type": "string"
                },
                "model_name": {
                  "enum": [
                    "kling-v1-6"
                  ],
                  "type": "string"
                },
                "negative_prompt": {
                  "maxLength": 200,
                  "type": "string"
                },
                "prompt": {
                  "maxLength": 500,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "mode"
              ],
              "type": "object"
            },
            "schema_template": {
              "body": {
                "mode": "pro",
                "model": "kling-v1-6",
                "prompt": "A happy holiday scene at the beach."
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "model selects this model. An omitted model_name uses the selected model; an explicit native model_name override is preserved."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [
              "model_name",
              "cfg_scale",
              "aspect_ratio",
              "negative_prompt",
              "duration"
            ],
            "required": [
              "model",
              "prompt",
              "mode"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "completed_states": [
              "succeed"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed"
            ],
            "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
            "mode": "submit_once_poll_original",
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "pending_states": [
              "processing",
              "submitted"
            ],
            "state_field": "data.task_status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "output": {
            "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
            "family": "video",
            "fields": [
              {
                "name": "data.task_result.videos[].url",
                "type": "string or array, as returned"
              }
            ],
            "ownership": "Every returned selected video URL is an owned signed result after completion."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "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": "6",
                "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": "6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"kling-v1-6\", \"prompt\": \"A happy holiday scene at the beach.\", \"mode\": \"pro\"}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "Video",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "cache_read_price": null,
          "cache_write_1h_price": null,
          "cache_write_price": null,
          "fast_multiplier": null,
          "flex_multiplier": null,
          "image_input_price": null,
          "image_output_price": null,
          "input_price": null,
          "intervals": null,
          "max_reasoning_effort_multiplier": null,
          "output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "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": "6",
                "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": "6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "kling-v1-6",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}"
        ],
        "tiers": [],
        "unit": "video",
        "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": "6",
            "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": "6",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "kling-v1-6",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "21446ade6405033f22eced0c8865f3d032f3cbf1146c491843189bdef0d8ea77",
    "input_html_sha256": "748c4281cccdc7c484447f817abee7ee92262a7acd911c37a7003c96f5bfb3c2",
    "private_audit_sha256": "1416e3a26a087894850dd07b124c2a212944d7ddcc3b7e5e32813691ae34092c",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/kling-v1-6/",
    "description": "Το προφίλ kling-v1-6 δημιουργεί βίντεο από γραπτή περιγραφή σκηνής. Σχεδιάστε ένα σύντομο πλάνο με σαφές θέμα, δράση και κατεύθυνση κάμερας, χρησιμοποιώντας τις τεκμηριωμένες επιλογές διάρκειας πέντε ή δέκα δευτερολέπτων. Η δημιουργία είναι ασύγχρονη: κρατήστε την επιστρεφόμενη ταυτότητα εργασίας και ανακτήστε το ολοκληρωμένο βίντεο αφού επιτύχει η αρχική εργασία.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/kling-v1-6/index.md",
    "title": "kling-v1-6 — Ailoot",
    "url": "https://ailoot.ai/models/el/kling-v1-6/"
  },
  "rawModel": {
    "about": "Ο ακριβής επιλογέας kling-v1-6 προσδιορίζει το προφίλ μετατροπής κειμένου σε βίντεο Kling. Υποβάλετε JSON στο POST /v1/videos/generations με model ορισμένο σε kling-v1-6 και τη γραπτή σκηνή στο prompt. Το POST /v1/videos δέχεται επίσης το ίδιο αίτημα δημιουργίας. Ένα σαφές αίτημα περιγράφει τι είναι ορατό, τι συμβαίνει κατά τη διάρκεια του πλάνου και πώς το παρατηρεί η κάμερα. Το ελάχιστο αίτημα σκηνής παρέχει τον επιλογέα μοντέλου και το prompt, αφήνοντας τους πρόσθετους ελέγχους πλάνου χωρίς ορισμό.\n\nΓια ένα πλάνο προϊόντος, περιγράψτε το αντικείμενο, την επιφάνεια, τον φωτισμό και μία ορατή ενέργεια, όπως μια αργή περιστροφή ή αλλαγή θέσης της κάμερας. Για μια ιδέα σκηνής, προσδιορίστε το περιβάλλον, το κύριο θέμα και την κίνηση μέσα στο κάδρο. Διατηρήστε τη δράση ευδιάκριτη μέσα στο ζητούμενο βίντεο. Ένα prompt μπορεί να περιγράφει ένα μικρό σκάφος που διασχίζει μια ήρεμη λίμνη, μια ευρεία όψη από την όχθη, πρωινό φως και μια σταθερή κάμερα που ακολουθεί την κατεύθυνση του σκάφους.\n\nΤο όριο του prompt είναι 500 χαρακτήρες. Το προαιρετικό negative_prompt μπορεί να περιέχει έως 200 χαρακτήρες και περιγράφει ανεπιθύμητα στοιχεία. Οι τεκμηριωμένες επιλογές duration για αυτό το προφίλ είναι 5 και 10 δευτερόλεπτα. Οι τιμές mode είναι std και pro. Το cfg_scale είναι αριθμός από 0 έως 1· η τεκμηρίωση περιγράφει τις υψηλότερες τιμές ως αυστηρότερη τήρηση του κειμένου. Επιλέξτε ελέγχους για το συγκεκριμένο πλάνο και διατηρήστε τις υποβληθείσες τιμές μαζί με το αποτέλεσμα.\n\nΤο τεκμηριωμένο αντικείμενο camera_control αναφέρει τους τύπους κάμερας simple, down_back, forward_up, right_turn_forward και left_turn_forward. Η διαμόρφωσή του simple κατονομάζει ελέγχους horizontal, vertical, pan, tilt, roll και zoom. Το ελάχιστο παράδειγμα κειμένου προσφέρει μια χρήσιμη αφετηρία όταν μια σκηνή μπορεί να περιγραφεί χωρίς ξεχωριστό αντικείμενο ελέγχου κάμερας. Δώστε στην κίνηση της κάμερας σαφή σκοπό μέσα στο prompt, όπως την αποκάλυψη του θέματος ή την παρακολούθηση της κίνησής του.\n\nΗ υποβολή ξεκινά ασύγχρονη εργασία. Κρατήστε το επιστρεφόμενο id, την κεφαλίδα X-Ailoot-Task-Id και το polling_url και στη συνέχεια χρησιμοποιήστε GET σε αυτό το polling_url με το ίδιο κλειδί API του Ailoot για να διαβάσετε την αρχική εργασία. Η κατάσταση της εργασίας βρίσκεται στο data.task_status: τα submitted και processing δηλώνουν εκκρεμότητα, το succeed επιτυχία και το failed αποτυχία. Επομένως, η επιβεβαίωση υποβολής είναι ενδιάμεσο αποτέλεσμα. Σε περίπτωση επιτυχίας, ανακτήστε κάθε URL στο data.task_result.videos[].url· αυτοί είναι σύνδεσμοι αρχείων αποτελεσμάτων που διαχειρίζεται το Ailoot. Το GET /v1/videos/{id}/content ανακτά την πρώτη έξοδο και η παράμετρος ερωτήματος index επιλέγει μια επιστρεφόμενη έξοδο με δείκτη που ξεκινά από το μηδέν. Κρατήστε την απάντηση κατάστασης μαζί με το επιλεγμένο βίντεο. Αν προκύψει λήξη χρόνου αναμονής ή απάντηση result_pending_check, διατηρήστε την αρχική επιστρεφόμενη ταυτότητα και ελέγξτε εκείνη τη λειτουργία αντί να υποβάλετε ξανά το πλάνο.\n\nΕλέγξτε το ολοκληρωμένο υλικό σε όλη τη διάρκειά του: η επιθυμητή δράση, η εμφάνιση του θέματος, το κάδρο και η κίνηση αποτελούν όλα μέρος της περιγραφής του πλάνου. Αυτό ακριβώς το προφίλ παρέχει τη ροή μετατροπής κειμένου σε βίντεο που περιγράφεται εδώ. Μια επιστρεφόμενη εργασία που χρειάζεται ακόμη έλεγχο κατάστασης πρέπει να παρακολουθείται με την αρχική της ταυτότητα, ακόμη και όταν ένα αίτημα πελάτη υπερβεί τον χρόνο αναμονής· διατηρήστε αυτές τις πληροφορίες εργασίας πριν εξετάσετε νέο αίτημα δημιουργίας.",
    "alias_of": null,
    "aliases": [],
    "author": "Kuaishou",
    "ctx": null,
    "formats": [
      "videos"
    ],
    "id": "kling-v1-6",
    "input": [
      "text"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "The displayed rates estimate the cost before generation. The final charge is calculated from the cost recorded for the original generation. Measured output duration and forecast quantities are not the final billable quantity.",
          "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": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "example_body": {
              "mode": "pro",
              "model": "kling-v1-6",
              "prompt": "A happy holiday scene at the beach."
            },
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "completed_states": [
                "succeed"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed"
              ],
              "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
              "mode": "submit_once_poll_original",
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "pending_states": [
                "processing",
                "submitted"
              ],
              "state_field": "data.task_status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
              "family": "video",
              "fields": [
                {
                  "name": "data.task_result.videos[].url",
                  "type": "string or array, as returned"
                }
              ],
              "ownership": "Every returned selected video URL is an owned signed result after completion."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "kling-v1-6"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maxLength": 500,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  "std",
                  "pro"
                ],
                "enum_known": true,
                "name": "mode",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  "kling-v1-6"
                ],
                "enum_known": true,
                "name": "model_name",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maximum": 1,
                "minimum": 0,
                "name": "cfg_scale",
                "required": false,
                "type": "number"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maxLength": 200,
                "name": "negative_prompt",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  5,
                  10
                ],
                "enum_known": true,
                "name": "duration",
                "required": false,
                "type": "integer"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "type": "string"
                },
                "cfg_scale": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "duration": {
                  "enum": [
                    5,
                    10
                  ],
                  "type": "integer"
                },
                "mode": {
                  "enum": [
                    "std",
                    "pro"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "kling-v1-6"
                  ],
                  "type": "string"
                },
                "model_name": {
                  "enum": [
                    "kling-v1-6"
                  ],
                  "type": "string"
                },
                "negative_prompt": {
                  "maxLength": 200,
                  "type": "string"
                },
                "prompt": {
                  "maxLength": 500,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "mode"
              ],
              "type": "object"
            },
            "schema_template": {
              "body": {
                "mode": "pro",
                "model": "kling-v1-6",
                "prompt": "A happy holiday scene at the beach."
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "model selects this model. An omitted model_name uses the selected model; an explicit native model_name override is preserved."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [
              "model_name",
              "cfg_scale",
              "aspect_ratio",
              "negative_prompt",
              "duration"
            ],
            "required": [
              "model",
              "prompt",
              "mode"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "completed_states": [
              "succeed"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed"
            ],
            "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
            "mode": "submit_once_poll_original",
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "pending_states": [
              "processing",
              "submitted"
            ],
            "state_field": "data.task_status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "output": {
            "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
            "family": "video",
            "fields": [
              {
                "name": "data.task_result.videos[].url",
                "type": "string or array, as returned"
              }
            ],
            "ownership": "Every returned selected video URL is an owned signed result after completion."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "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": "6",
                "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": "6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"kling-v1-6\", \"prompt\": \"A happy holiday scene at the beach.\", \"mode\": \"pro\"}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "Video",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "cache_read_price": null,
          "cache_write_1h_price": null,
          "cache_write_price": null,
          "fast_multiplier": null,
          "flex_multiplier": null,
          "image_input_price": null,
          "image_output_price": null,
          "input_price": null,
          "intervals": null,
          "max_reasoning_effort_multiplier": null,
          "output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "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": "6",
                "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": "6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "kling-v1-6",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}"
        ],
        "tiers": [],
        "unit": "video",
        "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": "6",
            "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": "6",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "kling-v1-6",
        "request_model_id": "kling-v1-6",
        "route_label": "Ultra"
      }
    ],
    "name": "kling-v1-6",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Το προφίλ kling-v1-6 δημιουργεί βίντεο από γραπτή περιγραφή σκηνής. Σχεδιάστε ένα σύντομο πλάνο με σαφές θέμα, δράση και κατεύθυνση κάμερας, χρησιμοποιώντας τις τεκμηριωμένες επιλογές διάρκειας πέντε ή δέκα δευτερολέπτων. Η δημιουργία είναι ασύγχρονη: κρατήστε την επιστρεφόμενη ταυτότητα εργασίας και ανακτήστε το ολοκληρωμένο βίντεο αφού επιτύχει η αρχική εργασία."
  },
  "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": "Το προφίλ kling-v1-6 δημιουργεί βίντεο από γραπτή περιγραφή σκηνής. Σχεδιάστε ένα σύντομο πλάνο με σαφές θέμα, δράση και κατεύθυνση κάμερας, χρησιμοποιώντας τις τεκμηριωμένες επιλογές διάρκειας πέντε ή δέκα δευτερολέπτων. Η δημιουργία είναι ασύγχρονη: κρατήστε την επιστρεφόμενη ταυτότητα εργασίας και ανακτήστε το ολοκληρωμένο βίντεο αφού επιτύχει η αρχική εργασία.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "4135bd865ab731b50b3af452d2d6dd0360863586262320563358e6f7277bc9f1",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "ac40673dd973aaa182af6a66b043d30f6f54ae5932e99f49b263f62abae17dea"
}
