Skip to content

Commit 06b4a44

Browse files
committed
feat(sheet-pro): split grid vs preview layout; preprocess; README sync
- Pro: separate splitCols/splitRows from layoutCols/layoutRows for whole-image split - Add sheet preprocess, RoninProSheetPro entry wiring, superSplitTransparent helper - UI: delete button offset from nudge column; i18n sheetProSplitVsLayoutHint - Update README (zh/en/ja) and frontend README Made-with: Cursor
1 parent 453d167 commit 06b4a44

14 files changed

Lines changed: 1912 additions & 344 deletions

README.en.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ Pixel image and frame sequence toolset: video frame extraction, GIF processing,
88

99
## What's New in V3
1010

11-
- **Global shortcuts (home / in-feature)**: On home, **C** opens GIF↔Frames, **V** Pixel Image Processing, **G** Gemini watermark removal, **R** RoninPro → **Custom Scale**; from any main feature, **B** returns home (ignored when an input/textarea/contenteditable is focused or with Ctrl/Cmd/Alt). See **Web Shortcuts** below.
12-
- **RoninPro**: Custom scale, custom slice, unify size, and more; NFT gate is controlled by `RONIN_PRO_REQUIRE_NFT` in `frontend/src/config/features.ts` (default: no NFT required); **R** deep-links to Custom Scale.
11+
- **Global shortcuts (home / in-feature)**: On home, **C** opens GIF↔Frames, **V** Pixel Image Processing, **G** Gemini watermark removal, **R** RoninPro → **Custom Scale**, **N** RoninPro → **Sheet Pro** (split + sprite sheet adjust); from any main feature, **B** returns home (ignored when an input/textarea/contenteditable is focused or with Ctrl/Cmd/Alt). See **Web Shortcuts** below.
12+
- **RoninPro**: Custom scale, custom slice, unify size, and more; NFT gate is controlled by `RONIN_PRO_REQUIRE_NFT` in `frontend/src/config/features.ts` (default: no NFT required); **R** deep-links to Custom Scale; **N** deep-links to Sheet Pro.
13+
- **Sheet Pro** (RoninPro, shortcut **N**): On **uniform grid**, **N×M** only defines how the full image is split (changing it re-splits). The preview **column count** only controls frames per row and the merge/export layout—it does **not** re-split the source. Also: grid split, transparency-gap split, optional pre-process, per-frame nudge and edge crop, merge, ZIP / GIF export.
1314
- **Home layout**: RoninPro row is placed **above** Seedance watermark removal and asset/source sharing.
1415
- **GIF ↔ Frames**: Default tab is **multi-image merge to single**; default input mode is **split single image** (grid split then merge).
1516
- **Sprite Sheet Adjust**: Animation preview uses arrow buttons; **A / D** step through selected frames (when not typing); **recombine** exports sheet after per-frame offsets.
@@ -43,7 +44,7 @@ Pixel image and frame sequence toolset: video frame extraction, GIF processing,
4344
- **nanob Full Character Action Test**: V4Tx3 continuous actions, etc.
4445

4546
### RoninPro (efficiency)
46-
- **RoninPro** (Ronin login): **Custom Scale**, **Custom Slice**, **Unify Size**, etc. NFT requirement: see `frontend/src/config/features.ts`.
47+
- **RoninPro** (Ronin login): **Custom Scale**, **Custom Slice**, **Unify Size**, **Sheet Pro**, etc. NFT requirement: see `frontend/src/config/features.ts`. In **Sheet Pro**, the split grid (N×M) and the preview/composite layout are separate: N/M re-cut the image; changing preview columns only reflows.
4748

4849
### Demo / experimental
4950
- **Top-down Test Scene**, **Arcade Test Scene**: Control and layering experiments (not the main production pipeline).
@@ -56,6 +57,7 @@ Pixel image and frame sequence toolset: video frame extraction, GIF processing,
5657

