Nodes/ERPK Collection/Kling 3.0 Image-to-Video
ComfyUI Node

Kling 3.0 Image-to-Video

Animate a still into a scene

By eRepublik-Labs·Created 11 months ago·Updated 21 days ago· 1
Kling 3.0 Image-to-Video
  • image
  • end_image
  • client
  • video_url
modelKling 3.0
prompt
image_url
duration5
seed-1
negative_prompt
end_image_url
cfg_scale0.50
soundfalse
shot_typecustomize
multi_prompt
element_list

Kling 3.0 Image-to-Video is the node that takes a still image and turns it into a moving scene using Kling 3.0, served through the WaveSpeed API. You've probably seen the meme thread about how the gap between "open a browser, get a Kling video" and "build it locally in ComfyUI" is the single biggest access barrier in this hobby - this node is that first experience, but inside your node graph, with the image arriving straight from your existing workflow instead of a website's upload button.

It's the full Kling 3.0 surface, too: standard, Pro, and 4K variants; start-image and optional end-frame guidance; duration from 3 to 15 seconds; cfg scale, optional synchronized audio, shot composition mode, scene-segmented multi-prompts, and element lists for visual consistency. Pro is the quality tier, 4K the resolution king (it derives aspect ratio from the input image). Both cost more.

How it works

The node accepts your starting image either as a real ComfyUI IMAGE tensor (sent to the API as a base64 data URI) or as an image_url string - and when both are present, the IMAGE tensor wins. That's a nice touch, because it means you can generate a frame locally, feed the tensor straight in, and never touch a URL. It submits the job, polls until the clip renders, and returns a video_url STRING - pipe that into Preview Anything (same pack) to watch it.

The inputs that matter

  • image (or image_url) - the starting frame. The IMAGE tensor is preferred; image_url is the fallback (WaveSpeed's upload node can produce one).
  • end_image (or end_image_url) - optional end-frame guidance: the video works toward this final frame.
  • prompt - the motion/scene description.
  • model - Kling 3.0, Kling 3.0 Pro, or Kling 3.0 4K.
  • duration - 3 to 15 seconds.
  • cfg_scale - prompt adherence, 0–1, default 0.5.
  • sound - synchronized audio, off by default; on, it applies a 1.5x cost multiplier.

The advanced fields (multi_prompt for scene-segmented JSON prompts, element_list for consistency IDs, shot_type customize/intelligent) are there if you outgrow the basics. The seed widget is cache control only, not an API seed.

Installing it

Part of the ERPK Collection (eRepublik-Labs/comfyui-nodes-erpk). ComfyUI Manager: search erpkERPK Custom Nodes → restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/eRepublik-Labs/comfyui-nodes-erpk.git erpk
cd erpk
pip install -r requirements.txt

WaveSpeed API key required (Settings → ERPK → API Keys). No model downloads - the pack's WaveSpeed dependency is pydantic/requests/Pillow.

Common issues

  • Video never appears - generation takes minutes and polls on ~10s intervals. Don't cancel early; a cancelled poll is a wasted billed job.
  • Sound doubles the bill - the 1.5x multiplier is real. Turn sound off while iterating, on for the keeper.
  • 4K needs a good source - the 4K variant derives aspect ratio from the input image, so a low-res or oddly-cropped start gives you a low-res or odd result.
  • Only a URL comes out - that's by design. Preview Anything is your viewer; download from there.
CategoryERPK/WaveSpeedAI

Inputs (15)

NameTypeDefaultDescription
modelCOMBOKling 3.0Model variant: Kling 3.0 (standard), Kling 3.0 Pro (higher quality), or Kling 3.0 4K (highest resolution; derives aspect ratio from the input image)
promptSTRINGText description of the desired motion/scene
image_urlSTRINGStarting image URL (use WaveSpeed Upload Image to produce one). Fallback when the IMAGE input is not connected.
imageoptIMAGEStarting image as a ComfyUI IMAGE tensor. Preferred — takes precedence over `image_url` when connected.
end_imageoptIMAGEOptional end-frame guidance image as a ComfyUI IMAGE tensor. Preferred — takes precedence over `end_image_url` when connected.
clientoptWAVESPEED_AI_API_CLIENTWaveSpeed API client (optional if API key is configured in Settings)
durationoptINT53–15Video duration in seconds (3 to 15)
seedoptINT-1-1–2147483647Random seed for reproducibility (-1 for random)
negative_promptoptSTRINGElements to exclude from the generation
end_image_urloptSTRINGEnd-frame guidance image URL. Fallback when the end_image IMAGE input is not connected.
cfg_scaleoptFLOAT0.500–1Prompt adherence strength, 0-1
soundoptBOOLEANfalseEnable synchronized audio generation (applies a 1.5x cost multiplier)
shot_typeoptCOMBOcustomizeShot composition mode: 'customize' or 'intelligent'
multi_promptoptSTRINGJSON array of scene-segmented prompts (mutually exclusive with prompt on 4K)
element_listoptSTRINGJSON array of pre-generated element IDs for visual consistency

Outputs (1)

NameTypeDescription
video_urlSTRING