Skip to main content

NozyIO

Python AI / ML pipeline visualization tool. Automatically discover your functions as pipeline nodes. Fastest way to demo your python program for customers to tweak and expand. Perfect for AI/ML engineers and designers to collaborate, turning ML components into UI nodes for easy tweaking.

It can also be used as a visual scripting tool for python.

demo: https://youtu.be/L_6kY-fhIcU

  • Automatically discover python functions as nodes with parameters typing
  • Visually pick input files, tune parameters, and preview any image input/output from the GUI
  • Save pipeline graph as json and switch between pipelines quickly
  • Export the pipeline graph as Python code
378056651-d6c5f930-cedc-426a-aaa8-11cdb92c6cd4-min

Install

In your python project root:

pip install nozyio

To start the nozyio UI:

nozyio

Usage

Super easy node define (just write a function with typing) For example:

from PIL.Image import Image

def resize_image(
    image: Image,
    width: int = 512,
    height: int = 768,
    method: Literal["stretch", "fit", "crop"],
    interpolation: str
) -> Image:
    # ...some code here...
    return image.resize((width, height), interp_method)

resize_image.NOZY_NODE_DEF = {
    "node_title": "Resize Image",
}

👇This function will be rendered as below. You can see that all args default values are populated as the input box defaults

Screenshot 2024-10-19 at 9 22 37 PM

👇Export workflow to code, preview any image input/output

378069723-64a69234-5532-43a4-b192-415317be6fcd-min

👇Automatically scan your python functions as nodes with params typing

Screenshot 2024-10-19 at 2 50 02 PM

👇Double-click canvas to search any functions in your project and add nodes

Screenshot 2024-10-19 at 10 42 41 PM

Node input types

Nozyio will automatically scan your python functions and convert them to nodes. You can define the input, output types by adding type annotations to the function parameters and return type. Params with no type annotation will become "any" type.

Python Type UI Element HTML element
int number input box <input type="number">
str text input box <textfield type="text">
Literal["abc", "xyz"] dropdown input box <select>
PIL.Image.Image image preview <img>

Input widgets - file picker

You can also add custom UI widgets to the input parameters by adding a widget field to the input definition. In below example, we use server_file_picker widget to let user select an image file from the files on the server:

from PIL import Image.Image
def load_image(image_path: str) -> Image.Image:
    return Image.open(image_path)
load_image.NOZY_NODE_DEF = {
    "node_title": "Load Image",
    "description": "Load image from path",
    "inputs": {
        "image_path": {
            "type": "filepath",
            "widget": {
                'type': 'server_file_picker',
                'options': {
                    'extensions': ['.png', '.jpg', '.jpeg', '.bmp', '.tiff', '.webp']
                }
            },
            "hide_handle": True,
            "description": "Path to image"
        }
    },
    "outputs": [{"name": "image", "type": "Image", "description": "Loaded image"}]
}
Screenshot 2024-10-19 at 9 37 21 PM Screenshot 2024-10-29 at 2 05 35 AM

Future Plans

  • Visualize your python code to graph flow
  • AI image nodes packages

Screenshots

👇 Install community pacakges

007 install-community-packages

👇 Switch workflows quickly

005 workflow_switcher

Development

install pip package in editable mode

pip install -e .

start nozyio server

nozyio --allow-cors

Start web dev server with hot reload

cd nozyio/web && npm run dev

Go to the web server url

Build and publish to pypi

if you haven't installed twine: python -m pip install --upgrade twine if you haven't installed build: python -m pip install --upgrade build

To build and publish to pypi:

chmod +x build.sh

./build.sh

Credits

This project is inspired by ComfyUI. Lots of code are referenced from ComfyUI (https://github.com/comfyanonymous/ComfyUI) Sincerely thanks to the contributors of ComfyUI!

Metadata

Release files for nozyio 0.1.17

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nozyio 0.1.17
File Size Uploaded
nozyio-0.1.17.tar.gz 6.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for nozyio 0.1.17
File Interpreter ABI Platform
nozyio-0.1.17-py3-none-any.whl Python 3 none any Details

Total release size: 12.7 MB

Release files / nozyio-0.1.17.tar.gz

Download URL nozyio-0.1.17.tar.gz
Size 6.4 MB
Tags Source
SHA-256 checksum
How to use checksums
fe33cba96e65a112c8c6eba39b2a3a9f5a2cb8e359a4be7cfe0ce7289dccdf71
BLAKE2b-256 checksum
How to use checksums
df42f2c42038633f197ea4bb35547c923eca61570f16cdd353ee135ff38f25c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / nozyio-0.1.17-py3-none-any.whl

Download URL nozyio-0.1.17-py3-none-any.whl
Size 6.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
e1df22272038fb5ec284218afc33702c08bb648339787d8f5f2595e6923943f0
BLAKE2b-256 checksum
How to use checksums
026342360759125e8b50916b35deb5584a95097723f3c2f13e45bae352b0ecfa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.1.17 This release

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page