Changelog
All notable changes to Node Banana are documented here.
The format is based on Keep a Changelog (opens in a new tab).
1.2.0 — 2026-01-20
Added
-
Comment Navigation System — Navigate between nodes with comments using Previous/Next controls (#33 (opens in a new tab))
- Header icon with unviewed comment count badge
- Previous/Next navigation arrows in comment tooltips
- Tooltips show comment preview on hover
- View tracking highlights unread comments
- Auto-centering viewport on navigation
- Comments sorted by position (top-to-bottom, left-to-right)
- New
useCommentNavigationhook with full test coverage
-
Output Node Enhancements — Custom filename support and auto-directory creation (#33 (opens in a new tab))
outputFilenameparameter for custom output filenames- Auto-create
/outputsdirectory option - Automatic saving to
/outputswhen workflow has project path - Custom filenames sanitized (special chars replaced with underscores)
-
Image Paste Support — Paste images directly from clipboard into imageInput nodes (#33 (opens in a new tab))
- Press Cmd+V (Mac) or Ctrl+V (Windows/Linux) to paste images
- Updates selected imageInput node or creates new node at viewport center
- Automatic dimension extraction and timestamp-based naming
-
Community Workflows Enhancements — Rich metadata system for template explorer (#33 (opens in a new tab))
- Centralized metadata config system (
communityWorkflows.ts) - Extended metadata: description, tags, preview images, sort order
- Template card reuse for consistent styling across all workflows
- Tag filtering now works for community workflows
- Search includes workflow descriptions
- Community workflow thumbnails in
/template-thumbnails/community/ - Node count badge moved inline with tags
- Centralized metadata config system (
Changed
-
External Image Storage — Now persists in workflow configuration (#33 (opens in a new tab))
useExternalImageStoragefield saved in workflow JSON- Setting persists across sessions (previously in-memory only)
- Automatic image ref clearing when saving to different directory
- New workflow ID generated when changing save directory
-
Node Dimension Handling — Nodes preserve user-set height on resize (#33 (opens in a new tab))
- New
calculateNodeSizePreservingHeight()utility - Aspect ratio changes only adjust width, preserving manual height adjustments
- Applied to GenerateImageNode and GenerateVideoNode
- New
-
Comment Tooltips — Enhanced positioning and navigation UI (#33 (opens in a new tab))
- Tooltip position updates continuously during canvas pan/zoom
- Uses
requestAnimationFramefor smooth tracking - Centered above comment button (changed from right-aligned)
- Includes Previous/Next navigation controls
-
Video Detection — Improved video content recognition (#33 (opens in a new tab))
- Now detects
fal.mediaURLs (fal.ai video URLs) - Checks for
data:video/prefix and.mp4/.webmextensions - Output nodes correctly distinguish image vs video content
- Now detects
-
Model Selection — Gemini generation uses
selectedModel.modelIdwhen available (#33 (opens in a new tab))- Falls back to legacy
modelfield for backwards compatibility - Ensures correct model selection in multi-provider workflows
- Falls back to legacy
Fixed
-
Image History Improvements — Additional fixes for edge cases (#33 (opens in a new tab))
- Image history race condition causing duplicate images resolved
- Image history IDs now preserved when saving to new directory
outputImageRefvalidation against selected history index on save- Missing image files return 200 with
notFoundflag instead of 404 (prevents Next.js error overlay)
-
Video Output Connections — Fixed video output node connection handling (#33 (opens in a new tab))
- Video connections now properly recognized and displayed
- Improved content type detection for video formats
-
Node Styling — React Flow default styles no longer leak into output nodes (#33 (opens in a new tab))
Removed
- Deprecated Examples — Removed obsolete contact sheet workflows (#33 (opens in a new tab))
- Removed
examples/contact-sheet-jpow.json - Removed
examples/contact-sheet-tim.json - Added
Fashion-image-to-video.jsonexample (tracked with Git LFS)
- Removed
1.1.0
Added
-
Template Explorer UI — Redesigned visual template browser with preview capabilities (#30 (opens in a new tab))
- Two-column card layout with category filtering
- Template thumbnails with hover transitions showing workflow screenshots
- Grid layout with sidebar filter panel
- Interactive workflow diagram preview
- Category and provider filtering
-
Node Defaults — Set default models for Generate Image and Generate Video nodes per project (#30 (opens in a new tab))
- New Node Defaults tab in Project Setup modal
- Quick model picker integrated into defaults configuration
- Persistent storage saved per-project via localStorage
- New nodes automatically use configured defaults
-
Cost Tracking Improvements (#30 (opens in a new tab))
- Provider-grouped breakdown in Cost Dialog
- Added Gemini model pricing data
- fal.ai pricing integration with model cost display
- Dollar format always shown for clarity
- Direct links to external provider pricing pages
-
Multi-Provider Support — Support for Replicate and fal.ai providers alongside Gemini (#25 (opens in a new tab))
- Provider abstraction layer with unified interfaces
- Per-provider API key management in Project Settings
- Model discovery endpoint aggregating models from all providers
- Model search dialog with provider filtering and recently used tracking
-
Video Generation — New GenerateVideoNode for AI video generation (#25 (opens in a new tab))
- Video playback in OutputNode with format detection
- Carousel controls for video history navigation
- Video generation queue system with 10-minute timeout
-
AI Quickstart Feature — Generate complete workflows from natural language descriptions
- Welcome screen with preset templates and custom description input
- 6 preset workflow templates: Product Shot, Model + Product, Color Variations, Background Swap, Style Transfer, Scene Composite
- Content level selector (empty/minimal/full) to control pre-filled detail
- Gemini LLM-powered custom workflow generation
- JSON validation and repair for generated workflows
- Sample images for templates in
/public/sample-images/
-
Test Suite — Comprehensive testing with Vitest
- 108+ tests covering quickstart templates, validation, and prompts
- 90%+ code coverage for quickstart module
- Run with
npm testornpm run test:coverage
-
Node Expansion & Run — Expand nodes to full-screen modal and run individual nodes
-
Group Locking — Lock node groups to skip them during workflow execution
-
Image Carousel — Browse through image history on generation nodes
Changed
-
GenerateImageNode — Replaced NanoBananaNode with unified GenerateImageNode (#25 (opens in a new tab))
- Provider and model selector dropdown
- Dynamic input handles based on model schema
- Custom model parameters UI with validation
- Image-to-image support across all providers
- Legacy workflows automatically migrate
-
UI Improvements — Redesigned node handles and error display (#25 (opens in a new tab))
- Node handles match reference UI with aligned connection points
- Error overlay on generate nodes with toast notifications
- Auto-resize for generate nodes on output
- Streamlined header with visual grouping
Fixed
- Image History Critical Fixes — Resolved race conditions and duplicate image issues (#30 (opens in a new tab))
- Workflow saves now wait for pending image ID syncs to complete
- Store nodes receive refs after externalization, preventing duplicate files on save
- Carousel IDs properly synced with saved filenames
- fal.ai 429 rate limit errors from excessive pricing API calls (#30 (opens in a new tab))
- Template gallery scrolling and wheel event propagation with React Flow (#30 (opens in a new tab))
- Thumbnail quality improved with 288px resize and fixed object-fit (#30 (opens in a new tab))
- Run button and global modal state issues
- Carousel image inversion
- Two-finger pan behavior on Mac
- Comment tooltip z-index issues
- Duplicate input images for generateVideo nodes (#26 (opens in a new tab))
- Connection handling now finds first unoccupied input handle instead of always targeting the first one (#26 (opens in a new tab))
- Gemini model parameters (aspectRatio, resolution, useGoogleSearch) now display correctly when Gemini models are selected (#26 (opens in a new tab))
- Connection drop menu now works with dynamic handles (#25 (opens in a new tab))
- Drag-connect node creation and handle persistence bugs (#25 (opens in a new tab))
1.0.0 — Initial Release
Added
- Visual Node Editor — Drag-and-drop canvas with pan, zoom, and multi-select
- Image Input Node — Load images from local filesystem
- Prompt Node — Text input for prompts and descriptions
- Annotation Node — Full-screen drawing tools (rectangles, circles, arrows, freehand, text)
- Nano Banana Node — AI image generation using Google Gemini models
- LLM Generate Node — Text generation with Gemini and OpenAI models
- Output Node — Display and download results
- Split Grid Node — Divide images into grid cells
- Workflow Management — Save and load workflows as JSON files
- Connection Validation — Type-safe connections (image-to-image, text-to-text)
- Multi-Image Input — Connect multiple images to generation nodes
- Cost Tracking — Monitor API usage and spending
- Keyboard Shortcuts — Efficient workflow navigation and editing
- Node Groups — Organize related nodes together
- Auto-save — Automatic workflow saving
Roadmap
Features being considered for future releases:
- Custom node creation
- Workflow sharing and community library
- More AI model integrations
- Batch processing improvements
- Plugin system
- Mobile-responsive canvas
For the latest updates, check the GitHub repository (opens in a new tab).