Working with designs
Fonts, images, motion and previews in Kalpana Designer, and how its work meets edits made in the Studio.
Fonts and images
- Fonts come only from the workspace's library: Kalpana's fonts and the workspace's uploads, because batches load their fonts from Kalpana.
list_fontslists them, and any other font is refused. - Images are the workspace's own (
find_images), your uploads (upload_images: PNG, JPEG or WebP, up to 5 MB each), or publichttpslinks. A linked image is copied into the workspace when it is placed, so batches never fetch it from outside. The workspace's allowed image domains apply. - An image you only show in the chat cannot be sent as data.
upload_imageswithoutfilesreturns a link where you drop the images into the workspace.
Motion
Layers can carry keyframes on a timeline. animate adds presets such as fade, slide, pop and draw-on, and builders such as kinetic_type, make_transition, make_particles, make_cursor, make_list, make_carousel and camera make layers and their motion in one call. The assistant checks motion as frames with render_contact_sheet and render_timeline.
create_flow joins some of a template's pages into one video, with a transition into each page. A template can have any number of flows; the Studio calls a flow a video.
The designer exports no video. A moving template renders as video in the Studio, or through Kalpana Batch with an mp4 or gif format. As an image, a row shows the page's still moment (set with set_timeline), or else the last frame.
Previews
render_design and render_contact_sheet return PNG previews for the assistant to judge its work by, not files to use. They are at most 800 px on the longest side and carry a faint "Kalpana preview" mark that is never in the template, its exports or batch renders.
Edits in the Studio
A template the designer saves is a normal Kalpana template. Open it in the Studio and change anything.
- Changes save to the template a few seconds after each call.
set_template_infosaves anything still waiting. - When someone edits the page in the Studio, the assistant's next call works on that version, and the reply tells it to read the page again with
get_design. To change a layer only if it is still as it was read,update_layerstakes the layer'setagasif_match. - Calls on one workspace run one at a time.
Errors
| Message | What it means |
|---|---|
need render credits | No render credits are left for the next block of calls. Subscribe or top up on the billing page. |
was changed in Kalpana | Someone edited the page in the Studio since the last call. Read it with get_design before changing what was edited. |
| Unknown field | The tool does not take that field. The error lists the ones it takes. |
401 Unauthorized | The sign-in expired or was revoked. The client signs in again. |
Limits
| Limit | Value |
|---|---|
| Designer calls from one connected assistant | 60 a minute |
Page size from create_design | 1 to 8192 px a side |
Page size from duplicate | 1 to 8000 px a side |
| Preview size | 800 px on the longest side |
| Image upload | PNG, JPEG or WebP, up to 5 MB each, 20 a call |
| One tool call | 1 MB |
See Security and limits for the rest.
Updated 4 Nov 2026