| # π§ Project Context: ID Maker Studio (EL HELAL Pipeline) |
|
|
| This document provides a high-level overview of the project's intent, architecture, and critical technical state for developers and AI agents. |
|
|
| --- |
|
|
| ## π― Project Intent |
| **ID Maker Studio** is a professional-grade image processing pipeline designed for **EL HELAL Studio**. Its primary goal is to automate the conversion of raw student portraits into high-resolution (300 DPI), print-ready ID sheets. |
|
|
| The system handles everything from blemish removal and color grading to complex Arabic typography and branding. |
|
|
| --- |
|
|
| ## π High-Level Architecture |
|
|
| The project is strictly modular, separating core business logic from user interfaces. |
|
|
| ### 1. The Brain (`/core`) |
| - **Pipeline Orchestration:** Sequentially runs 5 critical steps. |
| - **AI Logic:** |
| - **Crop:** OpenCV-based face detection (5:7 ratio). |
| - **Background Removal:** BiRefNet (RMBG-2.0) running on CPU (quantized). |
| - **Retouching:** MediaPipe Face Mesh + Frequency Separation (preserves 100% skin texture). |
| - **Color Steal:** Custom algorithm to learn and apply professional color curves. |
| - **Layout Engine:** Composite engine using Pillow. Handles complex Arabic script via manual shaping and reordering. |
|
|
| ### 2. The Interfaces |
| - **Web Interface (`/web`):** The primary production tool. Built with FastAPI and a localized Arabic (RTL) frontend. |
| - **3-Column Layout:** Queue (Right) β Preview (Center) β Options & Settings (Left). |
| - **Dark/Light Theme:** Toggleable via header button, persisted in localStorage. |
| - **Batch Processing Counter:** Shows `1/5`, `2/5`... overlay with dim background during batch processing. |
| - **Per-Image Delete:** Hover delete button on each queue item. |
| - **Settings API:** Real-time slider-based tuning of retouch sensitivity, skin smoothing, font sizes β saved to `config/settings.json`. |
| - **Keyboard Shortcuts:** Arrow navigation, Delete, Enter (save & next), Ctrl+S (process), Escape. |
| - **Before/After Toggle:** Quick comparison between original and processed result. |
| - **Zoom Modal:** Scroll-wheel zoom for detailed inspection. |
| - **Mobile Drawer:** Responsive drawer for queue on mobile devices. |
| - **Desktop GUI (`/gui`):** Legacy Tkinter application for offline machine usage. |
|
|
| ### 3. Data & Config |
| - **`/storage`:** Managed directory for uploads, processing, and results. |
| - **`/config`:** Centralized `settings.json` for real-time layout tuning (DPI, margins, font sizes). |
| - **`/assets`:** Branding marks and font files. |
|
|
| --- |
|
|
| ## π Deployment & Environment |
|
|
| - **Infrastructure:** Optimized for **Docker** and **Hugging Face Spaces**. |
| - **Hardware Context:** Targeted for **2 CPUs / 16GB RAM**. |
| - RAM allows for large image buffers. |
| - CPU is the bottleneck; inference is sequential and quantized. |
| - **Binary Management:** Uses a hybrid approach. Smaller assets in Git; critical fonts are **automatically downloaded from GitHub** during Docker build to bypass Git LFS issues. |
|
|
| --- |
|
|
| ## β οΈ Critical Technical "Gotchas" |
|
|
| - **Arabic Rendering:** In the container environment (standard LTR), Arabic is rendered by: |
| 1. Reshaping characters (connecting letters). |
| 2. **Manually reversing** the string characters to ensure correct visual flow without requiring `libraqm`. |
| - **MediaPipe Stability:** Explicitly imports submodules and includes safety checks to skip retouching if binary dependencies fail to initialize. |
| - **Transformers Monkeypatch:** Contains deep patches in `process_images.py` to handle `transformers 4.50+` tied-weight and meta-tensor bugs on CPU. |
| - **Dynamic Config:** `layout_engine.py` reloads `settings.json` on every request to allow "live" tuning of the output. |
|
|
| --- |
|
|
| ## π Quick File Map |
| - `web/server.py`: FastAPI entry point. Includes Settings API (`GET/POST /settings`). |
| - `web/web_storage/index.html`: 3-column RTL frontend (Queue | Preview | Options). |
| - `core/layout_engine.py`: Final sheet composition logic. |
| - `core/retouch.py`: Advanced skin processing. |
| - `config/settings.json`: Live-reloadable settings (retouch sensitivity, font sizes, etc.). |
| - `Dockerfile`: Production environment definition. |
| - `tools/problems.md`: Historical log of technical hurdles and fixes. |
|
|
| --- |
|
|
| *Last Updated: February 2026 β Web UI v2 (3-Column Layout, Batch Counter, Theme Toggle)* |
|
|