Jyangwakeup/GNN_Final_Project_Mural_Restoration

0

stars

3

commits

Python

primary language

Mar 30, 2026

updated

README

GNN-inpaint: Multi-Method Mural Inpainting Workspace

This repository is a single workspace that combines multiple mural inpainting pipelines:

  • VAE mask generation
  • PowerPaint + ControlNet
  • Anyline preprocessing + MuralNet
  • DeepFill
  • LaMa
  • Evaluation/comparison

The goal is to keep one shared data convention and evaluate all methods with the same inputs.

1. Repository Layout

GNN-inpaint/
├── Data/                               # Shared data root for all projects
│   ├── Mural_seg_processed/
│   │   ├── train/
│   │   │   ├── images/
│   │   │   └── labels/
│   │   ├── val/
│   │   │   ├── images/
│   │   │   └── labels/
│   │   └── test/
│   │       ├── images/
│   │       └── labels/
│   ├── MuralRealistic/
│   │   ├── original_images/
│   │   ├── masks/
│   │   ├── edges/
│   │   ├── damaged_albedo_dark/
│   │   ├── white_block_damaged/
│   │   ├── anyline-damaged/
│   │   └── anyline-white/
│   └── VAE_generated_masks/
├── GNN-anyline/
├── GNN-deepfill/
├── GNN-evaluation/
├── GNN-Lama/
├── GNN-muralnet/
├── GNN-powerpaint+controlnet/
└── GNN-VAE/

2. Data Directory Explained (Whole Project)

Data/ is the shared dataset root for all subprojects. Treat it as the canonical source of truth.

2.1 Data/Mural_seg_processed/

Use for training/validation/testing where split-based data is required.

  • train/images, val/images, test/images: input images.
  • train/labels, val/labels, test/labels: mask/label targets used by mask-related training (for example VAE mask learning).

Used by:

  • GNN-VAE/ for mask learning (VAE_learn_mask.ipynb).
  • Any training scripts that need split-based supervised data.

2.2 Data/MuralRealistic/

Use for realistic restoration/inference/evaluation scenarios.

  • original_images/: source mural images.
  • masks/: binary masks for inpainting.
  • edges/: edge/line hints.
  • damaged_albedo_dark/, white_block_damaged/: damaged input variants.
  • anyline-damaged/, anyline-white/: Anyline-derived guidance.

Used by:

  • GNN-anyline/ preprocessing flow.
  • Inference pipelines in DeepFill / MuralNet / LaMa / PowerPaint (depending on each script config).
  • GNN-evaluation/ for cross-method comparison on consistent samples.

2.3 Data/VAE_generated_masks/

Use for generated masks exported from VAE and reused by other methods.

Used by:

  • GNN-VAE/ as output target directory.
  • Other model pipelines when synthetic mask augmentation is needed.

3. Subproject Responsibilities

  • GNN-anyline/: generate/prepare line guidance and related assets.
  • GNN-VAE/: train VAE mask generator and export mask sets.
  • GNN-deepfill/: train/test DeepFill and produce inpainting outputs.
  • GNN-muralnet/: run MuralNet training/inference and checkpoints.
  • GNN-Lama/: run LaMa pipeline and metric scripts.
  • GNN-powerpaint+controlnet/: run PowerPaint + ControlNet experiments.
  • GNN-evaluation/: gather all methods' outputs and run comparisons.

4. End-to-End Usage (All Projects)

  1. Prepare shared datasets under Data/.
  2. Optionally run GNN-anyline/scripts/ to generate line guidance.
  3. Optionally run GNN-VAE/ to generate extra masks and store them under Data/VAE_generated_masks/.
  4. Run each inpainting method in its own folder:
    • GNN-deepfill/
    • GNN-muralnet/
    • GNN-Lama/
    • GNN-powerpaint+controlnet/
  5. Copy/organize outputs into GNN-evaluation/ structure.
  6. Run evaluation scripts in GNN-evaluation/scripts/.

5. Environment Management

Use separate environments per method to avoid dependency conflicts.

  • GNN-anyline/.venv
  • GNN-deepfill/venv (or .venv)
  • GNN-muralnet/.venv
  • GNN-Lama/.venv
  • GNN-powerpaint+controlnet/.venv

6. GitHub Tracking and Ignore Policy

This repository should track code and configs, but not large data/results/models.

Track in Git:

  • Python source code and scripts.
  • Configuration files.
  • Documentation and lightweight notebooks.

