I found out about this cool model for Text to Video that can run locally.
A lot of packages expect an NVIDIA graphics card (CUDA); the laptop I'm using (Apple M4 Pro with 24 GB RAM) doesn't have one, but I was still able to make it work.
Note: At least 70GB of free space is needed.
- Clone
LTX-2fork
https://github.com/garciadiazjaime/LTX-2-m4-pro
- Install dependencies
If you need to install
uvdo:brew install uv
uv sync
- Get a huggingface.co Token
Create a .env file and paste the token
HF_TOKEN=[your token]
Very important, otherwise the next step won't work
- Download models
uv run python extra/download_model.py
This might take a couple of minutes since it's downloading two models ~70GB.
- Generate video
uv run python extra/text_to_video.py
Now update the prompt, or the image and have fun generating your own videos!
The image in the fork was generated with AI. It's not needed; if you remove the image logic, the model will generate an avatar for you.
Resource Consumption
I had macmon running while the script generated the video.
- Before starting, this is the laptop idle state.
- Ramp up
This is the first task that consumes significant resources on the laptop, it makes a simple, raw version of the video, not ready yet, with a lot of noise.
Note: this is not the video itself, it's data the model generates that eventually will be converted to a video
INFO:ltx_pipelines.utils.blocks:Running denoising loop (8 steps, 128x128 561 frames @ 24.0 fps)
100%|███████████████████████████████████████████████████████████████████████████████| 8/8 [04:25<00:00, 33.15s/it]
- GPU work
This task is trying to polish the video till it gets the final version. It consumes more GPU simply because it now works with more pixels (128 -> 256), meaning more memory, hence more GPU.
INFO:ltx_pipelines.utils.blocks:Running denoising loop (3 steps, 256x256 561 frames @ 24.0 fps)
100%|███████████████████████████████████████████████████████████████████████████████| 3/3 [01:39<00:00, 33.30s/it]
- GPU spike
This task converts the model output into a real video. This requires less RAM and CPU, but there's a clear GPU spike because in this case, video processing is more GPU expensive than the model work.
Encoding video video.mp4 with 10 chunks
100%|█████████████████████████████████████████████████████████████████████████████| 10/10 [01:08<00:00, 6.88s/it]
INFO:ltx_pipelines.utils.media_io.encode:Video saved to extra/output/video.mp4
Conclusion
While working on the script, there were times it stopped completely because of an out of memory error. Running models locally is challenging, specifically if they are video-related. Additionally, not having an NVIDIA card makes things harder because a lot of packages expect CUDA, and adapters always add extra complexity.
LTX-2 is fun, kudos to the team behind the project.




Top comments (0)