ChromaFlow is a streamlined solution for automating green screen background removal and instant photo printing. Perfect for events, parties, and photoshoots!
- Take a photo with a green screen
- Image is automatically processed
- Background is replaced with your chosen scene
- Print the result instantly!
- 🎯 Automatic Processing: Smart detection and removal of green screens
- 🖼️ Custom Backgrounds: Library of scenes to replace the green screen
- ⚡ Real-time: On-the-fly processing of new photos
- 🖨️ Direct Printing: Automatic sending to configured printer
- 📊 Queue Management: Real-time status tracking of photos
- 🎨 Web Interface: User-friendly control panel
- 🔄 Hot Folder: Automatic detection of new photos
- 📱 Responsive Design: Works on desktop and tablets
Perfect for:
- 🎉 Parties and events
- 📸 Professional photoshoots
- 🎭 Photo booths with themed backgrounds
- 🎪 Event entertainment
- 🎓 Graduation ceremonies
- 💑 Weddings
- 🏢 Corporate events
- Node.js (v18+)
- Python 3.10+
- Redis
- A configured default printer
- A green screen and good lighting!
- Clone the repository:
git clone https://github.com/gallionlabs/chroma-flow.git- Install dependencies:
cd chroma-flow
npm install
cd ../processor
pip install -r requirements.txt- Start all services:
./start.sh- Access the interface: http://localhost:5173
-
Printer Configuration
- Ensure your default printer is set
- Test print quality and paper size
- Configure printer settings in
config.yml
-
Background Scenes
- Add your background images to
data/scenes - Supported formats: JPG, PNG
- Recommended resolution: 3000x2000px or higher
- Add your background images to
-
Green Screen Setup
- Use a non-reflective green screen
- Ensure even lighting
- Avoid wrinkles in the fabric
- Keep subjects 3-6 feet from the screen
-
Photo Capture
- Take photos with consistent lighting
- Ensure subjects don't wear green
- Maintain focus quality
-
Processing
- Photos in
data/images_to_processare automatically detected - Progress visible in web interface
- Failed processing is logged for review
- Photos in
-
Printing
- Preview before printing
- Adjust settings if needed
- Monitor printer status
PORT=3000
REDIS_HOST=localhost
REDIS_PORT=6379
PRINTER_NAME=default
PROCESS_TIMEOUT=30printer:
format: "4x6"
dpi: 300
color: true
quality: "high"chroma-flow/
├── frontend/ # React application
│ ├── src/ # Source files
│ └── public/ # Static assets
├── api/ # Express server
│ ├── src/ # API source files
│ └── dist/ # Compiled files
├── processor/ # Python image processor
│ ├── src/ # Processing logic
│ └── venv/ # Python virtual environment
├── data/
│ ├── images_to_process/ # Input folder
│ ├── processed_images/ # Output folder
│ ├── scenes/ # Background images
│ └── temp/ # Temporary files
└── logs/ # Application logs
-
Green Screen Detection
- Check lighting uniformity
- Verify green screen color (use RGB: 0, 255, 0)
- Clean the screen surface
- Adjust distance from subject
-
Printing Problems
- Verify printer connection
- Clear print queue if stuck
- Restart printer service
-
Performance Issues
- Monitor Redis connection
- Check disk space
- Verify CPU usage
- Clean temp folders
- Frontend:
logs/frontend.log - API:
logs/api.log - Processor:
logs/processor.log
-
Frontend (React/TypeScript)
- Real-time updates via Socket.IO
- Material UI components
- State management with React Context
- Responsive design
-
API (Node.js/Express)
- RESTful endpoints
- WebSocket support
- Queue management
- Printer interface
-
Processor (Python)
- Image processing with OpenCV
- Background removal with rembg
- File system monitoring
- Queue integration
graph LR
A[Camera] --> B[Hot Folder]
B --> C[Processor]
C --> D[Redis Queue]
D --> E[API]
E --> F[Frontend]
F --> G[Printer]
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with:
- rembg for background removal
- React for the frontend interface
- Express for the API
- Redis for queue management
- Socket.IO for real-time updates
- Material UI for UI components
- 📧 Email: support@gallionlabs.com
- 💬 Discord: Join our server
Made with ❤️ to make your events more magical!