Model or dataset
MOKEAIGC/MOKE-Vision-One avatar
MOKEAIGC/MOKE-Vision-One

MOKE Vision One: a camera metaphor over prompt text, and no licence file

搭载10亿像素曲面有机传感器与平面超构透镜的次世代虚拟相机。支持量子计算级实时降噪,在绝对黑暗中捕捉白昼般的清晰画质。

432 stars9 forksTypeScriptLicense varies

At a glance

What is it?
MOKE Vision One is a React and Vite desktop app for AI image and video generation whose interface is built as a camera, and reading it closely turns up three things worth knowing: the camera dials are injected into the prompt as text, the repository ships no licence, and the desktop packaging moved to Tauri while an Electron build guide stayed behind.
Who is it for?
MOKE Vision One fits someone who wants a canvas-based generation workspace with ComfyUI and several hosted providers behind one interface, and who is comfortable with the camera framing being presentation rather than mechanism. It does not fit anyone who reads the repository description as a hardware specification, because that description talks about a physical sensor and a lens while the code is a prompt-driven generator.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 110 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The repository description describes hardware the code cannot be

The gap is between the repository's own summary and its README, and it is the first thing anyone should notice. The description presents a physical imaging device: a next-generation virtual camera carrying a one-billion-pixel curved organic sensor and a flat metalens, with quantum-computing-grade real-time noise reduction that captures daylight-like clarity in total darkness. The README describes something else entirely, an AI image generation desktop application built on React and Vite whose desktop packaging has moved to Tauri 2 and Rust. The package manifest sits between the two, naming the product MOKE Vision One and describing it as a virtual quantum camera for AI image generation. The bilingual marketing block inside the README calls it a desktop AI photographer with the positioning of a physical and computational photography terminal, and presents installation as a DMG you drag into Applications or an EXE you run. Nothing in the tree contains a sensor, a lens or a denoiser, because what runs is a prompt sent to a hosted model.

The camera dials are injected into the prompt as text

This is the most load-bearing sentence in the documentation and it is buried under a heading about camera parameters. Focal length runs from 24mm to 200mm, aperture from f/1.0 to f/16, ISO from 100 to 6400, plus aspect ratio choices for landscape, portrait and square. The range table is presented with real camera vocabulary, and then a note explains what they actually do: the parameters are injected into the prompt in text form to influence the generated style, and the quality that really matters is your prompt and your reference image. So a focal length does not change perspective, an aperture does not change depth of field, and ISO does not add grain. They change which words reach the model. That is a defensible design for a generator with no camera, but it means the interface implies a control authority the underlying tool does not have, and the documentation is the only place that says so.

Three shooting modes are claimed, two are listed

The interface is organised as a camera, and the metaphor is consistent. There is a central viewfinder where you type your creative prompt, described as working like a real camera's viewfinder. Below it a dock switches modes and presses the shutter. On the left a sidebar adjusts camera parameters, browses a gallery and opens an AI conversation. The shooting modes section then has a mismatch worth flagging: the heading announces three shooting modes in both languages, while the visible table beneath it lists two, text-to-image turning text into an image and image-to-image taking a reference image plus text. The table ends there and the next section begins, so the third mode is promised in the heading and never enumerated in the text that follows.

The failure modes are documented as a troubleshooting table

Where many AI apps hide their errors, this one publishes them, and the four entries are the most useful page in the repository. A generation that fails reporting that the API key is not valid means the key has expired or is wrong and a new one is needed. A generation that always times out is attributed to a regional or network problem, with the fix being to fill in a base URL pointing at a proxy. Black images are attributed to a safety filter having fired on the request, with the advice to remove sensitive words. And a batch that fails is a rate limit, fixed by dropping to a single image or switching to a key with a higher quota. Each of those is a real generation pipeline failure rather than a crash, and naming them is more useful to a user than a generic error dialog would be.

Batch runs serially so one failure does not lose the batch

Batch generation is designed around rate limits rather than throughput. You pick one, two or four images, the work runs serially to avoid being throttled, a single failure does not interrupt the rest of the batch, and the failure details are reported at the end rather than thrown away. That is the right behaviour for a consumer quota, and it is the opposite of what you would do if the backend were yours. Alongside it sits auto-save, which when enabled writes the generated PNG and the prompt text after every generation, so nothing is lost by closing the window mid-batch. The keyboard map is short and camera-flavoured: Enter captures, Shift and Enter adds a newline, Escape closes an overlay, the platform command key with K clears the prompt, with plus and minus zooms, and the at-sign pulls in a reference image.

Three languages and two dead shells in one repository

