Skip to content

About

Image Pipeline Playground

Topics

Resources

Stars

124 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

244 Commits

Folders and files

Repository files navigation

🎨 Image Pipes

Stop scripting. Start seeing.

Build computer vision pipelines visually β€” inspect every pixel transformation in real time, then export clean, production-ready Python the moment you're happy with the result.

⚑ Build β€’ Preview β€’ Experiment β€’ Export

Download β€’ Demo β€’ Features β€’ Architecture β€’ Docs β€’ Quick Start β€’ Roadmap

πŸš€ Experience the Workflow

image

Visual Editor

  • 🎯 Drag & Drop Nodes
  • ⚑ Instant Execution
  • πŸ‘€ Live Image Preview
  • 🧠 OpenCV & Albumentations
  • 🐍 Custom Python & reusable scripts
  • πŸ“¦ Export Python Code

image

Dataset Augmentation

Create hundreds of augmentations visually.

Pipeline Templates

Build reusable computer vision pipelines.


πŸ’­ The Problem

If you've built a computer vision pipeline before, this loop probably feels familiar:

tweak a parameter β†’ run the script β†’ save an image β†’ open it β†’ squint β†’ repeat

Each iteration costs you a context switch. Multiply that by every blur kernel, every threshold value, every augmentation you're tuning, and "quick experiment" turns into an afternoon lost to cv2.imshow() windows and throwaway debug scripts.

Image Pipes breaks the loop. Assemble your pipeline as a graph, watch every node's output update live, and walk away with production Python β€” not a black box you're locked into forever.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Load Image   β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Resize       β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Grayscale    β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ GaussianBlur β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Threshold    β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ FindContours β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β–Ό
 Production Python 🐍

✨ Features

🎨 A Canvas, Not a Console

Assemble pipelines by dragging nodes onto an infinite canvas powered by React Flow. Connect them, configure them through rich auto-generated property panels, and let built-in validation catch mistakes before you ever hit "run."

  • Drag & drop nodes with smart, type-aware connections
  • Infinite canvas with smooth zoom & pan
  • Dynamic property panels generated straight from node metadata
  • Real-time validation as you build

⚑ Real-Time Preview, Every Step

Every node executes independently, so you can inspect a transformation the instant it happens β€” no more mentally simulating what five chained cv2 calls did to your image.

See, live, at every node:

  • Intermediate image outputs
  • Bounding boxes, segmentation masks, and keypoints
  • Execution time per node
  • Runtime logs
  • Script log lines from custom / reusable Python (log(...))

🐍 Custom Python & Reusable Scripts

Drop a Custom Python node when a built-in transform isn't enough. Author process(image, seed=0) in the Monaco editor with cv2, numpy, and Image Pipes helpers available in scope:

def process(image, seed=0):
    # log(...) appears in the inspector Script log panel
    log("input", image, "seed=", seed)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    return cv2.cvtColor(gray, cv2.COLOR_GRAY2BGR)

Trust before run. Workflows that include custom code are blocked until you review and confirm β€” trust is session-only and never written into exported workflow JSON.

Save as a reusable node. Promote inline code into a named palette entry under My Scripts. Scripts are versioned on disk (v1, v2, …); canvas nodes pin a version so older pipelines keep running the code they were saved with. Editing always creates a new version instead of overwriting history.

Helpers (starting with log(*args)) are documented in-app from the inspector Helpers dialog β€” more runtime helpers will land there over time. For on-disk layout of reusable scripts and the trust model, see Data locations and Architecture.

🧠 A Smart Execution Engine Under the Hood

Pipelines aren't run top-to-bottom blindly. Image Pipes compiles your graph into a Directed Acyclic Graph (DAG), topologically sorts it, and executes only what actually needs to run.

  • Incremental execution & partial recomputation
  • Run-to-selected-node for fast, targeted debugging
  • In-memory caching so large pipelines stay snappy
  • Full DAG validation before execution

The result: pipelines with dozens of nodes stay responsive, not sluggish.

πŸ“¦ Metadata-Driven Architecture

Adding a new backend node automatically makes it available in the editor β€” forms, controls, categories, and validation are all generated for free. Zero frontend work required. Implement the node, and the UI builds itself around it.

πŸ§ͺ A Serious Computer Vision Toolbox

Powered by industry-standard libraries, not reinvented wheels.

OpenCV gives you the full classical CV toolkit:

  • Color conversions, blur & filtering, edge detection
  • Histograms, morphology, geometric transforms
  • Contours, thresholding, K-Means, and much more

