This document explains how to use your own images and videos in the video generation pipeline.
Place all your local images and videos in the following directory:
input/visuals/
[!NOTE] All files in this folder are ignored by Git (configured in the root
.gitignore) so they wonβt bloat your repository.
To use a local asset, include its exact filename inside a [Visual: ...] tag in your script.
[Visual: my-photo.jpg] Hello, this is my photo.[Visual: intro-clip.mp4] Welcome to the presentation.[Visual: filename] tag is automatically removed from the videoβs text overlay. Only your text will appear on screen.The system is designed to be intelligent. When it sees a [Visual: ...] tag:
input/visuals/.You can mix both in a single script:
{
"script": "[Visual: my-product.jpg] This is our new product. [Visual: happy customers cheering] Look how much people love it!"
}
Scene 1 will use your local image, Scene 2 will search for a stock video.
The system supports a safety fallback to ensure your videos always have visuals, even if the script keywords return no results from the APIs.
You can define a defaultVideo property inside your job config within input-scripts.json.
Example:
{
"title": "My Video",
"defaultVideo": "fallback.mp4"
}
[Visual: ...] tag or searches Pexels/Pixabay for a match.defaultVideo inside input/visuals/.defaultVideo config, the system will automatically look for a file named default.mp4 in your assets folder as a last resort.You can add background music to your videos by placing an audio file in input/visuals/ and referencing it in your job configuration.
Add the backgroundMusic and musicVolume properties to your job in input/scripts/input-scripts.json.
Example:
{
"id": "music-demo",
"backgroundMusic": "The_Gravity_of_Dawn.mp3",
"musicVolume": 0.15,
"script": "This video has background music."
}
musicVolume between 0.1 and 0.2 to ensure the AI voice remains clear and audible..jpg, .jpeg, .png, .webp.mp4, .mov, .webm, .m4v.mp3, .wav, .m4aThis local asset behavior is shared across all runtime entrypoints:
Related docs: