- Project Overview
- Features
- Prerequisites
- Installation
- Usage
- Project Structure
- Configuration
- Troubleshooting
- Contributing
- License
This project is an AI-powered YouTube Short/TikTok generator that takes source material or url as input and creates engaging short-form video content. It utilizes various AI technologies for local llm script generation, local TTS text-to-speech conversion, FastFlux api image generation, and local cv2 video composition. CLI works but webui is still in progress.
- AI-generated script based on provided source material or url useing LM Studio server for local free llm
- Text-to-speech narration useing basic TTS , will update to better voice soon
- AI-generated images for visual content useing runware.ai with less than 3 second flux.dev generation
- Automatic video composition with image transitions useing OpenCV cv2
- Text overlay on video for captions with cv2
- Python 3.7+
- FFmpeg (for video processing)
- LMStudio (for local AI model)
- Runware.ai account setup for api (for fast flux image generation, free $15 to start and will make 1000 512x512 images for about $1)
-
Clone the repository:
git clone https://github.com/PixifyAI/shorteezy-webui.git cd shorteezy-webui
-
Set up a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows use, venv\Scripts\activate
-
Install the required dependencies:
pip install -r requirements.txt
-
Set up environment variables: Create a
.env
file in the project root and add the following:RUNWARE_API_KEY=your_runware_api_key_here
-
Prepare your source material in input.txt text file or use url.
-
Make sure your LM Studio server is running and add your model name on line 71 in main.py
-
Setup user on https://runware.ai/ and make an API key, add your api key to .env file. ($15 free credit and $0.0077 per image)
-
Run the main script:
python main.py input.txt [settings_file.json]
python main.py url [settings_file.json] (with full http prefix)
-
It will generate a response.txt in shorts\1725331787(random # gen) and will pause with
Press Enter to continue when you're done editing...
edit the txt if not good info from llm, MUST be in the below format and some open llm models dont do a great job
[image gen info description]
Narrator: "Text generated by llm to be read."
[image gen info description]
Narrator: "Text generated by llm to be read."
[image gen info description]
Narrator: "Text generated by llm to be read."
-
Once done and happy with response.txt press Enter to continue
-
The generated video will be saved in the
shorts/{timestamp}
directory.
main.py
: Main script that orchestrates the entire processimages.py
: Handles AI image generationnarration.py
: Manages text-to-speech conversiontext.py
: Adds text overlays to videovideo.py
: Creates the final video with transitionsrequirements.txt
: List of Python dependenciesinput.txt
: content you want the llm to summerize.env
: runware api keyREADME.md
: install and setup infowebui.py
: Gradio webui for UI
You can customize the video generation process by creating a settings.json
file. Example structure:
{
"caption_settings": {
"font": "Arial",
"font_size": 24,
"color": "white"
}
}
Pass this file as the second argument when running main.py
.
- Launch the webui:
you will get a link in the prompt http://127.0.0.1:7860/
python webui.py
- venv is a virtual enviroment so you dont have conflicting dependancies, should use for easy install.
- If you encounter issues with image generation, ensure your Runware API key is correctly set in the
.env
file. - For text-to-speech problems, check that the TTS model is correctly installed and accessible.
- If video composition fails, verify that FFmpeg is correctly installed and accessible from the command line.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or support, please open an issue on the GitHub repository.