A web interface for generating and combining 10-second videos using the Wan2.1 text-to-video model.
- Generate videos from text prompts
- Enhance prompts with detailed descriptions for better video generation
- Combine multiple clips into longer movies
- Batch process multiple prompts
- GPU usage monitoring to prevent conflicts
- Dark mode UI for reduced eye strain
- Automatic poster image generation for video thumbnails
- Restart capability for interrupted generation processes
- Voice sample feedback system for collecting and processing user feedback
- Voice exploration and generation tools for creating and managing voice samples
- Voice status monitoring for tracking generation progress
- IP address monitoring for servers with dynamic IPs
- Enhanced voice generation with female-dominant voice sets
- Python 3.8+
- FFmpeg
- Wan2.1 model
- Flask
- CUDA-compatible GPU
- Clone this repository
- Ensure FFmpeg is installed
- Set up the Wan2.1 model
- Install Python dependencies
./run.sh --port=5001For testing new features without affecting the main service:
./test_server.sh [port]Example:
./test_server.sh 5002This will start a test instance on port 5002 (or any specified port).
./enhance_only.sh --input=prompts.txt./run_enhanced_generation.sh --input=enhanced_prompts/enhanced_TIMESTAMP_only.txt --seconds=1./batch_generate.py prompts.txt --seconds=1The system includes an automatic poster image generation service that extracts frames from videos to use as thumbnails.
# Run manually (one-time)
python3 extract_frames.py
# Run in monitor mode
python3 extract_frames.py --monitor --interval 30For more details, see README_POSTER_SERVICE.md.
If the video generation process stops unexpectedly, you can restart it from where it left off:
./restart_hdmy5movie_generation.shThis script will automatically determine the next prompt to process and create any necessary directories.
For more details, see README_RESTART_GENERATION.md.
The system includes a feedback collection and processing system for voice samples:
# Start the feedback server
python3 feedback_server.py
# Update voice sample descriptions based on feedback
python3 update_descriptions.pyFor more details, see FEEDBACK_SYSTEM.md.
The system includes tools for exploring and generating voice samples:
# Start the feedback server which also serves the voice explorer interface
python3 feedback_server.py
# Then navigate to http://localhost:8000/voice_explorer.html
# Generate voice samples with different parameters
./explore_voices.sh --quick
# Monitor voice generation status
./start_status_server.shFor more details, see VOICE_SYSTEM.md.
The system includes scripts to monitor the server's public IP address and send notifications when it changes:
# Check for IP changes manually
./check_ip_change.sh
# Run the complete monitoring process
./monitor_ip_changes.shA cron job is set up to run this check automatically every hour.
For more details, see IP_MONITOR_README.md.
To generate a new set of 100 voices with 80% female voices:
./generate_more_female_voices.shTo generate additional voice sets:
./generate_100_more_voices.shThese scripts generate:
- 80 female voices with higher expressivity
- 20 male voices with varied characteristics
To ensure all generated voices are preserved:
python3 merge_voice_samples.py --replaceFor automatic preservation during generation:
./auto_merge_voices.shFor more details, see VOICE_GENERATION.md.
Start the feedback server and navigate to the Voice Explorer:
python3 feedback_server.pyThen open http://localhost:8000/voice_explorer.html in your browser.
app.py: Main Flask applicationrun.sh: Script to start the web interfacetest_server.sh: Script to start a test server on a specified portenhance_prompts.py: Script to enhance promptsbatch_generate.py: Script for batch processingextract_frames.py: Script to extract frames from videos for poster imageshdmy5movie_poster_service.service: Systemd service file for poster generationrestart_hdmy5movie_generation.sh: Script to restart the generation processfeedback_server.py: Server for collecting voice sample feedbackupdate_descriptions.py: Script for updating voice sample descriptions based on feedbackvoice_feedback_db.json: Database of user feedback on voice samplesvoice_samples.js: Voice sample data with descriptionsvoice_explorer.html: Web interface for exploring voice sampleslisten.html: Simplified interface for playing voice samplesvoice_status.html: Interface for monitoring voice generation statusstart_feedback_server.sh: Script to start the feedback serverstart_status_server.sh: Script to start the status serverexplore_voices.sh: Script to generate voice samples with different parameterscheck_files.py: Script to check and monitor voice generation filescheck_ip_change.sh: Script to check for IP address changessend_ip_notification.sh: Script to send IP change notificationsmonitor_ip_changes.sh: Combined script for IP monitoringtemplates/: HTML templates for the web interfacestatic/: Static files (CSS, JS)clips/: Generated video clipsmovies/: Combined movieshdmy5movie_videos/: Video files for the HDMY 5 Movie projecthdmy5movie_posters/: Poster images for the HDMY 5 Movie projecthdmy5movie_voices/: Voice samples for the HDMY 5 Movie projectvoices/: Directory containing general voice samplesvoice_poc/: Directory containing voice generation proof of concept implementationslogs/: Log files for various services
MIT