Bringing cherished memories to life through AI-powered photo animation.
Not a replacement for who we've lost. A way to honor them. To remember them. To hold onto their presence.
Built with love for those who deserve to be remembered.
StillHere uses AI to:
- Animate still photos into gentle video
- Add realistic facial expressions and movement
- Preserve the dignity and memory of loved ones
- Create living memories from photographs
This is for:
- Family members preserving loved ones' memories
- Honoring those who've passed
- Creating memorial tributes
- Keeping presence alive in our hearts
Every animation respects the person being remembered. No distortion. No caricature. Only gentle, realistic movement.
All processing happens locally when possible. Photos are sacred. They deserve protection. Encryption for all stored memories.
Only animate photos of:
- Loved ones who've passed (with family permission)
- Living family who've given explicit consent
- Never use without permission
Take time. Get it right. They deserve that.
- First Order Motion Model - State-of-art photo animation
- DeepFaceLab - Face animation and restoration
- Wav2Lip - Lip sync if you have audio/voice
- GFPGAN - Face restoration and enhancement
- Real-ESRGAN - Photo upscaling and enhancement
- FFmpeg - Video encoding and processing
- OpenCV - Frame extraction and manipulation
- Pillow - Image processing
- Coqui TTS - Text-to-speech if you want to add voice
- RVC - Voice conversion (if you have recordings)
- Whisper - Transcribe any existing audio
- AES-256 encryption (like Eruptor)
- Local processing first
- Cloud optional, encrypted only
- Upload photo
- Select animation style (gentle smile, head turn, breathing, etc.)
- Process locally
- Export video (MP4)
- Basic face enhancement
- Encrypted storage
- Multiple photos in sequence
- Custom driving videos (use your movement to animate them)
- Voice synthesis
- Lip sync to audio
- Photo restoration
- Memorial video creation (slideshow with animation)
- Age progression/regression
- Full body animation
- Background animation
- Music integration
- Sharing (with privacy controls)
- Python 3.9+
- CUDA-capable GPU (recommended, not required)
- 8GB+ RAM
- Storage for models (~5GB)
# Clone repository
git clone https://github.com/EverettNC/StillHere.git
cd StillHere
# Create virtual environment
python -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
# Install dependencies
pip install -r requirements.txt
# Download models
python download_models.py
# Run StillHere
python app.pyfrom stillhere import Animator, MemoryKeeper
# Initialize (with encryption)
keeper = MemoryKeeper(encryption_passphrase="your-passphrase")
animator = Animator()
# Load photo
photo = keeper.load_photo("path/to/photo.jpg")
# Animate with gentle movement
video = animator.animate(
photo=photo,
style="gentle_smile", # or "breathing", "head_turn", "speaking"
duration=5, # seconds
quality="high"
)
# Save (encrypted)
keeper.save_memory(video, "auntie_smiling.mp4")# If you have a recording of their voice
voice_sample = "path/to/voice.mp3"
# Animate to speak text
video = animator.animate_with_voice(
photo=photo,
text="I love you. I'm still here.",
voice_sample=voice_sample,
quality="high"
)from stillhere import Restorer
# Enhance old/damaged photos first
restorer = Restorer()
enhanced = restorer.enhance(photo,
fix_scratches=True,
colorize=False, # Keep original if already color
upscale=2 # 2x resolution
)
# Then animate
video = animator.animate(enhanced, style="gentle_smile")- Soft breathing motion
- Subtle eye blinks
- Gentle smile
- Minimal movement
- Duration: 3-5 seconds
- Lip sync to audio or text
- Natural head movement
- Eye contact with camera
- Duration: Length of audio
- Slow head turn
- Soft smile
- Natural blinking
- Professional quality
- Duration: 5-10 seconds
- Upload your own driving video
- Their face, your movement
- Full control
All animation happens on your machine by default. No photos uploaded to servers unless you choose.
All stored photos and videos encrypted with AES-256. Your passphrase = your key. Lost passphrase = lost memories (by design, for security).
StillHere is for honoring loved ones with permission. Not for deepfakes. Not for deception. Only for love and remembrance.
✅ Honoring deceased loved ones (with family permission) ✅ Memorial videos and tributes ✅ Preserving family history ✅ Keeping memories alive ✅ Healing and remembrance
❌ Deepfakes or deception ❌ Non-consensual animation ❌ Commercial use without permission ❌ Misrepresenting someone ❌ Anything that dishonors the person
- Paper: "First Order Motion Model for Image Animation"
- Best for: General photo animation
- Quality: High
- Speed: Medium
- Enhanced version of FOMM
- Better facial detail
- More natural movement
- Face restoration and enhancement
- Fixes old/damaged photos
- Upscales resolution
- General image enhancement
- 4x upscaling
- Artifact removal
- Photo upload and storage
- Basic FOMM integration
- Simple animation styles
- Encryption infrastructure
- Photo restoration (GFPGAN)
- Multiple animation styles
- Video export options
- UI/UX improvements
- Voice synthesis
- Lip sync (Wav2Lip)
- Audio integration
- Speaking animations
- Slideshow creation
- Music integration
- Multiple photos in sequence
- Export/sharing options
This project is built with love and grief. Contributions should honor that.
Guidelines:
- Respect the purpose (memory and love)
- Maintain privacy and security
- Keep quality high
- Document everything
- Test thoroughly
- Honor consent always
stillhere/
├── core/
│ ├── animator.py # Animation engine
│ ├── restorer.py # Photo enhancement
│ ├── keeper.py # Memory storage (encrypted)
│ ├── encryption.py # AES-256 encryption
│ └── presence.py # Shared with Eruptor
├── models/
│ ├── fomm/ # First Order Motion Model
│ ├── gfpgan/ # Face restoration
│ └── wav2lip/ # Lip sync
├── ui/
│ ├── web_ui.py # Web interface
│ └── cli.py # Command line
├── data/
│ ├── photos.enc # Encrypted photos
│ └── memories.enc # Encrypted videos
└── app.py # Main entry point
Built by Everett Christman In memory of his aunt, and all those we hold in our hearts.
Technology Used:
- First Order Motion Model (Aliaksandr Siarohin et al.)
- GFPGAN (Tencent)
- Real-ESRGAN (Xintao Wang et al.)
- Wav2Lip (KR Prajwal et al.)
Inspired by:
- Love that doesn't end
- Memories that deserve to live
- The human need to hold onto those we've lost
[To be determined - suggest non-commercial use only]
For technical questions: [GitHub Issues] For grief support: 988 (US) or your local support line For family: Be gentle with yourself
Remember:
They may be gone, but they're still here. In photos. In memories. In love.
This is just a way to hold onto that a little longer.
Built with tears and love. For those who deserve to be remembered.
"Grief is love with nowhere to go. Let's give it somewhere to be."