Clip Text Encode - Camera Movements
Tell Your Video Model Where to Point the Camera (No ControlNet Required)
- clip
- CONDITIONING
- TEXT
Every video model you've ever used has the same weak spot: "dolly in on the subject" typed into the prompt box either gets ignored or turns into three seconds of a camera doing nothing in particular. Clip Text Encode - Camera Movements is a glorified CLIP text encoder with one job - write that camera direction properly so the model actually does it. It swaps in wherever a normal Clip Text Encode sits in your image-to-video graph, and it costs you nothing extra: no ControlNet, no motion model, no extra downloads. Just better words.
What it actually does
Open the source and you'll see the whole trick. The node keeps two dictionaries of hand-written descriptions - one for "Subject Aware" camera moves (the camera body repositions to keep the subject centered) and one for "Natural Movement" (the body stays put, the view just rotates or slides). Pick a move from a dropdown, and the node pastes the full cinematic description into your prompt, then runs a completely standard clip.tokenize + encode_from_tokens. It's prompt engineering packaged as a node. The long-winded descriptions are the point: they're written to nudge video models that famously misread short camera tags.
You get two of those dropdowns, one per flavor, plus two sliders:
Camera (0) (Subject Aware)andCamera (1) (Natural Movement)- the movement dropdowns, 17 moves each (Pan, Tilt, Dolly, Jib, Orbit Around, 360 Roll, Zoom, Handheld, Camera Follows, Drone Shot) plusNone. The practical difference: pick the Subject-Aware version when there's a character you want kept in frame, the Natural one when the camera's the star and the subject can drift.Choose Camera- the mode slider. 0 = Subject Aware only, 1 = Natural only, and 0.5 = Experimental Mix, which concatenates both descriptions. The author's own demos show this is genuinely unpredictable: sometimes a lovely compound shot, sometimes the model makes something weird. That's the feature.concatenate- blends your prompt with the camera text: 0 is your text only, 1 is camera only, 0.5 is both.
One thing to know before you fight it: both sliders snap to 0 / 0.5 / 1. That's not a bug - the pack ships a small JS extension that forces it, so you can't dial in a 0.3. Don't bother dragging, just click.
What you get out
Two outputs. CONDITIONING wires straight into the positive input of your KSampler/KSamplerAdvanced, exactly like a stock Clip Text Encode. TEXT is the actual final prompt string - the thing worth its weight, because it lets you see exactly what's being sent. If the camera's doing something wrong, that's your first debugging stop: is the camera text even in there, and is it leading or trailing your subject prompt? (Whichever side has the bigger concatenate value leads.)
Installing it
Zero model downloads, zero pip dependencies - the whole pack is one Python file and one JS file, which makes it one of the rare custom nodes that can't break your environment. It's on the Comfy Registry, so the easy route is ComfyUI Manager → Custom Nodes Manager → search comfyui-alikonfilms → Install → restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/alikonfilms/comfyui_alikonfilms.git
Then restart ComfyUI. That's it - no requirements.txt to trip over.
Where people get burned
The trap isn't install, it's expectations. This node describes the camera move in text; it doesn't enforce it. If your video model has weak prompt adherence - LTX is the usual suspect, since it's loved for scenery and camera work but notoriously loose with words - the motion can come out approximate. The author's own demo clips pair a deliberately minimal prompt like "a woman next to a window" with the camera text, and that's the recipe: give the camera direction room to work. If you cram your subject prompt full of competing action, the model has to choose and the camera usually loses. Start with a short prompt, both dropdowns on a single move, concatenate at 1, and read the TEXT output until you trust it. This is a "say it clearly and hope the model listens" tool - which, for most image-to-video models, is the best camera control you're going to get without reaching for a ControlNet.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| text | STRING | a person standing in a field | — |
| Camera (0) (Subject Aware) | COMBO | None | 18 options: None, Pan Right, Pan Left, Tilt Up, Tilt Down, Dolly In, +12 |
| Camera (1) (Natural Movement) | COMBO | None | 18 options: None, Pan Right, Pan Left, Tilt Down, Tilt Up, Dolly In, +12 |
| Choose Camera | FLOAT | 0.00–1 | — |
| concatenate | FLOAT | 0.50–1 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |
| TEXT | STRING | — |