TensorScale Cosmos3 Nano Text To Video (Soze)
NVIDIA's world model, hosted, with step and guidance exposed
- video
- video_path
- request_id
- config
- status
Cosmos is NVIDIA's world-model family - the "predict what happens next in a scene" kind of model rather than the "make a nice clip" kind. The Nano tier is the small, cheap member of the family, and this node serves the text-to-video variant through TensorScale. It's also the most openly tunable video node in the pack: instead of hiding the sampling, it hands you num_steps and guidance with the native defaults called out. If you've ever wanted to see how a hosted video model behaves when you actually turn its knobs, start here.
The inputs
The required set is prompt, seconds, fps, resolution, aspect_ratio, and seed. Two quirks to know before you wire anything:
resolutionis a height profile, not a WxH pair. It's256,480,704,720, or768- the width is derived from the aspect ratio. That's how Cosmos encodes it, and the node doesn't pretend otherwise.aspect_ratiouses a comma, not a colon:"16,9","9,16","1,1","4,3","3,4". Copying16:9from another node will break the request.
seconds (1–60, half-second steps) is converted server-side into a valid Cosmos frame count, so the exact length comes back aligned to the model's grid. fps defaults to 24, which matches the native generation profile.
Then the tuning dials, both optional: num_steps (default 35 - the native default, and the floor for quality) and guidance (default 6.0 - the native value). These are real diffusion controls, and 35/6.0 are where the model is meant to run; lower steps trade quality for speed, higher guidance pushes prompt adherence at the cost of naturalness. Experiment, but know the defaults are the vendor's own tuning.
How it works
TensorScale's /v2/cosmos3-nano/t2v runs synchronously with a model-scoped key (TENSORSCALE_API_KEY_COSMOS3_NANO, falling back to TENSORSCALE_API_KEY). No polling - the socket stays open for the whole generation (the timeout widget, default 1800s, is a read timeout). Text-to-video means no media in the request, so the 10 MiB body cap isn't a concern here - this is the most trouble-free node in the TensorScale family from that angle.
Outputs: video, video_path, request_id, config (run summary), status.
Install and key
From the Soze pack ("Quality of Life Nodes for ComfyUI"), via ComfyUI Manager or:
cd ComfyUI/custom_nodes
git clone https://github.com/SozeInc/ComfyUI_Soze.git
pip install -r ComfyUI_Soze/requirements.txt
Restart, then set TENSORSCALE_API_KEY or TENSORSCALE_API_KEY_COSMOS3_NANO (environment variable or .env in the repo root). Keep keys out of git.
Common issues
- "Invalid aspect ratio" style errors. You used a colon. Cosmos wants
16,9, comma-separated. - Resolution feels wrong. It's a height profile -
720means 720-tall, with width derived from the ratio. There's no free-form WxH here. - Slow at high steps.
num_stepsover ~50 on a long clip is a long synchronous wait. That's expected; drop to 35 for drafts.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| seconds | FLOAT | 8.01–60 | Converted server-side to a valid Cosmos frame count. |
| fps | INT | 241–60 | 24 matches the native generation profile. |
| resolution | COMBO | 720 | Output height profile. |
| aspect_ratio | COMBO | 16,9 | Comma-separated W,H — Cosmos does not use the colon form. |
| seed | INT | 00–4294967295 | — |
| num_stepsopt | INT | 351–100 | Diffusion steps. The native default is 35. |
| guidanceopt | FLOAT | 6.00–30 | Prompt guidance strength. The native default is 6.0. |
| api_key_envopt | STRING | TENSORSCALE_API_KEY_COSMOS3_NANO | Environment variable holding the model-scoped key. Falls back to TENSORSCALE_API_KEY when unset. |
| timeoutopt | INT | 180060–7200 | Read timeout in seconds. These endpoints are synchronous — the socket stays open for the whole generation. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_path | STRING | — |
| request_id | STRING | — |
| config | STRING | — |
| status | STRING | — |