Instructions to use EditPPT/editppt-vision-validator-lora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use EditPPT/editppt-vision-validator-lora with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3.5-9B") model = PeftModel.from_pretrained(base_model, "EditPPT/editppt-vision-validator-lora") - Notebooks
- Google Colab
- Kaggle
|
Download README.md from EditPPT/editppt-vision-validator-lora: direct link, hf CLI and curl.
- Browser
- Download file 2.21 kB
-
https://huggingface.co/EditPPT/editppt-vision-validator-lora/resolve/main/README.md
- Command line
-
hf download hf://EditPPT/editppt-vision-validator-lora/README.md
-
curl -L -o README.md https://huggingface.co/EditPPT/editppt-vision-validator-lora/resolve/main/README.md
2.21 kB
| base_model: Qwen/Qwen3.5-9B | |
| library_name: peft | |
| license: apache-2.0 | |
| pipeline_tag: image-text-to-text | |
| tags: | |
| - lora | |
| - peft | |
| - presentation | |
| - slide-editing | |
| - visual-qa | |
| # EditPPT Vision Validator (LoRA on Qwen3.5-9B) | |
| A LoRA adapter that checks whether an edit to a PowerPoint slide **newly introduced a severe visual defect**, | |
| and if so, returns a repair as tool calls — in one generation. It serves as the vision validator of EditPPT. | |
| Given the slide rendered **before** and **after** an edit, plus the edit instruction, the tool calls that made the | |
| edit and the slide's shape JSON, the model returns: | |
| ```json | |
| {"HasCriticalIssues": "Yes", | |
| "Issues": [{"IssueType": "ELEMENT_OVERLAP", "AffectedShapeIDs": [2], | |
| "TechnicalDiagnosis": "textbox 2 overlaps the caption below it by about 20 pt"}], | |
| "ToolCalls": [{"name": "adjust_layout", "arguments": {"slide_number": 3, "shape_id": 2, "top": 470}}]} | |
| ``` | |
| * **Defect types:** `CONTENT_OFF_SLIDE`, `ELEMENT_OVERLAP`, `LOW_CONTRAST`. | |
| * **Repair tools:** `set_shape_font_size`, `adjust_layout`, `set_text_style`. Values are absolute targets in slide points. | |
| * Defects already present in the BEFORE image are treated as the deck's own design and are not reported. | |
| ## Usage | |
| See `inference_example.py` and `prompt_template.txt`. | |
| * Message order: `[image BEFORE, image AFTER, prompt text]`. | |
| * Images: 960x540 (`min_pixels = max_pixels = 960*540`). One slide point = one pixel for a 16:9 deck. | |
| * Greedy decoding, default chat template. | |
| ## Training | |
| | | | | |
| |---|---| | |
| | Base | Qwen3.5-9B, bf16 | | |
| | Adapter | LoRA, r 16, alpha 32, on the language model and the vision encoder | | |
| | Data | 7,260 training samples (plus 374 for validation) with human-confirmed labels, from publicly licensed decks (CC0 / CC-BY) | | |
| ## Evaluation | |
| Held-out set of 750 samples from decks not seen in training: | |
| | Metric | Value | | |
| |---|---| | |
| | Verdict accuracy, edits without a repair (n=497) | 0.932 (base model: 0.60) | | |
| | Verdict accuracy, all 750 samples | 0.955 | | |
| | Defect precision / recall / F1, all 750 samples | 0.963 / 0.954 / 0.959 | | |
| | Repair targets the right shapes with a permitted tool, all 750 samples | 0.948 | | |
| ## License | |
| Apache-2.0, following the base model. | |