f7967be1809850fb0519aa4cab84f66fe767bc48
- Implemented `computeScopes`, `drawHistogram`, `drawWaveform`, `drawRgbWaveform`, and `drawVectorscope` functions for image analysis. - Created `parseAnnotated`, `makeViewUrl`, `ensureBitmap`, and `ensureVideoFrameCanvas` functions for media source handling. - Added TypeScript definitions for ComfyUI integration, including node state, media state, and scopes options. - Established project structure with `package.json`, `tsconfig.json`, and `package-lock.json` for dependency management and TypeScript configuration.
WORK IN PROGRESS
ComfyUI‑Majoor‑ImageOps
Image processing nodes for ComfyUI with a centralized live preview module (no queue), batch-first behavior, and interop adapters.
Features
- Batch-first:
IMAGEinputs/outputs are treated as batches (frames friendly) - Fail-soft interop: unsupported upstream nodes don’t break the graph/preview
- Live preview widget on ImageOps nodes (single frontend module)
- Preview Pro UI (only on
ImageOpsPreview): histogram, waveform (luma/RGB), vectorscope, zebra/false-color, A/B freeze + wipe - Optional
bypasson processing nodes (backend + preview respects it)
Install
- Place this folder in
ComfyUI/custom_nodes/ComfyUI-Majoor-ImageOps - Restart ComfyUI
- Hard refresh the browser:
Ctrl+F5
Nodes (image/imageops)
ImageOpsColorAjust— combined ColorCorrect + Hue/Sat/ValueImageOpsBlurImageOpsTransformImageOpsInvertImageOpsClampImageOpsMerge(2 inputs)ImageOpsPreview(Output)
bypass
All processing nodes expose bypass (boolean). When enabled, the node returns its input unchanged and the live preview skips applying the op.
ImageOpsPreview modes
images: individual framesstrip: a single horizontal strip image (quick batch inspection)animated_webp/animated_gif: animated preview for sequences
Live Preview (frontend)
Files:
js/preview/host.js— widget injection + video loop + Preview Pro UI (scopes/overlays/A‑B) only forImageOpsPreviewjs/preview/renderer.js— recursive render + caching (recursion limit 64)js/preview/registry.js— adapter selection (core/WAS/VHS/generic/ImageOps)js/preview/ops.js— preview ops implementation (single source for preview behavior)
Interop notes:
- Core: basic invert/sharpen/blend adapters (best effort)
- WAS/VHS: heuristics for common nodes and sources (fail-soft)
Configuration
- Preview canvas size:
localStorage["imageops.preview.canvasSize"](int, default512) - Transform large-allocation warning: env
IMAGEOPS_LARGE_IMAGE_WARN_MB(int, default2048)
Notes
- If ComfyUI logs
[DEPRECATION WARNING], another extension is using legacy frontend APIs. - Some packs expose video via custom types; best results when upstream provides frames as
IMAGEbatches.
Languages
TypeScript
40.2%
JavaScript
34.8%
Python
25%