@mcptoolshop/style-dataset-lab 1.1.0 → 1.2.0
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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.2.0] - 2026-04-14
|
|
6
|
+
|
|
7
|
+
- Added `templates/` with blank constitution, review rubric, and example prompt pack
|
|
8
|
+
- npm package now ships scripts + templates only (zero game data)
|
|
9
|
+
- Fixed game data leak in v1.0.0/v1.1.0 npm packages (games/ was included in tarball)
|
|
10
|
+
- All docs reframed around the pipeline (canon, prompts, generate, curate, bind, compare, export)
|
|
11
|
+
- README, handbook, and landing page updated for v1.2.0
|
|
12
|
+
|
|
5
13
|
## [1.1.0] - 2026-04-14
|
|
6
14
|
|
|
7
15
|
- Monorepo restructure: each game lives in `games/<name>/` with isolated canon, records, and assets
|
package/README.md
CHANGED
|
@@ -13,105 +13,106 @@
|
|
|
13
13
|
|
|
14
14
|
# style-dataset-lab
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
A production pipeline for visual dataset creation -- from canon rules to structured prompts to ComfyUI generation to curated, canon-bound training data.
|
|
17
17
|
|
|
18
18
|
## What this is
|
|
19
19
|
|
|
20
|
-
A **
|
|
20
|
+
A **pipeline** for building structured visual training datasets. You write style rules (canon), compose prompts, generate with ComfyUI, curate with per-dimension scoring, bind judgments to canon rules, and export in 10 formats via [`@mcptoolshop/repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset).
|
|
21
|
+
|
|
22
|
+
The pipeline is game-agnostic. Each game gets its own data directory under `games/<name>/`; the 13 scripts and blank templates are shared. Every asset produced carries three things:
|
|
21
23
|
|
|
22
24
|
1. **Image pixels** -- generated by ComfyUI with full provenance (checkpoint, LoRA, seed, sampler, cfg)
|
|
23
25
|
2. **Canon explanation** -- why this is on-style or off-style, grounded in a style constitution
|
|
24
26
|
3. **Quality judgment** -- approved/rejected with per-dimension scores and cited rules
|
|
25
27
|
|
|
26
|
-
The output feeds into [`@mcptoolshop/repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset) to produce multimodal training data in 10 formats: TRL, LLaVA, Qwen2-VL, Axolotl, LLaMA-Factory, ShareGPT, RLHF pairs, DPO, captioning, and classification.
|
|
27
|
-
|
|
28
28
|
## Security model
|
|
29
29
|
|
|
30
30
|
**Local-only.** style-dataset-lab talks to ComfyUI on `localhost:8188` and never makes external network requests. No telemetry, no analytics, no phoning home. Image generation happens entirely on your GPU. Records and canon data stay on your filesystem.
|
|
31
31
|
|
|
32
|
-
##
|
|
32
|
+
## What the npm package ships
|
|
33
|
+
|
|
34
|
+
`npm install @mcptoolshop/style-dataset-lab` gives you:
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
- **13 scripts** -- generate, curate, compare, canon-bind, painterly, identity generation, ControlNet/IP-Adapter generation, bulk curation, migration
|
|
37
|
+
- **Blank templates** -- starter constitution, review rubric, and example prompt pack in `templates/`
|
|
35
38
|
|
|
36
|
-
|
|
37
|
-
|--------|-------|
|
|
38
|
-
| Curated records | 1,182 |
|
|
39
|
-
| Total assets | 2,571 (893 approved, 887 painterly variants) |
|
|
40
|
-
| Prompt waves | 28 |
|
|
41
|
-
| Visual categories | 18 (costumes, ships, interiors, equipment, environments, species, stations, signage, lighting, cargo, architecture, creatures, surfaces, daily life, planetary, damage/repair, alien biology, lived-in details) |
|
|
42
|
-
| Pairwise comparisons | 6 human + 71 synthetic |
|
|
43
|
-
| Distinct rejection types | 30+ |
|
|
44
|
-
| Identity packet system | Named characters with faction DNA, rank, and visual anchors |
|
|
45
|
-
| Export formats | 10 (via @mcptoolshop/repo-dataset) |
|
|
39
|
+
The npm package does **not** include game data. Clone the repo if you want the Star Freight example (1,182 records, 28 prompt waves, 18 visual categories).
|
|
46
40
|
|
|
47
41
|
## Install
|
|
48
42
|
|
|
49
43
|
```bash
|
|
50
|
-
#
|
|
51
|
-
npm install
|
|
44
|
+
# Get the pipeline scripts + templates
|
|
45
|
+
npm install @mcptoolshop/style-dataset-lab
|
|
52
46
|
|
|
53
|
-
#
|
|
47
|
+
# Or clone the repo for the Star Freight example data
|
|
54
48
|
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
55
49
|
cd style-dataset-lab
|
|
56
50
|
npm install
|
|
57
51
|
```
|
|
58
52
|
|
|
59
|
-
To start a new game
|
|
53
|
+
To start a new game from the templates:
|
|
60
54
|
|
|
61
55
|
```bash
|
|
62
|
-
|
|
56
|
+
# Copy templates into your game directory
|
|
57
|
+
mkdir -p games/my-game/{records,comparisons,inputs/prompts,outputs/{candidates,approved,rejected,borderline,painterly},exports}
|
|
58
|
+
cp -r templates/canon games/my-game/canon
|
|
59
|
+
cp templates/inputs/prompts/example-wave.json games/my-game/inputs/prompts/wave1.json
|
|
60
|
+
# Edit the canon and prompts, then generate
|
|
63
61
|
```
|
|
64
62
|
|
|
65
|
-
Or use the existing `games/star-freight/` data to explore the workflow immediately.
|
|
66
|
-
|
|
67
63
|
## Monorepo structure
|
|
68
64
|
|
|
69
|
-
Each game lives in `games/<name>/` with its own canon, records, and assets. Scripts
|
|
65
|
+
The pipeline lives in `scripts/` and `templates/`. Each game lives in `games/<name>/` with its own canon, records, and assets. Scripts accept `--game <name>` (defaults to `star-freight`).
|
|
70
66
|
|
|
71
67
|
```
|
|
72
68
|
style-dataset-lab/
|
|
73
|
-
scripts/
|
|
69
|
+
scripts/ 13 pipeline scripts (generate, curate, compare, etc.)
|
|
70
|
+
templates/ Blank starting point for new games
|
|
71
|
+
canon/ Starter constitution + review rubric
|
|
72
|
+
inputs/prompts/ Example prompt pack
|
|
74
73
|
games/
|
|
75
|
-
star-freight/ Star Freight
|
|
74
|
+
star-freight/ Star Freight example (1,182 records, repo-only)
|
|
76
75
|
canon/ Style constitution, review rubric, species canon
|
|
77
76
|
records/ Per-asset JSON (provenance + judgment + canon)
|
|
78
77
|
comparisons/ A-vs-B preference judgments
|
|
79
78
|
inputs/ Prompt packs, identity packets, references
|
|
80
79
|
outputs/ Generated images (gitignored)
|
|
81
80
|
exports/ repo-dataset output (gitignored)
|
|
82
|
-
|
|
83
|
-
canon/
|
|
84
|
-
records/
|
|
85
|
-
...
|
|
81
|
+
<your-game>/ Add more games with the same structure
|
|
86
82
|
```
|
|
87
83
|
|
|
88
|
-
##
|
|
84
|
+
## Pipeline workflow
|
|
85
|
+
|
|
86
|
+
The full pipeline from canon to training export:
|
|
89
87
|
|
|
90
88
|
```bash
|
|
91
|
-
# 1.
|
|
92
|
-
#
|
|
89
|
+
# 1. Write your canon -- style constitution + review rubric
|
|
90
|
+
# (start from templates/ or write from scratch)
|
|
91
|
+
|
|
92
|
+
# 2. Create prompt packs in inputs/prompts/
|
|
93
|
+
# (see templates/inputs/prompts/example-wave.json)
|
|
93
94
|
|
|
94
|
-
#
|
|
95
|
+
# 3. Start ComfyUI and generate candidates
|
|
95
96
|
npm run generate -- --game star-freight inputs/prompts/wave1.json
|
|
96
97
|
npm run generate -- --game star-freight inputs/prompts/wave1.json --dry-run
|
|
97
98
|
|
|
98
|
-
#
|
|
99
|
+
# 4. Generate identity-packet characters (named subjects)
|
|
99
100
|
npm run generate:identity -- --game star-freight inputs/identity-packets/wave27a.json
|
|
100
101
|
|
|
101
|
-
# 4. Generate painterly variants of approved assets
|
|
102
|
-
npm run painterly -- --game star-freight
|
|
103
|
-
|
|
104
102
|
# 5. Curate -- approve, reject, or mark borderline
|
|
105
103
|
npm run curate -- --game star-freight <asset_id> approved "explanation"
|
|
106
104
|
npm run curate -- --game star-freight <asset_id> rejected "explanation" --failures "too_clean"
|
|
107
105
|
|
|
108
|
-
# 6.
|
|
106
|
+
# 6. Generate painterly variants of approved assets
|
|
107
|
+
npm run painterly -- --game star-freight
|
|
108
|
+
|
|
109
|
+
# 7. Bind canon explanations to curated assets
|
|
109
110
|
npm run canon-bind -- --game star-freight
|
|
110
111
|
|
|
111
|
-
#
|
|
112
|
+
# 8. Record pairwise comparisons
|
|
112
113
|
npm run compare -- --game star-freight <asset_a> <asset_b> a "A has better faction read"
|
|
113
114
|
|
|
114
|
-
#
|
|
115
|
+
# 9. Export training data via repo-dataset
|
|
115
116
|
repo-dataset visual generate ./games/star-freight --format trl
|
|
116
117
|
repo-dataset visual inspect ./games/star-freight
|
|
117
118
|
```
|
|
@@ -119,10 +120,13 @@ repo-dataset visual inspect ./games/star-freight
|
|
|
119
120
|
## Adding a new game
|
|
120
121
|
|
|
121
122
|
```bash
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
123
|
+
# Create structure and copy blank templates
|
|
124
|
+
mkdir -p games/my-game/{records,comparisons,inputs/prompts,outputs/{candidates,approved,rejected,borderline,painterly},exports}
|
|
125
|
+
cp -r templates/canon games/my-game/canon
|
|
126
|
+
cp templates/inputs/prompts/example-wave.json games/my-game/inputs/prompts/wave1.json
|
|
127
|
+
|
|
128
|
+
# Edit your canon/constitution.md and canon/review-rubric.md
|
|
129
|
+
# Edit your prompt pack, then run the pipeline with --game my-game
|
|
126
130
|
```
|
|
127
131
|
|
|
128
132
|
## Per-game directory layout
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcptoolshop/style-dataset-lab",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Visual dataset
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "Visual dataset pipeline — canon to prompts to ComfyUI generation to curated, canon-bound training data",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"generate": "node scripts/generate.js",
|
|
@@ -15,9 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"files": [
|
|
17
17
|
"scripts/",
|
|
18
|
-
"
|
|
19
|
-
"games/*/inputs/",
|
|
20
|
-
"package.json",
|
|
18
|
+
"templates/",
|
|
21
19
|
"README.md",
|
|
22
20
|
"LICENSE",
|
|
23
21
|
"SECURITY.md",
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Style Constitution
|
|
2
|
+
|
|
3
|
+
> Define the visual rules that every generated asset must follow.
|
|
4
|
+
> Each rule gets an ID, category, and description. The curation scripts score assets against these rules.
|
|
5
|
+
|
|
6
|
+
## Core Rules
|
|
7
|
+
|
|
8
|
+
### Silhouette & Shape Language
|
|
9
|
+
|
|
10
|
+
- **SIL-01**: [Describe the silhouette requirements — what shapes define your style?]
|
|
11
|
+
- **SIL-02**: [Describe faction/character shape differentiation]
|
|
12
|
+
|
|
13
|
+
### Color & Palette
|
|
14
|
+
|
|
15
|
+
- **COL-01**: [Describe the color rules — palette constraints, faction colors, mood]
|
|
16
|
+
- **COL-02**: [Describe what colors are forbidden and why]
|
|
17
|
+
|
|
18
|
+
### Material & Texture
|
|
19
|
+
|
|
20
|
+
- **MAT-01**: [Describe material rules — worn vs clean, organic vs synthetic]
|
|
21
|
+
- **MAT-02**: [Describe texture expectations — grit level, surface detail]
|
|
22
|
+
|
|
23
|
+
### Composition & Framing
|
|
24
|
+
|
|
25
|
+
- **CMP-01**: [Describe framing rules — camera angle, subject placement]
|
|
26
|
+
|
|
27
|
+
### Mood & Atmosphere
|
|
28
|
+
|
|
29
|
+
- **MOD-01**: [Describe the emotional tone — tense, serene, chaotic]
|
|
30
|
+
|
|
31
|
+
## Scoring Dimensions
|
|
32
|
+
|
|
33
|
+
Assets are scored 0.0–1.0 on each dimension during curation:
|
|
34
|
+
|
|
35
|
+
| Dimension | What it measures |
|
|
36
|
+
|-----------|-----------------|
|
|
37
|
+
| silhouette | Shape language clarity and faction read |
|
|
38
|
+
| palette | Color accuracy and mood alignment |
|
|
39
|
+
| material | Surface texture and wear level |
|
|
40
|
+
| composition | Framing and visual hierarchy |
|
|
41
|
+
| mood | Emotional tone match |
|
|
42
|
+
| detail | Level of meaningful detail |
|
|
43
|
+
| consistency | Coherence with existing approved assets |
|
|
44
|
+
| originality | Avoids generic/stock-art patterns |
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Review Rubric
|
|
2
|
+
|
|
3
|
+
## Quick Decision Tree
|
|
4
|
+
|
|
5
|
+
1. Does the image pass the **style test**? (Would it look at home next to approved assets?)
|
|
6
|
+
- No → REJECT with cited rule violations
|
|
7
|
+
2. Does it pass **all constitution rules** at ≥0.6 score?
|
|
8
|
+
- No → Check if fixable with img2img → BORDERLINE or REJECT
|
|
9
|
+
3. Does it add **new signal** the dataset doesn't have?
|
|
10
|
+
- Yes → APPROVE
|
|
11
|
+
- No (duplicate composition/subject) → REJECT as redundant
|
|
12
|
+
|
|
13
|
+
## Approval Criteria
|
|
14
|
+
|
|
15
|
+
- All scoring dimensions ≥ 0.6
|
|
16
|
+
- No critical rule violations
|
|
17
|
+
- Adds value to the dataset (new subject, angle, or variation)
|
|
18
|
+
|
|
19
|
+
## Rejection Criteria
|
|
20
|
+
|
|
21
|
+
- Any scoring dimension < 0.4
|
|
22
|
+
- Violates a core constitution rule
|
|
23
|
+
- Too similar to existing approved assets
|
|
24
|
+
- Generic/stock-art quality (no distinctive style)
|
|
25
|
+
|
|
26
|
+
## Borderline Criteria
|
|
27
|
+
|
|
28
|
+
- One or two dimensions between 0.4–0.6
|
|
29
|
+
- Fixable with img2img post-processing
|
|
30
|
+
- Strong composition but weak on style details
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wave": "wave1",
|
|
3
|
+
"description": "First generation wave — core subjects for your visual style",
|
|
4
|
+
"defaults": {
|
|
5
|
+
"checkpoint": "dreamshaperXL_v21TurboDPMSDE.safetensors",
|
|
6
|
+
"lora": { "name": "classipeintxl_v21.safetensors", "weight": 1.0 },
|
|
7
|
+
"width": 1024,
|
|
8
|
+
"height": 1024,
|
|
9
|
+
"steps": 8,
|
|
10
|
+
"cfg": 2.0,
|
|
11
|
+
"sampler": "dpmpp_sde",
|
|
12
|
+
"scheduler": "karras",
|
|
13
|
+
"negative": "photorealistic, photograph, 3d render, smooth CG, sharp photo detail"
|
|
14
|
+
},
|
|
15
|
+
"subjects": [
|
|
16
|
+
{
|
|
17
|
+
"id": "subject_a",
|
|
18
|
+
"variations": 2,
|
|
19
|
+
"prompt": "oil painting, visible brushstrokes, [DESCRIBE YOUR SUBJECT HERE], painterly concept art, canvas grain"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "subject_b",
|
|
23
|
+
"variations": 2,
|
|
24
|
+
"prompt": "oil painting, visible brushstrokes, [DESCRIBE YOUR SUBJECT HERE], painterly concept art, canvas grain"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|