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.

template_contact_sheet-step_3.app.json
Fetching workflow JSON…

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"); // SaveVideo

The 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

Frequently Asked Questions

View all workflows
Showing 30 of 30 templates