sapiens_video
Create AI videos from prompts or images, animate stills, transfer motion, recreate shots, and monitor rendering until the video URL is ready.
Instructions
Sapiens Video — gera vídeo (qualquer membro logado; vídeo é caro, cobra as Sinapses da sua conta). Sub-action 'create' (recomendada): escolhe modelo + config e gera num call (cria a row + renderiza). Modelos: 'sapiens-video-seedance' (Seedance 2.0, cena+áudio nativo, 4-15s, 480/720/1080p, t2v/i2v), 'sapiens-video-kling' (Kling 3.0 Pro, anima imagem, 3-15s, sound opcional, i2v/t2v), 'sapiens-video-wan' (WAN 2.5, imagem que fala/canta com áudio+lip-sync, 5/10s, i2v), 'sapiens-video-kling-motion' (Motion transfer: passa o movimento de um vídeo pra uma imagem, PRECISA de pessoa com tronco visível na imagem E no vídeo), 'sapiens-video-shot-mimic' (Shot Mimic: recria o plano/câmera/cortes de um vídeo de referência como cena nova), 'sapiens-video-omni' (Gemini Omni: texto vira vídeo 10s 720p com áudio nativo; NÃO aceita mídia do user, ignora references/durationSec/resolution; editOfImageId aponta um vídeo Omni seu e o prompt edita a MESMA cena, preservando câmera e ambiente), 'sapiens-video-lite/fast/quality' (Veo 3.1). Args create: model, prompt, durationSec, resolution ('480p'/'720p'/'1080p'), audio, aspectRatio. FRAME INICIAL/FINAL POR REFERÊNCIA (recomendado): startImageId/endImageId (id da sua galeria) ou startImageUrl/endImageUrl (url de galeria/Acervo/personagem) — resolvidos server-side igual à imagem, descubra via sapiens_reference. FRAME POR ARQUIVO LOCAL (só no MCP instalado/stdio, não no remoto): startImagePath/endImagePath = caminho absoluto de uma imagem no seu PC (PNG/JPEG/WebP até 8MB); o processo lê o arquivo e sobe como frame inicial/final, igual a subir no gerador do site — 1 imagem inicial + 1 final por vídeo, então pra vários vídeos rode create uma vez por imagem. No remoto use id/url. Alternativa base64: references (role 'start'=imagem i2v, 'end'=frame final, 'driving'=vídeo de movimento do Motion). Suporte a frame final varia por modelo. Custo server-side por config. Sub-action 'generate' (legado): renderiza um imageId de vídeo já criado no site. Retorna {success, url, imageId, cost}. VITRINE (sem custo): sub-action 'demos' lista os SEUS demo films (kind=demo do Estúdio de Vídeo) com slug + estado de vitrine; sub-action 'showcase' põe/tira um demo (por slug) do mini-cinema da /conectar-claude, com showcaseTag (chip de capacidade) e showcaseOrder (ordem asc). Fluxo: 'demos' pra achar o slug, depois 'showcase' com showcase=true. Só entra na vitrine pública se for a conta da casa. VÍDEOS PROGRAMÁTICOS (ADMIN, sem custo): a mesa do Estúdio de Vídeo (/experimentos/films, tabela videoSpecs, 5 kinds: demo | aula-tour | essay | tipografia-musical | dataviz) opera por aqui sem browser — 'film-list' (todos os kinds; filtros filmKind/filmStatus), 'film-get' (spec inteiro por slug), 'film-upsert' (cria/atualiza por slug, idempotente; spec = objeto JSON no shape do 'Copiar spec' da tela, validação no servidor), 'film-status' (produção por slug: filmStatus + videoUrl + durationSecMeasured; o fecho do render é os três num call), 'film-publish' (Acervo aba Fitas + portfólio; exige pronto+URL), 'film-delete' (limpar rascunho). O RENDER do filme segue no agente local (skill /film, repo da casa): o MCP registra e fecha o ciclo, não renderiza. create é ASSÍNCRONA: cria o row, debita e volta NA HORA com {imageId, status:'rendering', cost} (não espera o render, que leva de segundos a minutos). Acompanhe com a sub-action 'status' (imageId) até status='completed' (traz a url) ou 'error'/'blocked'. NÃO chame create de novo enquanto renderiza (cria outro vídeo e cobra de novo); falha de provider refunda sozinha. SOM: 'sonorize' (imageId de vídeo SEU completed + prompt do som da cena) gera uma VARIANTE nova com trilha sincronizada (20 Sinapses/s, o original fica intacto; sonorize sempre o original, nunca uma variante). ADMIN: 'shadows' (videoUrl + title) extrai a sombra/depth-map de um vídeo pro Acervo como driving reutilizável; 'shadows-list' lista as sombras prontas. Sub-action 'models' (sem custo, sem login): lista os modelos de vídeo ativos + preço-piso + config (durações/resoluções) + disponibilidade (Omni depende de env).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | action=showcase: slug do demo film a curar (descubra via action=demos). film-get/film-status/film-publish/film-delete: slug do spec (descubra via film-list). film-upsert: slug fixo do filme no repo films/ (idempotente: existe = atualiza, não existe = cria com esse slug); omita pra criar com slug gerado. | |
| spec | No | film-upsert: o spec inteiro como objeto JSON (validação fica no servidor, fonte única). Shape: { kind, musicMode ('default'|'file'|'track'), musicRef?, aulaSlug? (só aula-tour), e o payload do kind: demo | aulaTour | essay | tipoMusical | dataviz }. Mesmo shape do 'Copiar spec' da tela /experimentos/films; descubra um exemplo real com film-get. | |
| audio | No | action=create: liga áudio. Seedance = on por default; Kling 'sound' = +50%. WAN é áudio nativo sempre. | |
| model | No | action=create: modelo de vídeo. 'sapiens-video-seedance' (cinematográfico+áudio, t2v/i2v), 'sapiens-video-kling' (anima imagem, i2v/t2v), 'sapiens-video-wan' (imagem que fala, i2v), 'sapiens-video-kling-motion' (motion transfer, precisa pessoa na imagem E no vídeo de movimento; vídeo de referência MÁX 10s, cobra pela duração do clipe), 'sapiens-video-shot-mimic' (recria o plano do vídeo de referência com seu personagem: mesma câmera, mesmos cortes; 'driving' = previs/clipe do plano MÁX 15s, 'start' = personagem), 'sapiens-video-lite/fast/quality' (Veo 3.1), 'sapiens-video-omni' (Gemini Omni: texto -> vídeo 10s 720p com áudio nativo; t2v + EDIÇÃO conversacional via editOfImageId; não aceita imagem/vídeo do user, ignora duração/resolução). | |
| title | No | action=shadows: nome do deepshadow (vira o slug no Acervo; re-extrair o mesmo título sobrescreve). Mín. 3 chars. | |
| action | Yes | ||
| prompt | No | Prompt da cena. Pra i2v descreve o movimento. Default vago se omitido. | |
| search | No | action=shadows-list: filtro de busca opcional (título/tags). Sem ele, lista o banco inteiro (até 300). Cada item traz url (sombra pura, driving) e skeletonUrl (soma com esqueleto, preview humano) quando existe. | |
| imageId | No | action=generate ou action=status: generatedImages:_id do vídeo. O create devolve o imageId; ou um vídeo já criado no site (o row define modelo + custo). Use sapiens_gallery action=list pra descobrir. action=sonorize: o imageId do clipe SEU (status completed) que vai ganhar som. | |
| filmKind | No | film-list: filtra por kind (demo | aula-tour | essay | tipografia-musical | dataviz). | |
| showcase | No | action=showcase: true põe na vitrine /conectar-claude, false tira. | |
| videoUrl | No | action=shadows: URL pública (http/https) do vídeo-fonte. O servidor extrai a SOMBRA (depth) e guarda no Acervo (Corpo). ADMIN, 200 Sinapses/segundo (refund na falha). film-status: a URL https do render no CDN (Bunny), o que acende o player do card. | |
| published | No | film-publish: true publica no Acervo (aba Fitas) + portfólio (exige pronto + videoUrl), false despublica. | |
| endImageId | No | Frame FINAL: generatedImages:_id da SUA galeria. Vira reference role 'end' (suporte varia por modelo). | |
| filmStatus | No | film-status: novo status de produção (rascunho | na_fila | renderizando | pronto). film-list: filtra por status. O fecho do render é film-status com filmStatus='pronto' + videoUrl + durationSec. | |
| references | No | References em base64 (escape hatch / Motion / Shot Mimic). i2v: role 'start' (imagem). Motion: 'start' (pessoa) + 'driving' (vídeo de movimento, <=5MB, MÁX 10s — o Kling Motion recusa referência acima de 10s e cobra pela duração do clipe; corte o trecho antes). Shot Mimic: 'start' (personagem) + 'driving' (previs ou clipe do plano a imitar, <=5MB, MÁX 15s — acima o provider corta em 15s). Pra frame inicial/final a partir do seu acervo, prefira start/endImage* abaixo (sem precisar de base64). | |
| resolution | No | action=create: resolução (Seedance/WAN/Shot Mimic). Default 720p. Kling não usa (1080p nativo). | |
| aspectRatio | No | '16:9' (horizontal), '9:16' (vertical), '1:1'. Vale pro t2v; i2v herda da imagem. | |
| durationSec | No | action=create (modelos WaveSpeed): duração em segundos. Seedance/Shot Mimic 4-15, Kling 3-15, WAN 5/10. Sem isso usa a config mais barata. O preço escala com a duração. action=shadows: duração do vídeo-fonte, se souber (cobra 200/s; sem ela, flat ~2000). | |
| endImageUrl | No | Frame FINAL: url pública de galeria/Acervo/personagem. Vira reference role 'end' (suporte varia por modelo). | |
| showcaseTag | No | action=showcase: chip de capacidade do card (ex: 'Repertório', 'Galeria', 'Fórum'). Curto, até 24 chars. | |
| endImagePath | No | Frame FINAL a partir de um ARQUIVO LOCAL do seu PC — só no MCP instalado (stdio). Caminho absoluto; PNG/JPEG/WebP até 8MB. Vira reference role 'end' (suporte varia por modelo). 1 imagem por vídeo. Mutuamente exclusivo com endImageId/endImageUrl. | |
| startImageId | No | Frame inicial (i2v): generatedImages:_id da SUA galeria. Vira reference role 'start'. | |
| editOfImageId | No | action=create model=sapiens-video-omni: EDIÇÃO conversacional ('Nano Banana de vídeo'). Passe o imageId de um vídeo Omni SEU já gerado e o prompt vira instrução de edição sobre a MESMA cena (ex: 'troca o urso polar por um Papai Noel com um presente'), preservando câmera, ambiente e timing. Cada edição debita como uma geração Omni nova e devolve um vídeo novo (que também pode ser editado). Só funciona em vídeo gerado pelo Omni (não edita vídeo seu/upload). | |
| showcaseOrder | No | action=showcase: ordem na trilha do mini-cinema (asc, 0..999; menor aparece primeiro). | |
| startImageUrl | No | Frame inicial (i2v): url pública (Bunny/Convex/Wikimedia) de galeria/Acervo/personagem. Vira reference role 'start'. | |
| startImagePath | No | Frame INICIAL (i2v) a partir de um ARQUIVO LOCAL do seu PC — só no MCP instalado (stdio), não na conexão remota. Passe o caminho absoluto (ex: 'C:\\Users\\voce\\HERO\\1.png'); o processo lê o arquivo e sobe como frame inicial, igual a subir a imagem no gerador do site. PNG/JPEG/WebP, até 8MB. É 1 imagem inicial por vídeo (o modelo do site): pra vários vídeos, rode create uma vez por imagem. Mutuamente exclusivo com startImageId/startImageUrl. | |
| durationSecMeasured | No | film-status: duração MEDIDA do render em segundos (ffprobe), vira a duração do card. |