Nodes/ComfyUI-Jimeng/JimengImage2Video
ComfyUI Node

JimengImage2Video

Seedance-grade image-to-video in ComfyUI, no GPU required

By xuhongming251·Created about a year ago·Updated about a year ago· 10
JimengImage2Video
  • client
  • image
  • url
  • task_id
modeldoubao-seedance-1-0-lite-i2v-250428
prompt
duration5
resolution720p
camerafixedtrue

The name is a lie, and it's the good kind. JimengImage2Video does not run anything on your GPU - it's a wrapper around ByteDance's closed Seedance image-to-video model, served through the Volcengine Ark API. You hand it an image, it uploads the job to a cloud model you could never run locally, and ComfyUI just sits there until a finished video comes back. That's the entire trick, and it's why this pack can spit out 1080p clips from a laptop with integrated graphics.

Seedance is the closed line the local community quietly measures open video models against - the same ByteDance whose open components (SDXL-Lightning, Hyper-SD, PuLID, LatentSync) are load-bearing infrastructure, but whose flagship generators never get weights released. So if you want that frontier quality and you don't own a video-card-shaped spaceship, an API wrapper is the only honest path. This is one of the few packs that puts it inside a normal ComfyUI graph.

How it works

Under the hood it's dead simple. The node base64-encodes your image into a data URL, appends your prompt, then smacks a few command-line-style flags onto the end of it:

{your prompt} --resolution 720p --dur 5 --camerafixed true

It creates a content-generation task with the Volcengine Ark SDK, then polls the task every five seconds for up to five minutes until the status reads succeeded. When it does, you get back a URL to the finished video plus the task ID.

The inputs that matter

  • client - you'll always wire this from the pack's JimengAPIClient node, where you paste your Volcengine API key. Every generation node in this pack needs it.
  • image - any IMAGE tensor, straight out of LoadImage or anything upstream.
  • model - doubao-seedance-1-0-lite-i2v-250428 by default, or the -pro-250528 variant. Pro is the "Jimeng 3.0" model; it's the one the README claims can hit 1080p in under a minute.
  • prompt - multiline text. Describe the motion you want.
  • duration - 5 or 10 seconds.
  • resolution - 480p, 720p, or 1080p. Default 720p; 1080p will cost more credits and take longer.
  • camerafixed - true keeps the camera locked, false lets it move.

The node returns two strings: url (the video) and task_id (a receipt for the job). Don't skip that distinction - it's where people get burned.

The trap: you get a URL, not a video

The output is a string pointing at a hosted file, not a video you can watch in the UI. You need a second node to grab it. The pack ships exactly the right one: PreviewVideoFromUrl. Feed its video_url input from this node's url output and it downloads the file to your output folder and shows it as an animated preview. That's the whole workflow, and it's literally the example this pack ships:

LoadImage → JimengImage2Video → PreviewVideoFromUrl

Forget that step and you'll be staring at a text string wondering where your video went.

Installing it

The README is essentially a Chinese update log with an invite link - no install section. So use the standard route. In ComfyUI Manager, search ComfyUI-Jimeng and install; Manager will pull in the one real dependency. Or do it by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/xuhongming251/ComfyUI-Jimeng
cd ComfyUI-Jimeng
pip install -r requirements.txt

That requirements file is a single line: volcengine-python-sdk[ark]. No model downloads, no VRAM pressure - the heaviest thing you'll install is an SDK. You do need an API key from the Volcengine Ark console, and each generation costs credits, so this is a pay-as-you-go deal, not free. The author's README includes a registration link that supposedly throws in extra credits.

Where people get burned

The node blocks the queue while it polls - up to five minutes, no progress bar, just "running." If a job takes longer than the 300-second timeout, it returns an empty url but keeps the task_id. There's no retry node in this pack, so a timed-out task means pasting that ID into the Volcengine console yourself. Also, feed it a batch of images and it silently uses only the first frame - the encoder grabs [0]. Keep it to a single image and you'll be fine.

CategoryJimengAI

Inputs (7)

NameTypeDefaultDescription
clientJIMENG_API_CLIENT
imageIMAGE
modelCOMBOdoubao-seedance-1-0-lite-i2v-2504282 options: doubao-seedance-1-0-lite-i2v-250428, doubao-seedance-1-0-pro-250528
promptSTRING
durationCOMBO52 options: 5, 10
resolutionCOMBO720p3 options: 480p, 720p, 1080p
camerafixedBOOLEANtrue

Outputs (2)

NameTypeDescription
urlSTRING
task_idSTRING