百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
nova-image-studio

nova-image-studio

> 设计协作
免费

托管式 AI 视频/图像生成工作台 · 自定义模型 · 多模式 · PWA · 实时任务 支持代理模式、UI 设计模式、工作台模式、无限画布、反向提示词、提示词广场、GIF 生成。前后端任务机制轻量级。

400 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

托管式 AI 视频/图像生成工作台 · 自定义模型 · 多模式 · PWA · 实时任务 支持代理模式、UI 设计模式、工作台模式、无限画布、反向提示词、提示词广场、GIF 生成。前后端任务机制轻量级。

Nova Studio


Overview

Nova Studio is an AI video/image generation workbench for individuals and small teams. The frontend is a Next.js 16 + React 19 static export (PWA); the backend is a small Node.js service (server.js + SQLite + WebSocket) that schedules tasks and proxies generation APIs.

What the open-source edition gives you:

  • Image models and text models are configured separately, each with its own API key and base URL
  • You define the model list and endpoints yourself; the backend routes by protocol and passes your parameters through
  • All client configuration lives in the browser's localStorage
  • Text models support Google (generateContent) and OpenAI (Responses protocol)
  • Video generation is fully plugin-based: the host ships no upstream video protocol at all — capability comes from plugin packs

Current version: v3.3.0

Documentation

Everything lives under docs/. The plugin protocol docs are written in Chinese.

I want to… Go here
Write a video plugin docs/plugins/ ← start here
Install a ready-made plugin nova-studio-plugins (official collection + template)
Get a working plugin in 10 minutes docs/plugins/quickstart.md
Have an AI write the plugin for me docs/plugins/LLM.md (paste the whole file into your AI)
Look up a protocol field manifest · ui.schema · provider
Debug a plugin that won't load / a failing task docs/plugins/errors.md
Copy a known-good pattern docs/plugins/cookbook.md
Understand the task lifecycle docs/plugins/lifecycle.md

Sponsors

Your sponsorship is welcome.


️ UI Preview

Image workbench

Wide Narrow Mobile

Video workbench (plugin-driven)

The whole left-hand form is rendered from the plugin's ui.schema.json — tiers, resolutions, durations and media slots are all declared by the plugin; the host knows nothing about any specific upstream. Credentials are filled in per plugin under Settings → Plugins.

Workbench Settings → Plugins

UI design mode (image slicing + web reproduction)

Starting from one UI mockup: AI auto-slices it → you adjust in the slice editor → a multi-turn agent reproduces the page → export the full design package.

① Source mockup ② Import and slice ③ Auto-slice + manual fixes ④ Start web reproduction
⑤ Agent edits the copy ⑥ Multi-turn refinement ⑦ Export as ZIP ⑧ Final result

Agent mode

Ask Generate

GIF generation

Generate Fine-tune

Infinite canvas

Preview Edit

Other features

Reverse prompt Prompt gallery My assets Settings

✨ Features

Seven working modes

Mode Entry point Summary
Text to image TextToImageForm Generate from a text prompt, multiple images in parallel
️ Image to image ImageToImageForm Upload references to edit / convert / restyle
Agent AgentChatWorkspace Conversational generation: chat → plan → images, with vision descriptions, web search and reasoning
✂️ UI design mode SliceWorkspace UI mockup → slice assets → web reproduction (wide screens only, see below)
Reverse prompt ReversePromptForm Upload an image and stream back a prompt (any configured text model)
GIF generation GifGenerationWorkspace Multi-frame generation + grid assembly, GIF encoded in-browser (gifenc)
Video workbench PluginWorkbench Powered by video plugins; the host ships no upstream protocol (see below)

Video workbench (plugin-based)

Video generation contains no upstream-specific protocol. The host provides the tab, task queue, history, media upload and form rendering; "who to call, what to send, how to poll, where the result is, what the form looks like" all live in the plugin pack.

  • Installation: an admin drops the plugin directory into backend/plugins/, then restarts the backend (or clicks "Reload" in Settings)
  • Plugins are pure JSON: three files (manifest.json / ui.schema.json / provider.json), no executable code
  • Egress must be declared: any host outside permissions.hosts, plus every private/loopback address, is refused
  • Credentials belong to the user: apiKey / baseUrl are entered under Settings → Plugins, stored in the browser, never in the database
  • The settings page is read-only: it lists what is installed and why a pack failed to load; installing and removing plugins requires server access
  • Reference implementation: backend/plugins/ccode-h3/ (MiniMax H3 — 8 models, first/last frame, reference image/video/audio, upscaled tiers)
  • Result URLs pass through untouched: no domain rewriting, the video link is exactly what the upstream returned

Official plugin collection: nova-studio-plugins — includes a minimal plugin template and can be cloned straight into backend/plugins/:

bash
cd backend/plugins && git clone https://github.com/tianjiangqiji/nova-studio-plugins.git .

Writing your own plugin (or having an AI write it): docs/plugins/ (paste docs/plugins/LLM.md into your AI verbatim)

UI design mode (image slicing + web reproduction)