5758
- **V**: On the **home** screen, open **Pixel Image Processing** (entry picker; same focus/modifier rules as below).
5859
- **R**: On the **home** screen, open **RoninPro → Custom Scale** (Ronin login required; NFT gate applies if enabled; same focus/modifier rules as below).
60+
- **N**: On the **home** screen, open **RoninPro → Sheet Pro** (split + sprite sheet adjust; same login/NFT rules as **R**).
5961
- **G**: On the **home** screen, open **Gemini Watermark Removal** (same focus/modifier rules as below).
6062
- **C**: On the **home** screen, open **GIF ↔ Frames** (same as the card; same focus/modifier rules as below).
6163
- **B**: Return to home from any main feature. Ignored while focus is in an input, textarea, or contenteditable; also ignored with Ctrl / Cmd / Alt (avoids browser shortcuts). The video workflow resets the upload step; the image module returns to its entry selection screen.

README.ja.md

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44

55
ピクセル画像・フレームシーケンスツール集。動画フレーム抽出、GIF処理、画像マット、スプライトシート合成などに対応。
66

7-
![AIピクセルショップK プレビュー](frontend/public/K.png)
7+
AIピクセルショップK プレビュー
88

99
## V3 の主な更新
1010

11-
- **全体ショートカット(ホーム/機能内)**:ホームで **C**=GIF↔フレーム、**V**=ピクセル画像処理、**G**=Gemini透かし除去、**R**=RoninPro→**カスタム縮尺**;メイン機能内 **B**=ホームへ(入力欄フォーカスや Ctrl/⌘/Alt 同時は無効)。詳細は下記「Web ショートカット」。
12-
- **RoninPro**:カスタム縮尺・カスタムスライス・サイズ統一など。NFT 要件は `frontend/src/config/features.ts``RONIN_PRO_REQUIRE_NFT`(現デフォルトは NFT 不要)。**R** でカスタム縮尺にディープリンク。
11+
- **全体ショートカット(ホーム/機能内)**:ホームで **C**=GIF↔フレーム、**V**=ピクセル画像処理、**G**=Gemini透かし除去、**R**=RoninPro→**カスタム縮尺****N**=RoninPro→**シート調整 Pro**;メイン機能内 **B**=ホームへ(入力欄フォーカスや Ctrl/⌘/Alt 同時は無効)。詳細は下記「Web ショートカット」。
12+
- **RoninPro**:カスタム縮尺・カスタムスライス・サイズ統一など。NFT 要件は `frontend/src/config/features.ts``RONIN_PRO_REQUIRE_NFT`(現デフォルトは NFT 不要)。**R** でカスタム縮尺、**N** でシート調整 Pro にディープリンク。
13+
- **シート調整 Pro**(RoninPro、ショートカット **N**):**整図均等**では **N×M** が原図の分割グリッドのみ(変更で再分割)。プレビューの**列数**は 1 行あたりのコマ数と結合・書き出しレイアウトのみで、**再分割は行わない**。グリッド分割・透明隙間分割・分割前プリプロセス・コマごとの移動・四辺裁ち・結合・ZIP / GIF 出力にも対応。
1314
- **ホームレイアウト**:RoninPro 行を **Seedance 透かし除去****素材・ソース共有** より上に配置。
1415
- **GIF ↔ フレーム**:初期タブは **複数画像→1枚**;入力はデフォルト **1枚を分割**(グリッド分割後に合成)。
1516
- **Sprite Sheet 調整**:アニメプレビューに方向ボタン、**A/D** で選択フレーム切替(入力中を除く);フレームごとのオフセット後に **再結合** でシート出力。
@@ -18,12 +19,14 @@
1819
## 機能モジュール
1920

2021
### 動画とフレーム
22+
2123
- **動画→フレーム**:動画アップロード、フレーム抽出、rembgマット、スプライトシート生成
22-
- **GIF ↔ フレーム**GIF拆帧、フレーム→GIF、複数画像→1枚(デフォルトタブ)、1枚をグリッド分割して再合成、分割、簡易ステッチ(上下/左右)
24+
- **GIF ↔ フレーム**GIF からフレーム抽出、フレーム→GIF、複数画像→1枚(デフォルトタブ)、1枚をグリッド分割して再合成、分割、簡易ステッチ(上下/左右)
2325
- **Sprite Sheet**:フレーム画像分割 / GIF合成
2426
- **Sprite Sheet 調整**:分割プレビュー、フレーム選択、アニメプレビュー(Roninログイン要)、**A/D** 等でフレーム移動、オフセット後の再結合出力
2527

