@pixeldojo/mcp 0.34.1 → 0.36.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/README.md +1 -1
- package/dist/cli.cjs +28 -18
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +28 -18
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +28 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +28 -18
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -46,7 +46,7 @@ Restart your agent. You'll see 32 new tools.
|
|
|
46
46
|
|
|
47
47
|
| Skill | What it does |
|
|
48
48
|
|---|---|
|
|
49
|
-
| `pixeldojo_generate` | Any prompt → image or video. Defaults to seedream-5 (stills); pass any apiId, e.g. seedance-2-5 for video. The recommended models are the ones PixelDojo's studios use. |
|
|
49
|
+
| `pixeldojo_generate` | Any prompt → image or video. Defaults to seedream-5-5 (stills); pass any apiId, e.g. seedance-2-5-flash for video (seedance-2-5 for 1080p). The recommended models are the ones PixelDojo's studios use. |
|
|
50
50
|
| `pixeldojo_edit` | Change an existing image with a text instruction (multi-image capable). |
|
|
51
51
|
| `pixeldojo_character` | Consistent characters across shots. |
|
|
52
52
|
| `pixeldojo_storyboard` | One video shot from a scene brief (use `pixeldojo_film` for multi-shot). |
|
package/dist/cli.cjs
CHANGED
|
@@ -563,7 +563,7 @@ var init_generate = __esm({
|
|
|
563
563
|
InputSchema = zod.z.object({
|
|
564
564
|
prompt: zod.z.string().min(1).max(8e3).describe('Prompt describing what to generate. Write @Name to use a character or element the user saved in Character Studio ("@Mara on a beach"): its photos are attached automatically on models that take reference images. pixeldojo_library source=characters lists them.'),
|
|
565
565
|
model: zod.z.string().optional().describe(
|
|
566
|
-
`Model apiId. Recommended (the models the PixelDojo studios use): "seedream-5" for images (the default), "seedance-2-5" for video (prompt only or a starting image), "kling-4-0" for a whole scene up to 30 s written as a shot list (dialogue in quotes, exact on-screen text), "minimax-h3-turbo" for the cheapest video from a prompt alone, a photo or up to 9 reference images, "wan-3-0-video" for video the others refuse. Use another model only when the user names one. Full catalog: https://pixeldojo.ai/api/v1/models; one model's fields: https://pixeldojo.ai/llm/{apiId}.txt. Omit for seedream-5, which makes still images only; name a video model to get a video.`
|
|
566
|
+
`Model apiId. Recommended (the models the PixelDojo studios use): "seedream-5-5" for images (the default), "seedance-2-5-flash" for video (prompt only or a starting image, 480p or 720p), "seedance-2-5" for 1080p video, "kling-4-0" for a whole scene up to 30 s written as a shot list (dialogue in quotes, exact on-screen text), "minimax-h3-turbo" for the cheapest video from a prompt alone, a photo or up to 9 reference images, "wan-3-0-video" for video the others refuse. Use another model only when the user names one. Full catalog: https://pixeldojo.ai/api/v1/models; one model's fields: https://pixeldojo.ai/llm/{apiId}.txt. Omit for seedream-5-5, which makes still images only; name a video model to get a video.`
|
|
567
567
|
),
|
|
568
568
|
preset: zod.z.string().optional().describe(
|
|
569
569
|
"Preset slug that seeds the running model's settings; explicit fields and params override it. Each preset belongs to one model (browse them by model at https://pixeldojo.ai/presets), so set `model` to that preset's model: a slug the running model has no preset for is rejected with a 400 before any charge."
|
|
@@ -588,7 +588,7 @@ var init_generate = __esm({
|
|
|
588
588
|
"Multiple absolute local file paths. Each is uploaded to PixelDojo (24h temp storage) and used as a reference, same rules as image_urls."
|
|
589
589
|
)
|
|
590
590
|
});
|
|
591
|
-
DEFAULT_MODEL = "seedream-5";
|
|
591
|
+
DEFAULT_MODEL = "seedream-5-5";
|
|
592
592
|
VIDEO_REFERENCE_MODEL = "seedance-2-reference";
|
|
593
593
|
VIDEO_REFERENCE_SLOTS = {
|
|
594
594
|
image: { name: "reference_images", isArray: true },
|
|
@@ -602,7 +602,7 @@ var init_generate = __esm({
|
|
|
602
602
|
prompt: { type: "string", description: 'Prompt describing what to generate. Write @Name to use a character or element the user saved in Character Studio ("@Mara on a beach"): its photos are attached automatically on models that take reference images. pixeldojo_library source=characters lists them.' },
|
|
603
603
|
model: {
|
|
604
604
|
type: "string",
|
|
605
|
-
description: `Model apiId. Recommended (the models the PixelDojo studios use): "seedream-5" for images (the default), "seedance-2-5" for video (prompt only or a starting image), "kling-4-0" for a whole scene up to 30 s written as a shot list (dialogue in quotes, exact on-screen text), "minimax-h3-turbo" for the cheapest video from a prompt alone, a photo or up to 9 reference images, "wan-3-0-video" for video the others refuse. Use another model only when the user names one. Full catalog: https://pixeldojo.ai/api/v1/models; one model's fields: https://pixeldojo.ai/llm/{apiId}.txt. Omit for seedream-5, which makes still images only; name a video model to get a video.`
|
|
605
|
+
description: `Model apiId. Recommended (the models the PixelDojo studios use): "seedream-5-5" for images (the default), "seedance-2-5-flash" for video (prompt only or a starting image, 480p or 720p), "seedance-2-5" for 1080p video, "kling-4-0" for a whole scene up to 30 s written as a shot list (dialogue in quotes, exact on-screen text), "minimax-h3-turbo" for the cheapest video from a prompt alone, a photo or up to 9 reference images, "wan-3-0-video" for video the others refuse. Use another model only when the user names one. Full catalog: https://pixeldojo.ai/api/v1/models; one model's fields: https://pixeldojo.ai/llm/{apiId}.txt. Omit for seedream-5-5, which makes still images only; name a video model to get a video.`
|
|
606
606
|
},
|
|
607
607
|
preset: {
|
|
608
608
|
type: "string",
|
|
@@ -650,8 +650,8 @@ var init_generate = __esm({
|
|
|
650
650
|
};
|
|
651
651
|
generateSkill = {
|
|
652
652
|
name: "pixeldojo_generate",
|
|
653
|
-
description: "Generate an image or video from a prompt with any model in the PixelDojo catalog. With no `model`, a prompt runs on seedream-5, which makes still images only. For a video, name seedance-2-5, which works from a prompt alone or a starting image; kling-4-0 for a multi-shot scene up to 30 s with dialogue; minimax-h3-turbo for the lowest price, from a prompt alone, a photo or reference images. If a provider refuses the content, retry once on wan-3-0-video (video) or seedream-5 (images), the least-restricted models. For a multi-shot film or a music video synced to a song use pixeldojo_film; to change, move or extend an existing clip use pixeldojo_video. These are the models the PixelDojo studios use; name another only when the user asks for it. References: `image_url`/`image_urls` for stills, `video_url` for a source clip, `image_path`/`image_paths` for absolute local files (uploaded to 24h temp storage first). A clip or an audio track URL with no `model` runs on seedance-2-reference; a named model that cannot read a clip is swapped for it and the result says so, while a named model with no audio input drops the track. Model-specific settings go in `params` alongside an explicit `model`. Returns asset URLs, or a jobId for pixeldojo_status when the job outlasts the 30s wait.",
|
|
654
|
-
hostedDescription: "Generate an image or video from a prompt with any model in the PixelDojo catalog. With no `model`, a prompt runs on seedream-5, which makes still images only. For a video, name seedance-2-5, which works from a prompt alone or a starting image; kling-4-0 for a multi-shot scene up to 30 s with dialogue; minimax-h3-turbo for the lowest price, from a prompt alone, a photo or reference images. If a provider refuses the content, retry once on wan-3-0-video (video) or seedream-5 (images), the least-restricted models. For a multi-shot film or a music video synced to a song use pixeldojo_film; to change, move or extend an existing clip use pixeldojo_video. These are the models the PixelDojo studios use; name another only when the user asks for it. References: `image_url`/`image_urls` for stills and `video_url` for a source clip, all public http(s) URLs. A clip or an audio track URL with no `model` runs on seedance-2-reference; a named model that cannot read a clip is swapped for it and the result says so, while a named model with no audio input drops the track. Model-specific settings go in `params` alongside an explicit `model`. Returns asset URLs, or a jobId for pixeldojo_status when the job outlasts the 30s wait.",
|
|
653
|
+
description: "Generate an image or video from a prompt with any model in the PixelDojo catalog. With no `model`, a prompt runs on seedream-5-5, which makes still images only. For a video, name seedance-2-5-flash, which works from a prompt alone or a starting image at 480p or 720p; seedance-2-5 for 1080p; kling-4-0 for a multi-shot scene up to 30 s with dialogue; minimax-h3-turbo for the lowest price, from a prompt alone, a photo or reference images. If a provider refuses the content, retry once on wan-3-0-video (video) or seedream-5 (images), the least-restricted models. For a multi-shot film or a music video synced to a song use pixeldojo_film; to change, move or extend an existing clip use pixeldojo_video. These are the models the PixelDojo studios use; name another only when the user asks for it. References: `image_url`/`image_urls` for stills, `video_url` for a source clip, `image_path`/`image_paths` for absolute local files (uploaded to 24h temp storage first). A clip or an audio track URL with no `model` runs on seedance-2-reference; a named model that cannot read a clip is swapped for it and the result says so, while a named model with no audio input drops the track. Model-specific settings go in `params` alongside an explicit `model`. Returns asset URLs, or a jobId for pixeldojo_status when the job outlasts the 30s wait.",
|
|
654
|
+
hostedDescription: "Generate an image or video from a prompt with any model in the PixelDojo catalog. With no `model`, a prompt runs on seedream-5-5, which makes still images only. For a video, name seedance-2-5-flash, which works from a prompt alone or a starting image at 480p or 720p; seedance-2-5 for 1080p; kling-4-0 for a multi-shot scene up to 30 s with dialogue; minimax-h3-turbo for the lowest price, from a prompt alone, a photo or reference images. If a provider refuses the content, retry once on wan-3-0-video (video) or seedream-5 (images), the least-restricted models. For a multi-shot film or a music video synced to a song use pixeldojo_film; to change, move or extend an existing clip use pixeldojo_video. These are the models the PixelDojo studios use; name another only when the user asks for it. References: `image_url`/`image_urls` for stills and `video_url` for a source clip, all public http(s) URLs. A clip or an audio track URL with no `model` runs on seedance-2-reference; a named model that cannot read a clip is swapped for it and the result says so, while a named model with no audio input drops the track. Model-specific settings go in `params` alongside an explicit `model`. Returns asset URLs, or a jobId for pixeldojo_status when the job outlasts the 30s wait.",
|
|
655
655
|
inputZod: InputSchema,
|
|
656
656
|
inputJsonSchema: InputJsonSchema,
|
|
657
657
|
allowedModels: null,
|
|
@@ -931,6 +931,7 @@ var init_character = __esm({
|
|
|
931
931
|
init_schema_snap();
|
|
932
932
|
init_params();
|
|
933
933
|
ALLOWED = [
|
|
934
|
+
"seedream-5-5",
|
|
934
935
|
"seedream-5",
|
|
935
936
|
"seedream-4",
|
|
936
937
|
"seedream-5-flash",
|
|
@@ -938,20 +939,23 @@ var init_character = __esm({
|
|
|
938
939
|
"wan-2.7-image-edit",
|
|
939
940
|
"qwen-3-pro",
|
|
940
941
|
"qwen-image-2.0-pro",
|
|
941
|
-
"p-h3-image"
|
|
942
|
+
"p-h3-image",
|
|
943
|
+
"minimax-h3-image"
|
|
942
944
|
];
|
|
943
|
-
DEFAULT_MODEL3 = "seedream-5";
|
|
945
|
+
DEFAULT_MODEL3 = "seedream-5-5";
|
|
944
946
|
MAX_REFERENCES = 9;
|
|
945
947
|
REQUIRES_REFERENCE = /* @__PURE__ */ new Set(["wan-2.7-image-edit"]);
|
|
946
948
|
FALLBACK_REF_KEY = {
|
|
947
949
|
"seedream-5": "image_urls",
|
|
950
|
+
"seedream-5-5": "image_urls",
|
|
948
951
|
"seedream-4": "image_urls",
|
|
949
952
|
"seedream-5-flash": "image_urls",
|
|
950
953
|
"google-nano-banana": "image_input",
|
|
951
954
|
"wan-2.7-image-edit": "image_urls",
|
|
952
955
|
"qwen-3-pro": "image",
|
|
953
956
|
"qwen-image-2.0-pro": "reference_images",
|
|
954
|
-
"p-h3-image": "reference_images"
|
|
957
|
+
"p-h3-image": "reference_images",
|
|
958
|
+
"minimax-h3-image": "reference_images"
|
|
955
959
|
};
|
|
956
960
|
InputSchema3 = zod.z.object({
|
|
957
961
|
prompt: zod.z.string().min(1).max(8e3),
|
|
@@ -988,7 +992,7 @@ var init_character = __esm({
|
|
|
988
992
|
},
|
|
989
993
|
aspect_ratio: {
|
|
990
994
|
type: "string",
|
|
991
|
-
description: 'e.g. "1:1", "16:9", "9:16". Snapped to the nearest ratio the model supports, and dropped for models with no aspect_ratio field (including the default seedream-5, which sizes by image_size: set that in params with an explicit model).'
|
|
995
|
+
description: 'e.g. "1:1", "16:9", "9:16". Snapped to the nearest ratio the model supports, and dropped for models with no aspect_ratio field (including the default seedream-5-5, which sizes by image_size: set that in params with an explicit model).'
|
|
992
996
|
},
|
|
993
997
|
params: PARAMS_JSON_SCHEMA
|
|
994
998
|
},
|
|
@@ -996,7 +1000,7 @@ var init_character = __esm({
|
|
|
996
1000
|
};
|
|
997
1001
|
characterSkill = {
|
|
998
1002
|
name: "pixeldojo_character",
|
|
999
|
-
description: "Generate or edit consistent characters across shots. Pass reference_image_urls (up to 9) to lock identity \u2014 send every photo of the person you have, since more angles hold the face far better than one. Defaults to seedream-5.",
|
|
1003
|
+
description: "Generate or edit consistent characters across shots. Pass reference_image_urls (up to 9) to lock identity \u2014 send every photo of the person you have, since more angles hold the face far better than one. Defaults to seedream-5-5.",
|
|
1000
1004
|
inputZod: InputSchema3,
|
|
1001
1005
|
inputJsonSchema: InputJsonSchema3,
|
|
1002
1006
|
allowedModels: [...ALLOWED],
|
|
@@ -2990,7 +2994,7 @@ function describeDrama(v, o = DRAMA_OPTS) {
|
|
|
2990
2994
|
if (v.status === "failed" && v.error?.startsWith("Prohibited content")) return { kind: "text", text: `${v.error} Tell the user this idea is prohibited content; do not rewrite it to get around the refusal.` };
|
|
2991
2995
|
if (v.status === "failed") return { kind: "text", text: `The ${what} stopped: ${v.error ?? "unknown error"}. Each render that failed was refunded.${v.beats.some((b) => b.url) ? ` Re-film ${o.unit}s with action "redo".` : ""}` };
|
|
2992
2996
|
if (v.status === "quote") {
|
|
2993
|
-
const cost = music ? `Filming costs about ${v.estimate_credits} credits (cast portraits and ${v.sections?.length ?? "several"} sections lip-synced to the song).` : `Filming costs about ${v.estimate_credits} credits (cast portraits, scenes of up to 30 seconds with their dialogue and sound${v.score === false ? ", no music" : ", and one score over the finished edit"}); every scene is checked, and a scene that drops a line or shows a clear fault waits for the user's OK before it is filmed again, at the scene's own price (a render that fails is tried again free).`;
|
|
2997
|
+
const cost = music ? `Filming costs about ${v.estimate_credits} credits (cast portraits and ${v.sections?.length ?? "several"} sections lip-synced to the song).` : `Filming costs about ${v.estimate_credits} credits (cast portraits, scenes of up to 30 seconds with ${v.dialogue === false ? "their own sound and no dialogue" : "their dialogue and sound"}${v.score === false ? ", no music" : ", and one score over the finished edit"}); every scene is checked, and a scene that drops a line or shows a clear fault waits for the user's OK before it is filmed again, at the scene's own price (a render that fails is tried again free).`;
|
|
2994
2998
|
return {
|
|
2995
2999
|
kind: "text",
|
|
2996
3000
|
text: [`Planned (${o.idField}: ${id}), ${v.format === "9:16" ? "vertical 9:16" : "widescreen 16:9"} (to switch, create it again in the other format before producing):`, v.plan ?? "", "", `Nothing has been charged yet. ${cost} Show this to the user and, once they agree, call ${next2("produce")}. (In Sensei: put it in pixeldojo_plan as ONE step with skill "${music ? "music_video" : "drama"}" and params {"${o.idField}": "${id}"}, which prices it from this quote.)`].join("\n")
|
|
@@ -3077,7 +3081,8 @@ var init_drama = __esm({
|
|
|
3077
3081
|
length_sec: zod.z.number().int().min(24).max(180).multipleOf(6).optional(),
|
|
3078
3082
|
scenes: zod.z.number().int().min(1).max(15).optional(),
|
|
3079
3083
|
score: zod.z.boolean().optional(),
|
|
3080
|
-
|
|
3084
|
+
dialogue: zod.z.boolean().optional(),
|
|
3085
|
+
engine: zod.z.enum(["seedance-2-5", "seedance-2-5-flash", "wan-3-0-video", "kling-4-0"]).optional(),
|
|
3081
3086
|
drama_id: zod.z.string().max(60).optional(),
|
|
3082
3087
|
beats: zod.z.array(zod.z.number().int().min(1).max(15)).min(1).max(15).optional(),
|
|
3083
3088
|
notes: zod.z.array(zod.z.string().max(300)).max(15).optional()
|
|
@@ -3125,8 +3130,9 @@ var init_drama = __esm({
|
|
|
3125
3130
|
},
|
|
3126
3131
|
length_sec: { type: "integer", minimum: 24, maximum: 180, multipleOf: 6, description: "Create (optional): the film's length in seconds, 24 to 180 in steps of 6. Default 30. If the user has not said how long, ask (30 seconds, 1, 2 or 3 minutes; the price grows with the length) or leave it out for 30 seconds. The writer splits the length into scenes of up to 30 s, one per place and cast." },
|
|
3127
3132
|
scenes: { type: "integer", minimum: 1, maximum: 15, description: "Create (optional, older): the length in 12-second units (5 = 60 s). Prefer length_sec." },
|
|
3128
|
-
engine: { type: "string", enum: ["seedance-2-5", "wan-3-0-video", "kling-4-0"], description: "Create (optional): the video model every scene films on, from the cast pictures. seedance-2-5 (default), wan-3-0-video (about a third of the price), kling-4-0. Pass it only when the user names one. Adult work always runs on wan-3-0-video." },
|
|
3133
|
+
engine: { type: "string", enum: ["seedance-2-5", "seedance-2-5-flash", "wan-3-0-video", "kling-4-0"], description: "Create (optional): the video model every scene films on, from the cast pictures. seedance-2-5 (default), seedance-2-5-flash (the same model family, faster and about a third cheaper, 720p), wan-3-0-video (about a third of the price), kling-4-0. Pass it only when the user names one. Adult work always runs on wan-3-0-video." },
|
|
3129
3134
|
score: { type: "boolean", description: "Create (optional): one score laid over the finished edit, on by default and included in the price. Pass false only when the user wants no music (dialogue and ambience only)." },
|
|
3135
|
+
dialogue: { type: "boolean", description: "Create (optional): pass false for a film with no dialogue, where nobody speaks and the story is told in pictures, sound and the score. Use it when the user asks for no dialogue, a silent or wordless film, or visuals with music only; otherwise leave it out (characters speak)." },
|
|
3130
3136
|
drama_id: { type: "string", description: "From create. Required for produce, status and redo." },
|
|
3131
3137
|
beats: { type: "array", items: { type: "integer", minimum: 1, maximum: 15 }, description: "Redo: the beat numbers to film again." },
|
|
3132
3138
|
notes: { type: "array", items: { type: "string" }, description: "Redo (optional): what to fix in each of those beats, in the same order." }
|
|
@@ -3142,10 +3148,10 @@ var init_drama = __esm({
|
|
|
3142
3148
|
DRAMA_OPTS = { tool: "pixeldojo_drama", idField: "drama_id", unit: "beat" };
|
|
3143
3149
|
dramaSkill = {
|
|
3144
3150
|
name: "pixeldojo_drama",
|
|
3145
|
-
description: "Make a micro-drama episode (30 seconds by default, up to 3 minutes with length_sec; hook, twist, cliffhanger; optionally a classic genre such as billionaire, werewolf or mafia), short film (a complete story) or movie trailer from an idea, vertical 9:16 or 16:9, in any of Film Studio's looks (live-action, anime, 3D animation, noir, horror, sci-fi, western, romance, comedy and more). Scenes of up to 30 seconds (one per place and cast), each filmed in one pass with several cuts, on Seedance 2.5, WAN 3 or Kling 4, the cast's faces kept from portraits and every line spoken and lip-synced, cut together with their own sound and one score over the finished edit, with free motion graphics (title card, name tags, end screen; each can be turned off), and saved to the Library. Not for music videos (pixeldojo_music_video) create is free and returns the plan and the exact price (about 190 credits for a regular 30 second film, about 380 for a minute; less on the wan-3-0-video engine and for mature work); produce films it; then call status until it is finished (10-15 minutes).",
|
|
3151
|
+
description: "Make a micro-drama episode (30 seconds by default, up to 3 minutes with length_sec; hook, twist, cliffhanger; optionally a classic genre such as billionaire, werewolf or mafia), short film (a complete story) or movie trailer from an idea, vertical 9:16 or 16:9, in any of Film Studio's looks (live-action, anime, 3D animation, noir, horror, sci-fi, western, romance, comedy and more). Scenes of up to 30 seconds (one per place and cast), each filmed in one pass with several cuts, on Seedance 2.5, WAN 3 or Kling 4, the cast's faces kept from portraits and every line spoken and lip-synced (or no dialogue at all with dialogue: false), cut together with their own sound and one score over the finished edit, with free motion graphics (title card, name tags, end screen; each can be turned off), and saved to the Library. Not for music videos (pixeldojo_music_video) create is free and returns the plan and the exact price (about 190 credits for a regular 30 second film, about 380 for a minute; less on the wan-3-0-video engine and for mature work); produce films it; then call status until it is finished (10-15 minutes).",
|
|
3146
3152
|
inputZod: InputSchema13,
|
|
3147
3153
|
inputJsonSchema: InputJsonSchema13,
|
|
3148
|
-
allowedModels: ["seedance-2-5", "seedream-4"],
|
|
3154
|
+
allowedModels: ["seedance-2-5", "seedance-2-5-flash", "seedream-4"],
|
|
3149
3155
|
defaultModel: "seedance-2-5",
|
|
3150
3156
|
async run(input, ctx) {
|
|
3151
3157
|
if (input.action === "create") {
|
|
@@ -3161,6 +3167,7 @@ var init_drama = __esm({
|
|
|
3161
3167
|
...input.scenes ? { scenes: input.scenes } : {},
|
|
3162
3168
|
...input.engine ? { engine: input.engine } : {},
|
|
3163
3169
|
...input.score === false ? { score: false } : {},
|
|
3170
|
+
...input.dialogue === false ? { dialogue: false } : {},
|
|
3164
3171
|
...Object.fromEntries(
|
|
3165
3172
|
["title_card", "name_tags", "end_screen", "end_text", "brand_color", "logo_url"].filter((k) => input[k] !== void 0).map((k) => [k, input[k]])
|
|
3166
3173
|
),
|
|
@@ -3369,6 +3376,7 @@ var init_kata = __esm({
|
|
|
3369
3376
|
photos: zod.z.array(zod.z.object({ url: zod.z.string().url(), note: zod.z.string().max(80).optional() })).max(4).optional(),
|
|
3370
3377
|
instructions: zod.z.string().max(1500).optional(),
|
|
3371
3378
|
look: zod.z.string().max(80).optional(),
|
|
3379
|
+
engine: zod.z.enum(["seedance-2-5", "seedance-2-5-flash"]).optional(),
|
|
3372
3380
|
kata_id: zod.z.string().max(60).optional()
|
|
3373
3381
|
});
|
|
3374
3382
|
InputJsonSchema15 = {
|
|
@@ -3401,6 +3409,7 @@ var init_kata = __esm({
|
|
|
3401
3409
|
},
|
|
3402
3410
|
instructions: { type: "string", description: "Create (optional): what to change, e.g. the setting, the words on screen, where the product goes." },
|
|
3403
3411
|
look: { type: "string", description: 'Create (optional): style transfer, one look for every new shot, e.g. "hand-drawn anime".' },
|
|
3412
|
+
engine: { type: "string", enum: ["seedance-2-5", "seedance-2-5-flash"], description: "Create (optional): the video model the new clips film on. seedance-2-5 (default) or seedance-2-5-flash (faster, about a third cheaper). Pass it only when the user asks." },
|
|
3404
3413
|
kata_id: { type: "string", description: "From create. Required for produce and status." }
|
|
3405
3414
|
}
|
|
3406
3415
|
};
|
|
@@ -3422,7 +3431,7 @@ var init_kata = __esm({
|
|
|
3422
3431
|
description: `Kata: recreate a reference edit (a viral short, an ad, a montage, a trailer, 4 to 60 s) with the user's own characters, products and photos. It keeps the same pacing and cut points to the frame, the transitions, the camera moves, the caption style and the music feel (an original score on the same tempo, never the reference's audio); dance moves come across by motion transfer, and a look can restyle every shot. Start from a reference_url or a Kata library preset (action "presets"). create is free and returns the plan and the price; produce makes it; then call status until it is finished. Saved to the Library.`,
|
|
3423
3432
|
inputZod: InputSchema15,
|
|
3424
3433
|
inputJsonSchema: InputJsonSchema15,
|
|
3425
|
-
allowedModels: ["seedance-2-5", "google-nano-banana", "kling-motion-control"],
|
|
3434
|
+
allowedModels: ["seedance-2-5", "seedance-2-5-flash", "google-nano-banana", "kling-motion-control"],
|
|
3426
3435
|
defaultModel: "seedance-2-5",
|
|
3427
3436
|
async run(input, ctx) {
|
|
3428
3437
|
if (input.action === "presets") {
|
|
@@ -3441,7 +3450,8 @@ var init_kata = __esm({
|
|
|
3441
3450
|
...input.cast?.length ? { cast: input.cast } : {},
|
|
3442
3451
|
...input.photos?.length ? { photos: input.photos } : {},
|
|
3443
3452
|
...input.instructions ? { instructions: input.instructions } : {},
|
|
3444
|
-
...input.look ? { look: input.look } : {}
|
|
3453
|
+
...input.look ? { look: input.look } : {},
|
|
3454
|
+
...input.engine ? { engine: input.engine } : {}
|
|
3445
3455
|
});
|
|
3446
3456
|
if (!created.data.id) return { kind: "text", text: `Could not start the Kata: ${errorText3(created.data, created.status)}` };
|
|
3447
3457
|
const planned = await waitForPlan3(ctx, created.data.id);
|
|
@@ -5199,7 +5209,7 @@ function makeRedactedLogger(target = console) {
|
|
|
5199
5209
|
}
|
|
5200
5210
|
|
|
5201
5211
|
// src/server.ts
|
|
5202
|
-
var PACKAGE_VERSION = "0.
|
|
5212
|
+
var PACKAGE_VERSION = "0.36.0" ;
|
|
5203
5213
|
var SERVER_INSTRUCTIONS = "Pixel Dojo generates images, video, audio and short films from one catalog of AI models, billed in credits from the connected Pixel Dojo account. A job that runs past the 30-second wait returns a jobId to check later; check it rather than submitting again, since every new submission is charged. Generated asset URLs are deleted one hour after they are created: pixeldojo_save keeps one in the user's My Media permanently (after a safety check), and finished films stay in the account library. In any prompt, @Name uses a character, product, outfit, location, prop or style the user saved in Character Studio: its photos are attached automatically. pixeldojo_library source=characters lists them, and pixeldojo_save_character saves a new one from 3 to 5 photos.";
|
|
5204
5214
|
function buildServer(options) {
|
|
5205
5215
|
if (!options.apiKey) {
|