onnx-modifier  by ZhangGe6

ONNX model editor with visual interface

Created 3 years ago
1,554 stars

Top 26.8% on SourcePulse

GitHubView on GitHub
Project Summary

This tool provides a visual interface for modifying ONNX models, aimed at researchers and developers who find the iterative process of coding edits and visualizing changes in ONNX models time-consuming. It streamlines the workflow by allowing direct manipulation of the model graph within a web browser, automatically translating visual edits into ONNX Python API operations.

How It Works

Leveraging Netron for visualization and Flask for the web framework, onnx-modifier enables users to perform various graph-level and node-level operations. Users can delete nodes (with or without children), add new nodes from a comprehensive operator list, rename inputs/outputs, add new model inputs/outputs, edit node attributes, and modify model input shapes. Edits are previewed in real-time, and the modified model can be downloaded, optionally with shape inference and unused element cleanup.

Quick Start & Requirements

  • Install: pip install onnx-modifier or clone the repository and run python entry.py. An executable .exe is available for Windows.
  • Prerequisites: Python, Flask, ONNX, Netron.
  • Links: Official Docs, Sample Models

Highlighted Details

  • Supports visual editing of node attributes, model initializers (including loading from .npy files), and model input shapes.
  • Features "Delete With Children" node deletion using backtracking and allows adding new nodes with input/output connections.
  • Experimental shape inference and cleanup functionalities are available upon download.
  • Enables renaming of node and model inputs/outputs, and adding new model outputs from intermediate nodes.

Maintenance & Community

The project is under active development, welcoming issues and pull requests.

Licensing & Compatibility

The repository does not explicitly state a license in the README.

Limitations & Caveats

Executable files for platforms other than Windows are not yet supported. Some features, like adding new nodes and shape inference, are marked as experimental. The input/output list for nodes is currently limited to 8 elements.

Health Check
Last Commit

6 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
9 stars in the last 30 days

Explore Similar Projects

Starred by Jared Palmer Jared Palmer(Ex-VP AI at Vercel; Founder of Turborepo; Author of Formik, TSDX), Søren Bramer Schmidt Søren Bramer Schmidt(Cofounder of Prisma), and
1 more.

opendream by varunshenoy

0%
2k
Web UI for diffusion model workflows
Created 2 years ago
Updated 2 years ago
Feedback? Help us improve.