assign_brand_kit
ChatGPTAssign a brand kit to a workflow's main variation, replacing any assigned one. Returns the workflow with its brand_kit_uuid.
attach_upload
ChatGPTAdd an upload to a Lyra workflow as an upload node of its kind. Call it right after the upload: it waits up to 20 seconds for Lyra to prepare the file, and if a long video is not ready by then, asks you to call it again. The node type (image, video, audio or documents) follows the file's real type. An image node is ready to use as a video's first or last frame (connect_nodes with role first_frame) straight away. Connect the node to others with connect_nodes. Returns the new node.
complete_upload
ChatGPTTell Lyra the files of these uploads were sent; required after every upload. Call it as soon as the POST or PUT of the file finished. After a POST, pass the file value of Uploadcare's JSON answer as file_id; after a PUT, the upload_id alone. Processing starts within seconds; an upload still pending_upload with a failure_message (e.g. file_id missing or wrong) can be completed again with the right file_id. Returns each upload's status; attach_upload waits for processing to finish.
connect_nodes
ChatGPTConnect two nodes of a Lyra workflow so the source's results feed the target. Use it to make an image the first frame of a video, for example. Connecting nodes that are already connected only updates the role. Returns the target node; check its is_valid and validation_error before run_node. A connection that would form a loop is rejected.
create_audio_music_generation_node
ChatGPTAdd a music generation node. Only pass parameters the model lists in list_node_configs. Returns the new node; it generates nothing yet.
create_audio_voiceover_generation_node
ChatGPTAdd a voiceover node that speaks a text with a chosen voice. Pick the voice with list_voices. Returns the new node; it generates nothing yet.
create_frame_node
ChatGPTAdd a frame that visually groups nodes on the Lyra canvas. It generates nothing. The frame is drawn around the given nodes. Returns the new frame node.
create_image_generation_node
ChatGPTAdd an image generation node to a Lyra workflow; it does not generate anything yet. Call list_node_configs first and use a model and parameter values it lists for node type image. Returns the new node; if validation_error is set, fix the settings before calling run_node with its uuid. Existing nodes of the workflow are kept.
create_image_resize_node
ChatGPTAdd a node that adapts an image to other aspect ratios (one output per ratio). Connect the source image node to it with connect_nodes before run_node. Returns the new node; it generates nothing yet.
create_image_translation_node
ChatGPTAdd a node that translates the text on an image into other languages (one per language). Connect the source image node to it with connect_nodes before run_node. Returns the new node; it generates nothing yet.
create_note_node
ChatGPTAdd a sticky note to the Lyra canvas: text for the user, e.g. what a section does and what they can change in it. It runs nothing and connects to nothing. Returns the new note; change it later with update_note.
create_talking_head_node
ChatGPTAdd a node that animates a face image speaking an audio track (lip-sync video). Connect an image node (the face) and an audio node (the speech, e.g. a voiceover) to it with connect_nodes, without a role, before run_node. Returns the new node; it generates nothing yet.
create_upload
ChatGPTUpload files to Lyra; attach them to a workflow afterwards with attach_upload. Before uploading, check list_uploads: the user may have uploaded the file already. Prefer {url} when the file is at a public https link: Lyra fetches it, processing starts at once. If it fails to download (sign-in needed, 404, a web page instead of the file), switch to {file_name, content_type, size_bytes} instead of retrying the link. For {file_name, content_type, size_bytes} each result has an upload descriptor, valid 15 minutes, to send the file straight to Uploadcare with a shell that has network access: - method POST (files up to 10 MB): one multipart form POST to url with every header and every entry of fields exactly as given, the file last — curl -sf -H 'Authorization: <value>' -F '<field>=<value>' ... -F 'file=@<path>' '<url>'. It answers JSON {"file": "<uuid>"}: pass that as file_id to complete_upload. - method PUT (larger files): the file's bytes as the body, with every header — curl -sf -T <path> -H 'Content-Type: <value>' '<url>'. A large file takes a while (300 MB took a minute on a fast link): run it in the background and wait for it to end. Then call complete_upload — always: Lyra gets the file only after it. Without such a shell, call open_upload_widget so the user picks the file; where no widget shows, ask the user for a public link, or to upload the file in the Lyra dashboard. Never pass file content (e.g. base64) in tool arguments. Accepted: images (JPEG, PNG, WebP, GIF, HEIC) up to 20 MB, videos (MP4, WebM, MOV) up to 200 MB, 1 minute and 4K, audio (MP3, WAV, OGG, M4A) and documents (PDF, Office, CSV, TXT, MD, JSON) up to 20 MB. At most 5 files per call and 5 uploads in progress at once: upload more once earlier ones are ready. Each file succeeds or fails on its own: a rejected one comes back failed with a failure_message and no upload_id. Then add each upload to a workflow with attach_upload, which waits for Lyra to prepare it.
create_user_text_node
ChatGPTAdd a text node holding the given text; it runs no model. Write the text yourself, then feed it to other nodes with connect_nodes (e.g. a prompt into an image or video node). Returns the new node.
create_variation
ChatGPTCreate a variation as a copy of another one's nodes, edges and results. The new variation is not the main one; call switch_variation to work on it.
create_video_composer_node
ChatGPTAdd a node that joins connected videos (and audio) into one video. Uses no credits. Connect the video and audio nodes to compose with connect_nodes, in playback order, before run_node. Returns the new node; it renders nothing yet.
create_video_generation_node
ChatGPTAdd a text-to-video generation node to a Lyra workflow; it does not generate anything yet. Call list_node_configs first and use a model and parameter values it lists for node type video; only pass parameters that model has. Video runs take minutes and cost more credits than images; the node's estimated_generation_time tells how long. Returns the new node; if validation_error is set, fix the settings before calling run_node with its uuid. Existing nodes of the workflow are kept.
create_workflow
ChatGPTCreate an empty Lyra workflow in the user's selected workspace. Returns the new workflow; add nodes to it with create_image_generation_node or create_video_generation_node.
delete_node
ChatGPTDelete a node from a Lyra workflow, with all its connections. This cannot be undone. Also clears other nodes' frame or reference settings that used it. Returns the workflow as it is after the deletion. Only delete a node the user asked to remove.
disconnect_nodes
ChatGPTRemove the connection from the source node to the target node of a Lyra workflow. Also clears the target's frame or reference settings that used the source. Disconnecting nodes that are not connected changes nothing. Returns the target node.
get_run_results
ChatGPTWait for a run started with run_node to finish, then return its status and results. The call itself waits up to wait_seconds, so call it right after run_node with no pause. If status is still not_started or in_progress when it returns, the run is still generating: call get_run_results again straight away; video runs usually need several calls. When completed, each node result lists its generated images (url, preview_url) or videos (url, video_preview_image_url); share those links with the user, who opens them in a browser where they are signed in to Lyra.
get_skill
ChatGPTGet a skill's instructions (Markdown) and follow them for the user's request. A skill may name other skills it builds on, e.g. a core image or video skill; read those with get_skill too.
get_template
ChatGPTGet a Lyra template with its nodes (type, action, model, prompt, ...) and edges. Read it to explain what the template makes and which prompts to adapt to the user's product before use_template. It generates nothing.
get_upload
ChatGPTRead uploads by id: their status, and once ready, the stored file's url and preview. Use it to check uploads without attaching them (attach_upload waits on its own); videos take up to a few minutes. failed uploads carry a failure_message saying what to do next.
get_video_composition_schema
ChatGPTGet the JSON schema of a video composer node's timeline in Lyra's video editor. It lists every track, clip, text style, effect and transition the editor accepts, and their allowed values. Call it before update_video_composition, once per conversation.
get_workflow
ChatGPTGet a Lyra workflow with its nodes. Each node has its uuid (for run_node), type, action, settings (model_name, prompt, ...), whether it is valid to run, and its typical generation time. Edges list which node feeds which (source_node_uuid -> target_node_uuid).
list_brand_kits
ChatGPTList the brand kits of the user's selected Lyra workspace. Each has its name, description, site, logo and colour palette. Assign one to a workflow with assign_brand_kit so its nodes generate on-brand results.
list_node_configs
ChatGPTList the node types Lyra can generate (video, image, audio, text, ...) and how to configure them. For each node type returns its actions and default action, the recommended models per action, extra action parameters, and every model with its input parameters (type, default, allowed values, whether required) and typical generation time. Call it before suggesting or configuring a generation, so only models and options Lyra offers are used.
list_skills
ChatGPTList Lyra's skills: guides from Lyra's creative team for making mobile app ad creatives. Each covers one kind of creative (static ads, carousels, video ads, UGC, hooks, UI motion, competitor remakes, audience variations, new angles, resizing, translation) with its steps, models and known failures. Before building a workflow for an ad, pick the skill whose description fits the request and read it with get_skill.
list_template_tags
ChatGPTList the categories Lyra templates are tagged with (e.g. Hook, Talking Head, UGC). Pass tag names as tags to list_templates to browse one category.
list_templates
ChatGPTList Lyra's ready-made workflow templates, prepared by Lyra's creative producers. Each has a title, description, tags and preview links showing the kind of video or image it makes. Prefer a fitting template over building a workflow from scratch: get_template shows its nodes and prompts, use_template copies it into the user's workspace.
list_uploads
ChatGPTList the user's uploads to Lyra, newest first. Check it before uploading a file, to reuse one the user uploaded earlier, and to find an upload the widget made when its upload_id did not reach the chat.
list_variations
ChatGPTList a workflow's variations: alternative versions of its graph, each with its own nodes, runs and brand kit. is_main marks the variation Lyra shows and runs, and the one get_workflow and the node tools work on.
list_voices
ChatGPTList the voices available for voiceover nodes, with their language, accent and tone. Pass a voice's uuid as voice to create_audio_voiceover_generation_node; preview_url is a sample the user can listen to.
list_workflows
ChatGPTList the Lyra workflows of the user's selected workspace, most recently updated first. Returns each workflow's uuid and title, plus the total count for paging with limit/offset. Call get_workflow for a workflow's nodes.
list_workspaces
ChatGPTList the Lyra workspaces the user is a member of. Returns each workspace's uuid, title, logo URL and remaining generation credits. Call it to find out which workspaces the user has, and to check credits before starting a generation.
open_upload_widget
ChatGPTShow the user an upload widget to pick files from their device and upload them to Lyra. Use it when you cannot send the files yourself (no shell with network access) and they are not at a public link. The user can pick up to 5 files at once; open it once for all of them. The widget uploads them and reports each upload_id in the chat; then attach each with attach_upload, which waits for Lyra to prepare it.
organize_nodes
ChatGPTTidy a Lyra workflow's canvas, as Lyra's "Organize nodes" button does. Connected nodes flow left to right in the order they feed each other, separate groups are tiled in a grid, and frames (sections) keep their nodes, grown to fit them. Call it after building or changing a workflow so the user opens a readable canvas. Only positions and frame sizes change. Returns the workflow.
rename_variation
ChatGPTRename a variation. Returns the variation.
run_node
ChatGPTStart generating a node's results in Lyra. This spends the workspace's credits. Returns immediately with the run's uuid and variation_uuid while generation continues in the background; then call get_run_results with both, which waits for the run to finish. The node's estimated_generation_time (from get_workflow) tells how long to expect, and its credits what the run costs: compare them with the workspace's credits from list_workspaces.
switch_variation
ChatGPTMake a variation the main one, so get_workflow, the node tools and runs use it. Lyra also renames the workflow after the variation. Returns the workflow showing it.
unassign_brand_kit
ChatGPTRemove the brand kit from a workflow's main variation. Returns the workflow.
update_frame
ChatGPTChange the background color of a frame (a section) on the Lyra canvas. Use distinct colors to tell a workflow's stages apart. Rename the frame with update_node's label setting. Returns the frame node.
update_node
ChatGPTChange settings of an existing node of a Lyra workflow, e.g. its prompt or model. Use it to adapt a workflow made with use_template to the user's product, or to fix a node whose validation_error is set. Use only models and values list_node_configs lists for the node's type. Returns the node; check is_valid and validation_error before run_node. Results already generated are kept; run_node the node again for new ones.
use_template
ChatGPTCopy a Lyra template into a new workflow in the user's selected workspace. Returns the new workflow with its nodes; nothing is generated yet. Adapt its prompts to the user's product with update_node, fill its empty upload nodes with the user's files (create_upload, attach_upload, connect_nodes), then run_node its nodes in graph order.