If you’ve already gotten comfortable with the basics from Raspberry Pi for beginners, a DIY photobooth is one of the most fun, genuinely useful projects you can build next. Instead of blinking an LED, you end up with a real, self-hosted photobooth that could run at an actual birthday party, wedding, or company event.
A Raspberry Pi DIY photobooth is a self-hosted photobooth application that captures photos at events, applies decorative themes, and displays them in real time on a second screen for guests to enjoy. It’s built specifically with the Raspberry Pi and its camera module in mind, but it also runs on any computer with a webcam — so you can build and test it on a laptop before deploying it to a Pi for the actual event.
This guide walks through what this photobooth project actually does, the hardware and software it needs, how to set it up, and a few tips for running it smoothly on event day.
What Is a Raspberry Pi DIY Photobooth?
This particular project (available on GitHub) is a self-hosted photobooth web application built with Python and Flask. Guests can see a live camera preview, trigger a countdown, and get a themed photo — all through a browser-based interface, with results displayed live on a secondary screen for everyone at the event to see.
Key Features
The project packs in a genuinely impressive set of features for a DIY build:
- Live camera preview streamed to the browser via MJPEG
- Countdown capture with a 3-second timer before each photo
- Background replacement, using either a green screen or AI-powered background removal (
rembg) - Photo frame themes, including polaroid, birthday, and vintage styles
- Event management, organizing separate photobooth sessions with their own private gallery links
- Cloud or local storage, saving photos locally or uploading them to Cloudflare R2
- A live show display — a full-screen, auto-cycling scrapbook grid that updates with new photos as they’re taken
- QR code generation, so guests can instantly pull up the event gallery on their own phones
- An admin panel for browser-based configuration, no command line required once it’s running
What You’ll Need
Hardware
- A Raspberry Pi with a camera module — the primary, intended setup for event use.
- A webcam or laptop camera — works fine for development and testing before deploying to the Pi.
- An optional momentary push button, wired to GPIO pin 17, for a satisfying physical “press to take a photo” experience instead of clicking a screen.
Software
- Python 3.11 or higher
- Flask, the web framework the app is built on
uv, used as the project’s package manager — if you’re not familiar with it yet, this uv guide covers the basicspicamera2, for native Raspberry Pi camera support- OpenCV (
cv2), as a webcam fallback for non-Pi development rembg, for AI-powered background removal- SQLite, used to associate photos with specific events
How to Set Up the Photobooth
- Clone the repository from GitHub onto your Raspberry Pi or development machine.
- Install
uvif you haven’t already, following the official installation steps. - Sync the project’s dependencies with
uv sync, which installs Flask, OpenCV,rembg, and everything else the project needs. - Connect your camera — the Pi camera module for a real deployment, or a webcam for local testing.
- Run the application using
uv run, then open the app in a browser on the same network to see the live camera preview. - Wire up the optional GPIO button on pin 17 if you want a physical capture trigger instead of clicking through the browser.
Check the project’s own README on GitHub for the exact run command and any configuration specific to your setup — hardware and camera options can vary slightly between a Raspberry Pi and a standard webcam.
Event Day Tips
A few things make the photobooth experience noticeably smoother when it’s actually running at an event:
- Use the GPIO button for a more tactile, arcade-like experience — guests press a real button instead of tapping a touchscreen.
- Display the live show grid on a second screen or TV. The auto-cycling scrapbook layout keeps the energy up by showing new photos as they come in.
- Generate a QR code per event so guests can pull up their photos instantly on their own phones without asking anyone for a link.
- Test your lighting and background setup ahead of time, especially if you’re using the green screen or AI background removal — both work best with consistent, even lighting.
- Decide on storage in advance. Local storage is simpler for a one-off event, while Cloudflare R2 makes sense if you want photos accessible after the event ends.
Conclusion
A Raspberry Pi DIY photobooth turns a small single-board computer into a genuinely fun, fully self-hosted event photobooth — complete with live preview, themed photo frames, background removal, and a live slideshow display, all running on hardware that costs a fraction of renting a commercial photobooth.
Whether you’re building this for your own event or as a hands-on Raspberry Pi project to sharpen your Python and Flask skills, the photobooth project on GitHub gives you a complete, real-world application to learn from — camera handling, a Flask web interface, GPIO input, and cloud storage, all in one build. Start with a webcam on your laptop to get familiar with the app, then move it over to a Raspberry Pi once you’re ready to bring it to a real event.