ima2-gen 1.1.7 → 1.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -27
- package/bin/commands/annotate.js +137 -0
- package/bin/commands/annotate.ts +118 -0
- package/bin/commands/cancel.js +37 -33
- package/bin/commands/cancel.ts +45 -0
- package/bin/commands/canvas-versions.js +91 -0
- package/bin/commands/canvas-versions.ts +80 -0
- package/bin/commands/cardnews.js +293 -0
- package/bin/commands/cardnews.ts +248 -0
- package/bin/commands/comfy.js +63 -0
- package/bin/commands/comfy.ts +54 -0
- package/bin/commands/config.js +270 -0
- package/bin/commands/config.ts +265 -0
- package/bin/commands/edit.js +97 -72
- package/bin/commands/edit.ts +116 -0
- package/bin/commands/gen.js +140 -118
- package/bin/commands/gen.ts +176 -0
- package/bin/commands/history.js +164 -0
- package/bin/commands/history.ts +145 -0
- package/bin/commands/ls.js +60 -42
- package/bin/commands/ls.ts +60 -0
- package/bin/commands/metadata.js +45 -0
- package/bin/commands/metadata.ts +36 -0
- package/bin/commands/multimode.js +159 -0
- package/bin/commands/multimode.ts +146 -0
- package/bin/commands/node.js +176 -0
- package/bin/commands/node.ts +157 -0
- package/bin/commands/observability.js +201 -0
- package/bin/commands/observability.ts +176 -0
- package/bin/commands/ping.js +26 -20
- package/bin/commands/ping.ts +29 -0
- package/bin/commands/prompt.js +506 -0
- package/bin/commands/prompt.ts +421 -0
- package/bin/commands/ps.js +78 -71
- package/bin/commands/ps.ts +78 -0
- package/bin/commands/session.js +308 -0
- package/bin/commands/session.ts +265 -0
- package/bin/commands/show.js +75 -40
- package/bin/commands/show.ts +69 -0
- package/bin/ima2.js +324 -310
- package/bin/ima2.ts +444 -0
- package/bin/lib/args.js +75 -66
- package/bin/lib/args.ts +73 -0
- package/bin/lib/browser-id.js +15 -0
- package/bin/lib/browser-id.ts +16 -0
- package/bin/lib/client.js +91 -83
- package/bin/lib/client.ts +109 -0
- package/bin/lib/error-hints.js +14 -17
- package/bin/lib/error-hints.ts +23 -0
- package/bin/lib/files.js +26 -28
- package/bin/lib/files.ts +39 -0
- package/bin/lib/output.js +44 -42
- package/bin/lib/output.ts +58 -0
- package/bin/lib/platform.js +60 -56
- package/bin/lib/platform.ts +97 -0
- package/bin/lib/sse.js +73 -0
- package/bin/lib/sse.ts +73 -0
- package/bin/lib/star-prompt.js +69 -76
- package/bin/lib/star-prompt.ts +97 -0
- package/bin/lib/storage-doctor.js +34 -35
- package/bin/lib/storage-doctor.ts +38 -0
- package/config.js +147 -190
- package/config.ts +331 -0
- package/docs/API.md +48 -8
- package/docs/CLI.md +190 -0
- package/docs/FAQ.ko.md +5 -5
- package/docs/FAQ.md +5 -5
- package/docs/README.ja.md +71 -25
- package/docs/README.ko.md +61 -24
- package/docs/README.zh-CN.md +73 -27
- package/lib/assetLifecycle.js +130 -130
- package/lib/assetLifecycle.ts +142 -0
- package/lib/canvasVersionStore.js +135 -153
- package/lib/canvasVersionStore.ts +181 -0
- package/lib/cardNewsGenerator.js +127 -142
- package/lib/cardNewsGenerator.ts +162 -0
- package/lib/cardNewsJobStore.js +78 -84
- package/lib/cardNewsJobStore.ts +107 -0
- package/lib/cardNewsManifestStore.js +88 -93
- package/lib/cardNewsManifestStore.ts +112 -0
- package/lib/cardNewsPlanner.js +157 -152
- package/lib/cardNewsPlanner.ts +180 -0
- package/lib/cardNewsPlannerClient.js +101 -98
- package/lib/cardNewsPlannerClient.ts +114 -0
- package/lib/cardNewsPlannerPrompt.js +56 -56
- package/lib/cardNewsPlannerPrompt.ts +60 -0
- package/lib/cardNewsPlannerSchema.js +231 -223
- package/lib/cardNewsPlannerSchema.ts +259 -0
- package/lib/cardNewsRoleTemplateStore.js +39 -41
- package/lib/cardNewsRoleTemplateStore.ts +47 -0
- package/lib/cardNewsTemplateStore.js +171 -175
- package/lib/cardNewsTemplateStore.ts +210 -0
- package/lib/codexDetect.js +44 -47
- package/lib/codexDetect.ts +69 -0
- package/lib/comfyBridge.js +164 -184
- package/lib/comfyBridge.ts +214 -0
- package/lib/db.js +41 -51
- package/lib/db.ts +166 -0
- package/lib/errorClassify.js +62 -78
- package/lib/errorClassify.ts +100 -0
- package/lib/generationErrors.js +140 -103
- package/lib/generationErrors.ts +125 -0
- package/lib/historyList.js +149 -147
- package/lib/historyList.ts +164 -0
- package/lib/imageMetadata.js +86 -89
- package/lib/imageMetadata.ts +111 -0
- package/lib/imageMetadataStore.js +46 -51
- package/lib/imageMetadataStore.ts +67 -0
- package/lib/imageModels.js +38 -45
- package/lib/imageModels.ts +52 -0
- package/lib/inflight.js +131 -150
- package/lib/inflight.ts +204 -0
- package/lib/localImportStore.js +105 -0
- package/lib/localImportStore.ts +111 -0
- package/lib/logger.js +105 -112
- package/lib/logger.ts +150 -0
- package/lib/nodeStore.js +65 -64
- package/lib/nodeStore.ts +81 -0
- package/lib/oauthLauncher.js +61 -59
- package/lib/oauthLauncher.ts +64 -0
- package/lib/oauthNormalize.js +15 -19
- package/lib/oauthNormalize.ts +30 -0
- package/lib/oauthProxy.js +834 -832
- package/lib/oauthProxy.ts +995 -0
- package/lib/openDirectory.js +41 -40
- package/lib/openDirectory.ts +45 -0
- package/lib/pngInfo.js +18 -20
- package/lib/pngInfo.ts +26 -0
- package/lib/promptImport/curatedSources.js +135 -0
- package/lib/promptImport/curatedSources.ts +139 -0
- package/lib/promptImport/discoveryRegistry.js +218 -0
- package/lib/promptImport/discoveryRegistry.ts +236 -0
- package/lib/promptImport/errors.js +10 -10
- package/lib/promptImport/errors.ts +18 -0
- package/lib/promptImport/githubDiscovery.js +238 -0
- package/lib/promptImport/githubDiscovery.ts +248 -0
- package/lib/promptImport/githubFolder.js +302 -0
- package/lib/promptImport/githubFolder.ts +308 -0
- package/lib/promptImport/githubSource.js +194 -171
- package/lib/promptImport/githubSource.ts +239 -0
- package/lib/promptImport/gptImageHints.js +61 -0
- package/lib/promptImport/gptImageHints.ts +68 -0
- package/lib/promptImport/parsePromptCandidates.js +110 -112
- package/lib/promptImport/parsePromptCandidates.ts +153 -0
- package/lib/promptImport/promptIndex.js +230 -0
- package/lib/promptImport/promptIndex.ts +248 -0
- package/lib/promptImport/rankPromptCandidates.js +52 -0
- package/lib/promptImport/rankPromptCandidates.ts +49 -0
- package/lib/providerOptions.js +31 -0
- package/lib/providerOptions.ts +41 -0
- package/lib/referenceImageCompress.js +51 -62
- package/lib/referenceImageCompress.ts +75 -0
- package/lib/refs.js +93 -81
- package/lib/refs.ts +117 -0
- package/lib/requestLogger.js +32 -38
- package/lib/requestLogger.ts +48 -0
- package/lib/responsesImageAdapter.js +351 -0
- package/lib/responsesImageAdapter.ts +352 -0
- package/lib/runtimePorts.js +71 -73
- package/lib/runtimePorts.ts +93 -0
- package/lib/sessionStore.js +179 -230
- package/lib/sessionStore.ts +272 -0
- package/lib/storageMigration.js +247 -245
- package/lib/storageMigration.ts +284 -0
- package/lib/styleSheet.js +86 -90
- package/lib/styleSheet.ts +128 -0
- package/lib/systemTrash.js +18 -0
- package/lib/systemTrash.ts +20 -0
- package/package.json +26 -10
- package/routes/annotations.js +76 -79
- package/routes/annotations.ts +95 -0
- package/routes/canvasVersions.js +50 -54
- package/routes/canvasVersions.ts +64 -0
- package/routes/cardNews.js +158 -171
- package/routes/cardNews.ts +183 -0
- package/routes/comfy.js +23 -31
- package/routes/comfy.ts +39 -0
- package/routes/edit.js +183 -214
- package/routes/edit.ts +230 -0
- package/routes/generate.js +269 -291
- package/routes/generate.ts +309 -0
- package/routes/health.js +102 -107
- package/routes/health.ts +114 -0
- package/routes/history.js +136 -144
- package/routes/history.ts +153 -0
- package/routes/imageImport.js +33 -0
- package/routes/imageImport.ts +33 -0
- package/routes/index.js +18 -16
- package/routes/index.ts +35 -0
- package/routes/metadata.js +60 -64
- package/routes/metadata.ts +71 -0
- package/routes/multimode.js +228 -263
- package/routes/multimode.ts +280 -0
- package/routes/nodes.js +378 -424
- package/routes/nodes.ts +455 -0
- package/routes/promptImport.js +291 -152
- package/routes/promptImport.ts +354 -0
- package/routes/prompts.js +333 -360
- package/routes/prompts.ts +379 -0
- package/routes/sessions.js +277 -285
- package/routes/sessions.ts +292 -0
- package/routes/storage.js +29 -31
- package/routes/storage.ts +39 -0
- package/server.js +189 -196
- package/server.ts +235 -0
- package/ui/dist/.vite/manifest.json +101 -0
- package/ui/dist/assets/CardNewsWorkspace-BJOCey7Z.js +2 -0
- package/ui/dist/assets/NodeCanvas-BZV40eAE.css +1 -0
- package/ui/dist/assets/NodeCanvas-C3dzYNsk.js +7 -0
- package/ui/dist/assets/PromptImportDialog-Dqu1VpUh.js +2 -0
- package/ui/dist/assets/PromptImportDiscoverySection-Dg8T9X0L.js +1 -0
- package/ui/dist/assets/PromptImportFolderSection-DBaqsFO4.js +1 -0
- package/ui/dist/assets/PromptLibraryPanel-p5QqR97M.js +2 -0
- package/ui/dist/assets/SettingsWorkspace-B5bSAZ6u.js +1 -0
- package/ui/dist/assets/index-C9cXwiWE.js +25 -0
- package/ui/dist/assets/index-CGMIkZXn.css +1 -0
- package/ui/dist/assets/index-Cvld7dUZ.js +1 -0
- package/ui/dist/index.html +6 -3
- package/assets/screenshot.png +0 -0
- package/assets/screenshots/classic-generate-light.png +0 -0
- package/assets/screenshots/node-graph-branching.png +0 -0
- package/assets/screenshots/settings-oauth-generation.png +0 -0
- package/assets/screenshots/settings-workspace.png +0 -0
- package/assets/screenshots/style-sheet-editor.png +0 -0
- package/integrations/comfyui/ima2_gen_bridge/__pycache__/__init__.cpython-313.pyc +0 -0
- package/integrations/comfyui/ima2_gen_bridge/__pycache__/nodes.cpython-313.pyc +0 -0
- package/ui/dist/assets/index-DARPdT4Q.css +0 -1
- package/ui/dist/assets/index-ht80GMq4.js +0 -31
- package/ui/dist/assets/index-ht80GMq4.js.map +0 -1
package/docs/FAQ.md
CHANGED
|
@@ -12,7 +12,7 @@ For Korean, see [FAQ.ko.md](FAQ.ko.md).
|
|
|
12
12
|
|---|---|
|
|
13
13
|
| The server is unreachable | Run `ima2 serve`, then `ima2 ping`. |
|
|
14
14
|
| OAuth login fails | Run `npx @openai/codex login`, then restart `ima2 serve`. |
|
|
15
|
-
| API key
|
|
15
|
+
| API key provider says `API_KEY_REQUIRED` | Configure an API key, or switch back to the OAuth provider. |
|
|
16
16
|
| Old gallery images look missing | Run `ima2 doctor`, then see [Recover Old Generated Images](RECOVER_OLD_IMAGES.md). |
|
|
17
17
|
| `gpt-5.5` fails | Update Codex CLI first, then try `gpt-5.4` as the stable fallback. |
|
|
18
18
|
| Reference upload fails | Use JPEG/PNG, lower the resolution, and keep references to 5 images or fewer. |
|
|
@@ -76,13 +76,13 @@ again.
|
|
|
76
76
|
|
|
77
77
|
### Do I need an OpenAI API key?
|
|
78
78
|
|
|
79
|
-
No for
|
|
79
|
+
No for the default generation path. The normal path uses your local Codex/ChatGPT OAuth session.
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
If you configure an API key, image generation routes can also use `provider: "api"` through the Responses API `image_generation` tool.
|
|
82
82
|
|
|
83
|
-
### Why does the settings page say "
|
|
83
|
+
### Why does the settings page say "API key provider available"?
|
|
84
84
|
|
|
85
|
-
It means `ima2-gen` found
|
|
85
|
+
It means `ima2-gen` found a valid API key. API-key mode can generate, edit, run multimode, and create node outputs. If no key is configured, `provider: "api"` fails before upstream with `API_KEY_REQUIRED`.
|
|
86
86
|
|
|
87
87
|
### If Codex CLI is already logged in, does ima2-gen reuse it?
|
|
88
88
|
|
package/docs/README.ja.md
CHANGED
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
[](https://nodejs.org/)
|
|
5
5
|
[](../LICENSE)
|
|
6
6
|
|
|
7
|
+
> 🌐 **Live site**: [lidge-jun.github.io/ima2-gen](https://lidge-jun.github.io/ima2-gen/) · [한국어](https://lidge-jun.github.io/ima2-gen/ko/)
|
|
8
|
+
>
|
|
7
9
|
> **他の言語で読む**: [English](../README.md) · [한국어](README.ko.md) · [简体中文](README.zh-CN.md)
|
|
8
10
|
|
|
9
11
|
`ima2-gen` は、ChatGPT/Codex OAuth の画像生成ワークフローをローカルの小さなデスクトップアプリのように使える画像生成スタジオです。
|
|
10
12
|
|
|
11
|
-
`npx` で起動し、Codex OAuth
|
|
13
|
+
`npx` で起動し、Codex OAuth でログインして、プロンプトを書きながら履歴や参照画像、ノード分岐、multimode batch、Canvas Mode cleanup を活用して試行錯誤(イテレーション)が可能です。通常の画像生成には OpenAI API key は不要です。
|
|
12
14
|
|
|
13
15
|

|
|
14
16
|
|
|
@@ -27,6 +29,8 @@ npx @openai/codex login
|
|
|
27
29
|
npx ima2-gen serve
|
|
28
30
|
```
|
|
29
31
|
|
|
32
|
+
`3333` がすでに使われている場合、次に空いているポートで起動し、実際の URL は `~/.ima2/server.json` に書き込まれます。ポートを決め打ちせず、terminal に表示された URL または `ima2 open` を使ってください。
|
|
33
|
+
|
|
30
34
|
グローバルインストールもできます。
|
|
31
35
|
|
|
32
36
|
```bash
|
|
@@ -38,28 +42,31 @@ ima2 serve
|
|
|
38
42
|
|
|
39
43
|
- **Classic mode**: すばやく生成し、編集し、現在の画像を次の参照として使えます。
|
|
40
44
|
- **Node mode**: 良い画像を起点に、複数の方向へ分岐して試せます。
|
|
45
|
+
- **Multimode batches**: 1つのプロンプトから複数候補を同時に走らせ、slot ごとの進行を見ながら最も良い結果から作業を継続できます。
|
|
46
|
+
- **Canvas Mode**: zoom/pan、annotation、eraser、background cleanup、transparent checkerboard preview、alpha/matte export をサポートします。
|
|
41
47
|
- **Local gallery**: 生成物をローカルに保存し、セッションごとの履歴として確認できます。
|
|
42
48
|
- **Reference images**: 参照画像を drag/drop、paste、file picker で追加できます。大きな画像は送信前に圧縮されます。
|
|
43
|
-
- **
|
|
49
|
+
- **Prompt library imports**: local prompt pack、GitHub folder、curated GPT-image hint を built-in prompt library に取り込めます。
|
|
50
|
+
- **Mobile shell**: 小さい画面では app bar、compose sheet、compact settings toggle で操作できます。
|
|
44
51
|
- **Observable jobs**: 進行中の生成と最近の生成を request ID で追跡できます。
|
|
45
52
|
|
|
46
|
-
## 画像生成は OAuth
|
|
53
|
+
## 画像生成は OAuth と API key をサポートします
|
|
47
54
|
|
|
48
|
-
|
|
55
|
+
既定の画像生成は、ローカルの Codex/ChatGPT OAuth 経路で実行されます。
|
|
49
56
|
|
|
50
|
-
API key が env/config
|
|
57
|
+
API key が env/config に存在する場合、生成エンドポイントで `provider: "api"` を指定すると Responses API の `image_generation` tool を使用できます。
|
|
51
58
|
|
|
52
|
-
Settings に **
|
|
59
|
+
Settings に **API key provider available** と表示される場合、API key が検出され、生成・編集・multimode・node request に使用できるという意味です。
|
|
53
60
|
|
|
54
|
-

|
|
55
62
|
|
|
56
63
|
## モデルの選び方
|
|
57
64
|
|
|
58
|
-
|
|
65
|
+
アプリの既定値は、高速なローカルでの試行錯誤に適した **`gpt-5.4-mini`** です。安定したバランスを重視するなら **`gpt-5.4`** に切り替えることをおすすめします。
|
|
59
66
|
|
|
60
67
|
- `gpt-5.4` — 推奨のバランス型モデル。
|
|
61
|
-
- `gpt-5.4-mini` —
|
|
62
|
-
- `gpt-5.5` —
|
|
68
|
+
- `gpt-5.4-mini` — 現在のアプリ既定値で、素早いドラフト作成に向いています。
|
|
69
|
+
- `gpt-5.5` — 対応環境では最も高品質な出力が得られる選択肢です。ただし使用量の消費が大きくなる場合があり、Codex CLI の更新やアカウント/バックエンド側の image capability が必要になることがあります。
|
|
63
70
|
|
|
64
71
|
Quality は `low`, `medium`, `high`、moderation は `auto`, `low` をサポートします。
|
|
65
72
|
|
|
@@ -72,7 +79,10 @@ Quality は `low`, `medium`, `high`、moderation は `auto`, `low` をサポー
|
|
|
72
79
|
1. プロンプトを書きます。
|
|
73
80
|
2. 必要なら参照画像を追加します。
|
|
74
81
|
3. モデル、quality、size、format、moderation を選びます。
|
|
75
|
-
4.
|
|
82
|
+
4. 1枚を生成するか、multimode で同じプロンプトから複数候補を出します。
|
|
83
|
+
5. 生成後、copy、download、continue、Canvas Mode cleanup を選べます。
|
|
84
|
+
|
|
85
|
+

|
|
76
86
|
|
|
77
87
|
### Node mode
|
|
78
88
|
|
|
@@ -82,15 +92,33 @@ Quality は `low`, `medium`, `high`、moderation は `auto`, `low` をサポー
|
|
|
82
92
|
|
|
83
93
|
各ノードは独自のプロンプトと結果を持ちます。ルートノードにはローカル参照画像を付けられ、子ノードは親画像をソースとして使います。完了した生成は request ID で再接続されるため、リロードや graph version conflict の後でも結果を復元できます。
|
|
84
94
|
|
|
85
|
-
###
|
|
95
|
+
### Canvas Mode
|
|
86
96
|
|
|
87
|
-
|
|
97
|
+
生成結果がほぼ良いが、部分的な修正や背景整理が必要なときに使います。
|
|
88
98
|
|
|
89
|
-
|
|
99
|
+
- ズーム状態でのビューポート移動(Pan)と選択ツールが分離されているため、アノテーションを誤操作することなく画面を移動できます。
|
|
100
|
+
- annotation、eraser、multiselect、group、undo/redo、sticky note を使えます。
|
|
101
|
+
- background cleanup seed を選び、mask preview を確認して canvas version として保存できます。
|
|
102
|
+
- 透明画像は checkerboard preview で確認でき、export は alpha 保持または matte color 合成を選べます。
|
|
103
|
+
- 保存された canvas version は Gallery/HistoryStrip には表示されませんが、Canvas Mode では再利用したり次の reference として添付できます。
|
|
104
|
+
|
|
105
|
+

|
|
106
|
+
|
|
107
|
+
### Prompt library と import
|
|
108
|
+
|
|
109
|
+
Prompt library は local files、GitHub folders、curated sources、GPT-image hint packs から取り込めます。取り込んだ prompt は local index に保存され、毎セッション再 import しなくても検索と ranking に使えます。
|
|
110
|
+
|
|
111
|
+

|
|
112
|
+
|
|
113
|
+
### Experimental Card News Mode
|
|
90
114
|
|
|
91
|
-
|
|
115
|
+
Card News はまだ開発用の実験機能です。既定の公開ランタイムでは、開発用途として明示的に有効化しない限り非表示であり、安定した公開機能として扱うべきではありません。
|
|
92
116
|
|
|
93
|
-
|
|
117
|
+
### Settings
|
|
118
|
+
|
|
119
|
+
Settings ワークスペースでは、アカウント、モデル、テーマ、言語設定が生成パネルから独立しています。
|
|
120
|
+
|
|
121
|
+

|
|
94
122
|
|
|
95
123
|
## CLI commands
|
|
96
124
|
|
|
@@ -98,7 +126,7 @@ Style sheet は、繰り返し使いたい視覚方向を保存するための
|
|
|
98
126
|
|
|
99
127
|
| Command | Description |
|
|
100
128
|
|---|---|
|
|
101
|
-
| `ima2 serve` | ローカル Web
|
|
129
|
+
| `ima2 serve [--dev]` | ローカル Web サーバーを起動。`--dev` は詳細な server diagnostics を表示 |
|
|
102
130
|
| `ima2 setup` | 認証設定を再構成 |
|
|
103
131
|
| `ima2 status` | config と OAuth 状態を表示 |
|
|
104
132
|
| `ima2 doctor` | Node、package、config、auth を診断 |
|
|
@@ -107,18 +135,23 @@ Style sheet は、繰り返し使いたい視覚方向を保存するための
|
|
|
107
135
|
|
|
108
136
|
### Client
|
|
109
137
|
|
|
110
|
-
以下は `ima2 serve` が起動しているときに使えます。
|
|
138
|
+
以下は `ima2 serve` が起動しているときに使えます。CLI はサーバーのすべてのルートを ラップしています。よく使うコマンドのみ抜粋しました。完全なリストは [CLI リファレンス(英語)](CLI.md) を参照してください(generation、history、sessions、prompt library、annotations、Card News、observability、config を網羅)。
|
|
111
139
|
|
|
112
140
|
| Command | Description |
|
|
113
141
|
|---|---|
|
|
114
142
|
| `ima2 gen <prompt>` | CLI から画像生成 |
|
|
115
143
|
| `ima2 edit <file> --prompt <text>` | 既存画像を編集 |
|
|
116
|
-
| `ima2
|
|
117
|
-
| `ima2
|
|
118
|
-
| `ima2
|
|
119
|
-
| `ima2
|
|
144
|
+
| `ima2 multimode <prompt>` | マルチイメージ SSE 生成 |
|
|
145
|
+
| `ima2 ls [--session <id>] [--favorites]` | ローカル履歴を表示 |
|
|
146
|
+
| `ima2 show <name> [--metadata]` | 生成ファイルを開く |
|
|
147
|
+
| `ima2 prompt ls -q <検索>` | プロンプトライブラリ検索 |
|
|
148
|
+
| `ima2 inflight ls [--terminal]` | 進行中 / 直近完了ジョブ(`ps` のエイリアス)|
|
|
149
|
+
| `ima2 config set <key> <value>` | `~/.ima2/config.json` に書き込み |
|
|
150
|
+
| `ima2 ping` | サーバー疎通確認 |
|
|
151
|
+
|
|
152
|
+
サーバーポートは `~/.ima2/server.json` に保存されます。`3333` が埋まっている場合は `3334+` に fallback するため、terminal に表示された URL または `ima2 open` を優先してください。`--server <url>` または `IMA2_SERVER=http://localhost:3333` で上書きできます。
|
|
120
153
|
|
|
121
|
-
|
|
154
|
+
完全なコマンド一覧とフラグは [docs/CLI.md](CLI.md) にあります。
|
|
122
155
|
|
|
123
156
|
## Configuration
|
|
124
157
|
|
|
@@ -131,14 +164,24 @@ environment variables > ~/.ima2/config.json > built-in defaults
|
|
|
131
164
|
| Variable | Default | Description |
|
|
132
165
|
|---|---:|---|
|
|
133
166
|
| `IMA2_PORT` / `PORT` | `3333` | Web server port |
|
|
167
|
+
| `IMA2_HOST` | `127.0.0.1` | Web server bind host |
|
|
134
168
|
| `IMA2_OAUTH_PROXY_PORT` / `OAUTH_PORT` | `10531` | OAuth proxy port |
|
|
135
169
|
| `IMA2_SERVER` | — | CLI target override |
|
|
136
170
|
| `IMA2_CONFIG_DIR` | `~/.ima2` | Config and SQLite location |
|
|
171
|
+
| `IMA2_ADVERTISE_FILE` | `~/.ima2/server.json` | Runtime discovery file |
|
|
137
172
|
| `IMA2_GENERATED_DIR` | `~/.ima2/generated` | Generated image directory |
|
|
173
|
+
| `IMA2_IMAGE_MODEL_DEFAULT` | `gpt-5.4-mini` | Server fallback image model |
|
|
138
174
|
| `IMA2_NO_OAUTH_PROXY` | — | `1` で OAuth proxy の自動起動を無効化 |
|
|
175
|
+
| `IMA2_LOG_LEVEL` | `warn` | 通常の `serve` は `warn`、dev mode は `debug`。`debug`, `info`, `warn`, `error`, `silent` をサポート |
|
|
139
176
|
| `IMA2_INFLIGHT_TERMINAL_TTL_MS` | `30000` | デバッグ用の recent job retention |
|
|
140
177
|
| `OPENAI_API_KEY` | — | 補助機能用。画像生成用ではありません |
|
|
141
178
|
|
|
179
|
+
### Logging modes
|
|
180
|
+
|
|
181
|
+
`ima2 serve` は通常ユーザー向けに terminal output を静かに保ちます。起動 URL、warning、error は表示されますが、request/node/OAuth structured logs は既定で隠されます。
|
|
182
|
+
|
|
183
|
+
request ID、Node generation phases、OAuth stream diagnostics、inflight state transitions を確認したい場合は、`ima2 serve --dev`、`npm run dev`、または `IMA2_LOG_LEVEL=debug ima2 serve` を使ってください。
|
|
184
|
+
|
|
142
185
|
## API Reference
|
|
143
186
|
|
|
144
187
|
Endpoint 一覧は [API Reference](API.md) に分離しました。
|
|
@@ -153,8 +196,8 @@ Endpoint 一覧は [API Reference](API.md) に分離しました。
|
|
|
153
196
|
**OAuth login がうまくいかない**
|
|
154
197
|
`npx @openai/codex login` を実行し、`ima2 status` を確認してから `ima2 serve` を再起動してください。
|
|
155
198
|
|
|
156
|
-
**画像生成が `
|
|
157
|
-
|
|
199
|
+
**画像生成が `API_KEY_REQUIRED` で失敗する**
|
|
200
|
+
`provider: "api"` request に使う API key が設定されていません。API key を設定するか OAuth provider に切り替えてください。
|
|
158
201
|
|
|
159
202
|
**大きな参照画像が失敗する**
|
|
160
203
|
JPEG/PNG は送信前に自動圧縮されます。それでも失敗する場合は、解像度を下げた JPEG/PNG に変換してください。HEIC/HEIF は browser path ではサポートしていません。
|
|
@@ -177,10 +220,13 @@ git clone https://github.com/lidge-jun/ima2-gen.git
|
|
|
177
220
|
cd ima2-gen
|
|
178
221
|
npm install
|
|
179
222
|
npm run dev
|
|
223
|
+
npm run typecheck
|
|
180
224
|
npm test
|
|
181
225
|
npm run build
|
|
182
226
|
```
|
|
183
227
|
|
|
228
|
+
`npm run dev` は UI を build し、TypeScript server entry を `--watch` で起動して verbose diagnostics を表示します。`npm run typecheck`, `npm run build:server`, `npm run build:cli` で TypeScript migration と package emit path を確認できます。
|
|
229
|
+
|
|
184
230
|
## License
|
|
185
231
|
|
|
186
232
|
MIT
|
package/docs/README.ko.md
CHANGED
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
[](https://nodejs.org/)
|
|
5
5
|
[](../LICENSE)
|
|
6
6
|
|
|
7
|
+
> 🌐 **Live site**: [lidge-jun.github.io/ima2-gen](https://lidge-jun.github.io/ima2-gen/) · [한국어 페이지](https://lidge-jun.github.io/ima2-gen/ko/)
|
|
8
|
+
>
|
|
7
9
|
> **다른 언어로 읽기**: [English](../README.md) · [日本語](README.ja.md) · [简体中文](README.zh-CN.md)
|
|
8
10
|
|
|
9
11
|
`ima2-gen`은 ChatGPT/Codex OAuth 이미지 생성 흐름을 로컬 웹앱처럼 쓸 수 있게 만든 이미지 생성 스튜디오입니다.
|
|
10
12
|
|
|
11
|
-
`npx`로 실행하고, Codex OAuth로 로그인한 뒤, 프롬프트를 입력하면서 히스토리, 레퍼런스,
|
|
13
|
+
`npx`로 실행하고, Codex OAuth로 로그인한 뒤, 프롬프트를 입력하면서 히스토리, 레퍼런스, 노드 브랜치, 멀티모드 배치, Canvas Mode 정리 작업으로 계속 이어갈 수 있습니다. 기본 이미지 생성 경로에서는 OpenAI API 키가 필요하지 않습니다.
|
|
12
14
|
|
|
13
15
|

|
|
14
16
|
|
|
@@ -27,6 +29,8 @@ npx @openai/codex login
|
|
|
27
29
|
npx ima2-gen serve
|
|
28
30
|
```
|
|
29
31
|
|
|
32
|
+
`3333`이 이미 사용 중이면 다음 사용 가능한 포트로 열리고 실제 URL은 `~/.ima2/server.json`에 기록됩니다. 포트를 추측하지 말고 터미널에 출력된 URL이나 `ima2 open`을 사용하세요.
|
|
33
|
+
|
|
30
34
|
전역 설치도 가능합니다.
|
|
31
35
|
|
|
32
36
|
```bash
|
|
@@ -38,26 +42,29 @@ ima2 serve
|
|
|
38
42
|
|
|
39
43
|
- **Classic mode**: 빠르게 이미지를 만들고, 수정하고, 현재 결과를 다시 레퍼런스로 사용합니다.
|
|
40
44
|
- **Node mode**: 마음에 드는 이미지를 여러 방향으로 분기해 실험합니다.
|
|
45
|
+
- **Multimode batches**: 하나의 프롬프트에서 여러 후보 슬롯을 동시에 만들고, 가장 좋은 결과에서 이어갑니다.
|
|
46
|
+
- **Canvas Mode**: 확대/이동, 주석, 지우개, 배경 정리, 투명 체크보드 미리보기, alpha/matte export를 지원합니다.
|
|
41
47
|
- **Local gallery**: 생성물을 내 컴퓨터에 저장하고 세션별 히스토리로 봅니다.
|
|
42
48
|
- **Reference images**: 레퍼런스를 드래그, 붙여넣기, 파일 선택으로 추가합니다. 큰 이미지는 업로드 전에 자동 압축됩니다.
|
|
43
|
-
- **
|
|
44
|
-
- **
|
|
49
|
+
- **Prompt library imports**: 로컬 prompt pack, GitHub folder, curated GPT-image hint를 내장 prompt library로 가져옵니다.
|
|
50
|
+
- **Mobile shell**: 작은 화면에서는 app bar, compose sheet, compact settings toggle로 조작합니다.
|
|
51
|
+
- **Observable jobs**: 진행 중인 작업과 최근 완료된 작업을 request ID로 추적합니다.
|
|
45
52
|
|
|
46
|
-
## 이미지 생성은 OAuth
|
|
53
|
+
## 이미지 생성은 OAuth와 API Key를 지원합니다
|
|
47
54
|
|
|
48
|
-
|
|
55
|
+
기본 이미지 생성은 로컬 Codex/ChatGPT OAuth 경로로 실행됩니다.
|
|
49
56
|
|
|
50
|
-
API 키가 env/config에
|
|
57
|
+
API 키가 env/config에 있으면 생성 엔드포인트에서 `provider: "api"`를 보내 Responses API `image_generation` 도구를 사용할 수 있습니다.
|
|
51
58
|
|
|
52
|
-
설정 화면에 **
|
|
59
|
+
설정 화면에 **API key provider available**이 보이면, API 키가 감지됐고 생성/편집/멀티모드/노드 요청에 사용할 수 있다는 뜻입니다.
|
|
53
60
|
|
|
54
61
|

|
|
55
62
|
|
|
56
63
|
## 모델 안내
|
|
57
64
|
|
|
58
|
-
안정적인 균형을 원하면 **`gpt-5.4
|
|
65
|
+
앱 기본값은 빠른 로컬 작업(테스트)에 맞춘 **`gpt-5.4-mini`**입니다. 안정적인 균형을 원하면 **`gpt-5.4`**로 전환하는 것을 권장합니다.
|
|
59
66
|
|
|
60
|
-
- `gpt-5.4` — 추천
|
|
67
|
+
- `gpt-5.4` — 추천 균형 선택지.
|
|
61
68
|
- `gpt-5.4-mini` — 현재 앱 기본값이며 빠른 초안에 적합합니다.
|
|
62
69
|
- `gpt-5.5` — 지원되는 환경에서는 가장 강한 품질 선택지입니다. 다만 더 많은 할당량을 쓸 수 있고, Codex CLI 업데이트가 필요하거나 계정/백엔드별 이미지 capability가 다를 수 있습니다.
|
|
63
70
|
|
|
@@ -72,7 +79,10 @@ API 키가 env/config에 있어도 billing 확인이나 style-sheet 추출 같
|
|
|
72
79
|
1. 프롬프트를 씁니다.
|
|
73
80
|
2. 필요하면 레퍼런스를 붙입니다.
|
|
74
81
|
3. 모델, 품질, 크기, 포맷, 모더레이션을 고릅니다.
|
|
75
|
-
4.
|
|
82
|
+
4. 한 장을 만들거나, multimode를 켜서 같은 프롬프트에서 여러 후보 슬롯을 만듭니다.
|
|
83
|
+
5. 생성 후 복사, 다운로드, 이어서 작업, Canvas Mode 정리를 선택합니다.
|
|
84
|
+
|
|
85
|
+

|
|
76
86
|
|
|
77
87
|
### Node mode
|
|
78
88
|
|
|
@@ -82,15 +92,33 @@ API 키가 env/config에 있어도 billing 확인이나 style-sheet 추출 같
|
|
|
82
92
|
|
|
83
93
|
각 노드는 자기 프롬프트와 결과를 가집니다. 루트 노드는 로컬 레퍼런스를 붙일 수 있고, 자식 노드는 부모 이미지를 소스로 사용합니다. 완료된 작업은 request ID로 다시 매칭되므로 새로고침이나 그래프 버전 충돌 뒤에도 결과를 복구할 수 있습니다.
|
|
84
94
|
|
|
85
|
-
###
|
|
95
|
+
### Canvas Mode
|
|
86
96
|
|
|
87
|
-
|
|
97
|
+
이미지가 거의 맞지만 부분 정리가 필요할 때 Canvas Mode를 사용합니다.
|
|
88
98
|
|
|
89
|
-
|
|
99
|
+
- 확대된 이미지에서 viewport 이동과 선택 도구가 분리되어 실수로 annotation을 바꾸지 않고 화면을 이동할 수 있습니다.
|
|
100
|
+
- annotation, eraser, multiselect, group, undo/redo, sticky note를 사용할 수 있습니다.
|
|
101
|
+
- 배경 정리용 시드(seed)를 지정하여 마스크를 미리 본 뒤 canvas version으로 저장할 수 있습니다.
|
|
102
|
+
- 투명 이미지에는 checkerboard preview를 보여주고, export는 alpha 유지 또는 matte 색상 합성 중 선택할 수 있습니다.
|
|
103
|
+
- 저장된 canvas version은 Gallery/HistoryStrip에는 보이지 않지만, Canvas Mode에서는 재사용하거나 다음 reference로 붙일 수 있습니다.
|
|
104
|
+
|
|
105
|
+

|
|
106
|
+
|
|
107
|
+
### Prompt library와 Import
|
|
108
|
+
|
|
109
|
+
Prompt library는 로컬 파일, GitHub folder, curated source, GPT-image hint pack에서 가져올 수 있습니다. 가져온 prompt는 로컬 index에 저장되어 매 세션 다시 import하지 않아도 검색과 ranking에 사용할 수 있습니다.
|
|
90
110
|
|
|
91
|
-
|
|
111
|
+

|
|
92
112
|
|
|
93
|
-
|
|
113
|
+
### Experimental Card News Mode
|
|
114
|
+
|
|
115
|
+
Card News는 아직 개발 전용 실험 기능입니다. 기본 공개 런타임에서는 명시적으로 개발용으로 켜지 않는 한 숨겨져 있으며, 아직 안정적인 공개 기능으로 보면 안 됩니다.
|
|
116
|
+
|
|
117
|
+
### Settings
|
|
118
|
+
|
|
119
|
+
Settings 워크스페이스는 계정, 모델, 테마, 언어 설정을 생성 패널에서 독립시켜 관리합니다.
|
|
120
|
+
|
|
121
|
+

|
|
94
122
|
|
|
95
123
|
## CLI 명령어
|
|
96
124
|
|
|
@@ -107,18 +135,23 @@ Style sheet는 반복해서 쓰고 싶은 시각적 방향을 저장하는 기
|
|
|
107
135
|
|
|
108
136
|
### 클라이언트
|
|
109
137
|
|
|
110
|
-
아래 명령어는 `ima2 serve`가 실행 중이어야 합니다.
|
|
138
|
+
아래 명령어는 `ima2 serve`가 실행 중이어야 합니다. CLI는 모든 서버 라우트를 감쌉니다. 자주 쓰는 명령어만 추렸고, 전체 목록은 [CLI 레퍼런스(영문)](CLI.md)에 있습니다 (생성, 히스토리, 세션, 프롬프트 라이브러리, 어노테이션, Card News, observability, config 모두 포함).
|
|
111
139
|
|
|
112
140
|
| 명령어 | 설명 |
|
|
113
141
|
|---|---|
|
|
114
142
|
| `ima2 gen <prompt>` | CLI에서 이미지 생성 |
|
|
115
143
|
| `ima2 edit <file> --prompt <text>` | 기존 이미지 수정 |
|
|
116
|
-
| `ima2
|
|
117
|
-
| `ima2
|
|
118
|
-
| `ima2
|
|
119
|
-
| `ima2
|
|
144
|
+
| `ima2 multimode <prompt>` | 멀티 이미지 SSE 생성 |
|
|
145
|
+
| `ima2 ls [--session <id>] [--favorites]` | 로컬 히스토리 보기 |
|
|
146
|
+
| `ima2 show <name> [--metadata]` | 생성 파일 열기 |
|
|
147
|
+
| `ima2 prompt ls -q <검색어>` | 프롬프트 라이브러리 검색 |
|
|
148
|
+
| `ima2 inflight ls [--terminal]` | 진행 중 / 최근 완료 작업 (`ps` 별칭) |
|
|
149
|
+
| `ima2 config set <key> <value>` | `~/.ima2/config.json`에 값 쓰기 |
|
|
150
|
+
| `ima2 ping` | 서버 헬스 체크 |
|
|
151
|
+
|
|
152
|
+
서버 포트는 `~/.ima2/server.json`에 기록됩니다. `3333`이 사용 중이면 `3334+`로 fallback할 수 있으니 터미널에 출력된 URL이나 `ima2 open`을 우선 사용하세요. `--server <url>` 또는 `IMA2_SERVER=http://localhost:3333`로 직접 지정할 수도 있습니다.
|
|
120
153
|
|
|
121
|
-
|
|
154
|
+
전체 명령 목록과 플래그: [docs/CLI.md](CLI.md).
|
|
122
155
|
|
|
123
156
|
## 설정
|
|
124
157
|
|
|
@@ -131,10 +164,13 @@ environment variables > ~/.ima2/config.json > built-in defaults
|
|
|
131
164
|
| 변수 | 기본값 | 설명 |
|
|
132
165
|
|---|---:|---|
|
|
133
166
|
| `IMA2_PORT` / `PORT` | `3333` | 웹 서버 포트 |
|
|
167
|
+
| `IMA2_HOST` | `127.0.0.1` | 웹 서버 bind host |
|
|
134
168
|
| `IMA2_OAUTH_PROXY_PORT` / `OAUTH_PORT` | `10531` | OAuth 프록시 포트 |
|
|
135
169
|
| `IMA2_SERVER` | — | CLI 대상 서버 직접 지정 |
|
|
136
170
|
| `IMA2_CONFIG_DIR` | `~/.ima2` | config와 SQLite 저장 위치 |
|
|
171
|
+
| `IMA2_ADVERTISE_FILE` | `~/.ima2/server.json` | 실행 중 서버 discovery 파일 |
|
|
137
172
|
| `IMA2_GENERATED_DIR` | `~/.ima2/generated` | 생성 이미지 저장 위치 |
|
|
173
|
+
| `IMA2_IMAGE_MODEL_DEFAULT` | `gpt-5.4-mini` | 서버 fallback 이미지 모델 |
|
|
138
174
|
| `IMA2_NO_OAUTH_PROXY` | — | `1`이면 OAuth 프록시 자동 시작 비활성화 |
|
|
139
175
|
| `IMA2_LOG_LEVEL` | `warn` | 일반 `serve`는 `warn`, dev 모드는 `debug`. `debug`, `info`, `warn`, `error`, `silent` 지원 |
|
|
140
176
|
| `IMA2_INFLIGHT_TERMINAL_TTL_MS` | `30000` | 디버그용 최근 작업 보존 시간 |
|
|
@@ -163,8 +199,8 @@ environment variables > ~/.ima2/config.json > built-in defaults
|
|
|
163
199
|
**프록시/VPN 환경에서 `fetch failed`가 반복돼요**
|
|
164
200
|
로컬 OAuth 프록시가 접근 가능한지 확인하세요. 프록시가 필요한 네트워크라면 프록시 클라이언트의 TUN/TURN류 모드를 켠 뒤 `npx openai-oauth --port 10531`을 다시 시도하세요. 그래도 실패하면 `ima2 serve` 또는 `openai-oauth`를 실행하는 같은 터미널에 `HTTP_PROXY`와 `HTTPS_PROXY`를 설정하세요.
|
|
165
201
|
|
|
166
|
-
**이미지 생성이 `
|
|
167
|
-
|
|
202
|
+
**이미지 생성이 `API_KEY_REQUIRED`로 실패해요**
|
|
203
|
+
`provider: "api"` 요청에 사용할 API 키가 설정되어 있지 않다는 뜻입니다. API 키를 설정하거나 OAuth 공급자로 전환하세요.
|
|
168
204
|
|
|
169
205
|
**큰 레퍼런스 이미지가 실패해요**
|
|
170
206
|
JPEG/PNG는 업로드 전에 자동 압축됩니다. 그래도 실패하면 해상도를 낮춘 JPEG/PNG로 바꿔 다시 시도하세요. HEIC/HEIF는 브라우저 경로에서 지원하지 않습니다.
|
|
@@ -187,11 +223,12 @@ git clone https://github.com/lidge-jun/ima2-gen.git
|
|
|
187
223
|
cd ima2-gen
|
|
188
224
|
npm install
|
|
189
225
|
npm run dev
|
|
226
|
+
npm run typecheck
|
|
190
227
|
npm test
|
|
191
228
|
npm run build
|
|
192
229
|
```
|
|
193
230
|
|
|
194
|
-
`npm run dev`는 UI를 빌드한 뒤
|
|
231
|
+
`npm run dev`는 UI를 빌드한 뒤 TypeScript 서버 entry를 `--watch`로 실행하고, 서버 진단 로그를 자세히 표시합니다. `npm run typecheck`, `npm run build:server`, `npm run build:cli`로 TypeScript migration과 package emit 경로를 확인할 수 있습니다.
|
|
195
232
|
|
|
196
233
|
## 라이선스
|
|
197
234
|
|
package/docs/README.zh-CN.md
CHANGED
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
[](https://nodejs.org/)
|
|
5
5
|
[](../LICENSE)
|
|
6
6
|
|
|
7
|
+
> 🌐 **Live site**: [lidge-jun.github.io/ima2-gen](https://lidge-jun.github.io/ima2-gen/) · [한국어](https://lidge-jun.github.io/ima2-gen/ko/)
|
|
8
|
+
>
|
|
7
9
|
> **其他语言**: [English](../README.md) · [한국어](README.ko.md) · [日本語](README.ja.md)
|
|
8
10
|
|
|
9
|
-
`ima2-gen`
|
|
11
|
+
`ima2-gen` 是一个本地图像生成工作室,为你提供类似小型桌面应用的 ChatGPT/Codex OAuth 图像生成体验。
|
|
10
12
|
|
|
11
|
-
用 `npx` 启动,登录 Codex OAuth,输入 prompt
|
|
13
|
+
用 `npx` 启动,登录 Codex OAuth,输入 prompt,然后通过历史记录、参考图、节点分支、multimode 批量候选和 Canvas Mode 清理持续迭代。默认图像生成路径不需要 OpenAI API key。
|
|
12
14
|
|
|
13
15
|

|
|
14
16
|
|
|
@@ -27,6 +29,8 @@ npx @openai/codex login
|
|
|
27
29
|
npx ima2-gen serve
|
|
28
30
|
```
|
|
29
31
|
|
|
32
|
+
如果 `3333` 已经被占用,server 会绑定下一个可用端口,并把实际 URL 写入 `~/.ima2/server.json`。不要假设端口固定,请使用终端输出的 URL 或 `ima2 open`。
|
|
33
|
+
|
|
30
34
|
也可以全局安装:
|
|
31
35
|
|
|
32
36
|
```bash
|
|
@@ -38,28 +42,31 @@ ima2 serve
|
|
|
38
42
|
|
|
39
43
|
- **Classic mode**:快速生成、编辑,并把当前图片继续作为参考图使用。
|
|
40
44
|
- **Node mode**:从一张满意的图出发,向多个方向分支探索。
|
|
41
|
-
- **
|
|
45
|
+
- **Multimode batches**:用同一个 prompt 同时生成多个候选 slot,并从最好的结果继续。
|
|
46
|
+
- **Canvas Mode**:支持缩放/平移、标注、橡皮擦、背景清理、透明 checkerboard 预览,以及 alpha/matte export。
|
|
47
|
+
- **Local gallery**:将生成结果保存在本地,并按会话 (session) 查看历史。
|
|
42
48
|
- **Reference images**:支持拖放、粘贴和文件选择;大图会在上传前自动压缩。
|
|
43
|
-
- **
|
|
49
|
+
- **Prompt library imports**:把本地 prompt pack、GitHub folder、curated GPT-image hint 导入内置 prompt library。
|
|
50
|
+
- **Mobile shell**:小屏幕使用 app bar、compose sheet 和 compact settings toggle。
|
|
44
51
|
- **Observable jobs**:用 request ID 追踪进行中和最近完成的任务。
|
|
45
52
|
|
|
46
|
-
##
|
|
53
|
+
## 图像生成支持 OAuth 和 API key
|
|
47
54
|
|
|
48
|
-
|
|
55
|
+
默认图像生成通过本地 Codex/ChatGPT OAuth 路径执行。
|
|
49
56
|
|
|
50
|
-
|
|
57
|
+
如果 env/config 里有 API key,生成接口可以通过 `provider: "api"` 使用 Responses API 的 `image_generation` tool。
|
|
51
58
|
|
|
52
|
-
如果设置页显示 **
|
|
59
|
+
如果设置页显示 **API key provider available**,意思是检测到了 API key,并且可用于生成、编辑、multimode 和 node 请求。
|
|
53
60
|
|
|
54
|
-

|
|
55
62
|
|
|
56
63
|
## 模型建议
|
|
57
64
|
|
|
58
|
-
|
|
65
|
+
应用默认使用适合快速本地迭代的 **`gpt-5.4-mini`**。如果想要更稳定、均衡的结果,建议切换到 **`gpt-5.4`**。
|
|
59
66
|
|
|
60
67
|
- `gpt-5.4` — 推荐的均衡选择。
|
|
61
68
|
- `gpt-5.4-mini` — 当前应用默认值,适合快速草稿。
|
|
62
|
-
- `gpt-5.5` —
|
|
69
|
+
- `gpt-5.5` — 在支持的环境中是质量最高的选择。但它可能消耗更多额度,也可能需要更新 Codex CLI,或依赖账号/后端路径是否开放对应的图像 capability。
|
|
63
70
|
|
|
64
71
|
Quality 支持 `low`, `medium`, `high`;moderation 支持 `auto`, `low`。
|
|
65
72
|
|
|
@@ -72,25 +79,46 @@ Quality 支持 `low`, `medium`, `high`;moderation 支持 `auto`, `low`。
|
|
|
72
79
|
1. 写 prompt。
|
|
73
80
|
2. 需要时添加参考图。
|
|
74
81
|
3. 选择模型、quality、size、format、moderation。
|
|
75
|
-
4.
|
|
82
|
+
4. 生成一张图,或打开 multimode 从同一个 prompt 生成多个候选 slot。
|
|
83
|
+
5. 生成后复制、下载、继续迭代,或进入 Canvas Mode 清理。
|
|
84
|
+
|
|
85
|
+

|
|
76
86
|
|
|
77
87
|
### Node mode
|
|
78
88
|
|
|
79
|
-
|
|
89
|
+
适合将创意分支发散并进行直观对比。
|
|
80
90
|
|
|
81
91
|

|
|
82
92
|
|
|
83
|
-
每个节点都有自己的 prompt
|
|
93
|
+
每个节点都有自己的 prompt 和结果。根节点可以附加本地参考图;子节点将使用父节点图片作为参考来源。完成的任务会通过 request ID 重新匹配,因此刷新或 graph version conflict 后也能恢复结果。
|
|
84
94
|
|
|
85
|
-
###
|
|
95
|
+
### Canvas Mode
|
|
86
96
|
|
|
87
|
-
|
|
97
|
+
当生成结果已经接近目标,但还需要局部清理或背景处理时使用 Canvas Mode。
|
|
88
98
|
|
|
89
|
-
|
|
99
|
+
- 缩放后的图片中,viewport pan 与 selection tool 分离,避免在移动画面时误触或修改 annotation。
|
|
100
|
+
- 支持 annotation、eraser、multiselect、group、undo/redo 和 sticky note。
|
|
101
|
+
- 可点击指定 background cleanup seed,预览 mask,并保存为 canvas version。
|
|
102
|
+
- 透明图会显示 checkerboard preview,export 可选择保留 alpha 或合成指定 matte color。
|
|
103
|
+
- 保存的 canvas version 不会出现在 Gallery/HistoryStrip 中,但 Canvas Mode 可以复用它,也可以把它作为下一次 reference。
|
|
104
|
+
|
|
105
|
+

|
|
106
|
+
|
|
107
|
+
### Prompt library 和 Import
|
|
108
|
+
|
|
109
|
+
Prompt library 可以从 local files、GitHub folders、curated sources 和 GPT-image hint packs 导入。导入后的 prompt 会写入本地 index,因此下次启动后仍可搜索和 ranking。
|
|
110
|
+
|
|
111
|
+

|
|
112
|
+
|
|
113
|
+
### Experimental Card News Mode
|
|
90
114
|
|
|
91
|
-
|
|
115
|
+
Card News 仍是开发专用的实验功能。默认公开运行环境中,除非明确以开发用途启用,否则它会保持隐藏;目前不应将其视为稳定的公开功能。
|
|
92
116
|
|
|
93
|
-
|
|
117
|
+
### Settings
|
|
118
|
+
|
|
119
|
+
Settings workspace 会把账号、模型、主题和语言设置从生成面板中分离出来。
|
|
120
|
+
|
|
121
|
+

|
|
94
122
|
|
|
95
123
|
## CLI 命令
|
|
96
124
|
|
|
@@ -98,7 +126,7 @@ Style sheet 用来保存可复用的视觉方向。
|
|
|
98
126
|
|
|
99
127
|
| Command | Description |
|
|
100
128
|
|---|---|
|
|
101
|
-
| `ima2 serve` | 启动本地 Web server |
|
|
129
|
+
| `ima2 serve [--dev]` | 启动本地 Web server;`--dev` 显示更详细的 server diagnostics |
|
|
102
130
|
| `ima2 setup` | 重新配置认证 |
|
|
103
131
|
| `ima2 status` | 查看 config 和 OAuth 状态 |
|
|
104
132
|
| `ima2 doctor` | 诊断 Node、package、config、auth |
|
|
@@ -107,18 +135,23 @@ Style sheet 用来保存可复用的视觉方向。
|
|
|
107
135
|
|
|
108
136
|
### Client
|
|
109
137
|
|
|
110
|
-
这些命令需要先运行 `ima2 serve`。
|
|
138
|
+
这些命令需要先运行 `ima2 serve`。CLI 已覆盖所有服务端路由,下面只列出最常用的命令。完整列表见 [CLI 参考(英文)](CLI.md)(包含 generation、history、sessions、prompt library、annotations、Card News、observability、config)。
|
|
111
139
|
|
|
112
140
|
| Command | Description |
|
|
113
141
|
|---|---|
|
|
114
142
|
| `ima2 gen <prompt>` | 从 CLI 生成图片 |
|
|
115
143
|
| `ima2 edit <file> --prompt <text>` | 编辑已有图片 |
|
|
116
|
-
| `ima2
|
|
117
|
-
| `ima2
|
|
118
|
-
| `ima2
|
|
144
|
+
| `ima2 multimode <prompt>` | 多图 SSE 生成 |
|
|
145
|
+
| `ima2 ls [--session <id>] [--favorites]` | 查看本地历史 |
|
|
146
|
+
| `ima2 show <name> [--metadata]` | 打开生成文件 |
|
|
147
|
+
| `ima2 prompt ls -q <搜索>` | 搜索 prompt library |
|
|
148
|
+
| `ima2 inflight ls [--terminal]` | 查看进行中 / 最近完成任务(`ps` 别名)|
|
|
149
|
+
| `ima2 config set <key> <value>` | 写入 `~/.ima2/config.json` |
|
|
119
150
|
| `ima2 ping` | 检查 server 是否可用 |
|
|
120
151
|
|
|
121
|
-
Server 端口会写入 `~/.ima2/server.json`。也可以用 `--server <url>` 或 `IMA2_SERVER=http://localhost:3333` 覆盖。
|
|
152
|
+
Server 端口会写入 `~/.ima2/server.json`。如果 `3333` 已被占用,server 可能 fallback 到 `3334+`,请优先使用终端输出的 URL 或 `ima2 open`。也可以用 `--server <url>` 或 `IMA2_SERVER=http://localhost:3333` 覆盖。
|
|
153
|
+
|
|
154
|
+
完整命令与标志见 [docs/CLI.md](CLI.md)。
|
|
122
155
|
|
|
123
156
|
## 配置
|
|
124
157
|
|
|
@@ -131,14 +164,24 @@ environment variables > ~/.ima2/config.json > built-in defaults
|
|
|
131
164
|
| Variable | Default | Description |
|
|
132
165
|
|---|---:|---|
|
|
133
166
|
| `IMA2_PORT` / `PORT` | `3333` | Web server port |
|
|
167
|
+
| `IMA2_HOST` | `127.0.0.1` | Web server bind host |
|
|
134
168
|
| `IMA2_OAUTH_PROXY_PORT` / `OAUTH_PORT` | `10531` | OAuth proxy port |
|
|
135
169
|
| `IMA2_SERVER` | — | CLI target override |
|
|
136
170
|
| `IMA2_CONFIG_DIR` | `~/.ima2` | Config 和 SQLite 位置 |
|
|
171
|
+
| `IMA2_ADVERTISE_FILE` | `~/.ima2/server.json` | 运行时 server discovery 文件 |
|
|
137
172
|
| `IMA2_GENERATED_DIR` | `~/.ima2/generated` | 生成图片目录 |
|
|
173
|
+
| `IMA2_IMAGE_MODEL_DEFAULT` | `gpt-5.4-mini` | Server fallback 图像模型 |
|
|
138
174
|
| `IMA2_NO_OAUTH_PROXY` | — | 设为 `1` 时关闭 OAuth proxy 自动启动 |
|
|
175
|
+
| `IMA2_LOG_LEVEL` | `warn` | 普通 `serve` 默认为 `warn`,dev mode 默认为 `debug`;支持 `debug`, `info`, `warn`, `error`, `silent` |
|
|
139
176
|
| `IMA2_INFLIGHT_TERMINAL_TTL_MS` | `30000` | 调试用 recent job 保留时间 |
|
|
140
177
|
| `OPENAI_API_KEY` | — | 辅助功能用 API key,不用于图像生成 |
|
|
141
178
|
|
|
179
|
+
### Logging modes
|
|
180
|
+
|
|
181
|
+
`ima2 serve` 默认保持终端输出安静:启动 URL、warning 和 error 会显示,但 request/node/OAuth structured logs 默认隐藏。
|
|
182
|
+
|
|
183
|
+
如果需要 request ID、Node generation phases、OAuth stream diagnostics 或 inflight state transitions,请使用 `ima2 serve --dev`、`npm run dev`,或 `IMA2_LOG_LEVEL=debug ima2 serve`。
|
|
184
|
+
|
|
142
185
|
## API 文档
|
|
143
186
|
|
|
144
187
|
接口列表已移到 [API Reference](API.md)。
|
|
@@ -156,8 +199,8 @@ environment variables > ~/.ima2/config.json > built-in defaults
|
|
|
156
199
|
**在代理/VPN 网络下反复出现 `fetch failed`**
|
|
157
200
|
请先确认本地 OAuth proxy 可以访问。如果你的网络需要代理,请在代理客户端里开启 TUN/TURN 类似的转发模式,然后重试 `npx openai-oauth --port 10531`。如果仍然失败,请在运行 `ima2 serve` 或 `openai-oauth` 的同一个终端里设置 `HTTP_PROXY` 和 `HTTPS_PROXY`。
|
|
158
201
|
|
|
159
|
-
**生成图片时返回 `
|
|
160
|
-
|
|
202
|
+
**生成图片时返回 `API_KEY_REQUIRED`**
|
|
203
|
+
`provider: "api"` 请求没有可用 API key。请配置 API key,或切换到 OAuth provider。
|
|
161
204
|
|
|
162
205
|
**大参考图上传失败**
|
|
163
206
|
JPEG/PNG 会在上传前自动压缩。如果仍然失败,请转成更低分辨率的 JPEG/PNG。HEIC/HEIF 不支持浏览器路径。
|
|
@@ -180,10 +223,13 @@ git clone https://github.com/lidge-jun/ima2-gen.git
|
|
|
180
223
|
cd ima2-gen
|
|
181
224
|
npm install
|
|
182
225
|
npm run dev
|
|
226
|
+
npm run typecheck
|
|
183
227
|
npm test
|
|
184
228
|
npm run build
|
|
185
229
|
```
|
|
186
230
|
|
|
231
|
+
`npm run dev` 会构建 UI,并用 `--watch` 启动 TypeScript server entry,同时显示详细 server diagnostics。`npm run typecheck`、`npm run build:server`、`npm run build:cli` 可验证 TypeScript migration 和 package emit path。
|
|
232
|
+
|
|
187
233
|
## License
|
|
188
234
|
|
|
189
235
|
MIT
|