This ComfyUI tutorial walks you through a contact sheet workflow that turns 8 ordered images into a structured storyboard and 7 adjacent keyframe pairs for Kling 3.0 FFLF video generation. The pipeline starts with LoadImage and BatchImagesNode to ingest your files in a strict left-to-right timeline. A set of utility/custom nodes (IDs: f7abaa3a-5e87-4354-bab6-f43320cd490f, 02da9128-7c15-4c46-96bc-1dd68e5bc490, 3426003b-7b3a-4d37-8a2f-e0f8adb05712, c61d617f-c72d-4f4c-8659-bd6f884d1a1e, 4b301c11-bc16-4096-9441-e0648a04aa4d, 2ab1ef49-3518-4f71-b703-f8ef12f32214, b3fe4254-e196-429e-9f45-96c92113e406) handle layout, pairwise splitting (1-2, 2-3, …, 7-8), and packaging to downstream video nodes. PrimitiveNode exposes the core knobs—1080p resolution, frame rate, per-shot duration, and optional padding—while Reroute keeps the graph readable. SaveVideo exports a 1080p preview so you can quickly verify sequencing and framing before running the heavier generations.
For FFLF (first/last-frame–guided) generation, each adjacent image pair is passed to the Kling 3.0 node to synthesize motion constrained by your start and end frames—ideal for consistent, controllable transitions across a 7-shot sequence. If enabled, a Gemini-3.1-flsih-lite helper node can auto-summarize shot intents between each pair to keep prompts consistent (optional metadata only; it’s not required for rendering). The result is a fast, reliable way to validate continuity, then batch-generate seven cohesive clips at a clean 1920×1080 output.
API
Use this workflow from code
Every Comfy workflow is a JSON graph. The payload below is this workflow, exactly as ComfyUI runs it — fetch it from the URL, keep it in version control, or load it in ComfyUI and run it node by node.
Run it from TypeScript or Python with the Comfy SDK. The same code targets Comfy Cloud or a ComfyUI you host yourself — only the base URL changes.
// Install (beta)
npm i @comfyorg/sdk
// Run "Step 3: Contact Sheet Workflow" (TypeScript)
import { Comfy } from "@comfyorg/sdk";
const client = new Comfy({ apiKey: "comfyui-..." });
// This workflow, exported in API format (see note below)
const wf = await client.workflows.fromFile("template_contact_sheet-step_3.app_api.json");
const asset = client.assets.fromFile("input.png");
wf.setInput("224", "image", asset); // LoadImage
const job = await client.run(wf);
await job.getOutputs("308")[0].toFile("output.png"); // SaveVideoThe SDK takes a workflow in API format: open this workflow in ComfyUI and use File → Export Workflow (API).
Comfy Cloud API access requires a plan with an API key.
FAQ













