An enhanced desktop fork of an AI image playground, rebuilt into a multi-channel image generation studio with prompt optimization, boards, billing, and Windows packaging.
English | 中文
WONDERLAND is a heavily extended desktop edition based on an image generation playground project. It keeps the simple image-generation workflow, then adds the missing pieces needed for daily desktop use: multi-provider API management, quick model switching, prompt optimization with text models, board folders, cost tracking, image cache management, and a native Windows release package.
This is not a minimal web demo. It is intended to work as a local AI image generation client.
The upstream project is a lightweight image-generation playground. WONDERLAND turns that foundation into a fuller desktop production tool. The main advantages are:
| Area | Upstream Playground | WONDERLAND |
|---|---|---|
| Product form | Web/PWA-style playground | Native Windows desktop client with installer and portable build |
| Branding | Browser-oriented app identity | Unified desktop identity: app name, logo, title bar, taskbar icon, process icon, and installer icon |
| API management | Basic image API configuration | Multi-channel API manager with saved profiles, provider templates, custom providers, and quick switching |
| Model management | Mainly one active image model flow | Per-channel image model lists and text model lists, with one-click switching |
| Prompt workflow | User writes the prompt manually | Text-model prompt optimizer with streaming output, reference-image input, scenes, and version history |
| Workflow organization | Task history focused | Board sidebar with folder-style workspace organization and drag-and-drop image assignment |
| Cost visibility | Limited or no detailed billing view | Per-image and per-task cost tracking, prompt-optimization cost tracking, token usage, fixed-call pricing, and statistics filters |
| Desktop persistence | Browser storage behavior | Local desktop data, cache, boards, settings, and ZIP import/export |
| Release workflow | Developer-run project | Release-mode Windows packaging with installer and portable executable |
| Safety hardening | Web app defaults | Electron context isolation, sandboxing, CSP, controlled external-link handling, and removal of unnecessary install-as-app flow |
- Desktop application: rebuilt as an Electron desktop client with a custom title bar, app icon, taskbar icon, process icon, and installer icon.
- Multi-channel API management: add and save multiple API channels, similar to channel/model management in Cherry Studio.
- Quick switching: switch image channels and models directly from the main generation panel.
- Per-channel model lists: save image models and text models independently for each API channel.
- More provider support: OpenAI-compatible APIs, fal.ai, custom HTTP image providers, and common domestic/international image generation service templates.
- Prompt optimization: use a text model to rewrite and optimize prompts before image generation.
- Streaming optimizer output: optimized prompts appear progressively instead of replacing text instantly.
- Prompt version history: switch between the original prompt and multiple optimized versions.
- Optimization scenes: built-in scene prompts for poster design, logo design, product images, characters, product retouching, scene generation, pattern design, cartoon design, industrial design, and more.
- Reference-image-aware optimization: when reference images exist, they can be sent to the text model for more accurate prompt optimization.
- Board sidebar: folder-style boards for organizing complete image workspaces.
- Drag-and-drop organization: drag generated images into any board folder.
- Billing statistics: track image generation and prompt-optimization cost separately.
- Token and fixed-call pricing: display input/output token prices when available and fixed per-call prices for per-call channels.
- Per-image usage display: generated results can show their own channel/model/cost usage.
- Statistics modal: filter spending by date range, day/week/month/year/all, channel, and model.
- Local persistence: tasks, generated images, cache, boards, and settings are stored locally.
- Import/export: export local data as a ZIP backup and import it later.
- Security cleanup: desktop shell behavior is restricted, external links are opened outside the app, and CSP/context isolation are enabled.
WONDERLAND supports three integration paths:
- OpenAI-compatible image APIs: fill in Base URL, API Key, API mode, and model ID.
- fal.ai endpoints: fill in the fal API key and the fal endpoint ID as the model.
- Custom HTTP providers: import a provider manifest when the service does not expose an OpenAI-compatible image endpoint.
| Field | What To Enter | Example |
|---|---|---|
| Channel name | Any name that helps you recognize the account or route | OpenAI Main, DashScope CN, SiliconFlow FLUX |
| Provider | Choose the matching preset when available; otherwise use OpenAI-compatible or Custom HTTP | OpenAI Images, fal.ai, 自定义 OpenAI 兼容渠道 |
| Base URL | API root, usually ending with /v1 or the provider's documented API root |
https://api.openai.com/v1 |
| API Key | Your provider key only, without the Bearer prefix |
sk-... |
| API mode | images for /images/generations and /images/edits; responses for OpenAI Responses image workflows |
images |
| Image model | The exact model ID or endpoint ID exposed by the provider | gpt-image-1, fal-ai/flux/schnell |
| Text model | Optional model used by the magic-wand prompt optimizer | gpt-4.1, qwen-vl-max-latest |
| Return Base64 | Enable it when a provider's image URL blocks browser download or expires quickly | enabled/disabled |
These examples are meant as practical presets. Model availability depends on your provider account and region, so always use the exact model ID shown in your provider console.
| Provider / Route | Provider Type In App | Base URL | API Mode | Image Model Examples | Text Model Examples | Notes |
|---|---|---|---|---|---|---|
| OpenAI Images | OpenAI-compatible | https://api.openai.com/v1 |
images |
gpt-image-1, gpt-image-1.5, gpt-image-2 if exposed by your account |
gpt-4.1, gpt-4o, gpt-5.2, gpt-5.5 if available |
Use for GPT Image generation/editing through the Images API. |
| OpenAI Responses | OpenAI-compatible | https://api.openai.com/v1 |
responses |
response-capable image workflow model | gpt-5.2, gpt-5.5 if available |
Use when your OpenAI-compatible route supports image generation through Responses. |
| fal.ai | fal.ai | https://fal.run |
images |
fal-ai/flux/schnell, fal-ai/flux-pro/v1.1-ultra, fal-ai/imagen4/preview, openai/gpt-image-2 |
Any configured OpenAI-compatible text model for prompt optimization | In fal, the model field is the endpoint ID. |
| Alibaba Cloud Model Studio / DashScope | OpenAI-compatible or Custom HTTP | https://dashscope.aliyuncs.com/compatible-mode/v1 for compatible routes |
images when compatible; Custom HTTP for native async image APIs |
wan2.7-image-pro, wan2.7-image, wan2.1-t2i-turbo, qwen-image-2.0-pro, z-image-turbo |
qwen-vl-max-latest, qwen-plus-latest, qwen-max-latest |
If the selected image model only supports DashScope native async endpoints, import a Custom HTTP provider instead of using the OpenAI-compatible preset. |
| Zhipu / Z.ai CogView | OpenAI-compatible | https://open.bigmodel.cn/api/paas/v4 or the current Z.ai endpoint shown in your console |
images |
cogView-4-250304, cogview-4-250304, glm-image |
glm-4.5v, glm-4-plus |
Model ID casing can differ between Zhipu/Z.ai docs and gateways; use the exact console value. |
| Volcengine Ark / Doubao Seedream | OpenAI-compatible | https://ark.cn-beijing.volces.com/api/v3 |
images |
doubao-seedream-3-0-t2i-250415, doubao-seededit-3-0-i2i-250628, your Ark endpoint ID |
doubao-seed-1-6, your Ark text endpoint ID |
Some Ark models must be filled as the endpoint ID created in the Ark console. |
| SiliconFlow | OpenAI-compatible | https://api.siliconflow.cn/v1 |
images |
black-forest-labs/FLUX.1-schnell, black-forest-labs/FLUX.1-dev, Kwai-Kolors/Kolors |
Qwen/Qwen2.5-VL-72B-Instruct, Qwen/Qwen2.5-72B-Instruct, Pro/deepseek-ai/DeepSeek-V3 |
Good for open image models and Chinese-friendly model routing. |
| One API / New API / other compatible gateways | OpenAI-compatible | https://your-gateway.example.com/v1 |
images or responses |
Whatever your gateway exposes | Whatever your gateway exposes | WONDERLAND can also read /api/pricing from compatible gateway deployments to display token or fixed-call pricing when available. |
Some mainstream image models do not use the same /v1/images/generations shape. They are still usable, but should be connected through a Custom HTTP provider manifest or an OpenAI-compatible gateway.
| Provider / Model Family | Typical Model Examples | Recommended WONDERLAND Setup | Notes |
|---|---|---|---|
| Google Imagen / Vertex AI | imagen-4.0-generate-001, imagen-4.0-ultra-generate-001, imagen-4.0-fast-generate-001 |
Custom HTTP provider or compatible gateway | Native Vertex AI uses Google Cloud project/location endpoints and OAuth-style auth, so it is not a simple Base URL + API Key image route. |
| Stability AI / Stable Image | stable-image-core, Stable Diffusion 3.5, SDXL routes |
Custom HTTP provider | Stability endpoints use their own paths and multipart/form fields. |
| Replicate | black-forest-labs/flux-schnell, stability-ai/sdxl, other hosted model versions |
Custom HTTP async provider | Replicate usually returns prediction IDs and requires polling. |
| Midjourney | Provider-specific model or task route | Third-party compatible gateway or Custom HTTP provider | Midjourney does not provide a general official public API; only use authorized gateways/accounts. |
| Ideogram / Recraft / Leonardo / other design APIs | Provider-specific model IDs | Custom HTTP provider or compatible gateway | Use the provider's API docs to map request body, polling, and result image paths. |
For a synchronous OpenAI-like image service:
{
"customProviders": [
{
"id": "custom-example-sync",
"name": "Example Sync Image API",
"submit": {
"path": "images/generations",
"method": "POST",
"contentType": "json",
"body": {
"model": "$profile.model",
"prompt": "$prompt",
"size": "$params.size",
"n": "$params.n"
},
"result": {
"imageUrlPaths": ["data.*.url"],
"b64JsonPaths": ["data.*.b64_json"]
}
}
}
],
"profiles": [
{
"name": "Example Sync Image API",
"provider": "custom-example-sync",
"baseUrl": "https://api.example.com/v1",
"model": "example-image-model",
"apiMode": "images"
}
]
}For async services, add taskIdPath to submit and a poll block with statusPath, successValues, failureValues, and image result paths. The settings page includes a "copy for LLM" helper that can turn a provider's API documentation into this JSON format.
| Main Workspace | Channel And Model Settings |
|---|---|
![]() |
![]() |
| Board Sidebar | Billing And Usage |
|---|---|
![]() |
![]() |
| Prompt Optimization |
|---|
![]() |
Download the latest Windows build from GitHub Releases.
Release artifacts for version 1.5.6:
WONDERLAND Setup 1.5.6.exe: Windows installerWONDERLAND 1.5.6.exe: portable Windows executable
npm install
npm run devnpm run desktop:devnpm run build
npm run desktop:buildThe Windows desktop build is written to:
release/
npm testWONDERLAND is local-first. API keys, channel settings, task history, generated images, image cache, prompt versions, boards, and billing records are stored on the local machine. The app calls only the API channels configured by the user.
Current version: 1.5.6
MIT
基于生图 Playground 项目深度改造的桌面增强版,新增多渠道模型管理、提示词优化、画板、费用统计和 Windows 打包发布能力。
WONDERLAND 是在原有生图 Playground 项目基础上做的大幅扩展版本。它保留了轻量生图流程,同时补上了桌面端日常使用需要的能力:多 API 渠道管理、快速模型切换、文本模型提示词优化、画板文件夹、费用统计、图片缓存管理和 Windows 安装包。
它不是简单的网页 Demo,而是面向本地使用的 AI 生图桌面客户端。
原项目更偏轻量级生图 Playground。WONDERLAND 在这个基础上改造成了更适合长期使用的桌面生产力工具,主要优势如下:
| 对比项 | 原项目 | WONDERLAND |
|---|---|---|
| 产品形态 | 偏网页/PWA 生图工具 | 原生 Windows 桌面客户端,提供安装包和便携版 |
| 品牌和桌面体验 | 更偏浏览器应用身份 | 统一软件名、Logo、标题栏、任务栏图标、进程图标和安装包图标 |
| API 渠道管理 | 基础生图 API 配置 | 多渠道管理,可保存多个渠道、服务商模板、自定义服务商,并可快速切换 |
| 模型管理 | 主要围绕单个当前图像模型 | 每个渠道独立保存图像模型和文本模型,主界面一键切换 |
| 提示词流程 | 用户手动输入提示词 | 文本模型自动优化提示词,支持流式输出、参考图输入、场景模板和版本回退 |
| 工作区组织 | 以任务历史为主 | 新增画板侧边栏和文件夹式管理,可拖拽成果图到任意画板 |
| 费用透明度 | 缺少细分费用视图 | 单图/任务费用、提示词优化费用、token、按次计费、渠道/模型筛选统计 |
| 本地数据能力 | 依赖浏览器存储体验 | 桌面端本地保存任务、图片缓存、画板、配置,并支持 ZIP 导入导出 |
| 发布方式 | 更偏开发者本地运行 | Release 模式 Windows 打包,直接分发 exe 安装包和便携版 |
| 安全加固 | Web 应用默认行为 | Electron 上下文隔离、沙箱、CSP、外链拦截,并移除不需要的“安装为应用”流程 |
- 桌面客户端:改造成 Electron 桌面应用,并统一标题栏、软件图标、任务栏图标、进程图标和安装包图标。
- 多渠道 API 管理:可以添加并保存多个 API 渠道,交互方式接近 Cherry Studio 的渠道/模型管理。
- 快速切换:在主界面直接切换生图渠道和图像模型。
- 每个渠道独立保存模型:图像模型和文本模型列表都可以按渠道保存。
- 更多服务商支持:支持 OpenAI 兼容接口、fal.ai、自定义 HTTP 生图服务商,以及常见国内外生图渠道模板。
- 提示词优化:可以用文本模型在生图前优化用户输入的提示词。
- 流式优化显示:优化后的提示词会像对话模型一样逐字流式出现。
- 提示词版本历史:可以在原始提示词和多次优化后的提示词之间切换。
- 优化场景:内置海报设计、Logo 设计、商品图、人物生成、产品修图、场景生成、图案设计、卡通设计、工业设计等场景提示词。
- 参考图辅助优化:有参考图时,可以将参考图一并传给文本模型,让优化后的提示词更准确。
- 画板侧边栏:新增类似文件夹的画板系统,用来储存整版画板和结果图。
- 拖拽归档:可以把任意成果图拖到任意画板文件夹。
- 费用统计:生图费用和提示词优化费用分开记录并汇总。
- 支持 token 和按次计费:有输入/输出 token 价格时显示 token 单价;按次计费渠道显示每次价格。
- 单图消耗显示:每张成果图可以显示自己的渠道、模型和费用信息。
- 统计弹窗:可按日期范围、日/周/月/年/全部、渠道、模型筛选费用和 token。
- 本地持久化:任务、图片、缓存、画板和设置都保存在本机。
- 导入导出:支持 ZIP 备份导出和恢复导入。
- 安全清理:限制桌面壳行为,外部链接在系统浏览器打开,启用 CSP、上下文隔离和沙箱。
WONDERLAND 支持三种接入方式:
- OpenAI 兼容生图接口:填写 Base URL、API Key、API 模式和模型 ID。
- fal.ai endpoint:填写 fal API Key,把 fal endpoint ID 填到模型栏。
- 自定义 HTTP 服务商:如果服务商不是 OpenAI 兼容格式,就导入自定义服务商 Manifest。
| 字段 | 填什么 | 示例 |
|---|---|---|
| 渠道名称 | 方便自己识别的名称 | OpenAI 主账号、百炼国内、SiliconFlow FLUX |
| 服务商 | 优先选择内置预设;没有预设就选 OpenAI 兼容或自定义 HTTP | OpenAI Images、fal.ai、自定义 OpenAI 兼容渠道 |
| Base URL | API 根地址,通常以 /v1 或服务商文档指定根路径结尾 |
https://api.openai.com/v1 |
| API Key | 只填 key 本身,不要加 Bearer |
sk-... |
| API 模式 | /images/generations、/images/edits 用 images;OpenAI Responses 生图链路用 responses |
images |
| 图像模型 | 服务商控制台或文档里的精确模型 ID / endpoint ID | gpt-image-1、fal-ai/flux/schnell |
| 文本模型 | 可选,用于魔法棒提示词优化 | gpt-4.1、qwen-vl-max-latest |
| 返回 Base64 | 图片 URL 会跨域、过期或下载失败时开启 | 开 / 关 |
下面是常见填写方式。模型是否可用取决于你的账号权限、地域和服务商控制台,请以控制台显示的模型 ID 为准。
| 渠道 / 路由 | 软件里选什么 | Base URL | API 模式 | 图像模型示例 | 文本模型示例 | 备注 |
|---|---|---|---|---|---|---|
| OpenAI Images | OpenAI 兼容 | https://api.openai.com/v1 |
images |
gpt-image-1、gpt-image-1.5、账号可用时的 gpt-image-2 |
gpt-4.1、gpt-4o、账号可用时的 gpt-5.2、gpt-5.5 |
用于 GPT Image 的生成和编辑接口。 |
| OpenAI Responses | OpenAI 兼容 | https://api.openai.com/v1 |
responses |
支持 Responses 生图链路的模型 | gpt-5.2、gpt-5.5 等 |
当你的 OpenAI 或兼容路由支持 Responses 生图时使用。 |
| fal.ai | fal.ai | https://fal.run |
images |
fal-ai/flux/schnell、fal-ai/flux-pro/v1.1-ultra、fal-ai/imagen4/preview、openai/gpt-image-2 |
另配一个 OpenAI 兼容文本模型用于提示词优化 | fal 的模型栏填写 endpoint ID。 |
| 阿里云百炼 / DashScope | OpenAI 兼容或自定义 HTTP | 兼容模式常用 https://dashscope.aliyuncs.com/compatible-mode/v1 |
兼容接口用 images;原生异步生图接口用自定义 HTTP |
wan2.7-image-pro、wan2.7-image、wan2.1-t2i-turbo、qwen-image-2.0-pro、z-image-turbo |
qwen-vl-max-latest、qwen-plus-latest、qwen-max-latest |
如果某个图片模型只支持 DashScope 原生异步接口,不要硬填 OpenAI 兼容,改用自定义服务商。 |
| 智谱 / Z.ai CogView | OpenAI 兼容 | https://open.bigmodel.cn/api/paas/v4 或控制台当前 Z.ai 地址 |
images |
cogView-4-250304、cogview-4-250304、glm-image |
glm-4.5v、glm-4-plus |
不同文档和网关可能大小写不同,按控制台模型 ID 填。 |
| 火山方舟 / 豆包 Seedream | OpenAI 兼容 | https://ark.cn-beijing.volces.com/api/v3 |
images |
doubao-seedream-3-0-t2i-250415、doubao-seededit-3-0-i2i-250628、你的方舟 endpoint ID |
doubao-seed-1-6、你的文本 endpoint ID |
方舟里很多模型需要填写控制台创建的 endpoint ID。 |
| SiliconFlow | OpenAI 兼容 | https://api.siliconflow.cn/v1 |
images |
black-forest-labs/FLUX.1-schnell、black-forest-labs/FLUX.1-dev、Kwai-Kolors/Kolors |
Qwen/Qwen2.5-VL-72B-Instruct、Qwen/Qwen2.5-72B-Instruct、Pro/deepseek-ai/DeepSeek-V3 |
适合接入开源生图模型和中文生态模型路由。 |
| One API / New API / 其它兼容网关 | OpenAI 兼容 | https://your-gateway.example.com/v1 |
images 或 responses |
网关暴露什么就填什么 | 网关暴露什么就填什么 | WONDERLAND 会尝试读取兼容网关的 /api/pricing,能拿到时会显示 token 或按次计费价格。 |
有些主流生图模型不是 /v1/images/generations 结构,可以用自定义 HTTP Manifest,或者先接入第三方 OpenAI 兼容网关。
| 服务 / 模型族 | 常见模型示例 | 推荐接入方式 | 备注 |
|---|---|---|---|
| Google Imagen / Vertex AI | imagen-4.0-generate-001、imagen-4.0-ultra-generate-001、imagen-4.0-fast-generate-001 |
自定义 HTTP 或兼容网关 | Vertex AI 原生接口带项目、地域和 Google 鉴权,不是简单 Base URL + API Key 的 OpenAI 图片接口。 |
| Stability AI / Stable Image | stable-image-core、Stable Diffusion 3.5、SDXL 路由 |
自定义 HTTP | Stability 的路径和 multipart 字段是自家格式。 |
| Replicate | black-forest-labs/flux-schnell、stability-ai/sdxl 等 hosted model/version |
自定义 HTTP 异步服务商 | 通常会返回 prediction ID,需要轮询结果。 |
| Midjourney | 第三方路由提供的模型或任务接口 | 授权的兼容网关或自定义 HTTP | Midjourney 没有通用官方公开 API;只使用你有权限的网关或账号。 |
| Ideogram / Recraft / Leonardo / 其它设计 API | 服务商自己的模型 ID | 自定义 HTTP 或兼容网关 | 按服务商文档映射请求体、轮询状态和结果图片路径。 |
同步返回图片的 OpenAI-like 服务可以这样写:
{
"customProviders": [
{
"id": "custom-example-sync",
"name": "Example Sync Image API",
"submit": {
"path": "images/generations",
"method": "POST",
"contentType": "json",
"body": {
"model": "$profile.model",
"prompt": "$prompt",
"size": "$params.size",
"n": "$params.n"
},
"result": {
"imageUrlPaths": ["data.*.url"],
"b64JsonPaths": ["data.*.b64_json"]
}
}
}
],
"profiles": [
{
"name": "Example Sync Image API",
"provider": "custom-example-sync",
"baseUrl": "https://api.example.com/v1",
"model": "example-image-model",
"apiMode": "images"
}
]
}异步接口需要在 submit 里增加 taskIdPath,再增加 poll 配置,写明 statusPath、successValues、failureValues 和结果图片路径。设置页里的“复制给 LLM”可以把服务商 API 文档整理成这种 JSON。
| 主工作区 | 渠道和模型设置 |
|---|---|
![]() |
![]() |
| 画板侧边栏 | 费用统计 |
|---|---|
![]() |
![]() |
| 提示词优化 |
|---|
![]() |
请在 GitHub Releases 页面下载最新版 Windows 程序。
1.5.6 版本包含:
WONDERLAND Setup 1.5.6.exe:Windows 安装包WONDERLAND 1.5.6.exe:Windows 便携版
npm install
npm run devnpm run desktop:devnpm run build
npm run desktop:buildWindows 桌面端产物输出到:
release/
npm testWONDERLAND 是本地优先的软件。API Key、渠道设置、生成历史、图片缓存、提示词版本、画板和费用记录都保存在本机。软件只会请求用户自己配置的 API 渠道。
当前版本:1.5.6
MIT





