Instrumente media

    Generează imagini și videoclipuri cu peste 40 de modele AI. Apelează întotdeauna get_models mai întâi pentru a vedea modelele disponibile, costurile și dacă un model necesită o imagine de intrare.

    Clienți REST HTTP: aceleași limite sunt centralizate în Cerințe modele API (în engleză) și în răspunsul GET /v1/models per model.

    #generate_media

    Pornește o generare de imagine sau video.

    Parametri:

    ParametruTipObligatoriuDescriere
    promptstringDaCe să genereze (ex. „Mașină roșie pe un drum de munte”).
    modelstringDaID model (de la get_models). Exemple: nano-banana, kling-2-6-image-to-video.
    generation_typestringNutext-to-image, text-to-video, image-to-video sau image-to-image. Implicit: text-to-image.
    negative_promptstringNuCe să evite în output.
    source_media_urlsstring sau arrayNuObligatoriu pentru image-to-video și image-to-image. URL-uri către imagine(i), sau pentru unele modele (ex. Kling 2.6 Motion) imagine + video. Vezi limitele de intrare mai jos. Omitere pentru text-to-image și text-to-video.
    aspect_ratiostringNuex. 1:1, 16:9, 9:16, 4:5, 21:9. Implicit: 1:1. Notă: fiecare model acceptă doar un subset — get_models returnează lista permisă.
    durationstringNuDurata video. Doar anumite modele video o folosesc. Vezi mai jos.
    qualitystringNuex. fast, standard, pro, ultra. Implicit: standard.
    resolutionstringNuTier-ul de rezoluție de ieșire. Doar anumite modele imagine îl folosescgpt-image-2 (1K/2K/4K), nano-banana-pro/nano-banana-2 (1K/2K/4K), flux-2 (1K/2K). Fiecare tier este un SKU de preț separat; get_models returnează costul în credite per tier. Ignorat de modele unde rezoluția e codificată în model_id-ul variantei (Seedance, Kling, P-Video). Vezi tabelul Tiere de rezoluție mai jos pentru constrângerile pe fiecare model.
    soundbooleanNuCând true, solicită video cu audio generat. Doar anumite modele video. Implicit: false. Vezi mai jos.
    seednumberNuSeed pentru rezultate reproductibile.

    Exemplu (text-to-image):

    {
      "prompt": "Un oraș futurist la apus cu mașini zburătoare",
      "model": "nano-banana",
      "generation_type": "text-to-image",
      "aspect_ratio": "16:9",
      "quality": "pro"
    }
    

    Exemplu (image-to-video, o imagine de intrare):

    {
      "prompt": "Mișcare blândă și subtilă",
      "model": "kling-2-6-image-to-video",
      "generation_type": "image-to-video",
      "source_media_urls": ["https://example.com/your-image.jpg"],
      "aspect_ratio": "16:9",
      "duration": "5s"
    }
    

    Răspuns: Include generation_id, status (ex. pending) și adesea estimated_time_seconds și estimated_cost_credits. Interoghează cu get_generation_status până când status este completed sau failed.

    Modele care suportă duration:

    Model(e)Valori suportateObservații
    kling-2-6-text-to-video, kling-2-6-image-to-video5s, 10sOpțional cu/fără audio (variantă model).
    wan-2-5 (text-to-video, image-to-video)5s, 10s
    wan-2-7-720p, wan-2-7-1080p (text-to-video, image-to-video)2s15s (întreg, per secundă)Tarifare PER SECUNDĂ; rezoluția e codificată în model_id. Pasează duration (2–15) + generation_type.
    v1-pro-fast-i2v5s, 10s
    seedance-1-5-pro4s, 8s, 12sSuportă text-to-video (0–1 imagine opțional) și image-to-video (2 imagini obligatorii).
    seedance-2 (Standard) / seedance-2-fast (Fast)întreg 415 secundeTier-ul este chiar familia de model — folosește seedance-2-fast pentru tier-ul ieftin și rapid, seedance-2 pentru cel de calitate mai înaltă. Fiecare familie expune model_ids concrete per rezoluție și combinație cu video de referință (ex. seedance-2-fast-480p, seedance-2-480p-video-ref). Pasează variantele complete la generate_media; o etichetă de familie singură întoarce o eroare variant_required cu opțiunile. Referințe multimodale (imagini/videouri/audio) în text-to-video; keyframe în image-to-video. Facturarea se modifică când trimiți video de referință — vezi secțiunea Seedance 2.
    gemini-omni-video (Google)4, 6, 8, 10 (incluse în id-ul variantei)Doar durate discrete — parametrul duration este ignorat; rezoluția este și ea inclusă în id-ul variantei (gemini-omni-video-720p-6s, gemini-omni-video-1080p-6s, gemini-omni-video-4k-10s, etc.). Trei variante video-ref (gemini-omni-video-720p-video-ref, gemini-omni-video-1080p-video-ref, gemini-omni-video-4k-video-ref) preiau durata din clipul sursă tăiat (≤ 10s). Pasarea etichetei de familie gemini-omni-video întoarce o eroare variant_required cu cele 15 opțiuni.
    grok-text-to-video-6s6s fixParametrul duration este ignorat.
    grok-image-to-video, kling-2-5-image-to-video-pro, veo3-1NeconfigurabilDurata nu se setează prin acest parametru.

    Pentru modele doar imagine, duration este ignorat.

    Modele care suportă negative_prompt:

    Model(e)Observații
    imagen-4, imagen-4-fast, imagen-4-ultraText-to-image.
    wan-2-5 (text-to-video, image-to-video)
    wan-2-7-720p, wan-2-7-1080p (text-to-video, image-to-video)Până la 500 de caractere.
    kling-2-5-image-to-video-pro

    Celelalte modele ignoră negative_prompt.

    Modele care suportă quality (sau echivalent):

    Model(e)Cum funcționeazăValori
    imagen-4 varianteMapat la model_variant.standard, fast, ultra (folosește quality: standard / fast / ultra).
    seedream-v4, seedream-v4-editRezoluție prin parametrul quality.1K (implicit), 2K, 4K.
    seedream-v4-5, seedream-v4-5-editFolosește quality direct.basic (2K, implicit), high (4K).
    5-lite-text-to-image, 5-lite-image-to-imageFolosește quality direct.basic (2K, implicit), high (4K).
    veo3-1 vs veo3-1-fastID-uri de model diferite, nu un singur parametru quality.Folosește model veo3-1 (calitate) sau veo3-1-fast (viteză).
    flux-2, nano-banana-pro, nano-banana-2Rezoluție (1K/2K/4K), nu un string generic „quality”.Pasează prin parametrul dedicat resolution — vezi mai jos.
    gpt-image-2 (t2i + i2i)Rezoluție prin parametrul resolution.Vezi Tiere de rezoluție mai jos.

    Pentru celelalte modele, quality este ignorat.

    <a id="tiere-rezolutie"></a>

    Tiere de rezoluție (parametrul resolution):

    ModelValoriPrețConstrângere
    gpt-image-2 (t2i + i2i)1K (implicit), 2K, 4K11 / 15 / 21 credite2K și 4K necesită un aspect_ratio explicit, non-pătrat, non-auto — unul dintre 9:16, 16:9, 4:3, 3:4. Apelarea 2K/4K cu aspect_ratio=auto sau aspect_ratio=1:1 returnează HTTP 400 (error: "aspect_ratio_incompatible_with_high_res") și creditele NU sunt reținute. 1K acceptă toate raporturile inclusiv auto/1:1.
    nano-banana-21K (implicit), 2K, 4KVezi get_modelsFiecare tier este un SKU de preț separat. Lista aspect_ratio neschimbată între tier-uri.
    nano-banana-pro1K (implicit), 2K, 4KVezi get_modelsAcelași pattern ca nano-banana-2.
    flux-2, flux-2-edit1K (implicit), 2KVezi get_modelsDoar două tier-uri.

    Când să alegi fiecare tier (GPT Image 2):

    • 1K — implicit. Folosește pentru postări social, thumbnail-uri, prototipare, preview-uri in-app, orice ≤ 1024 × 1024. Cel mai ieftin; fără probleme de aspect ratio.
    • 2K — folosește când clientul are nevoie de un hero web clar, copertă de newsletter, ilustrație in-product la densitate retină. Trebuie să alegi un aspect direcțional (landscape sau portrait).
    • 4K — folosește pentru print, out-of-home, bannere, sau orice caz în care utilizatorul cere explicit dimensiunea maximă. Confirmă aspectul cu utilizatorul întâi; 1:1 / auto nu vor funcționa.

    Modelele care nu sunt listate ignoră resolution. Pentru familiile video (Seedance, Kling, P-Video, Gemini Omni) rezoluția face parte din model_id-ul variantei concrete — pasează varianta (ex. seedance-2-fast-480p, p-video-1080p, gemini-omni-video-1080p-6s), nu acest parametru.

    Limite caractere prompt:

    Unele modele impun o lungime maximă a promptului. Depășirea poate returna eroare sau truncare.

    Model(e)Caractere max
    wan-2-5800
    wan-2-7-720p, wan-2-7-1080p5.000
    kling-2-6 (text-to-video, image-to-video)2.500
    kling-2-5-image-to-video-pro2.500
    seedream-v4, seedream-v4-edit2.500
    seedance-2 (toate variantele)2.500
    seedream-v4-5, seedream-v4-5-edit3.000
    gpt-1.5-image-medium, gpt-1.5-image-high3.000
    nano-banana, imagen-4, flux-2, veo3-1, v1-pro-fast-i2v, grok (image/video), p-image-edit5.000
    nano-banana-pro (toate variantele)20.000
    nano-banana-2 (toate variantele)20.000

    Altele pot să nu aibă limită documentată sau să folosească valorile implicite ale serverului.

    Limite fișiere de intrare (imagini și video):

    Pentru image-to-video și image-to-image, source_media_urls este o listă de URL-uri. Majoritatea modelelor acceptă doar imagini (JPEG, PNG, WebP, de obicei 10 MB max per fișier). Unele modele acceptă și intrări video; când acceptă, se aplică limite de format și mărime (ex. MP4, durată max).

    Model(e)Tip intrareLimităObservații
    kling-2-6-motion-control-720p, kling-2-6-motion-control-1080pImagine + video1 imagine + 1 videoMotion Control: video-ul de referință conduce mișcarea. Video max 30 s; fișier video de obicei până la 100 MB (MP4/WebM).
    kling-3-0-motion-control-720p, kling-3-0-motion-control-1080pImagine + video1 imagine + 1 videoKling 3.0 Motion Control: la fel ca Kling 2.6. Facturare pe secundă — vezi tabelul Motion Control mai jos. Video max 30 s; fișier video de obicei până la 100 MB (MP4/WebM).
    kling-2-6-image-to-video, wan-2-5 (image-to-video), grok-image-to-video, v1-pro-fast-i2vDoar imagini1 imagineExact o imagine de intrare.
    wan-2-7-720p, wan-2-7-1080p (image-to-video)Doar imagini1 imaginePrimul cadru în source_media_urls; opțional last_frame_url pentru o tranziție primul+ultimul cadru.
    kling-2-5-image-to-video-proDoar imagini2 imaginiCadru inițial și final.
    kling-3-0-std, kling-3-0-proDoar imagini1–2 imaginiCadru start, sau start + final. PNG/JPG/JPEG. Suportă elemente (vezi mai jos).
    seedance-1-5-proDoar imaginiDepinde de modText-to-video (generation_type: "text-to-video"): 0–1 imagini opționale. Image-to-video (generation_type: "image-to-video"): exact 2 imagini obligatorii (cadru start + final).
    seedance-2 (Standard și Fast)Imagini + video + audioDepinde de modText-to-video: până la 9 imagini de referință, până la 3 videouri de referință (durata combinată ≤ 15s) și până la 3 clipuri audio de referință (durata combinată ≤ 15s) — toate opționale. Image-to-video: 1 imagine obligatorie (primul frame) + 1 imagine opțională (ultimul frame) + până la 3 clipuri audio opționale; videourile de referință nu sunt permise în acest mod. Pune toate URL-urile în source_media_urls — backend-ul clasifică fiecare URL după extensie (.jpg/.png/.webp → imagine, .mp4/.mov/.webm → video, .mp3/.wav/.m4a → audio).
    gemini-omni-video (toate variantele)Imagini + video7 sloturi de referințăUn singur video de referință consumă 2 sloturi; imaginile umplu restul. Maxim 1 video pe cerere; primele 10 secunde ale clipului devin clipul-driver (fără parametri de trim expuși). Un video de referință necesită o variantă -video-ref — apelarea unei variante de durată cu un URL video întoarce variant_mismatch. URL-urile de fișiere audio nu sunt acceptate; vocea de ieșire se controlează prin parametrul voice_id (una dintre cele 29 de voci built-in).
    seedream-v4-editDoar imagini10Pentru editare.
    nano-banana, nano-banana-editDoar imagini10
    nano-banana-pro (toate variantele)Doar imagini8
    nano-banana-2 (toate variantele)Doar imagini8
    p-image-editDoar imagini1–8P Image Edit (Pruna AI). Doar image-to-image — setează generation_type: "image-to-image". 1–8 URL-uri în source_media_urls. aspect_ratio: auto potrivește prima imagine, sau 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3. Opțional turbo (implicit activ). Implicit disable_safety_checker: true (moderare oprită); disable_safety_checker: false activează verificarea de siguranță. Opțional seed.
    flux-2-edit (image-to-image)Doar imagini8
    gpt-1.5-image (image-to-image)Doar imagini16
    veo3-1 (image-to-video / moduri referință)Doar imagini1-3Depinde de mod (1 referință opțională text-to-video; 2 cadru inițial+final; 3 referință).

    Folosește get_models pentru a confirma input_media_types și capabilitățile pentru un model dat. Vezi Instrumente cont pentru listă modele și prețuri.

    Kling 3.0 – elemente (opțional):

    Elementele permit referențierea imaginilor sau videoclipurilor în prompt cu @element_name. Trimite kling_elements ca array de obiecte cu name, description și fie element_input_urls (2–4 URL-uri imagine) fie element_input_video_urls (1 URL video). Imaginile de referință pentru fiecare element vin din element_input_urls propriu; image_urls principal poate rămâne gol pentru text-to-video, sau să țină cadre opționale de start/end pentru image-to-video. Fiecare element necesită titlu (name) și descriere. Imagini element: JPG/PNG, min 300×300px, max 10MB fiecare. Video element: MP4/MOV, max 50MB.

    Seedance 1.5 Pro – două moduri (verifică generation_type înainte de a folosi imagini):

    Modgeneration_typesource_media_urlsPoate folosi imagini?
    Text-to-video"text-to-video"Gol sau 1 URLOpțional: 0–1 imagini. Omite pentru doar text; include 1 URL pentru a anima acea imagine.
    Image-to-video"image-to-video"Exact 2 URL-uriObligatoriu: exact 2 imagini (cadru start + cadru final).

    Seedance 2 (ByteDance) – două familii de modele, două moduri, referințe multimodale:

    Seedance 2 este livrat pe Kubeez ca două familii de modele separateseedance-2-fast (ieftin, rapid) și seedance-2 (standard, calitate mai mare). Fiecare familie expune model_ids concrete per rezoluție și combinație cu video de referință; pasează varianta completă (ex. seedance-2-fast-480p, seedance-2-720p-video-ref) — pasarea doar a etichetei de familie întoarce o eroare variant_required cu opțiunile disponibile. Ambele tiere suportă rezoluțiile 480p și 720p (nu există 1080p), durată întreg între 4 și 15 secunde, și aspect ratios 1:1, 4:3, 3:4, 16:9, 9:16, 21:9 și adaptive. Prompt-ul maxim este 2.500 de caractere. Audio-ul se comută prin generate_audio (implicit true) și este gratuit — spre deosebire de Kling 3.0, care aplică un surcharge pentru audio.

    Două moduri:

    ModIntrări permiseRegulă
    Text-to-videoPână la 9 imagini de referință, până la 3 videouri de referință (durata combinată ≤ 15s), până la 3 clipuri audio de referință (durata combinată ≤ 15s).Toate referințele sunt opționale. Pune toate URL-urile în source_media_urls; backend-ul clasifică fiecare URL după extensie (.jpg/.png/.webp → imagine, .mp4/.mov/.webm → video, .mp3/.wav/.m4a → audio) și le rutează automat către bucket-ul corect.
    Image-to-video1 imagine obligatorie (primul frame) + 1 imagine opțională (ultimul frame) + până la 3 clipuri audio de referință opționale.Videourile de referință nu sunt permise în acest mod — vor fi respinse cu o eroare clară.

    Limite stricte (aplicate ca erori 400):

    • 3 videouri de referință → too_many_videos

    • 3 clipuri audio de referință → too_many_audios

    • 9 imagini de referință → too_many_images

    • Durata combinată a videourilor de referință > 15s → respinsă
    • Durata combinată a clipurilor audio de referință > 15s → respinsă
    • Un singur fișier video sau audio de referință mai lung de 15s → respins

    Două căi de facturare (important):

    Seedance 2 are două formule de cost, alese în funcție de prezența sau absența unui video de referință:

    • Fără video de referință:
      credits = output_s × rate/s
      
    • Cu video de referință (ruta providerului upstream):
      credits = (ref_s + output_s) × rate/s
      
      unde ref_s este suma duratelor tuturor videourilor de referință, limitată la 15 secunde per cerere.

    Notă importantă pentru utilizatorii MCP și REST API: Backend-ul nu poate interoga durata unui video de la distanță dintr-un URL, așa că, pentru cererile cu video de referință primite prin MCP sau REST API, facturează cel mai pesimist caz (15 secunde) pentru ref_s. Web UI-ul Kubeez măsoară durata local și facturează valorile exacte. Pentru workflow-uri sensibile la cost cu clipuri de referință scurte, recomandăm să folosești web UI-ul.

    Tarife per secundă, în timp real (extrase din catalogul ai_models_config — mereu la zi):

    ModelNameRateUnit
    seedance-2-1080pSeedance 2 (1080p)75credits / sec
    seedance-2-1080p-video-refSeedance 2 (1080p, video ref)48credits / sec
    seedance-2-480pSeedance 2 (480p)18credits / sec
    seedance-2-480p-video-refSeedance 2 (480p, video ref)13credits / sec
    seedance-2-720pSeedance 2 (720p)35credits / sec
    seedance-2-720p-video-refSeedance 2 (720p, video ref)25credits / sec
    seedance-2-fast-480pSeedance 2.0 Fast16credits / sec
    seedance-2-fast-480p-video-refSeedance 2.0 Fast (video ref)12credits / sec
    seedance-2-fast-720pSeedance 2.0 Fast29credits / sec
    seedance-2-fast-720p-video-refSeedance 2.0 Fast (video ref)19credits / sec

    Gemini Omni Video — modelul multi-modal Google:

    Gemini Omni Video produce ieșire video cu audio built-in (29 de voci) și acceptă intrări multi-modale (text, referințe de imagine, un singur video de referință opțional). Modelul vine ca 15 variante concrete — alege-o pe cea care se potrivește rezoluției și duratei dorite. 720p și 1080p au același preț; 4K este un tier de preț separat.

    Id-uri variantă (pasate la generate_media ca model):

    Rezoluție4s6s8s10sVideo-ref (flat)
    720pgemini-omni-video-720p-4sgemini-omni-video-720p-6sgemini-omni-video-720p-8sgemini-omni-video-720p-10sgemini-omni-video-720p-video-ref
    1080pgemini-omni-video-1080p-4sgemini-omni-video-1080p-6sgemini-omni-video-1080p-8sgemini-omni-video-1080p-10sgemini-omni-video-1080p-video-ref
    4Kgemini-omni-video-4k-4sgemini-omni-video-4k-6sgemini-omni-video-4k-8sgemini-omni-video-4k-10sgemini-omni-video-4k-video-ref

    Variantele video-ref preiau durata din clipul sursă tăiat (se folosesc primele 10s; fără parametri de trim expuși). Variantele bazate pe durată acceptă 1–7 referințe de imagine; variantele video-ref acceptă 1 clip sursă (consumă 2 sloturi) + până la 5 referințe de imagine.

    Tarifare flat per task. Tarife în timp real (720p și 1080p împart fiecare rând — Google le facturează identic):

    ModelNameRateUnit
    gemini-omni-video-4k-10sGemini Omni Video (4K)320credits
    gemini-omni-video-4k-4sGemini Omni Video (4K)230credits
    gemini-omni-video-4k-6sGemini Omni Video (4K)260credits
    gemini-omni-video-4k-8sGemini Omni Video (4K)290credits
    gemini-omni-video-4k-video-refGemini Omni Video (video ref, 4K)380credits
    gemini-omni-video-hd-10sGemini Omni Video200credits
    gemini-omni-video-hd-4sGemini Omni Video110credits
    gemini-omni-video-hd-6sGemini Omni Video140credits
    gemini-omni-video-hd-8sGemini Omni Video170credits
    gemini-omni-video-hd-video-refGemini Omni Video (video ref)260credits

    Parametri specifici Gemini Omni:

    ParametruTipObservații
    resolutionIgnorat — inclus în id-ul variantei.
    durationIgnorat — inclus în id-ul variantei. Variantele video-ref preiau durata din clipul sursă tăiat.
    aspect_ratiostringStrict 16:9 sau 9:16. Orice altă valoare întoarce aspect_ratio_invalid_for_model.
    voice_idstring (opțional)Una dintre cele 29 de voci built-in (ex. kore, puck, achernar, zephyr). Descoperă lista completă prin tool-ul list_gemini_omni_voices — id-urile necunoscute sunt respinse client-side înainte de a se factura vreun credit. Omite pentru vocea implicită a modelului.
    character_idsstring[] (opțional)Unul sau mai multe personaje salvate din biblioteca utilizatorului (create prin manage_library(kind="character", action="create", ...), listate prin list_gemini_omni_characters). Fiecare consumă 1 din cele 7 sloturi de referință. Providerul randează o identitate consistentă pe mai multe clipuri.
    video_trim_start_snumber (opțional)Începutul ferestrei de trim (secunde) pentru video-ul de referință. Implicit 0.
    video_trim_end_snumber (opțional)Sfârșitul ferestrei de trim (secunde) pentru video-ul de referință. Implicit: min(durata_sursei, start+10) când URL-ul există în media_upload_metadata, altfel start+10. Limite stricte de la provider: range ≤ 10s, ends ≤ 30s.
    seednumber (opțional)Pentru rezultate reproductibile.
    negative_promptNu este suportat. Eliminat tacit.
    soundNu este suportat — audio-ul este intrinsec fiecărei ieșiri.

    Media sursă (source_media_urls): 7 sloturi de referință în total. Un singur video de referință consumă 2 sloturi; fiecare character_id consumă 1 slot; imaginile umplu restul. Maxim 1 video pe cerere; pasarea unui URL video necesită o variantă -video-ref (variantă de durată + video → variant_mismatch). Fereastra clipului-driver este implicit primele 10 secunde; suprascrie cu video_trim_start_s / video_trim_end_s. URL-urile de fișiere audio nu sunt acceptate (returnează unsupported_audio_url); folosește voice_id în schimb.

    Tool-uri companion (folosește-le alături de generările Gemini Omni):

    ToolScop
    list_gemini_omni_voicesCatalog static al celor 30 de voci (id, label, gen, caracter, preview_url către un sample mp3 de ~7s). Gratuit.
    play_gemini_omni_voiceReturnează preview_url-ul pentru un singur id de voce — mai rapid decât a aduce întregul catalog când știi deja vocea. Afișează URL-ul utilizatorului ca să o asculte înainte de a o folosi.
    list_gemini_omni_charactersListează personajele salvate ale utilizatorului. Fiecare rând are un character_id de pasat la generate_media și un id intern pentru ștergere.
    manage_library(kind="character", action="create", ...)Persistă un personaj nou dintr-o imagine de referință + descriere (+ opțional character_name, voice_id). Returnează character_id-ul opac al providerului.
    manage_library(kind="character", action="delete", character_id=...)Ștergere locală (providerul nu are endpoint de delete). Generările anterioare care au folosit acel personaj își păstrează ieșirile.
    trim_videoTaie un video sursă lung la fereastra de ≤10s pe care Gemini Omni o cere pentru variantele -video-ref. Returnează un URL găzduit, gata de folosit ca source_media_urls.

    Exemplu de cerere (1080p, 6s, vertical, refolosind un personaj salvat + voce aleasă):

    {
      "model": "gemini-omni-video-1080p-6s",
      "prompt": "Un barista face un espresso perfect, povestește procesul",
      "aspect_ratio": "9:16",
      "voice_id": "kore",
      "character_ids": ["char_4f2a9b7c"],
      "source_media_urls": ["https://media.kubeez.com/cafe-shot.jpg"]
    }
    

    Audio la video (două concepte):

    1. capabilities.video_audio în get_models — dacă ieșirea are sunet:
      • included — ieșirea include de obicei pistă audio fără parametrul sound (ex. Veo, Wan, Grok, Kling 2.5 image-to-video, Motion Control, Gemini Omni Video — acesta expune parametrul voice_id pentru alegerea uneia dintre cele 29 de voci built-in).
      • toggle_via_sound_param — audio generat se pornește/oprește cu sound: true / false (Kling 2.6, Kling 3.0, Seedance 1.5 Pro, Seedance 2). Pentru Seedance 2 comutatorul este gratuit (implicit true); pentru celelalte modele prețul poate diferi. Kling 3.0 rutează sound: true către rânduri dedicate -audio în catalog — continui să folosești kling-3-0-std / kling-3-0-pro ca model id și doar comuți sound; serverul alege rândul cu tariful corect. Tarife în timp real:
    ModelNameRateUnit
    kling-3-0-proKling 3.0 Pro21credits / sec
    kling-3-0-pro-audioKling 3.0 Pro (with audio)30credits / sec
    kling-3-0-stdKling 3.017credits / sec
    kling-3-0-std-audioKling 3.0 Std (with audio)23credits / sec

    Tarife per secundă de Motion Control (Kling 3.0 și Kling 2.6):

    No models matched this family. kling-3-0-motion-control,kling-2-6-motion-control
    • silent — fără audio generat (doar Seedance 1.0 / v1-pro-fast-i2v).
    1. supports_sound — înseamnă doar că API-ul acceptă comutatorul sound pentru acel model; nu înseamnă că celelalte modele video sunt fără sunet; majoritatea au video_audio: included.

    Modelele doar imagine ignoră sound.

    #API REST: URL-uri pentru fișiere locale sau din browser

    Dacă folosești API-ul HTTP (POST /v1/generate/media) și intrările sunt fișiere pe disc sau selectate în browser—nu URL-uri publice deja—încarcă mai întâi fiecare fișier cu POST /v1/upload/media. Folosește valorile din urls ca source_media_urls.


    <a id="trim_video"></a>

    #trim_video

    Taie o fereastră din orice URL video accesibil public și găzduiește clipul tăiat. Kubeez gestionează trim-ul server-side și returnează un url public pe care îl pasezi direct la generate_media ca valoare în source_media_urls.

    Când să folosești acest tool:

    • Video-ul sursă al utilizatorului este mai lung decât limita modelului pentru clipul de referință și vrei rezultate deterministe în loc să te bazezi pe trim-ul providerului.
    • Vrei să folosești o fereastră specifică dintr-un asset mai lung (ex. „folosește secundele 5–12, nu primele 10").
    • Înlănțuiești mai multe generări și vrei un singur URL canonic tăiat reutilizabil în mai multe apeluri.

    Limite per model (sari peste trim când sursa deja se încadrează):

    ModelLimită clip referințăNote
    Gemini Omni Video (variante -video-ref)≤ 10s fereastră din primele 30s ale surseiNecesar când o variantă de durată + ref video întoarce variant_mismatch.
    Kling 2.6 / 3.0 Motion Control≤ 30s video de referințăProviderul trunchiează clipurile mai lungi; taie explicit pentru încadrare predictibilă.
    Seedance 2 / 2 Fast≤ 15s timp combinat video referințăDacă pasezi mai multe ref videouri, taie fiecare ca suma să se încadreze.

    Parametri:

    ParametruTipObligatoriuDescriere
    source_urlstringDaURL video sursă accesibil public (URL Kubeez upload, R2/S3, orice CDN public).
    end_snumberDaSfârșitul ferestrei de trim, în secunde. Trebuie să fie > start_s; intervalul rezultat end_s − start_s este plafonat la 60s.
    start_snumberNuÎnceputul ferestrei de trim, în secunde. Implicit 0.

    Returnează: { url, size_bytes, duration_s, start_s, end_s, elapsed_s }. url este un link public găzduit Kubeez care indică spre bucket-ul media-inputs din Supabase storage, safe de folosit ca valoare source_media_urls. Clipurile tăiate stau în același bucket cu inputurile încărcate de utilizator și împart aceeași curățare automată săptămânală — tratează-le ca efemere, nu ca asset permanent.

    Flux tipic (Gemini Omni Video cu sursă lungă de la utilizator):

    1. get_upload_url(model_id="gemini-omni-video-1080p-video-ref")
           → pagină upload presemnată
    2. (utilizatorul încarcă clipul de 25s prin link)
    3. get_upload_session(token) → { media_urls: ["https://.../source.mp4"] }
    4. trim_video(source_url=media_urls[0], start_s=5, end_s=15)
           → { url: "https://.../trims/<uuid>.mp4", duration_s: 10 }
    5. generate_media(
           model="gemini-omni-video-1080p-video-ref",
           prompt="...",
           source_media_urls=[<url-ul tăiat>]
       )
    

    Trim standalone (URL-ul sursă e deja public — fără pas de upload):

    trim_video(source_url="https://media.kubeez.com/<asset>.mp4", start_s=0, end_s=8)
           → { url, duration_s: 8 }
    generate_media(model="kling-3-0-motion-control-1080p", source_media_urls=[<imagine>, <url-ul tăiat>], ...)
    

    Erori:

    Cod eroareCauză
    missing_source_urlsource_url nu a fost furnizat.
    unsafe_source_urlsource_url folosește o schemă non-http(s), conține credențiale embedate sau se rezolvă la un IP privat/loopback/metadata. Kubeez refuză să acceseze host-uri interne — folosește un URL public.
    invalid_trim_rangeend_sstart_s, start_s negativ sau valori non-numerice.
    trim_too_longend_s − start_s > 60s.
    source_too_largeVideo sursă > 500 MB.
    source_fetch_failedURL-ul sursă a întors 4xx, 5xx, a fost inaccesibil sau a depășit plafonul de redirect-uri.
    ffmpeg_failedffmpeg a respins fișierul (codec nesuportat / container corupt).
    processor_timeoutServiciul de trim a depășit bugetul de download/procesare.
    processor_unavailableServiciul de trim este temporar indisponibil. Reîncearcă mai târziu sau contactează suportul dacă persistă.

    Exemplu de cerere:

    {
      "source_url": "https://media.kubeez.com/u123/uploads/long-take.mp4",
      "start_s": 5.2,
      "end_s": 14.7
    }
    

    Exemplu de răspuns:

    {
      "url": "https://<project>.supabase.co/storage/v1/object/public/media-inputs/u123/trims/abc.mp4",
      "size_bytes": 1245678,
      "duration_s": 9.5,
      "start_s": 5.2,
      "end_s": 14.7,
      "elapsed_s": 1.83
    }
    

    Precizie pe frame: -c copy aliniază startul efectiv la cel mai apropiat keyframe precedent (deplasare ≤ 1 GOP, de obicei ≤ 1s). Comportament identic cu stream-copy-ul nativ MP4 din web UI. Pentru tăieri precise pe frame, re-encodează sursa în prealabil — compromisul fiind o operațiune mai lentă și cu pierderi, pe care o evităm deliberat aici.

    Nu păstra output-ul: URL-ul indică spre bucket-ul media-inputs care e curățat săptămânal. Dacă ai nevoie ca clipul tăiat să supraviețuiască următoarei generări, folosește manage_library(kind="asset", action="add", ...) pentru a-l copia în Biblioteca de Assets permanentă a utilizatorului.


    #get_generation_status

    Verifică statusul unei generări media și obține URL-urile de output când e gata.

    Parametri:

    ParametruTipObligatoriuDescriere
    generation_idstringDaID returnat de generate_media.

    Răspuns: Include status (pending, queued, processing, completed, failed), progress și când e finalizat un array outputs cu url, thumbnail_url, optimized_url, media_type, dimensiuni etc.


    #get_generation_estimate

    Obține un timp estimat de procesare în funcție de parametri pentru un model și opțiuni dat (nu se pornește niciun job). Pentru o durată estimată per model într-un singur apel, folosește get_models; fiecare model include estimated_time_seconds. Folosește get_generation_estimate când ai nevoie de o estimare care depinde de lungimea promptului, durată sau alți parametri.

    Parametri:

    ParametruTipObligatoriuDescriere
    modelstringDaID model.
    generation_typestringNuLa fel ca în generate_media. Implicit: text-to-image.
    promptstringNuOpțional; poate afecta estimarea.
    negative_promptstringNuOpțional.
    parametersobjectNuParametri suplimentari opționali.

    Răspuns: Timp estimat (și opțional încredere/dimensiune eșantion) pentru a seta așteptările utilizatorului înainte de generate_media.


    #Reguli modele

    • Text-to-image și text-to-video: Nu trimite source_media_urls (decât dacă modelul suportă o imagine de referință opțională). Excepție: seedance-1-5-pro în mod text-to-video acceptă 0–1 imagini opționale.
    • Image-to-video și image-to-image: Trimite URL-uri imagine (și când e suportat, video) în source_media_urls. Majoritatea modelelor au nevoie doar de imagini; unele (ex. Kling 2.6 Motion Control) necesită 1 imagine + 1 video. seedance-1-5-pro în mod image-to-video necesită exact 2 imagini (cadru start + final). Respectă limitele de intrare ale fiecărui model de mai sus.
    • Audio video: Folosește capabilities.video_audio din get_models. included — audio fără parametrul sound. toggle_via_sound_param — folosește sound doar când supports_sound e true. silent — fără audio generat (doar Seedance 1.0). Nu deduce „fără audio” doar din supports_sound: false.
    • Folosește get_models pentru a vedea ce modele suportă ce tipuri de generare, input_media_types (ex. image, video) și numărul necesar de intrări.

    Vezi Limitări pentru limite de rată și credite. Pentru un singur tabel cu valorile implicite API (prompt, intrări, durată, flag-uri), vezi Cerințe modele API.