Ignore in Git (already covered in root .gitignore):

  • Entire shared data root: Data/.
  • Model/checkpoint files: *.pth, *.pt, *.ckpt, *.safetensors, *.bin, *.onnx.
  • Generated outputs in GNN-evaluation/*-result/, comparison folders, and method result folders.
  • Virtual environments and caches.
  • Large archives (*.zip, *.rar, *.tar, *.gz, *.7z).

7. Quick Start

cd GNN-inpaint

# Example: VAE workflow
cd GNN-VAE
jupyter notebook VAE_learn_mask.ipynb

For each model, run commands from that subproject's README or entry script.

Contributors

Jyangwakeup

3 commits

Jyangwakeup/GNN_Final_Project_Mural_Restoration

0

stars

3

commits

Python

primary language

Mar 30, 2026

updated

README

GNN-inpaint: Multi-Method Mural Inpainting Workspace

This repository is a single workspace that combines multiple mural inpainting pipelines:

  • VAE mask generation
  • PowerPaint + ControlNet
  • Anyline preprocessing + MuralNet
  • DeepFill
  • LaMa
  • Evaluation/comparison

The goal is to keep one shared data convention and evaluate all methods with the same inputs.

1. Repository Layout

GNN-inpaint/
├── Data/                               # Shared data root for all projects
│   ├── Mural_seg_processed/
│   │   ├── train/
│   │   │   ├── images/
│   │   │   └── labels/
│   │   ├── val/
│   │   │   ├── images/
│   │   │   └── labels/
│   │   └── test/
│   │       ├── images/
│   │       └── labels/
│   ├── MuralRealistic/
│   │   ├── original_images/
│   │   ├── masks/
│   │   ├── edges/
│   │   ├── damaged_albedo_dark/
│   │   ├── white_block_damaged/
│   │   ├── anyline-damaged/
│   │   └── anyline-white/
│   └── VAE_generated_masks/
├── GNN-anyline/
├── GNN-deepfill/
├── GNN-evaluation/
├── GNN-Lama/
├── GNN-muralnet/
├── GNN-powerpaint+controlnet/
└── GNN-VAE/

2. Data Directory Explained (Whole Project)

Data/ is the shared dataset root for all subprojects. Treat it as the canonical source of truth.

2.1 Data/Mural_seg_processed/

Use for training/validation/testing where split-based data is required.

  • train/images, val/images, test/images: input images.
  • train/labels, val/labels, test/labels: mask/label targets used by mask-related training (for example VAE mask learning).

Used by:

  • GNN-VAE/ for mask learning (VAE_learn_mask.ipynb).
  • Any training scripts that need split-based supervised data.

2.2 Data/MuralRealistic/

Use for realistic restoration/inference/evaluation scenarios.

  • original_images/: source mural images.
  • masks/: binary masks for inpainting.
  • edges/: edge/line hints.
  • damaged_albedo_dark/, white_block_damaged/: damaged input variants.
  • anyline-damaged/, anyline-white/: Anyline-derived guidance.

Used by:

  • GNN-anyline/ preprocessing flow.
  • Inference pipelines in DeepFill / MuralNet / LaMa / PowerPaint (depending on each script config).
  • GNN-evaluation/ for cross-method comparison on consistent samples.

2.3 Data/VAE_generated_masks/

Use for generated masks exported from VAE and reused by other methods.

Used by:

  • GNN-VAE/ as output target directory.
  • Other model pipelines when synthetic mask augmentation is needed.

3. Subproject Responsibilities

  • GNN-anyline/: generate/prepare line guidance and related assets.
  • GNN-VAE/: train VAE mask generator and export mask sets.
  • GNN-deepfill/: train/test DeepFill and produce inpainting outputs.
  • GNN-muralnet/: run MuralNet training/inference and checkpoints.
  • GNN-Lama/: run LaMa pipeline and metric scripts.
  • GNN-powerpaint+controlnet/: run PowerPaint + ControlNet experiments.
  • GNN-evaluation/: gather all methods' outputs and run comparisons.

4. End-to-End Usage (All Projects)

  1. Prepare shared datasets under Data/.
  2. Optionally run GNN-anyline/scripts/ to generate line guidance.
  3. Optionally run GNN-VAE/ to generate extra masks and store them under Data/VAE_generated_masks/.
  4. Run each inpainting method in its own folder:
    • GNN-deepfill/
    • GNN-muralnet/
    • GNN-Lama/
    • GNN-powerpaint+controlnet/
  5. Copy/organize outputs into GNN-evaluation/ structure.
  6. Run evaluation scripts in GNN-evaluation/scripts/.

5. Environment Management

Use separate environments per method to avoid dependency conflicts.

  • GNN-anyline/.venv
  • GNN-deepfill/venv (or .venv)
  • GNN-muralnet/.venv
  • GNN-Lama/.venv
  • GNN-powerpaint+controlnet/.venv

6. GitHub Tracking and Ignore Policy

This repository should track code and configs, but not large data/results/models.

Track in Git:

  • Python source code and scripts.
  • Configuration files.
  • Documentation and lightweight notebooks.

Ignore in Git (already covered in root .gitignore):

  • Entire shared data root: Data/.
  • Model/checkpoint files: *.pth, *.pt, *.ckpt, *.safetensors, *.bin, *.onnx.
  • Generated outputs in GNN-evaluation/*-result/, comparison folders, and method result folders.
  • Virtual environments and caches.
  • Large archives (*.zip, *.rar, *.tar, *.gz, *.7z).

7. Quick Start

cd GNN-inpaint

# Example: VAE workflow
cd GNN-VAE
jupyter notebook VAE_learn_mask.ipynb

For each model, run commands from that subproject's README or entry script.

Contributors

Jyangwakeup

3 commits

Languages

Python

54.2%

Jupyter Notebook

45.6%