2628
### 画像処理
29+
2730
- **ピクセル画像処理**:2つの入口
2831
- **通常処理**:スケール、内側ストローク、トリム、マット(グリーン/ブルーバック)
2932
- **RPGMAKER ワンクリック**:Gemini透かし除去 → 左上から連結領域マット(容差80/羽化5) → 144×144 → RPGMAKER出力
@@ -38,24 +41,29 @@
3841
- **Gemini 透かし除去**:Gemini生成画像の透かしを除去
3942

4043
### nanobanana シリーズ(Roninログイン要)
44+
4145
- **nanobanana RPG Maker キャラ素材生成**:GeminiでRPG Makerキャラ素材生成
4246
- **nanobanana ピクセルシーン****立ち絵生成**:Geminiリンク
4347
- **nanob 全キャラアクション**:連生アクション V4Tx3 等
4448

4549
### RoninPro(効率ツール)
46-
- **RoninPro**(Roninログイン):**カスタム縮尺****カスタムスライス****サイズ統一** など。NFT 要否は `frontend/src/config/features.ts` を参照。
50+
51+
- **RoninPro**(Roninログイン):**カスタム縮尺****カスタムスライス****サイズ統一****シート調整 Pro** など。NFT 要否は `frontend/src/config/features.ts` を参照。**シート調整 Pro** では分割グリッド(N×M)とプレビュー/合成の並びを分離:N・M は再分割、列数変更は並べ替えのみ。
4752

4853
### デモ・試験
54+
4955
- **Top-down テスト****アーケード テスト**:操作・レイヤー描画の試験用(本番パイプライン以外)。
5056

5157
### その他
58+
5259
- **Seedance 2.0 動画透かし除去**:ローカルバックエンド要。Seedance/即梦動画の「AI生成」を除去
5360
- **素材・ゲームソース共有**:01-美術素材、Godotスクリプト、完成プロジェクト(AIピクセルショップK含む)
5461

5562
### Web ショートカット
5663