Albumentations powers first-class data augmentation right inside the visual graph. Chain augmentations like flips, rotations, color jitter, noise, cutout, and elastic transforms alongside your preprocessing nodes β€” all while correctly propagating:

  • Images
  • Bounding boxes
  • Segmentation masks
  • Keypoints

Every run is deterministic and seedable, so your augmented datasets are fully reproducible across teammates and experiments β€” critical for anyone training a model on top of this pipeline.

🐍 Your Pipeline Is Never Trapped

Design visually, but never get locked in. Export readable, standalone Python built on OpenCV and Albumentations β€” no proprietary runtime, no generated framework, nothing that only works inside Image Pipes.

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
edges = cv2.Canny(blur, 50, 150)

That's it. That's the export. Drop it straight into your training pipeline, your ETL job, or a notebook.


πŸš€ Use Cases

Image Pipes fits naturally into workflows like:

  • Dataset preprocessing for ML training
  • Building and tuning data augmentation pipelines with Albumentations
  • Teaching computer vision concepts visually
  • Rapid OpenCV experimentation and prototyping
  • Dropping in one-off Custom Python steps (with a trust gate) without leaving the canvas
  • Saving reusable, versioned script nodes for your own toolbox
  • Research reproducibility (deterministic, versionable pipelines)
  • Debugging annotation pipelines (boxes, masks, keypoints)
  • General image analysis and exploration

πŸ— Architecture

                     React Flow Editor
                             β”‚
                    REST + WebSockets
                             β”‚
                             β–Ό
                  DAG Execution Engine
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚             β”‚             β”‚
               β–Ό             β–Ό             β–Ό
        OpenCV Processing  Albumentations  Custom / user scripts
         (classical CV)   (augmentation)   (process + log helpers)
               β”‚             β”‚             β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                                    β”‚
                                    β–Ό
                         Live Preview & Export
                                    β”‚
                                    β–Ό
                           Standalone Python

πŸ“š Docs

Guide What it covers
Architecture & node registration DAG layers, registering nodes, Custom Python trust gate
Data locations Cache, uploads, outputs, assets, and versioned user_scripts/ on disk (Electron vs backend)

Also see the desktop notes in desktop/README.md.


πŸ›  Tech Stack

Frontend

  • React 19 + TypeScript
  • Vite
  • React Flow
  • Zustand
  • TanStack Query
  • Material UI
  • Monaco Editor
  • React Hook Form + Zod

Backend

  • FastAPI
  • OpenCV
  • Albumentations
  • NumPy
  • Pillow
  • WebSockets
  • Pydantic v2

Desktop

  • Electron

πŸš€ Quick Start

Download

Grab the latest desktop installer (Windows, macOS, or Linux) from the Releases page β€” no Python or Node required.

From source

Clone the repository:

git clone https://github.com/mrajaeim/image-pipes.git
cd image-pipes

Install everything:

npm run install:all

Launch the desktop app:

npm run desktop

That's it β€” the Electron app automatically starts the backend and opens the editor. No separate servers to babysit.


🎯 Why Developers Love It

βœ… Visual instead of script-based βœ… Zero frontend work for custom nodes
βœ… Live preview at every step βœ… Deterministic Albumentations augmentation
βœ… Fast, targeted experimentation βœ… Clean, dependency-free Python export
βœ… Metadata-driven architecture βœ… Open source & self-hosted desktop app
βœ… Inline Custom Python when you need it βœ… Versioned reusable scripts + trust gate
βœ… Script log() for in-graph debugging βœ… Monaco editor with in-app helper docs

πŸ›£ Roadmap

  • πŸŽ₯ Video pipelines & camera streaming
  • 🧩 ONNX Runtime and PyTorch inference nodes
  • ⚑ CUDA acceleration
  • πŸ“¦ Batch processing
  • πŸ”Œ Plugin SDK (extend beyond built-in + user scripts)
  • ☁️ Cloud workspaces
  • πŸ€– AI-assisted pipeline generation
  • 🧰 More script helpers beyond log() (rename / delete / export scripts with workflows)

🀝 Contributing

Contributions are welcome β€” bug fixes, performance improvements, new processing nodes, or entirely new features. If you're planning a large change, please open an issue first so we can discuss the design together.


πŸ“„ License

Distributed under the MIT License. See the LICENSE file for details.

About

Image Pipeline Playground

Topics

Resources

Stars

124 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages