Loading repository data…
Loading repository data…
BIT-DataLab / repository
Edit Banana: A framework for converting statistical formats into editable.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
[!WARNING] Please note: Our GitHub repository currently trails behind our web-based service. For the most up-to-date features and performance, we recommend using our web platform.
Welcome to join our WeChat group to discuss and exchange ideas! Scan the QR code below to join:
[!TIP] If the QR code has expired, please submit an Issue to request an updated one.
Professor · Doctoral Supervisor
Database Systems Uncertain Data Management Multimedia Data Management Distributed Query Processing
Professor · Doctoral Supervisor
Big Data Management Graph Data Management Spatio-temporal Data Distributed Computing
Associate Professor · Doctoral Supervisor
Data-centric AI Large Language Models Data Lakes Database Systems
For academic cooperation, technical docking, commercial licensing, project customization and other business inquiries, please contact us via email:
E-mail: ccl@bit.edu.cn
To demonstrate the high-fidelity conversion effect, we provides one-to-one comparisons between 4 scenarios of "original static formats" and "editable reconstruction results". All elements can be individually dragged, styled, and modified.
| 🔒 Original Static Diagram (Input · Non-editable) | 🔓 DrawIO Reconstruction Result (Output · Fully Editable) |
|---|---|
| Example 1: Basic Flowchart | ✨ Editable Flowchart |
| Example 2: Multi-level Architecture | ✨ Editable Architecture |
| Example 3: Technical Schematic | ✨ Editable Schematic |
| Example 4: Scientific Formula | ✨ Editable Formula |
✨ Save locally
[!NOTE] ✨ Conversion Highlights:
- Preserves the layout logic, color matching, and element hierarchy of the original diagram.
- 1:1 restoration of shape stroke/fill and arrow styles (dashed lines/thickness).
- Accurate text recognition, supporting direct subsequent editing and format adjustment.
- All elements are independently selectable, supporting native DrawIO template replacement and layout optimization.
Advanced Segmentation: Using our fine-tuned SAM 3 (Segment Anything Model 3) for segmentation of diagram elements.
Fixed Multi-Round VLM Scanning: An extraction process guided by Multimodal LLMs.
Text Recognition:
User System:
Edit-Banana/
├── config/ # Configuration files (copy config.yaml.example → config.yaml)
├── flowchart_text/ # OCR & Text Extraction Module (standalone entry)
│ ├── src/
│ └── main.py # OCR-only entry point
├── input/ # [Manual] Input images directory
├── models/ # [Manual] Model weights (SAM3) and optional BPE vocab
├── output/ # [Manual] Results directory
├── sam3/ # SAM3 library (see Installation: install from facebookresearch/sam3)
├── sam3_service/ # SAM3 HTTP service (optional, for multi-process deployment)
├── scripts/ # Setup and utility scripts
│ ├── setup_sam3.sh # Install SAM3 lib and copy BPE to models/
│ ├── setup_rmbg.py # Download RMBG model from ModelScope
│ └── merge_xml.py # XML merge utilities
├── main.py # CLI entry (modular pipeline)
├── server_pa.py # FastAPI backend server
└── requirements.txt # Python dependencies
Follow these core phases to set up the project locally.
Configure your base environment and directory structure.
Python 3.10+** & CUDA-capable GPU (Highly recommended)
Install PyTorch with CUDA support (e.g., for CUDA 11.8):
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
git clone https://github.com/BIT-DataLab/Edit-Banana.git
cd Edit-Banana
mkdir -p input output sam3_output
Next, install the required packages and download necessary model weights (which should be placed in models/ and not committed).
pip install -r requirements.txt
SAM3 Library & BPE:
Run bash scripts/setup_sam3.shto install the lib and copy the BPE vocab to models/.
Verify with:
python -c "from sam3.model_builder import build_sam3_image_model; print('OK')"
SAM3 Weights: Download sam3.pt from ModelScope or Hugging Face and place it under models/sam3_ms.
Text Local OCR (Tesseract):
sudo apt install tesseract-ocr tesseract-ocr-chi-sim
PaddleOCR (Alternative/Better for mixed text): Use paddlepaddle==3.2.2 (avoiding 3.3.0 bug).
pip install paddlepaddle==3.2.2 paddleocr.
Formula (Pix2Text):
pip install pix2text onnxruntime-gpu.
Background Removal (RMBG): pip install onnxruntime modelscope then run python scripts/setup_rmbg.py.
Copy the example config and adjust the asset paths:
cp config/config.yaml.example config/config.yaml
Edit config.yaml to ensure sam3.checkpoint_path and sam3.bpe_path match your models/ locations.
Checklist:
config.yamlsam3.pt) and BPE vocab placed under models/scripts/setup_sam3.sh
Tesseract or PaddleOCR installedCommon Issues: