OpenViz is an AI-powered design application that transforms hand-sketched drawings and imported images into photorealistic renders using advanced text-to-image models. Built with a modern, intuitive workflow, it seamlessly bridges creative sketching with AI generation.
A focused, high-performance workspace for sketching and AI generation.
Drawing Tools
- Brush & Eraser โ Configurable size, opacity, hardness, and stabilizer
- Shape Tools โ Rectangles, circles, and lines with stroke/fill options
- Paint Bucket โ Quick fills with tolerance control
- Transform โ Move, scale, and rotate objects after placement
- Keyboard Shortcuts โ
Bbrush,Eeraser,Rrect,Ocircle,Lline,Sselect
Layer System
- Full layer management with reorder, rename, hide, delete
- Real-time thumbnails for every layer
- Opacity and blend modes (Normal, Multiply, Screen, Overlay)
- Support for sketch, image, and render layers
- Copy/paste layers between projects
Canvas
- Smooth zoom (10%โ500%) and pan
- Viewport controls with fit-to-screen
- Grid and symmetry guides
- Background color customization
AI Rendering
- ComfyUI Integration โ Connect to local ComfyUI for generation
- Style Presets โ Switch between Photorealistic, Cyberpunk, Watercolor, and more
- Reference Images โ Upload reference images to guide generation
- Influence Slider โ Balance between sketch adherence and prompt creativity
- Batch Generation โ Generate 1โ4 variations at once
- Results Gallery โ Browse, compare, and add renders to layers or workbench
A powerful visual editor for managing complex projects with multiple assets.
Node Types
- Image Nodes โ Sketch canvases with full Studio integration
- Animate Nodes โ Keyframe-based animation with AI interpolation
- Video Nodes โ Video processing and generation pipelines
- Render Nodes โ AI render settings and batch configurations
Flow Features
- Visual Connections โ Wire nodes together to create processing pipelines
- Drag & Drop โ Add new sketches with preset formats (Square, A4, 16:9, etc.)
- Context Menu โ Right-click nodes for copy, paste, duplicate, delete, and layer ordering
- Batch Operations โ Select and move multiple nodes
- Smart Navigation โ Auto-center on nodes when switching from Studio
Your central hub for organizing creative work.
Project Browser
- Grid and list view layouts
- Sort by last viewed, name, or creation date
- Search and filter projects
- Thumbnail previews
Quick Actions
- Create new projects in Studio or Workbench mode
- Jump directly to recent work
- Persistent project state across sessions
- GitHub OAuth โ Sign in with your GitHub account
- Google OAuth โ Sign in with Google
- Email โ Passwordless magic link login (optional)
- Development Mode โ Quick dev login for local testing
- Node.js 18+
- PostgreSQL 14+ (for project storage)
- Redis (for job queues)
- ComfyUI (for AI rendering)
-
Clone the repository
git clone https://github.com/Sander-HR/openviz.git cd openviz -
Install dependencies
npm install
-
Configure environment
cp .env.example .env
Edit
.envwith your credentials:# Database DATABASE_URL=postgresql://user:password@localhost:5432/openviz # Redis (for BullMQ job queues) REDIS_URL=redis://localhost:6379 # NextAuth NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=your-secret-key-here # OAuth (optional) GITHUB_ID=your-github-client-id GITHUB_SECRET=your-github-client-secret GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret # AWS S3 (for asset storage) AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=your-access-key AWS_SECRET_ACCESS_KEY=your-secret-key AWS_BUCKET_NAME=your-bucket-name # ComfyUI COMFYUI_URL=http://localhost:7821
-
Initialize database
npm run db:push
-
Launch ComfyUI
# In your ComfyUI directory python main.py --listen --port 7821Required Models:
- Checkpoints:
sd3.5_large_fp8_scaled.safetensorsโComfyUI/models/checkpoints/ - ControlNet:
sd3.5_large_controlnet_canny.safetensorsโComfyUI/models/controlnet/
- Checkpoints:
-
Start development server
npm run dev
-
Open in browser
http://localhost:3000
OpenViz follows a modern, modular architecture:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Presentation Layer โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Dashboard โ Studio โ Workbench โ
โ (Project Mgmt) โ (Canvas Editor) โ (Node Flow Editor) โ
โโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโดโโโโโโโโโโ
โ State Layer โ
โ (Zustand) โ
โโโโโโโโโโโฌโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โโโโโโโโโผโโโโโโโโโ โโโโโโโโโโโผโโโโโโโโโโโ โโโโโโโโผโโโโโโโ
โ Next.js API โ โ ComfyUI Proxy โ โ S3 โ
โ (tRPC/REST) โ โ (WebSocket) โ โ (Assets) โ
โโโโโโโโโฌโโโโโโโโโ โโโโโโโโโโโฌโโโโโโโโโโโ โโโโโโโโฌโโโโโโโ
โ โ โ
โโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโ
โ Data & Infrastructure โ
โ PostgreSQL โ Redis โ BullMQ Jobs โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Category | Technology | Purpose |
|---|---|---|
| Framework | Next.js 16 | App Router, SSR, API routes |
| Language | TypeScript | Type safety |
| Styling | Tailwind CSS | Utility-first CSS |
| UI Components | Radix UI | Accessible primitives |
| State | Zustand | Global state management |
| Animation | Framer Motion | Transitions & gestures |
| Canvas | Konva.js + React-Konva | 2D drawing engine |
| Node Editor | React Flow | Visual flow editor |
| Auth | NextAuth.js | Authentication |
| ORM | Drizzle ORM | Database queries |
| Database | PostgreSQL | Data persistence |
| Queue | BullMQ + Redis | Job processing |
| Storage | AWS S3 | Asset storage |
| AI | ComfyUI | Image generation |
| Testing | Vitest + React Testing Library | Unit tests |
openviz/
โโโ src/
โ โโโ app/ # Next.js App Router
โ โ โโโ api/ # API routes (NextAuth, projects, jobs, generate)
โ โ โโโ dashboard/ # Dashboard page
โ โ โโโ login/ # Authentication page
โ โ โโโ projects/[id]/ # Project workspace
โ โ โโโ layout.tsx # Root layout
โ โ โโโ page.tsx # Landing/redirect
โ โ
โ โโโ components/
โ โ โโโ dashboard/ # Dashboard components
โ โ โโโ studio/ # Studio canvas UI
โ โ โโโ workbench/ # Workbench node editor
โ โ โโโ nodes/ # React Flow node components
โ โ โโโ common/ # Shared components
โ โ
โ โโโ store/ # Zustand state management
โ โ โโโ slices/ # State slices (layer, tool, render, workbench)
โ โ โโโ useStore.ts # Main store hook
โ โ โโโ storeTypes.ts # TypeScript types
โ โ
โ โโโ services/ # Business logic
โ โ โโโ ai/ # Workflow registry, prompt handling
โ โ โโโ renderService.ts
โ โ โโโ apiRenderService.ts
โ โ
โ โโโ lib/ # Utilities & config
โ โ โโโ auth.ts # NextAuth configuration
โ โ โโโ db/schema.ts # Drizzle schema
โ โ โโโ services/ # S3, job services
โ โ
โ โโโ hooks/ # Custom React hooks
โ โโโ types/ # Global TypeScript types
โ โโโ utils/ # Utility functions
โ
โโโ public/ # Static assets
โโโ drizzle/ # Database migrations
โโโ tests/ # Test files
# Development
npm run dev # Start Next.js dev server
npm run db:studio # Open Drizzle Studio (DB GUI)
# Build
npm run build # Production build
npm start # Start production server
# Database
npm run db:push # Push schema changes to DB
npm run db:generate # Generate migration files
# Testing
npm run test # Run Vitest tests
npm run test:ui # Open Vitest UI
# Code Quality
npm run lint # Run ESLint- Studio Mode โ Full canvas with drawing tools and layer system
- Workbench Mode โ Node-based flow editor with multiple node types
- Dashboard โ Project management with authentication
- ComfyUI Integration โ Real-time AI rendering
- Undo/Redo โ Full history management
- Keyboard Shortcuts โ Tool switching and actions
- Batch Generation โ Generate multiple variations
- Animate Mode โ Full animation pipeline with interpolation
- Video Generation โ AI video synthesis workflows
- Workflow Presets โ Save/load custom ComfyUI workflows
- Import/Export โ PNG/JPG export and
.openvizproject files - Collaboration โ Real-time multi-user editing
- AI Prompt Assistant โ Auto-suggest prompts based on sketches
- Mobile App โ Touch-optimized iOS/Android companion
- Cloud Sync โ Cross-device project synchronization
- Plugin System โ Third-party workflow extensions
- Template Marketplace โ Community-contributed templates
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License โ see the LICENSE file for details.
- ComfyUI for the amazing AI generation backend
- Konva.js for the powerful canvas library
- React Flow for the node-based editor
- All the open-source contributors who make this project possible
Made with โค๏ธ by the OpenViz Team
