sapiens-mcp 1.62.7 → 1.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/skills.js +2 -1
- package/dist/tools/image.js +22 -1
- package/dist/tools/video.js +21 -10
- package/package.json +1 -1
package/dist/skills.js
CHANGED
|
@@ -230,6 +230,7 @@ Duração é o que pesa aqui, não o modelo: um take de 30s em 720p passa de 40
|
|
|
230
230
|
|
|
231
231
|
## Os outros modelos
|
|
232
232
|
|
|
233
|
+
- \`sapiens-video-h3\`: MiniMax H3, o mais barato por pixel da casa, com som nativo, texto ou imagem. A duração depende da resolução: \`2k\` vai até 10s, \`768p\` vai até 15s (o motor de 2K é lento demais pra 15s e o take se perderia no meio). Aceita até 9 imagens e 3 vídeos de referência, e é o caminho de take LONGO com personagem travada. Referência e frame inicial não vão juntos: escolha um. Sem \`resolution\` cai no 2k, que custa 40% mais por segundo.
|
|
233
234
|
- \`sapiens-video-kling\`: Kling 3.0 Pro, anima imagem, 3 a 15s, som opcional.
|
|
234
235
|
- \`sapiens-video-wan\`: WAN 2.5, imagem que fala ou canta, com lip-sync, 5 ou 10s.
|
|
235
236
|
- \`sapiens-video-wan-3\`: WAN 3.0, texto ou imagem, som nativo, frame final e 1080p, 5 a 10s.
|
|
@@ -256,7 +257,7 @@ O \`brief\` aceita \`subject\`, \`persona\`, \`hook\` (\`line\` e \`emotion\`),
|
|
|
256
257
|
|
|
257
258
|
## Fluxo storyboard (o que dá o melhor resultado)
|
|
258
259
|
|
|
259
|
-
|
|
260
|
+
Imagens de REFERÊNCIA via \`referenceImageIds\` / \`referenceImageUrls\` / \`referenceImagePaths\` guiam estilo, personagem e composição SEM virar o primeiro frame. O teto é do motor: 4 no Seedance 2.0, 9 no H3.
|
|
260
261
|
|
|
261
262
|
1. Gere a folha de key poses com \`sapiens_image templateSlug='storyboard-sapiens-v1'\`.
|
|
262
263
|
2. Passe folha e personagem como refs num text-to-video.
|
package/dist/tools/image.js
CHANGED
|
@@ -136,6 +136,13 @@ export async function image(args) {
|
|
|
136
136
|
.map((m) => ({
|
|
137
137
|
id: m.id,
|
|
138
138
|
label: m.label,
|
|
139
|
+
// Família + variante: várias entradas da lista são o MESMO motor em
|
|
140
|
+
// tempero ou geração diferente (Krea 2 Realism/Livre/Base, Gemini 3
|
|
141
|
+
// Pro/3.1 Flash). Sem estes dois campos o cliente vê ids soltos e trata
|
|
142
|
+
// como motores sem relação, que foi o mesmo problema que a prateleira
|
|
143
|
+
// do browser tinha antes de agrupar. Ausência = motor sozinho.
|
|
144
|
+
family: m.family ?? null,
|
|
145
|
+
variant: m.variantLabel ?? null,
|
|
139
146
|
priceSinapses: m.effectivePriceSinapses,
|
|
140
147
|
maxResolution: m.maxResolution ?? "4K",
|
|
141
148
|
resolutionAdders: m.resolutionAdders,
|
|
@@ -143,12 +150,26 @@ export async function image(args) {
|
|
|
143
150
|
degen: /^(civitai-|wavespeed-|fal-)/.test(String(m.id)),
|
|
144
151
|
note: m.description ?? null,
|
|
145
152
|
}));
|
|
153
|
+
// Índice por família, pro cliente escolher em dois passos como a tela faz:
|
|
154
|
+
// primeiro o motor, depois a versão. Só entra família com 2+ variantes.
|
|
155
|
+
const families = {};
|
|
156
|
+
for (const m of models) {
|
|
157
|
+
if (!m.family)
|
|
158
|
+
continue;
|
|
159
|
+
(families[m.family] ??= { variants: [] }).variants.push(m.id);
|
|
160
|
+
}
|
|
161
|
+
for (const key of Object.keys(families)) {
|
|
162
|
+
if (families[key].variants.length < 2)
|
|
163
|
+
delete families[key];
|
|
164
|
+
}
|
|
146
165
|
return {
|
|
147
166
|
count: models.length,
|
|
148
167
|
default: "nano-banana-2",
|
|
149
168
|
models,
|
|
169
|
+
families,
|
|
150
170
|
note: "priceSinapses é o preço COBRADO em 1K (já com override admin). Acima de 1K some o adder de resolutionAdders[size], que vem clampado ao teto do motor: em modelo que para em 2K, a chave '4K' repete o valor de 2K porque é isso que a cobrança aplica quando você pede 4K nele. " +
|
|
151
|
-
"Preço final = priceSinapses + resolutionAdders[size]. degen=+18 (gate na galeria)."
|
|
171
|
+
"Preço final = priceSinapses + resolutionAdders[size]. degen=+18 (gate na galeria). " +
|
|
172
|
+
"Modelos com a MESMA family são o mesmo motor em versão diferente (o variant diz qual): compare preço e nota entre eles antes de trocar de família.",
|
|
152
173
|
};
|
|
153
174
|
}
|
|
154
175
|
const sessionToken = getSessionToken();
|
package/dist/tools/video.js
CHANGED
|
@@ -77,12 +77,17 @@ import { httpUrl } from "../schema.js";
|
|
|
77
77
|
* Motor puro: SEM áudio, SEM referência, SEM frame final.
|
|
78
78
|
* - sapiens-video-hailuo-pro Hailuo 2.3 Pro — o mesmo em 1080p, 5s fixo (duração não é param).
|
|
79
79
|
* É o 1080p mais barato da casa depois do Seedance 1.0 Fast.
|
|
80
|
-
* - sapiens-video-h3 MiniMax H3 —
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
80
|
+
* - sapiens-video-h3 MiniMax H3 — ÁUDIO nativo, frame final (role 'end'), t2v/i2v. O
|
|
81
|
+
* menor custo por pixel da prateleira. Áudio vem sempre e já está
|
|
82
|
+
* no preço (não tem toggle). A DURAÇÃO DEPENDE DA RESOLUÇÃO: em
|
|
83
|
+
* '2k' (2560x1440) vai até 10s, em '768p' vai até 15s. Não é
|
|
84
|
+
* escolha de catálogo, é o poll do backend: 2K de 15s leva mais
|
|
85
|
+
* que os 8min e o kill não devolve Sinapse. Sem `resolution` cai
|
|
86
|
+
* no 2k, que custa 40% mais por segundo.
|
|
87
|
+
* ACEITA referência desde set/2026: até 9 imagens (role 'ref') e 3
|
|
88
|
+
* vídeos (role 'refvideo', somando 15s), que é o caminho de take
|
|
89
|
+
* longo com personagem travada. Referência e frame inicial são
|
|
90
|
+
* EXCLUSIVOS (endpoints diferentes no provider): mande um dos dois.
|
|
86
91
|
* - sapiens-video-wan WAN 2.5 — imagem que fala/canta (áudio+lip-sync nativo), 5/10s (i2v)
|
|
87
92
|
* - sapiens-video-kling-motion Kling Motion — transfere o movimento de um vídeo pra uma imagem
|
|
88
93
|
* (PRECISA de pessoa com tronco visível na imagem E no vídeo;
|
|
@@ -289,15 +294,15 @@ export const videoSchema = z.object({
|
|
|
289
294
|
durationSec: z
|
|
290
295
|
.number()
|
|
291
296
|
.optional()
|
|
292
|
-
.describe("action=create e action=price: duração em segundos (Omni ignora). Seedance 2.0/Shot Mimic 4-15, Seedance 2.5 4-30 (o preço acompanha: confirme a duração com a pessoa antes de passar de 15), Seedance 1.5 4-12, Kling 3-15, WAN 5/10, H3 5/6/8/10. " +
|
|
297
|
+
.describe("action=create e action=price: duração em segundos (Omni ignora). Seedance 2.0/Shot Mimic 4-15, Seedance 2.5 4-30 (o preço acompanha: confirme a duração com a pessoa antes de passar de 15), Seedance 1.5 4-12, Kling 3-15, WAN 5/10, H3 5/6/8/10 em 2k e 5/6/8/10/12/15 em 768p. " +
|
|
293
298
|
"O PREÇO ESCALA COM A DURAÇÃO. Omitir não é 'a config padrão da casa': duração ausente, ou fora do leque do motor, cai no PISO de duração do motor. " +
|
|
294
299
|
"action=shadows: duração do vídeo-fonte, se souber (cobra 200/s; sem ela, flat ~2000)."),
|
|
295
300
|
resolution: z
|
|
296
|
-
.enum(["480p", "720p", "1080p"])
|
|
301
|
+
.enum(["480p", "720p", "1080p", "768p", "2k"])
|
|
297
302
|
.optional()
|
|
298
|
-
.describe("action=create e action=price: resolução (Seedance/WAN/Shot Mimic). NÃO existe default 720p aqui: resolução ausente, ou fora do que o motor aceita, cai no tier MAIS CARO do motor. " +
|
|
303
|
+
.describe("action=create e action=price: resolução (Seedance/WAN/Shot Mimic/H3). NÃO existe default 720p aqui: resolução ausente, ou fora do que o motor aceita, cai no tier MAIS CARO do motor. " +
|
|
299
304
|
"É isso que faz um create sem este campo custar muito mais que o piso do catálogo (em sapiens-video-seedance vira 1080p, não 480p). Passe sempre a resolução que você quer pagar, e confira com action=price antes. " +
|
|
300
|
-
"Kling e a linha Hailuo
|
|
305
|
+
"O H3 usa '768p' ou '2k' (sem eles cai no 2k, que custa 40% mais por segundo). Kling e a linha Hailuo 2.3 não usam este campo (resolução fixa pelo motor)."),
|
|
301
306
|
audio: z
|
|
302
307
|
.boolean()
|
|
303
308
|
.optional()
|
|
@@ -492,6 +497,12 @@ export async function video(args) {
|
|
|
492
497
|
id: m.id,
|
|
493
498
|
engine: m.engine,
|
|
494
499
|
label: m.label,
|
|
500
|
+
// Família + variante: o Seedance sozinho tem SEIS entradas nesta lista
|
|
501
|
+
// (1.0 Fast, 1.5 Pro, 2.0, 2.0 Fast, 2.0 Mini, 2.5) e são o mesmo motor
|
|
502
|
+
// em geração/tier diferente. Sem os dois campos o cliente lê seis
|
|
503
|
+
// motores sem relação. Ausência = motor sozinho.
|
|
504
|
+
family: m.family ?? null,
|
|
505
|
+
variant: m.variantLabel ?? null,
|
|
495
506
|
// "por-segundo" = o preço MUDA com duração, resolução e (no Kling) áudio.
|
|
496
507
|
// "por-clipe" = preço fixo, config não mexe na conta.
|
|
497
508
|
priceMode: m.priceMode ?? null,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sapiens-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.63.0",
|
|
4
4
|
"mcpName": "com.sapiensinteticos/sapiens",
|
|
5
5
|
"description": "MCP server pra operar o Sapiens Sintéticos (sapiensinteticos.com) pelo Claude Code: gerar imagem, escrever artigo, voz, música e mais, na sua conta. Login pelo código de sapiensinteticos.com/conectar-claude.",
|
|
6
6
|
"type": "module",
|