Professional video slideshow creation with Apple-style transitions and AI-generated music
Project description
๐ Memories Creator
Professional video slideshow creation with Apple-style transitions and AI-generated music, optimized for Apple Silicon.
Transform your photo collections into stunning cinematic videos with AI-powered music generation, professional transitions, and automatic photo enhancementโall from the command line or Python API.
๐ Features
The only open-source slideshow tool with built-in AI music generation.
๐ฌ Professional Video Creation
- 9 Transition Types: Ken Burns, zoom in/out, pan, fade in/out, cross-fade, dissolve, static
- Smart Photo Enhancement: Automatic enhancement for photos taken before 2020
- Hardware Acceleration: Native MPS support for Apple Silicon (M1/M2/M3/M4)
- Multiple Codecs: H.264, H.265 (HEVC) with VideoToolbox hardware encoding
๐ต AI Music Generation
- Text-to-Music: Generate custom soundtracks from natural language descriptions
- Multiple Models: Small (fast), Medium (balanced), Large (best quality), Melody (melody-aware)
- Seamless Looping: Intelligent audio extension for any video length
- Professional Mixing: Automatic volume balancing, fade in/out, crossfades
โก Performance
- GPU Acceleration: PyTorch MPS backend for transitions and effects
- Multi-threaded: Parallel image processing
- Memory Efficient: Handles 100+ photos with 16GB RAM
๐ฆ Installation
From PyPI (Recommended)
pip install memories-creator
From Source
git clone https://github.com/kubataba/memories-creator.git
cd memories-creator
pip install -r requirements.txt
pip install -e .
Additional Requirements
FFmpeg (required):
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
๐ ะัะพะณะพะฒะฐั ััััะบัััะฐ ะฟัะพะตะบัะฐ ะดะปั PyPI
memories-creator/
โโโ memories_creator/
โ โโโ __init__.py
โ โโโ cli.py
โ โโโ main.py
โ โโโ config.py
โ โโโ music_generator.py
โ โโโ video_processor.py
โ โโโ transitions.py
โ โโโ slide_editor.py
โ โโโ media_utils.py
โ
โโโ README.md
โโโ LICENSE
โโโ setup.py
โโโ pyproject.toml
โโโ config.json
โโโ requirements.txt
โโโ MANIFEST.in
โโโ .gitignore
๐ Quick Start
1. Create Your First Video.
# Create configuration
memories config create
# Add your photos to ./photos directory
mkdir photos
cp ~/Pictures/*.jpg photos/
# Generate video
memories create
Output: output/memories_video.mp4
2. With AI Music.
Edit config.json:
{
"art_dir": "./photos",
"output_dir": "./output",
"generate_music": true,
"music_prompt": "uplifting piano melody, emotional strings, cinematic",
"music_model": "small"
}
memories create
3. Command Line Options
# Custom paths
memories create --input ./vacation --output ./videos
# Custom music
memories create --music ./my-song.mp3
# Different transition
memories create --transition ken_burns
# Generate music only
memories music "epic orchestral" --duration 120
# List slides
memories list
# Fix rotations
memories fix 8:180 12:90
# Replace audio
memories audio --file new-music.mp3
๐ Python API
Basic Usage
from memories_creator import MemoriesCreator, Config
# Load configuration
config = Config.from_file('config.json')
# Create video
creator = MemoriesCreator(config)
creator.create_video()
Generate Music
from memories_creator import MusicGenerator
# Create generator
generator = MusicGenerator(model_name='small')
# Generate soundtrack
music_path = generator.generate(
prompt="peaceful piano with gentle strings",
duration=120,
output_path="output.wav"
)
Batch Processing
from memories_creator import MemoriesCreator, Config
projects = ['vacation', 'wedding', 'family']
for project in projects:
config = Config()
config.set('art_dir', f'./{project}')
config.set('output_dir', f'./output/{project}')
creator = MemoriesCreator(config)
creator.create_video()
๐๏ธ Configuration
Example config.json
{
"art_dir": "./photos",
"output_dir": "./output",
"music_prompt": "nostalgic piano, gentle strings",
"generate_music": true,
"music_model": "small",
"music_seamless": true,
"music_volume": 0.3,
"max_video_size": 1920,
"fps": 30,
"seconds_per_photo": 3,
"transition_type": "ken_burns",
"transition_intensity": 0.1,
"enhance_old_photos": true,
"year_threshold": 2020,
"video_codec": "hevc_videotoolbox",
"video_quality": 23
}
Transition Types
ken_burns- Slow zoom + pan (classic)zoom_in- Smooth zoom inzoom_out- Smooth zoom outpan- Horizontal/vertical movementfade_in- Fade from blackfade_out- Fade to blackfade_cross- Crossfade between imagesdissolve- Smooth blendstatic- No movement (fast)
Music Models
small- Fast, ~1.5GB (recommended)medium- Balanced, ~3.3GBlarge- Best quality, ~6.7GBmelody- Melody conditioning
๐ป System Requirements
Minimum:
- Python 3.9+
- 8GB RAM
- macOS 12.3+ or Linux (Ubuntu 20.04+)
- FFmpeg
Recommended:
- Python 3.10+
- 16GB+ RAM
- Apple Silicon (M1/M2/M3/M4) Mac
- macOS 13+
- 20GB disk space (for AI models)
๐ Troubleshooting
MPS not available
python -c "import torch; print(torch.backends.mps.is_available())"
Update macOS to 12.3+ and PyTorch:
pip install --upgrade torch
Out of memory
Reduce max_video_size to 1280 and use transition_type: "static"
Music generation fails
Check disk space (models are 1.5-6GB): df -h
FFmpeg not found
# macOS: brew install ffmpeg
# Linux: sudo apt install ffmpeg
๐ License
CC-BY-NC-4.0 (Creative Commons Attribution-NonCommercial 4.0 International)
This project is licensed for non-commercial use only.
You are free to:
- โ Use for personal videos and memories
- โ Modify and adapt the code
- โ Share with attribution
You must:
- ๐ Give appropriate credit
- ๐ Provide a link to the license
- โ ๏ธ Not use for commercial purposes
Attribution:
Memories Creator by Eduard Emkuzhev
License: CC-BY-NC-4.0
https://github.com/kubataba/memories-creator
Full license: https://creativecommons.org/licenses/by-nc/4.0/
๐ Acknowledgments
- PyTorch - Deep learning framework
- MusicGen - AI music generation (Meta AI)
- FFmpeg - Audio/video processing
- OpenCV - Video encoding
๐ Support
- ๐ Report Issues
- ๐ฌ Discussions
- ๐ Documentation
๐ค Contributing
Contributions welcome! This project is licensed under CC-BY-NC-4.0.
git clone https://github.com/kubataba/memories-creator.git
cd memories-creator
pip install -r requirements.txt
pip install -e .
Made with โค๏ธ to keep your memories alive
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file memories_creator-1.0.0.tar.gz.
File metadata
- Download URL: memories_creator-1.0.0.tar.gz
- Upload date:
- Size: 47.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ba3d2a8301b3c1f8ce086e22d9f11780dbb5df0aae6f843987a4a84bda1c672
|
|
| MD5 |
e5284adc499c64c3155c10cf6d33bac5
|
|
| BLAKE2b-256 |
c81832ce19257822cb6a94f176a04be173a441ee315e82aafda8b78c82bb6273
|
File details
Details for the file memories_creator-1.0.0-py3-none-any.whl.
File metadata
- Download URL: memories_creator-1.0.0-py3-none-any.whl
- Upload date:
- Size: 48.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0c028ddb9283fc4d1f0c40e2a4fcd7f38b9db803de007b804daad6bd7e88a45
|
|
| MD5 |
f24ae1205fafbc2cbd84cfd2ad173dce
|
|
| BLAKE2b-256 |
2ecfed8a5ea71d7533dbc1537b559178454b688401335fbf7dea24935c52c7e3
|