Break a flat UI mockup into reusable slice assets, then reproduce it as a previewable web page. Wide-screen only — narrow screens show a hint to switch.

  • AI slicing: a vision model proposes slices and background candidates; you tick them off in a confirmation dialog before anything is stored. A JSON parse failure triggers one automatic image-free repair retry
  • Slice editor: zoom/pan, drag-to-create, rubber-band multi-select, 8-way resize, per-corner radius, snapping, context menu, full undo/redo (50 steps) and keyboard shortcuts
  • Three view modes: original (source + outlines) / knockout (post-cutout result, generated locally at no cost) / slices only (checkerboard)
  • Four asset operations: algorithmic transparency, AI transparency, algorithmic SVG vectorization (imagetracerjs), AI SVG redraw. All four are independently revertible and never overwrite each other; algorithmic ones support batches, AI ones fire one at a time (so a single click can't rack up charges)
  • Background fill: adjust the blue box (background extent) and red box (removal region) in the confirmation dialog, then call masked image editing to fill in what the foreground covered; produces both a "local composite" and an "AI original" for you to choose from
  • Web reproduction: a multi-turn AI agent producing exactly three files (index.html / styles.css / script.js) plus a read-only assets/. The agent edits by line via read_file / edit_file, previews live in an iframe, and context usage is taken from the API's reported input_tokens (warn at 140K, refuse at 175K)
  • Export: slice package ZIP (PNG + optional SVG + manifest) or a full design package (source image, workspace metadata and the web/ files), and workspaces can be restored from an export
  • Storage: workspaces and images live in IndexedDB (nova-slice-db) and are covered by one-click backup/restore

⚠️ "AI fill" (brush-mask inpainting) is not in this release. Its request pipeline is shared with background fill and works, but a render-ordering defect in the editor component needs fixing first.

Image-editing features (AI transparency, background fill) need an OpenAI-protocol image model: they rely on /v1/images/edits with a mask, which the Gemini and Grok protocols have no equivalent for, so those models don't appear in the slice page's model picker.

Prompt gallery

PROMPT_GALLERY_MODE has three settings:

  • 1 always on: the tab is always visible
  • 2 private: password required (from the backend env var PROMPT_GALLERY_PASSWORD)
  • 3 off: hidden entirely

Content is maintained in backend/prompts.json, with profanity filtering via backend/blacklist.json.

Model system

Nova Studio is built around user-defined models:

  • Per-model configuration: every image and text model stores its own protocol, display name, model ID, API key and base URL
  • Image models: add, edit and delete freely; set protocol, display name, model ID, max reference images and max resolution
  • Image 2 extra parameters: shown for OpenAI image models only — transparent background, quality and style controls are on by default and can be turned off
  • Text models: freely extensible, compatible with Gemini and OpenAI Responses
  • Default models: set a separate default for text-to-image, image-to-image, reverse prompt, Agent, AI slicing, web reproduction and slice image editing
  • Four text protocols: OpenAI Responses / OpenAI Chat Completions / Anthropic Messages / Google Gemini, all with multi-turn tool calling (the web-reproduction agent depends on it), all forwarded through /api/nova/proxy/text

Task system

  • Submissions are queued and processed concurrently server-side (default cap 50, tune with NOVA_TASK_CONCURRENCY)
  • The browser receives task/queue updates over WebSocket, reconnects automatically, and falls back to HTTP polling (30s interval) after 5 failures
  • Results are written to disk (default backend/data/nova-images/, configurable via NOVA_IMAGE_DIR) and served directly at /api/nova/images/:taskId/:index
  • Tasks have a 12-hour TTL (NOVA_TASK_TTL_HOURS), cleaned up automatically every 5 minutes
  • On restart, leftover "processing" tasks are marked failed and their artifacts deleted, so no ghost tasks linger

Experience & engineering

  • PWA (next-pwa), installable to the desktop
  • Adaptive UI across desktop, tablet and mobile
  • Dark / light theme toggle
  • Wide / narrow adaptive layout (vertical tabs on the left, content on the right)
  • Persistent task history (IndexedDB / localStorage)
  • One-click backup / restore (JSZip over localStorage + IndexedDB; incompatible legacy config is skipped and the rest still restores)
  • Lazy-loaded history images (@tanstack/react-virtual)
  • Random wallpapers, toasts, confirmation dialogs

Project layout

…

Production builds land in frontend/out/ and are served statically by server.js.


Deployment

Docker Compose

Requirements

  • Docker 20.10+
  • Docker Compose v2

Quick start

…

Open .

Environment variables

Injected by mounting the root .env at /app/.env (the code reads process.cwd()/.env), so the image never needs rebuilding.

After editing:

  • Runtime config (rate limits, queue, gallery mode, …) takes effect within about a second
  • PORT / HOSTNAME / NODE_ENV / data paths require a restart
bash
docker compose restart

Upgrading

bash
docker compose down
docker compose pull
docker compose up -d --force-recreate

Persistence

docker-compose.yml mounts:

Host Container Purpose
./data /app/backend/data database + images (including WAL/SHM)
./.env /app/.env environment variables
./blacklist.json /app/backend/blacklist.json blocked words
./prompts.json /app/backend/prompts.json prompt gallery
./plugins /app/backend/plugins video plugins (shadows the in-image dir; edit plugins without rebuilding the image)

Plugins are loaded once at process startup; after adding/removing/editing plugin

Issues· 3 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

bananagpt-imagegpt-image-2

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年9月9日
最后更新2026年9月17日
分类设计协作
定价免费

> 相关工具

F
Figma
协作式界面设计工具
S
sketch-wakatime
Sketch plugin for automatic time tracking and metrics generated from your Sketch usage.
Q
QuickColor
Quickly apply fills from the global or document color palettes to selected elements - 🎨