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!