# GenVideo

> Generative video: text / image / first+last / extension / video-to-video.

| Node | GenVideo |
|---|---|
| Menu | AI › GenVideo |
| **Names in each format** | |
| .oink comp (JSON) | `"type": "OC_N_genvideo"` |
| .nk script | none: written as an Oink node |
| Python | `nuke.createNode("OC_N_genvideo")` |
| Assistant (MCP) | `create_node(type="GenVideo")` |
| Tab search | `genvideo`, or its initials `gv` |

![GenVideo properties](/shots/nodes/genvideo@2x.webp)

## Inputs and outputs

| Port | Name | Type |
|---|---|---|
| input 0 | Image | image |
| input 1 | Last | image |
| output 0 | Image | image |

## Knobs

Panel tab **Genvideo**, in panel order.

| Knob | Label | Type | Default | Range / values | .nk knob | Description |
|---|---|---|---|---|---|---|
| `mode` | mode | menu | `i2v` | t2v (text to video), i2v (image to video), flf (first + last frame), extend (extend clip), v2v (video to video) |  |  |
| `prompt` | prompt | text |  |  |  |  |
| `negative` | negative | text |  |  |  |  |
| `seed` | seed | float | `1` | 0 to 2147483647 (integer) |  |  |
| `width` | width | float | `832` | 256 to 1920 (integer) |  | Model width (snapped: 5B x32, 14B x16) |
| `height` | height | float | `480` | 256 to 1088 (integer) |  |  |
| `num_frames` | frames (4k+1) | float | `17` | 5 to 241 (integer) |  | Generated frames (snapped to 4k+1) |
| `fps` | fps | float | `24` | 1 to 120 |  | Playback rate the clip is meant for (5B: 24, 14B: 16) |
| `steps` | steps (0 = default) | float | `0` | 0 to 100 (integer) |  | 0 = model default |
| `guidance` | guidance (0 = default) | float | `0` | 0 to 20 |  | 0 = model default |
| `strength` | strength (v2v) | float | `0.7` | 0.05 to 1 |  | Video to video: how much of the source is replaced |
| `fit` | fit | menu | `cover` | cover (cover (crop)), stretch |  |  |
| `cond_frame` | conditioning frame | float | `1001` | -100000 to 100000 (integer) |  |  |
| `start_frame` | start frame | float | `1001` | -100000 to 100000 (integer) |  | Comp frame of generated frame 0 |
| `outside` | outside range | menu | `hold` | hold, black |  |  |
| `upscale` | upscale | menu | `none` | none, realesrgan-x2 (Real-ESRGAN 2x), realesrgan-x4 (Real-ESRGAN 4x), seedvr2-2x (SeedVR2 2x) |  |  |
| `gamut` | working space | menu | `rec709` | rec709 (linear Rec.709), acescg (ACEScg) |  |  |
| `shaper` | encoding | menu | `reinhard` | reinhard, log, srgb |  |  |
| `exposure` | exposure | float | `0` | -6 to 6 |  | Stops before encoding (fixed per shot), removed after |
| `peak` | peak | float | `16` | 1 to 1000 |  | Top of the encoded range: generated pixels can reach it |
| `keep_loaded` | keep model loaded | bool | `true` |  |  | Keep the model on the GPU after a run so the next one starts warm; the AI worker still unloads it after 5 idle minutes or when another GPU job needs the card |

### Other knobs (Python, .nk and the assistant; not on the panel)

| Knob | Label | Type | Default | Range / values | .nk knob | Description |
|---|---|---|---|---|---|---|
| `gl_color` | Viewer Controls Color | float ×3 | `0, 0, 0` | 0 to 1 |  |  |
| `postage_stamp_frame` | Static Frame | int | `1` | -2147483648 to 2147483647 |  |  |
| `lifetimeStart` | Lifetime Start | int | `0` | -2147483648 to 2147483647 |  |  |
| `lifetimeEnd` | Lifetime End | int | `100` | -2147483648 to 2147483647 |  |  |
| `useLifetime` | Use Lifetime | boolean | `false` |  |  |  |
| `cached` | Cached | boolean | `false` |  |  |  |
| `bookmark` | Bookmark | boolean | `false` |  |  |  |
| `dope_sheet` | Dope Sheet | boolean | `false` |  |  |  |
| `clone_group` | Clone Group | string |  |  |  |  |
| `link_source` | Link Source | string |  |  |  |  |
| `link_overrides` | Link Overrides | string |  |  |  |  |
| `split_views` | Split Views | string |  |  |  |  |
| `model` | Model | string | `auto` |  |  | Model id (picked in the panel; licence tier shown there); auto = the fast model that fits the free GPU memory |
| `results_data` | Results | string | `{}` |  |  |  |
| `last_data` | Last Run | string | `{}` |  |  |  |


---
Sources: opencomp_core/nodes/ai/genvideo.py, opencomp_electron/src/components/properties/knobSchema.ts
