zhenzhen-cosmos-3-super-fal
One node, text-to-image and image-to-video
- image
- images
- video
- response
- url
NVIDIA's Cosmos 3 Super - the world-model line aimed at robotics and synthetic data - squashed into one node with a mode switch that flips between text-to-image and image-to-video. This is a FAL-family node: the pack routes it through the author's proxy at {base_url}/fal/..., you drop a Zhenzhen key into the api_key field, and the heavy lifting happens on NVIDIA's servers via fal.ai.
If you're a ComfyUI regular used to local checkpoints, this is a different animal entirely: no weights, no VRAM, pay-per-call, and the output comes back as a video tensor that drops straight into your graph as if a local sampler made it. The FAL channel is pre-charge - the README is explicit that FAL models pre-deduct a credit balance and refund the difference after the job settles. Your key's balance moves in both directions.
The two modes
- text_to_image (default) - prompt → images. Controls:
image_size(fromsquareup through portrait/landscape ratios plus acustom_832x480option),num_images(1–4),num_inference_steps(default 28),guidance_scale(default 4),negative_prompt,output_format(jpeg/png). - image_to_video - prompt + an image → a video clip. Adds
num_frames(25–189, default 49),frames_per_second(8–30, default 24). Requires theimageinput or animage_url.
Both modes expose the Cosmos extras: enable_prompt_expansion, enable_agentic_generation, and enable_safety_checker (default on - Cosmos ships a real safety checker, and it's a good default).
Inputs that matter
- prompt - required, multiline. The whole creative input.
- mode -
text_to_image/image_to_video. - api_key - your Zhenzhen key, typed in the field (no settings node for FAL nodes).
- seed - 0–65535. The tooltip spells it out: 0 = random, and FAL's seed caps at 65535. This is a real sampler seed, not the cache-control fake of the concurrent family.
- image / image_url + image_way -
base64(default) orimage_url; theimagetensor path uploads as base64, the URL path skips the upload. - poll_interval / max_poll_attempts - polling cadence, default 6s × 600 = a 3600s (one-hour) timeout. Video jobs run long; this is the patience dial.
Outputs: images (IMAGE), video (VIDEO), response (JSON string), url (the media URL).
Install
ComfyUI Manager → search "Comfyui-zhenzhen" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
No model downloads. Needs a Zhenzhen key.
Where people get burned
- The key goes in the node. There's no
api_configinput here - FAL nodes take a plainapikeywidget. Wrong config pattern is the #1 stumble coming from the Seedance2-family nodes. - Pre-charge, not pay-at-end. The FAL channel deducts up front and refunds after. A failed job shouldn't cost you, but the balance moves immediately and settles later - don't panic at the initial deduction.
- Seed max 65535. Typing 123456789 just gets clamped. If you're hunting reproducible results, stay under the cap.
- image_to_video needs an image. No image, no URL, and the mode raises "requires image or image_url" - that's validation working as intended.
- Long polls are normal. A 189-frame job at 30fps is ~6 seconds of video that took minutes to render. The 600-attempt default exists because video genuinely takes that long; lowering it just buys you false timeouts.
- It's still a reseller lane. Prompts and reference images leave your machine for a third-party proxy and then NVIDIA's servers. Fine for a closed model - just know it's the deal.
Cosmos 3 Super is a world-model tier that most ComfyUI users don't touch. If you're here, it's because you want NVIDIA-grade synthetic data or image-to-video from a video-family model without owning the hardware. The node makes that a prompt, a mode, and a key away.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| modeopt | COMBO | text_to_image | 2 options: text_to_image, image_to_video |
| imageopt | IMAGE | — | |
| image_urlopt | STRING | — | |
| api_keyopt | STRING | — | |
| negative_promptopt | STRING | — | |
| image_sizeopt | COMBO | square_hd | 7 options: square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9, +1 |
| num_imagesopt | INT | 11–4 | — |
| num_framesopt | INT | 4925–189 | — |
| frames_per_secondopt | INT | 248–30 | — |
| num_inference_stepsopt | INT | 281–50 | — |
| guidance_scaleopt | FLOAT | 4.00–20 | — |
| enable_prompt_expansionopt | BOOLEAN | false | — |
| enable_agentic_generationopt | BOOLEAN | false | — |
| enable_safety_checkeropt | BOOLEAN | true | — |
| seedopt | INT | 00–65535 | 0 = random seed. FAL seed max is 65535. |
| output_formatopt | COMBO | jpeg | 2 options: jpeg, png |
| image_wayopt | COMBO | base64 | 2 options: base64, image_url |
| poll_intervalopt | INT | 61–60 | — |
| max_poll_attemptsopt | INT | 60010–3600 | Default 600*6s = 3600s timeout. |
| skip_erroropt | BOOLEAN | false | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| video | VIDEO | — |
| response | STRING | — |
| url | STRING | — |