Skip to content

tvibitnmkt/PhotoBooth

 
 

Repository files navigation

PhotoBooth-MKRSHIFT

PhotoBooth-MKRSHIFT is a JavaScript-first photo booth stack that pairs a Node.js server with a Three.js web UI and ComfyUI workflows. Styles and prompts live in workflow JSON files, and the UI consumes them through a simple JSON API.

Repository layout

PhotoBooth-MKRSHIFT/
├── js_app/        # Node.js API server + ComfyUI client
├── web_ui/        # Three.js photo booth UI (served by js_app)
├── workflows/     # ComfyUI workflow JSON files (style prompts live here)
├── gallery/       # Generated image output (if enabled)
└── README.md      # Project documentation

Legacy Python folders remain for historical reference, but the active stack is the JavaScript app in js_app/.

Quick start

1) Install dependencies

npm install
cd js_app
npm install

2) Run the server

cd js_app
npm run start:web

The server starts on http://localhost:8080 and serves the Three.js UI from web_ui/.

Electron app

Launch the Electron shell, which will auto-install js_app dependencies and check for updates from git@github.com:criskb/PhotoBooth-MKRSHIFT.git before starting the local server:

npm run start:desktop

Installer scripts

Use the helper scripts to install Node dependencies on each platform:

./scripts/install-macos.sh
.\scripts\install-windows.ps1

Build desktop installers

Generate platform installers with Electron Builder (the icon files are generated automatically):

npm run build:mac
npm run build:win

Artifacts are written to dist/. On macOS, drag PhotoBooth.app to the Applications folder so it appears in the Dock. Supply a 1024x1024 assets/icon.png before building to customize the app icon.

Configuring styles

Each workflow JSON inside workflows/ contains its own prompt text and settings. To add a new style, drop a workflow JSON file into the folder. The API exposes the style list at:

GET /api/styles

ComfyUI runtime notes

Start ComfyUI with preview updates enabled so the UI can show sampling progress:

python main.py --preview-method taesd

If you want automatic selection:

python main.py --preview-method auto

Container TTY requirements

Some ComfyUI samplers expect a TTY. If you run in Docker, allocate a TTY (for example, docker run -it ...) so progress output does not stall.

Proxy timeouts

Long-running image generations can exceed reverse-proxy defaults. Increase proxy timeout values (for example, proxy_read_timeout/proxy_send_timeout in Nginx) if you see 504s while jobs are still running.

Legacy Python notes

The previous Python implementation is deprecated and retained only for reference.

About

Tvibit Makerspace - Photobooth

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 81.1%
  • CSS 17.2%
  • HTML 1.1%
  • Other 0.6%