makepad/libs/flow/recipes/templates/expanded-fleet-images-choose-video.splash

29 lines
1.4 KiB
Text

use mod.flow.*
/** The shot idea to expand, paint several ways, pick from, and animate. */
let prompt = Input{ type: @text default: "a paper airship crossing a sunrise cloud bank" }
/** One seed per candidate keyframe; the fleet spreads the jobs over its boxes. */
let seeds = Input{ type: @list default: [11, 23, 37, 41] }
let expand = Llm{
system: "Rewrite the prompt as one continuous cinematic shot with a clear first frame, steady motion, camera, and light. No cuts or lists."
prompt: prompt.text()
}
/** The keyframe job, run once per seed by `candidates`. */
let image = Image{ prompt: expand.text() width: 512 height: 512 }
let candidates = Map{ type: @image many: 8 body: image.image() over: seeds.list() bind: @seed concurrency: 4 }
let pick = Choose{ type: @image many: 8 from: candidates.items() question: "Which keyframe should move?" }
let video = Video{
prompt: expand.text()
image: pick.image()
frames: 39
steps: 30
audio: true
}
/** Publish the animated keyframe into the flow asset library. */
let published = Publish{ value: video.video() namespace: "flows" tags: ["flow", "video"] }
Flow{
label: "Expanded prompt, fleet images, choose, video"
brief: "Expands a shot idea, paints one keyframe per seed across the fleet, waits for you to pick one, and animates it."
prompt, seeds, expand, image, candidates, pick, video, published
}