# Screencoder ### About This is the Screencoder Project. Screencoder generates the HTML code for a website screenshot using a modular multi-agent framework. ### Project Structure - `main.py`: The main script to generate final HTML code for a single screenshot. - `UIED/`: Contains the UIED (UI Element Detection) engine for analyzing screenshots and detecting components. - `run_single.py`: Python script to run UI component detection on a single image. - `html_generator.py`: Takes the detected component data and generates a complete HTML layout with generated code for each module. - `image_replacer.py`: A script to replace placeholder divs in the final HTML with actual cropped images. - `mapping.py`: Maps the detected UIED components to logical page regions. - `requirements.txt`: Lists all the necessary Python dependencies for the project. - `doubao_api.txt`: API key file for the Doubao model (should be kept private and is included in `.gitignore`). ### Setup and Installation 1. **Clone the repository:** ```bash git clone https://github.com/JimmyZhengyz/screencoder.git cd screencoder ``` 2. **Create a virtual environment:** ```bash python3 -m venv .venv source .venv/bin/activate ``` 3. **Install dependencies:** ```bash pip install -r requirements.txt ``` 4. **Set up API Key:** - Create a file named `doubao_api.txt` in the root directory. - Paste your Doubao API key into this file. ### Usage The typical workflow is a multi-step process as follows: 1. **Initial Generation with Placeholders:** Run the Python script to generate the initial HTML code for a given screenshot. - Block Detection: ```bash python block_parsor.py ``` - Generation with Placeholders (Gray Images Blocks): ```bash python html_generator.py ``` 2. **Final HTML Code:** Run the python script to generate final HTML code with copped images from the original screenshot. - Placeholder Detection: ```bash python image_box_detection.py ``` - UI Element Detection: ```bash python UIED/run_single.py ``` - Mapping Alignment Between Placeholders and UI Elements: ```bash python mapping.py ``` - Placeholder Replacement: ```bash python image_replacer.py ``` 3. **Simple Run:** Run the python script to generate the final HTML code: ```bash python main.py ``` ### Demo To access demo, you can follow these steps: ```bash cd demo pnpm install pnpm run dev ``` Then, you can see the demo running.