5764
- **V****ホーム**画面で **ピクセル画像処理** を開く(入口選択。フォーカス等は下記と同じ)。
5865
- **R****ホーム**画面で **RoninPro → カスタム縮尺** を開く(Roninログイン要、NFT 条件が有効なら該当。フォーカス等は下記と同じ)。
66+
- **N****ホーム**画面で **RoninPro → シート調整 Pro** を開く(ログイン・NFT 条件は **R** と同じ)。
5967
- **G****ホーム**画面で **Gemini 透かし除去** を開く(フォーカス等は下記と同じ)。
6068
- **C****ホーム**画面で **GIF ↔ フレーム** モジュールを開く(カードと同じ。フォーカス・修飾キーについては下記と同じ)。
6169
- **B**:メイン機能のいずれかを開いているときにホームへ戻る。入力欄・テキストエリア・contenteditable フォーカス時は無効。Ctrl / ⌘ / Alt と同時押しでも無効(ブラウザショートと干渉しにくくするため)。動画フローはアップロード手順をリセット、画像モジュールは入口選択に戻る。
@@ -105,7 +113,7 @@ rq worker pixelwork --url redis://localhost:6379/0
105113
cd frontend && npm run dev
106114
```
107115

108-
http://localhost:5173 を開く
116+
[http://localhost:5173](http://localhost:5173) を開く
109117

110118
### 4. rembg / U2Net(バックエンドのみ)
111119

@@ -117,33 +125,35 @@ GitHub Actionsで`main`へのプッシュ時に自動ビルド・デプロイ。
117125

118126
**初回:Pages有効化**
119127

120-
1. https://github.com/systemchester/FrameRonin/settings/pages を開く
128+
1. [https://github.com/systemchester/FrameRonin/settings/pages](https://github.com/systemchester/FrameRonin/settings/pages) を開く
121129
2. **Build and deployment****Source****GitHub Actions**
122130
3. 保存。以降`main`プッシュで自動デプロイ
123131

124-
**URL:** https://systemchester.github.io/FrameRonin/
132+
**URL:** [https://systemchester.github.io/FrameRonin/](https://systemchester.github.io/FrameRonin/)
125133

126-
> 現在はフロントエンドのみデプロイ。GIF拆帧/合成、ピクセル画像処理(精密編集含む)、クロマキー、簡易ステッチ、Sprite Sheet、RPGMAKERワンクリック、動画→フレームが利用可能。
134+
> 現在はフロントエンドのみデプロイ。GIF のフレーム抽出・合成、ピクセル画像処理(精密編集含む)、クロマキー、簡易ステッチ、Sprite Sheet、RPGMAKER ワンクリック、動画→フレームが利用可能。
127135
128136
## Docker
129137

130138
```bash
131139
docker-compose up -d
132140
```
133141

134-
- フロント: http://localhost:5173
135-
- API: http://localhost:8000
142+
- フロント: [http://localhost:5173](http://localhost:5173)
143+
- API: [http://localhost:8000](http://localhost:8000)
136144
- Redis: localhost:6379
137145

138146
## API
139147

140-
| メソッド | パス | 説明 |
141-
|----------|------|------|
142-
| POST | /jobs | タスク作成(動画アップロード) |
143-
| GET | /jobs/{id} | タスク状態取得 |
144-
| GET | /jobs/{id}/result?format=png\|zip | 結果ダウンロード |
145-
| GET | /jobs/{id}/index | インデックスJSON取得 |
146-
| DELETE | /jobs/{id} | タスク削除 |
148+
149+
| メソッド | パス | 説明 |
150+
| ------ | -------------------------------- | --------------- |
151+
| POST | /jobs | タスク作成(動画アップロード) |
152+
| GET | /jobs/{id} | タスク状態取得 |
153+
| GET | /jobs/{id}/result?format=png|zip | 結果ダウンロード |
154+
| GET | /jobs/{id}/index | インデックスJSON取得 |
155+
| DELETE | /jobs/{id} | タスク削除 |
156+
147157

148158
## インデックスJSON例
149159

@@ -161,13 +171,14 @@ docker-compose up -d
161171

162172
## リンク
163173

164-
- **Bilibili**: https://space.bilibili.com/285760
174+
- **Bilibili**: [https://space.bilibili.com/285760](https://space.bilibili.com/285760)
165175

166176
## ドキュメント
167177

168-
| 文書 | 内容 |
169-
|------|------|
178+
179+
| 文書 | 内容 |
180+
| ---------------------------------------------------------- | ------------------------ |
170181
| [DEV_DOC_video2timesheet.md](./DEV_DOC_video2timesheet.md) | 動画→フレーム / スプライトシート設計・API |
171-
| [DEV_PLAN_extensions.md](./DEV_PLAN_extensions.md) | 拡張計画と V3 実装済み一覧 |
172-
| [DEPLOY.md](./DEPLOY.md) | プッシュ・CNB/EdgeOne・デプロイ注意 |
173-
| [frontend/README.md](./frontend/README.md) | フロントエンド README |
182+
| [DEV_PLAN_extensions.md](./DEV_PLAN_extensions.md) | 拡張計画と V3 実装済み一覧 |
183+
| [DEPLOY.md](./DEPLOY.md) | プッシュ・CNB/EdgeOne・デプロイ注意 |
184+
| [frontend/README.md](./frontend/README.md) | フロントエンド README |

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88

99
## V3 更新摘要
1010

11-
- **全局快捷键(首页 / 功能内)**:首页 **C** 进入 GIF↔序列帧、**V** 像素图片处理、**G** Gemini 水印去除、**R** RoninPro 并直达「自定义缩放」;任意功能内 **B** 返回首页(输入框聚焦或 Ctrl/⌘/Alt 组合键时不触发)。详见下文「Web 界面快捷键」。
12-
- **RoninPro**:自定义缩放、自定义切片、统一尺寸等效率工具;NFT 门槛由 `frontend/src/config/features.ts``RONIN_PRO_REQUIRE_NFT` 控制(当前默认可无需 NFT);支持从快捷键 **R** 深链打开「自定义缩放」。
11+
- **全局快捷键(首页 / 功能内)**:首页 **C** 进入 GIF↔序列帧、**V** 像素图片处理、**G** Gemini 水印去除、**R** RoninPro 并直达「自定义缩放」、**N** RoninPro 并直达「单图调整 Pro」;任意功能内 **B** 返回首页(输入框聚焦或 Ctrl/⌘/Alt 组合键时不触发)。详见下文「Web 界面快捷键」。
12+
- **RoninPro**:自定义缩放、自定义切片、统一尺寸等效率工具;NFT 门槛由 `frontend/src/config/features.ts``RONIN_PRO_REQUIRE_NFT` 控制(当前默认可无需 NFT);支持从快捷键 **R** 深链打开「自定义缩放」、**N** 深链打开「单图调整 Pro」。
13+
- **单图调整 Pro**(RoninPro,快捷键 **N**):**整图均分****N×M** 只决定如何从原图切块(修改后会按新网格重新分割);分割预览里的 **列数** 只决定每行摆几帧以及合成 / 导出布局,**不会**因此重新切图。另支持单图网格拆分、透明间隙拆分、拆分前预处理、逐帧平移与四边裁边、合并及 ZIP / GIF 导出。
1314
- **首页布局**:RoninPro 整行置于 **Seedance 去水印****素材/源码分享** 之上,便于优先访问。
1415
- **GIF ↔ 序列帧**:默认打开 **「多图合成单图」** 标签;**输入方式** 默认 **「拆分单图」**(按行列分割一张图为多格再合成)。
1516
- **Sprite Sheet 调整**:动帧预览支持 **方向键 / 上一帧·下一帧按钮**,键盘 **A / D** 在已选帧间切换(非输入框聚焦时);支持按偏移重排后 **重组合** 导出序列帧表。
@@ -43,7 +44,7 @@
4344
- **nanob 全人物动作生成测试**:连生动作 V4Tx3 等
4445

4546
### 开发者与效率(RoninPro)
46-
- **RoninPro**(登录 Ronin):**自定义缩放****自定义切片****统一尺寸** 等;NFT 是否必填见 `frontend/src/config/features.ts`
47+
- **RoninPro**(登录 Ronin):**自定义缩放****自定义切片****统一尺寸****单图调整 Pro** 等;NFT 是否必填见 `frontend/src/config/features.ts`**单图调整 Pro** 中「切块网格」与「预览 / 合成排列」已分离:改 N、M 重切原图,改预览列数仅重排
4748

4849
### 演示 / 实验
4950
- **Top-down 测试场景****街机测试场景**:用于控制与层叠渲染等试验(非生产管线)。
@@ -56,6 +57,7 @@
5657

5758
- **V**:在**首页**进入 **像素图片处理**(入口选择页;输入框等规则同下)。
5859
- **R**:在**首页**进入 **RoninPro → 自定义缩放**(需 Ronin 登录;若开启 NFT 门槛则需持有 NFT;输入框等规则同下)。
60+
- **N**:在**首页**进入 **RoninPro → 单图调整 Pro**(登录与 NFT 规则同 **R**)。
5961
- **G**:在**首页**进入 **Gemini 水印去除**(输入框等规则同下)。
6062
- **C**:在**首页**进入 **GIF ↔ 序列帧** 模块(与首页卡片一致;输入框聚焦等情况下的规则同下)。
6163
- **B**:在任意大功能模块内返回首页。焦点在输入框、文本框或可编辑区域时不触发;配合 Ctrl / ⌘ / Alt 按下时也不触发(避免与浏览器快捷键冲突)。视频流程返回首页时会同时重置上传步骤;图片模块会回到入口选择页。

frontend/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@ npm run dev
1515

1616
| 路径 | 说明 |
1717
|------|------|
18-
| `src/App.tsx` | 路由式模块切换、**全局快捷键**(B/C/V/G/R)、RoninPro 深链 |
18+
| `src/App.tsx` | 路由式模块切换、**全局快捷键**(B/C/V/G/R/N)、RoninPro 深链 |
1919
| `src/components/ModeSelector.tsx` | 首页模块卡片与顺序 |
2020
| `src/config/features.ts` | **功能开关**(如 `RONIN_PRO_REQUIRE_NFT`|
2121
| `src/i18n/` | 文案与语言上下文 |
2222
| `src/components/*.tsx` | 各功能模块(GIF、Sprite Sheet、RoninPro 等) |
23+
| `src/components/SpriteSheetAdjust.tsx` | 精灵表调整;RoninPro **单图调整 Pro**(切块 N×M 与预览排列分离,见根目录 README) |
2324

2425
## 开发与发布注意
2526

0 commit comments

Comments
 (0)