create_series
Paid (casting images). The paid call (dry_run false) only after the customer said yes to the season plan: in series_interview the round 4 yes approves it (Episode 1 first and Just go), otherwise approve_season_plan. dry_run true charges nothing and comes first: it shows the casting price, and series_interview's round 4 needs it. A new paid series id is refused without the approved current revision of its season plan, at the plan's quality and its show type's format, and while the season scripts gate is on, without its approved scripts (approve_season_scripts; the round 4 yes's next says which). Casts fictional adults: lead a and lead b (lead_* fields) plus up to 6 recurring characters in cast, each with a face, a full body and a turnaround sheet (the body, and the sheet once it is made, go to the video model in every scene the character is in), and an empty plate per location. One-episode guests and background extras are not cast here: add them per episode in save_episode_script (guests, scene background). cast: [{name, gender, age, look (face and hair), outfit (head to shoes), body_type, palette (a wardrobe colour no one else wears), signature_prop?, voice_note?, function?, relationships: [{to: id or name, kind}]}]; an entry with id a or b adds those extras to a lead. Recurring characters get ids c to h. Photo cast (a real person, with consent): a lead entry (id a or b) or a recurring entry may also carry photos, 1 to 4 image_url values from this account's uploads (upload_image, get_uploads) showing the same one real adult, and photo_consent, required with photos: "i_am_this_person" (the customer is that person) or "i_have_their_permission" (the customer has that person's permission). The photos are copied into the series' own storage and are that character's face (no face is generated or priced); the full body and sheet are made from them and every scene sends them to the video model. Adults only, never a public figure or a celebrity: every call (dry_run too) checks the photos first. Without consent, or for photos that do not pass, the call returns cast_refused true, reason and say (post it as is): nothing is created or charged. locations: 1 to 8 (one place is a whole series), each a description or {name, description, setting interior|exterior, time day|dusk|night}; a place has one time of day in every take, the one its description names. Limits (characters): lead_a_look, lead_b_look and each look 300; outfit 200; body_type 80; palette 30; signature_prop and voice_note 80; function 40 (a few words, like "her best friend"); name 40; relationship kind 120; location description 300, location name 40. Keep every value short; the server cuts anything longer to fit (more than 8 locations keep the first 8) and lists each change in adjusted: show the customer the cast and locations as returned. Short lowercase id; micro_drama|sitcom; language: the dialogue language as an ISO 639-1 code (en, es, fr, de, it, pt, pt-BR, nl, pl, tr, ar, hi, id, zh, ko, ja, ru, and most others; series_interview's supported_languages has the full list); a language shows do not film is refused before anything is priced or made, with a question for the customer offering filmed languages; every line is written, voiced, checked and captioned in this language; quality 480p (12 credits/s) or 720p (24 credits/s) on the standard engine (wan-3.0-prime), or premium (seedance-2.5 at 480p, 60 credits/s: one call per scene with every line, native voices and lip sync; slower, about 10 min a scene; offered in series_interview round 1 as Picture, never for the $1 pilot or the $49 series) for every episode of the series. dry_run=true returns the exact casting credits (0 on a drama plan) and list credits and creates nothing. Casting runs in the background: poll get_series_overview until casting.status is ready and show the images for approval. style: photoreal (default, live-action) or anime (Japanese anime film look: cel shading, painterly backgrounds, one fixed character design per person); it applies to every casting image and every episode and cannot change later. Pass anime only when the customer asked for anime, manga or animation; otherwise photoreal. Calling again with identical values resumes casting and never pays twice. FIRST RUN: pass the Ep1 script (episode JSON) as episode_1 with dry_run true to get its craft_check and first_run price (casting plus Ep1 video, voices and storyboards) free; after the customer's one yes, call with dry_run false and the same episode_1: it is saved as Ep1, ready for make_episode. subtitle_language: leave empty for captions in the dialogue language; set it (he, ar, en, es...) when the customer wants the burned captions in another language than the dialogue (English dialogue with Hebrew subtitles): every spoken line then needs a "subtitle" field, the line translated into that language, and the captions show it timed to the spoken line. Change it later with set_subtitle_language.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"id": "<id>",
"title": "<title>",
"format": "<format>",
"language": "<language>",
"premise": "<premise>",
"lead_a_name": "<lead_a_name>",
"lead_a_look": "<lead_a_look>",
"lead_a_gender": "<lead_a_gender>",
"lead_b_name": "<lead_b_name>",
"lead_b_look": "<lead_b_look>",
"lead_b_gender": "<lead_b_gender>",
"locations": "<locations>"
},
"name": "create_series"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| cast | No | ||
| style | No | photoreal | |
| title | Yes | ||
| format | Yes | ||
| dry_run | No | ||
| premise | Yes | ||
| private | No | ||
| quality | No | 720p | |
| language | Yes | ||
| episode_1 | No | ||
| locations | Yes | ||
| lead_a_look | Yes | ||
| lead_a_name | Yes | ||
| lead_b_look | Yes | ||
| lead_b_name | Yes | ||
| lead_a_gender | Yes | ||
| lead_b_gender | Yes | ||
| subtitle_language | No |