Skip to content

Commit 060a9ed

Browse files
Improve repository presentation and visuals
1 parent 6c98732 commit 060a9ed

3 files changed

Lines changed: 57 additions & 52 deletions

File tree

‎README.md‎

Lines changed: 57 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,59 @@
11
# Character Normalizer
22

3+
[![CI](https://github.com/dev-willbird1936/Character-Normalizer/actions/workflows/ci.yml/badge.svg)](https://github.com/dev-willbird1936/Character-Normalizer/actions/workflows/ci.yml)
4+
[![Latest release](https://img.shields.io/github/v/release/dev-willbird1936/Character-Normalizer)](https://github.com/dev-willbird1936/Character-Normalizer/releases/latest)
5+
[![License: MIT](https://img.shields.io/github/license/dev-willbird1936/Character-Normalizer)](LICENSE)
6+
37
![Character Normalizer hero](docs/assets/hero.png)
48

5-
Local desktop and browser UI for generating normalized front, side, and body character reference images.
9+
Local Electron and browser app that generates consistent front, side, and full-body character reference images. It streams each result as soon as it is ready and applies strong identity-preservation rules across views.
610

7-
Built by `dev-willbird1936`.
11+
## Reference Sheet Flow
812

9-
## Features
13+
![Reference sheet demo](docs/assets/reference-sheet-demo.png)
1014

11-
![Feature overview](docs/assets/feature-overview.png)
15+
Start with a source photo, then generate normalized front, true-side, and full-body references while preserving facial geometry, visible marks, clothing, build, and proportions.
1216

13-
- Desktop popup mode through Electron.
14-
- Browser mode through local Express server.
15-
- Front prompt generation.
16-
- Front-photo modification with cleanup toggles.
17-
- Side/body generation from source photos.
18-
- Streaming results: each generated asset appears as soon as it is ready.
19-
- Strong identity-preservation prompt rules for original features, marks, body shape, and proportions.
20-
- Provider adapter layer for Codex CLI, raw image CLI, and mock output.
17+
The demo uses a Pexels stock photo. Source metadata is listed in [`docs/assets/STOCK_SOURCES.json`](docs/assets/STOCK_SOURCES.json).
2118

22-
## Reference Sheet Flow
19+
## Quick Start
2320

24-
![Reference sheet demo](docs/assets/reference-sheet-demo.png)
21+
Requirements:
2522

26-
The reference sheet visual uses a Pexels stock photo of a real person and normalized generated outputs for the same person. Source metadata is listed in [docs/assets/STOCK_SOURCES.json](docs/assets/STOCK_SOURCES.json).
23+
- Node.js 20 or later
24+
- Codex CLI installed and authenticated for the default `codex-cli` provider
2725

28-
## Install
26+
On Windows, run:
2927

30-
```bash
31-
npm install
28+
```bat
29+
start-desktop.bat
3230
```
3331

34-
## Desktop Popup
32+
Or run it directly:
3533

3634
```bash
35+
npm install
3736
npm run desktop
3837
```
3938

40-
This builds the TypeScript server, starts it on a random local loopback port, and opens the app in a desktop window. The desktop folder picker returns an absolute output path.
39+
The Electron app starts a local server on a random loopback port and provides a native output-folder picker.
40+
41+
## Features
42+
43+
![Feature overview](docs/assets/feature-overview.png)
44+
45+
- Electron desktop popup and local browser modes
46+
- Front prompt generation
47+
- Front-photo modification with cleanup controls
48+
- Side and full-body generation from source photos
49+
- Streaming results for each generated asset
50+
- Identity-preservation rules for face, marks, body shape, and proportions
51+
- Provider adapters for Codex CLI, a raw image CLI, and mock output
4152

4253
## Browser Mode
4354

55+
Start the development server:
56+
4457
```bash
4558
npm run dev
4659
```
@@ -53,15 +66,17 @@ For a non-watch server:
5366
npm start
5467
```
5568

69+
Windows users can run `start.bat` to install missing dependencies, find Codex CLI, start the server, and open the browser.
70+
5671
## Mock Mode
5772

58-
Use mock mode for UI testing without image generation:
73+
Use mock mode to test the complete UI without making image-generation calls:
5974

60-
```bash
61-
IMAGE_GENERATION_PROVIDER=mock npm run dev
75+
```bat
76+
start-mock.bat
6277
```
6378

64-
On Windows PowerShell:
79+
Or set the provider manually:
6580

6681
```powershell
6782
$env:IMAGE_GENERATION_PROVIDER = "mock"
@@ -70,28 +85,28 @@ npm run dev
7085

7186
## Provider Configuration
7287

73-
Default provider is `codex-cli`. It runs Codex CLI once per requested output and asks `$imagegen` to save a final image path plus JSON asset metadata.
88+
The default provider is `codex-cli`. It runs Codex CLI once per requested output and asks `$imagegen` to save the final image and JSON asset metadata.
7489

7590
| Variable | Purpose |
7691
| --- | --- |
77-
| `IMAGE_GENERATION_PROVIDER` | Provider id. Built-ins: `codex-cli`, `raw-image-cli`, `mock`. |
78-
| `CODEX_CLI_COMMAND` | Codex CLI binary path. Defaults to `codex` from `PATH`. |
92+
| `IMAGE_GENERATION_PROVIDER` | Provider ID: `codex-cli`, `raw-image-cli`, or `mock`. |
93+
| `CODEX_CLI_COMMAND` | Codex CLI path. Defaults to `codex` from `PATH`. |
7994
| `CODEX_PROVIDER_ISOLATED_HOME` | Optional isolated Codex home. Set `0` to disable isolation. |
8095
| `IMAGE_GEN_SCRIPT` | Optional script path for `raw-image-cli`. |
8196
| `IMAGE_GEN_PYTHON` | Python executable for `raw-image-cli`. |
8297
| `OPENAI_API_KEY` | Required only by `raw-image-cli`. |
8398

84-
Secrets are redacted from provider logs, but real keys should stay in local environment variables and never be committed.
99+
Secrets are redacted from provider logs. Keep real keys in local environment variables and never commit them.
85100

86-
## Prompt Safety
101+
## Identity Preservation
87102

88-
For source-image modes, the base prompt now explicitly preserves:
103+
For source-image modes, the base prompt preserves:
89104

90105
- original person and facial geometry
91-
- eye shape, nose, mouth, jawline, cheekbones, ears
92-
- skin tone, visible marks, asymmetry, age impression, expression
93-
- body shape, build, height-to-width proportions
94-
- shoulder width, waist/hip balance, neck length, limb proportions, posture cues
106+
- eye shape, nose, mouth, jawline, cheekbones, and ears
107+
- skin tone, visible marks, asymmetry, age impression, and expression
108+
- body shape, build, and height-to-width proportions
109+
- shoulder width, waist and hip balance, neck length, limb proportions, and posture cues
95110

96111
The prompt blocks unrequested beautification, age shifting, stylization, slimming, bulking, or generic identity replacement.
97112

@@ -102,32 +117,22 @@ npm run build
102117
npm test
103118
```
104119

105-
## Architecture
120+
Project layout:
106121

107-
- `public/`: vanilla JS UI.
108-
- `desktop/`: Electron popup shell and native folder picker bridge.
109-
- `src/server.ts`: Express app, upload/image/apply/generate endpoints.
110-
- `src/generation/`: provider interface, registry, prompt builder, Codex CLI provider, raw image CLI provider, mock provider.
111-
- `tests/`: provider, prompt, and server endpoint coverage.
122+
- `public/`: browser UI
123+
- `desktop/`: Electron shell and native folder picker bridge
124+
- `src/server.ts`: Express app and generation endpoints
125+
- `src/generation/`: provider interface, registry, prompt builder, and adapters
126+
- `tests/`: provider, prompt, and server endpoint coverage
112127

113128
## Public Release Hygiene
114129

115-
The repository ignores local/private artifacts:
116-
117-
- `.secrets`
118-
- `.env*` except `.env.example`
119-
- `uploads/`
120-
- `output/`
121-
- `Documents/`
122-
- `dist/`
123-
- local generated auth/caches/logs
124-
125-
Before publishing, run:
130+
The repository excludes local uploads, generated output, secrets, authentication caches, logs, and personal paths. Before publishing:
126131

127132
```bash
128133
rg -n -i "token|secret|api[_-]?key|absolute-private-path|private-character-name|uploads|output" -g "!node_modules" -g "!package-lock.json"
129134
npm run build
130135
npm test
131136
```
132137

133-
Expected matches should be documentation, tests with fake values, or redaction code only.
138+
Expected matches must be documentation, tests with fake values, or redaction code.

‎docs/assets/feature-overview.png‎

587 KB
Loading

‎docs/assets/hero.png‎

888 KB
Loading

0 commit comments

Comments
 (0)