| name | workflow-core |
| description | Build, edit, and run Lumen Studio workflows on the canvas. |
| trigger | workflow, canvas, video generation, edit_workflow, run_workflow_node |
Lumen Workflow Core
Use this skill before creating, editing, or running a Lumen Studio canvas.
Canvas Model
A canvas is a JSON object:
{
"nodes": [
{
"id": "text-unique-id",
"type": "lumenNode",
"position": { "x": 0, "y": 0 },
"data": {
"kind": "text",
"title": "Script",
"prompt": "Write a short UGC script...",
"output": null,
"modelId": "gemini-3.5-flash",
"settings": {},
"status": "idle",
"error": null,
"progress": 0
}
}
],
"edges": [
{ "id": "edge-id", "source": "text-unique-id", "target": "image-unique-id", "type": "lumenSmooth", "data": {} }
]
}
Supported node kinds: text, image, video, audio.
Default production-backed models:
text: gemini-3.5-flash
image: nano-banana2
video: veo-3.1 or seedance-1.5-pro (Volcengine Ark; supports first/last frame i2v)
audio: fish-tts
Video model selection:
veo-3.1: Google Veo; aspectRatio 1:1|4:5|16:9|9:16, duration 4|6|8,
resolution 720p|1080p|4k (1080p/4k require 8s).
seedance-1.5-pro: Volcengine Ark; aspectRatio 16:9|9:16|1:1|4:3|3:4|21:9,
duration 4-12, resolution 480p|720p|1080p. First/last frame via
settings.inputImage / settings.inputLastFrameImage or paired upstream images.
Avoid placeholder / non-production models such as doubao-seed-2.0-pro,
doubao-seedream-3.0, and doubao-tts unless the user explicitly asks for
them.
Editing Rules
- Use
edit_workflow for structural changes and pass the complete canvas JSON.
- Preserve nodes and edges that the user did not ask to delete.
- Keep ids stable when modifying existing nodes.
- Use readable ids with kind prefixes, for example
text-script-..., image-storyboard-..., video-final-....
- Do not create dangling edges.
- Do not create cycles.
- Use left-to-right positions: strategy/script nodes on the left, image nodes in the middle, video/audio nodes on the right.
- For a one-sentence video request, build a practical pipeline rather than only answering with a script.
Complex Workflow Design
For complex user goals, build a runnable DAG instead of a single long prompt.
Typical layers:
- Input / source nodes: product brief, URL notes, reference media summary.
- Strategy nodes: audience, pain points, selling angles, offer.
- Script nodes: hook, short spoken script, captions, CTA.
- Visual nodes: one or more image nodes for key frames or scenes.
- Motion nodes: one video node per important scene or final video output.
- Audio nodes: voiceover, sound style, or music notes when needed.
Rules:
- Split work when intermediate outputs are useful to inspect or reuse.
- Connect every node through explicit edges so downstream nodes receive upstream output.
- Give image/video nodes concise direct prompts. Upstream text is useful context,
but the media node prompt must still stand on its own.
- Do not create orphan nodes unless they are deliberate alternatives and clearly titled.
- Prefer 6-12 nodes for a complex product-video workflow; use more only when the user asks for variants, multiple scenes, or batch output.
- Put related nodes on the same horizontal band and use readable titles, for example
卖点策略, 15秒口播, 镜头1主视觉, 镜头1视频.
Single-Node Running
Use run_workflow_node to execute exactly one node.
Important:
load_skill is only preparation. It never satisfies a run request.
- For every run request, call
get_workflow after loading this skill and inspect the current canvas.
- Run upstream nodes first. A node can only run if all direct upstream nodes already have
data.output.
- After a node succeeds, its output is saved back to the canvas by the tool.
- If a node fails, summarize the failure and decide whether to edit the node or ask the user.
- Do not call
run_workflow_node for a downstream video node until its image/text inputs are ready.
- For a complex workflow, run nodes in topological order. After each successful run, treat the saved canvas output as the source of truth before choosing the next node.
- If a node fails, stop the run plan, explain the failed node, and either edit that node or ask the user for the missing input.
- Do not claim a node has run unless
run_workflow_node returned success for that node in the current request.
- If the user says "run until node X", run all missing upstream dependencies for X first, one node per tool call, then run X.
Typical order for a product video:
text node: product strategy or short script.
image node: key visual / storyboard frame.
video node: animate the image or create video from prompt.
- Optional
audio node: voiceover or music.
Tool Use Pattern
Before editing an existing project:
- Call
get_workflow.
- Build the full updated canvas JSON.
- Call
edit_workflow.
- If the user asked to generate assets, call
run_workflow_node one node at a time.
When the user asks for "一句话产出视频", create a small but runnable canvas and run nodes in order.
When the user asks for a complex end-to-end workflow, create the canvas first, then run one ready node at a time until the requested stopping point is reached.