The stack is wider than a single application would suggest. The frontend is React and Vite in TypeScript. The canvas backend is a separate Python service built on FastAPI, with its own main file, its own requirements file, directories for ComfyUI workflows, canvas and conversation storage, generated output and uploaded assets, and its own environment template. The desktop shell is Tauri 2 with Rust, and there are dedicated build scripts for three targets: Windows x64, macOS x64 and mac arm64, with no Linux target among them. What is left behind is equally telling. An `electron/` directory and a separate Electron build document are still in the tree, alongside signing variables for Electron in the environment example, all of it superseded by the move to Tauri that the README mentions in passing. A postinstall step also runs patch-package, so the install applies patches from the repository.

Keys are typed into the panel, not read from the environment

The environment example opens by saying every field in it is optional, because end users fill values in the interface themselves and the file exists for continuous integration, automated tests and self-hosted development. That arrangement is reinforced by a behaviour toggle that should stay false in production builds, specifically so that keys are not exposed through developer tools, which only makes sense if a key can end up in the client bundle. The user-facing path is described as a gear icon in the top right opening API settings, a Gemini key obtained from Google AI Studio, other fields left at their defaults, and a test-connection button that turns into a green checkmark. The README also claims the key is stored with system-level encryption through the macOS Keychain or Windows DPAPI. What the environment file no longer matches is the signing section, which still documents Electron certificate and Apple notarisation variables for a runtime the project has left.

The canvas half is six providers, ComfyUI and a recycle bin

The larger half of the product is an infinite canvas, described as an integration of another project's full feature set. The new work is breadth of backends: image generation across six platforms, video generation across several named model families, a ComfyUI node that executes workflows against a local instance with custom workflows and load balancing, free models from a Chinese model hub, an asset library that canvas nodes reference directly, real-time collaboration over a WebSocket with a live count of connected users, and server-side canvas persistence with a recycle bin and restore. Three nodes are new by name, one for ComfyUI, one composer node that switches between API, hub and ComfyUI engines, and one that picks from the asset library, alongside a provider configuration panel. Running it means starting the backend script, starting the frontend in a second terminal, and opening port 3000:

bash
./start-server.sh
npm run dev

One legal detail belongs here too: there is no licence file anywhere in the tree and the package is marked private.

Editorial conclusion

MOKE Vision One fits someone who wants a canvas-based generation workspace with ComfyUI and several hosted providers behind one interface, and who is comfortable with the camera framing being presentation rather than mechanism. It does not fit anyone who reads the repository description as a hardware specification, because that description talks about a physical sensor and a lens while the code is a prompt-driven generator. Three things to know before building on it. The focal length, aperture and ISO controls change the wording of your prompt rather than the image synthesis, so treat them as a style preset and not as a camera. API keys for end users are typed into the settings panel and stored through the platform keystore, with the environment file reserved for continuous integration and development, which is the right arrangement but also means the build-time client variables are not where a secret belongs. And there is no licence file while the package is marked private, so no terms for reuse are stated, and the Electron build documentation and its directory remain in the tree beside the Tauri ones. Version 4.0.0, tagged and pushed on the same day in June 2026.

Frequently asked questions

What is MOKE Vision One?

A desktop application for generating images and video with AI, built on React and Vite, with its desktop packaging now running on Tauri 2 and Rust. It ships an infinite canvas with ComfyUI workflow support and connects to several hosted image and video generation providers.

Do the camera settings in MOKE Vision One change the image?

They change the prompt. Focal length from 24mm to 200mm, aperture from f/1.0 to f/16, ISO from 100 to 6400 and the aspect ratio are injected into the prompt as text to influence style, and the documentation says the quality that actually matters comes from your prompt and your reference image.

Why does MOKE Vision One generate black images?

That is a documented symptom of a safety filter firing on the request. The troubleshooting table attributes black images to triggered safety filters and suggests removing sensitive words. Other entries cover an invalid or expired key, persistent timeouts solved by pointing the base URL at a proxy, and batch failures caused by rate limits.

Where are MOKE Vision One API keys stored?

For end users the key is typed into the settings panel and the documentation claims system-level encryption through the macOS Keychain or Windows DPAPI. The environment example marks every field as optional and intended for continuous integration, automated tests or self-hosted development, and warns that developer tools should stay disabled in production builds so keys are not exposed.

Can MOKE Vision One be used without a local backend?

The canvas features need the Python backend running, which is started with a script before the frontend is started in a second terminal, and the backend reads its provider settings from its own environment file: a base URL, a key, a protocol, a Gemini key, a model-hub token, and a list of ComfyUI instances as name and URL pairs. The key handling for the app itself is done through the interface rather than that file.

Official sources

  1. Issues
  2. MOKEAIGC/MOKE-Vision-One on GitHub
  3. README
  4. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/mokeaigc-moke-vision-one.svg)](https://hysenlabs.com/projects/mokeaigc-moke-vision-one)