IAMCCS NextFrameBuilder
A storyboard node that secretly runs a whole Qwen Image Edit chain
- next_frame
- storyboard_json
- generated_filename
- cine_linx
IAMCCS_NextFrameBuilder looks like a single node with a big pile of widgets. It isn't. At execution time it expands into an entire Qwen Image Edit 2511 sampling chain - model loader, three LoRA applications, conditioning, KSampler, tiled decode - running behind a storyboard-friendly face. That's the trick, and it's worth knowing before you judge it by its intimidating input list: the node is a workflow wrapper, the author's words, "a professional next-scene storyboard UI backed by a dynamic Qwen graph."
What does that get you? A storyboard loop that actually works. You give it a source image (the current scene), describe the next scene, and it generates a frame that continues the scene - preserving identity, wardrobe, lighting, location geometry - then hands you a committed image you can feed straight back in as the source for the scene after. Two previews, next-scene generation, commit-and-reuse. No re-wiring a dozen nodes between every shot.
Mechanically it builds the chain with ComfyUI's graph-builder API rather than hard-coding node calls, which is why it can offer both a GGUF and a native-UNET backend from one dropdown. The chain it assembles is exactly the Qwen Image Edit reference stack: either UnetLoaderGGUF (default model qwen-image-edit-2511-Q4_0.gguf) or UNETLoader with the bf16 safetensors; then up to three LoRAs applied model-only - the Lightning 4-step LoRA (default strength 1.0), a next-scene_lora-v2-3000 continuation LoRA (0.8), and a Qwen 2511 light-and-shadow LoRA (0.8). From there it's ModelSamplingAuraFlow with the shift you set (3.1 default), a CFGNorm wrapper, TextEncodeQwenImageEditPlus for positive and negative with your reference images scaled to conditioning_megapixels, a FluxKontextMultiReferenceLatentMethod choosing your reference_method, and a KSampler running the defaults you see on the node - 4 steps at CFG 1.0, euler/simple, full denoise. Decode is tiled (VAEDecodeTiled, default 512px tiles) precisely because the default output is 1920×1088 and nobody wants that in one unfragmented decode. The output frame is committed through the companion IAMCCS_NextFrameCommitPreview machinery, which is what turns it into a reusable file.
The inputs that actually matter
source_image- a file that must already exist in ComfyUI's input folder. The node validates this up front and refuses to run with a clear message otherwise.prompt_text- pre-filled with a strong continuity prompt ("Next Scene: The camera moves slightly forward to a medium shot… Preserve the exact identity, face, hairstyle, wardrobe, body proportions, location geometry…"). Keep its structure; that's what holds character across shots.run_token- the manual "force rerun" switch. Bump it to regenerate.model_loader+ the model filename widgets - GGUF or native backend, and which files to use. The defaults point at specific filenames; your first task is making sure those exact files exist in your models folders (diffusion_models, clip, vae, loras).width/height,seed/seed_mode,steps,cfg,sampler_name/scheduler/denoise- the sampling knobs, with defaults tuned to the Lightning LoRA's 4-step fast path.- Optional
reference_image_2/reference_image_3for multi-frame conditioning.
Outputs: next_frame (IMAGE), storyboard_json (the running board), generated_filename (the committed file - feed this back as the next source_image), and cine_linx (for the bridge into video).
The honest take
This is the highest-convenience node in the pack, and also the most demanding on your model collection: Qwen Image Edit 2511 is a 20B-class model, so you'll want the Q4 GGUF or a fat GPU, plus the Qwen CLIP and VAE and three specific LoRAs. The reference workflow names exact files like next-scene_lora-v2-3000.safetensors that aren't in the repo - you source those yourself, and mismatched names fail loudly at validation, not silently. Where people get burned: forgetting source_image must already live in the input folder (a text path, not an image node output - this wrapper manages files, not tensors), and cranking steps/quality knobs without realizing the defaults are tuned for the 4-step Lightning path.
Install
The pack once:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes
or via ComfyUI Manager (search "IAMCCS"), then restart. Then chase the models: Qwen Image Edit 2511 (GGUF or native), the Qwen 2.5 VL CLIP, the Qwen image VAE, and the Lightning / next-scene / light-and-shadow LoRAs, plus ComfyUI-GGUF if you use the GGUF loader. The README's floor of a current ComfyUI, Python ≥ 3.12 and a recent PyTorch applies.
Inputs (34)
| Name | Type | Default | Description |
|---|---|---|---|
| source_image | STRING | — | |
| prompt_text | STRING | Next Scene: The camera moves slightly forward to a medium shot as the same character completes the next clear action beat. Preserve the exact identity, face, hairstyle, wardrobe, body proportions, location geometry, color palette, lighting direction and cinematic style of Image 1. Maintain spatial continuity and realistic atmospheric depth. | — |
| negative_prompt | STRING | — | |
| storyboard_json | STRING | {} | — |
| session_id | STRING | storyboard | — |
| run_token | STRING | ready | — |
| model_loader | COMBO | GGUF | 2 options: GGUF, Native UNET |
| gguf_model | STRING | qwen-image-edit-2511-Q4_0.gguf | — |
| native_model | STRING | qwen_image_edit_2511_bf16.safetensors | — |
| clip_model | STRING | qwen_2.5_vl_7b_fp8_scaled.safetensors | — |
| vae_model | STRING | qwen_image_vae.safetensors | — |
| lightning_lora | STRING | Qwen_2511\Qwen-Image-Edit-2511-Lightning-4steps-V1.0-bf16.safetensors | — |
| lightning_strength | FLOAT | 1.00-2–2 | — |
| next_scene_lora | STRING | next-scene_lora-v2-3000.safetensors | — |
| next_scene_strength | FLOAT | 0.80-2–2 | — |
| light_lora | STRING | qwen2511_Add_light_and_shadow.safetensors | — |
| light_strength | FLOAT | 0.80-2–2 | — |
| width | INT | 1920256–4096 | — |
| height | INT | 1088256–4096 | — |
| seed | INT | 4731467550935160–18446744073709550000 | — |
| seed_mode | COMBO | randomize | 3 options: randomize, fixed, increment |
| steps | INT | 41–100 | — |
| cfg | FLOAT | 1.000–30 | — |
| sampler_name | COMBO | euler | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduler | COMBO | simple | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| denoise | FLOAT | 1.000–1 | — |
| shift | FLOAT | 3.100–20 | — |
| cfg_norm_strength | FLOAT | 1.000–10 | — |
| reference_method | COMBO | index_timestep_zero | 4 options: index_timestep_zero, offset, index, uxo/uno |
| conditioning_megapixels | FLOAT | 3.000.25–16 | — |
| decode_tile_size | INT | 512128–2048 | — |
| inject_slot_seconds | FLOAT | 5.000.25–60 | — |
| reference_image_2opt | STRING | — | |
| reference_image_3opt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| next_frame | IMAGE | — |
| storyboard_json | STRING | — |
| generated_filename | STRING | — |
| cine_linx | IAMCCS_SUPERNODE_LINX | — |