PromptMotion is a powerful AI-powered tool that generates multiple frames from script-based descriptions. These frames, when combined, create a story-driven animation sequence, capturing emotional moments with characters and scenes. PromptMotion is ideal for creating animated videos from custom-written scripts, bringing art and storytelling together in a unique way.
- Script-based Animation: Provide a script describing your scenes, and PromptMotion will generate corresponding visuals for each scene.
- Character Memory: Characters are recognized and remembered across scenes, ensuring consistency in visual representation.
- Customization: Customize prompts and scene descriptions to tailor the animation style.
- Frame-Based Storytelling: The generated frames, when compiled together, create a seamless flow that tells your story in an animated format.
-
Clone the repository:
git clone https://github.com/crizmo/PromptMotion.git cd PromptMotion
-
Install dependencies:
npm install
-
Create a
.env
file in the root directory and add your API keys:TOGETHER_API_KEY=your_api_key
-
Run the application:
node main.js
-
Write Your Script:
- Write your script in a natural, descriptive language. Edit the
script.json
file to add your script. - Example script:
[ { "description": "Scene description here.", "action": "Action happening in the scene.", "subtitle": "Subtitle for the scene." } ]
- Write your script in a natural, descriptive language. Edit the
-
Generate Prompts and Images:
- The application will generate prompts based on the script and create images for each scene.
-
Assemble the Video:
- The generated images will be assembled into a video with optional subtitles and background music.
- compromise: Natural language processing (NLP) library for JavaScript.
- Together API: API for generating images based on text descriptions.
- ffmpeg: Tool for assembling images into videos.
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to fork this project and make contributions! To suggest new features or report issues, please open an issue or submit a pull request.