@mcptoolshop/style-dataset-lab 2.1.0 → 2.2.1
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 +24 -0
- package/README.es.md +137 -108
- package/README.fr.md +137 -108
- package/README.hi.md +137 -108
- package/README.it.md +137 -108
- package/README.ja.md +137 -108
- package/README.md +80 -144
- package/README.pt-BR.md +137 -108
- package/README.zh.md +137 -108
- package/bin/sdlab.js +26 -0
- package/lib/adapters/diffusers-lora.js +110 -0
- package/lib/adapters/generic-image-caption.js +94 -0
- package/lib/eval-runs.js +285 -0
- package/lib/implementation-packs.js +316 -0
- package/lib/reingest.js +131 -0
- package/lib/training-manifests.js +172 -0
- package/lib/training-packages.js +241 -0
- package/lib/training-profiles.js +97 -0
- package/package.json +1 -1
- package/scripts/doctor.js +5 -0
- package/scripts/eval-run.js +121 -0
- package/scripts/implementation-pack.js +78 -0
- package/scripts/init.js +5 -0
- package/scripts/reingest.js +86 -0
- package/scripts/training-manifest.js +119 -0
- package/scripts/training-package.js +84 -0
- package/scripts/training-profile.js +63 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [2.2.0] - 2026-04-16
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **Training + implementation spine** -- complete model-asset pipeline from export package to trained asset
|
|
10
|
+
- `sdlab training-profile list/show` -- training profile management (what kind of model asset to produce)
|
|
11
|
+
- `sdlab training-manifest create/validate/show/list` -- frozen training contracts with export hash and config fingerprint
|
|
12
|
+
- `sdlab training-package build/show/list` -- trainer-ready packages with adapter boundary
|
|
13
|
+
- `sdlab eval-run create/score/show/list` -- score generated outputs against eval packs, produce scorecards
|
|
14
|
+
- `sdlab implementation-pack build/show/list` -- prompt examples, known failures, subject continuity, reingest guide
|
|
15
|
+
- `sdlab reingest generated/audit` -- re-ingest accepted generated outputs as new records with provenance
|
|
16
|
+
- **Adapter system** for trainer-specific packaging:
|
|
17
|
+
- `generic-image-caption` -- image folders + metadata JSONL
|
|
18
|
+
- `diffusers-lora` -- image + caption .txt sidecars for diffusers fine-tuning
|
|
19
|
+
- **Two starter training profiles** for Star Freight: `character-style-lora`, `environment-mood-lora`
|
|
20
|
+
- **New library modules:** `lib/training-profiles.js`, `lib/training-manifests.js`, `lib/training-packages.js`, `lib/eval-runs.js`, `lib/implementation-packs.js`, `lib/reingest.js`, `lib/adapters/generic-image-caption.js`, `lib/adapters/diffusers-lora.js`
|
|
21
|
+
|
|
22
|
+
### Key properties
|
|
23
|
+
|
|
24
|
+
- Training manifests are frozen -- if config, export, or profile changes, a new manifest is required
|
|
25
|
+
- Adapters transform layout but never mutate inclusion or split truth
|
|
26
|
+
- Generated outputs re-enter through normal review (no bypass)
|
|
27
|
+
- Every eval run links back to a training manifest and eval pack (no orphans)
|
|
28
|
+
|
|
5
29
|
## [2.1.0] - 2026-04-16
|
|
6
30
|
|
|
7
31
|
### Added
|
package/README.es.md
CHANGED
|
@@ -13,158 +13,187 @@
|
|
|
13
13
|
|
|
14
14
|
# style-dataset-lab
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Convierta el material visual aprobado en conjuntos de datos versionados, respaldados por revisiones, divisiones, paquetes de exportación y paquetes de evaluación.
|
|
17
17
|
|
|
18
18
|
## ¿Qué es esto?
|
|
19
19
|
|
|
20
|
-
Una **
|
|
20
|
+
Una **línea de producción de conjuntos de datos y un canon visual**. Defina cómo se verá su proyecto. Seleccione cuidadosamente de acuerdo con las reglas establecidas. Cree paquetes de conjuntos de datos reproducibles con divisiones seguras contra fugas de información. Genere paquetes de evaluación para la verificación futura del modelo.
|
|
21
21
|
|
|
22
|
-
La
|
|
22
|
+
La línea de producción genera cuatro elementos:
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
| Elemento | ¿Qué es? |
|
|
25
|
+
|----------|-----------|
|
|
26
|
+
| **Snapshot** | Selección de registros elegibles, congelada y con huella digital. Cada inclusión tiene un registro explícito de la razón. |
|
|
27
|
+
| **Split** | Partición segura contra fugas de información para entrenamiento/validación/prueba. Los registros que comparten una misma familia siempre se incluyen en la misma división. |
|
|
28
|
+
| **Export package** | Conjunto de datos autónomo: manifiesto, metadatos, imágenes, divisiones, descripción del conjunto de datos y sumas de verificación. |
|
|
29
|
+
| **Eval pack** | Tareas de verificación que respetan el canon: cobertura de categorías, desviación prohibida, referencia/estándar, coherencia temática. |
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
**Solo local.** style-dataset-lab se comunica con ComfyUI en `localhost:8188` y nunca realiza solicitudes a la red externa. No hay telemetría, ni análisis, ni conexión a servidores externos. La generación de imágenes se realiza completamente en su GPU. Los registros y los datos de la regla establecida permanecen en su sistema de archivos.
|
|
31
|
-
|
|
32
|
-
## ¿Qué incluye el paquete npm?
|
|
33
|
-
|
|
34
|
-
`npm install @mcptoolshop/style-dataset-lab` le proporciona:
|
|
31
|
+
Cada elemento en la línea de producción contiene tres cosas:
|
|
35
32
|
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
1. **Origen** -- historial completo de generación (punto de control, LoRA, semilla, muestreador, configuración, tiempo de ejecución)
|
|
34
|
+
2. **Cumplimiento del canon** -- qué reglas establecidas cumple, no cumple o cumple parcialmente este elemento.
|
|
35
|
+
3. **Evaluación de calidad** -- aprobado/rechazado/límite con puntuaciones por dimensión.
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+
Funciona para arte de juegos, diseño de personajes, diseño de criaturas, arquitectura, conceptos de vehículos/mecánica y cualquier dominio donde la producción visual deba mantenerse dentro de los parámetros establecidos.
|
|
40
38
|
|
|
41
|
-
##
|
|
39
|
+
## Comienzo rápido
|
|
42
40
|
|
|
43
41
|
```bash
|
|
44
|
-
#
|
|
45
|
-
npm install @mcptoolshop/style-dataset-lab
|
|
42
|
+
# Install the CLI + pipeline
|
|
43
|
+
npm install -g @mcptoolshop/style-dataset-lab
|
|
46
44
|
|
|
47
|
-
#
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
# Scaffold a new project
|
|
46
|
+
sdlab init my-project --domain character-design
|
|
47
|
+
|
|
48
|
+
# Validate the project structure
|
|
49
|
+
sdlab project doctor --project my-project
|
|
51
50
|
```
|
|
52
51
|
|
|
53
|
-
|
|
52
|
+
Dominios disponibles: `game-art`, `character-design`, `creature-design`, `architecture`, `vehicle-mech` o `generic`.
|
|
53
|
+
|
|
54
|
+
## Interfaz de línea de comandos (CLI)
|
|
54
55
|
|
|
55
56
|
```bash
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
sdlab init <name> [--domain <domain>] # Scaffold a new project
|
|
58
|
+
sdlab project doctor [--project <name>] # Validate project config
|
|
59
|
+
|
|
60
|
+
sdlab generate <pack> [--project <name>] # Generate candidates via ComfyUI
|
|
61
|
+
sdlab generate:identity <packet> # Named-subject identity images
|
|
62
|
+
sdlab generate:controlnet # ControlNet-guided generation
|
|
63
|
+
sdlab generate:ipadapter # IP-Adapter reference-guided
|
|
64
|
+
|
|
65
|
+
sdlab curate <id> <status> <explanation> # Record review judgment
|
|
66
|
+
sdlab compare <a> <b> <winner> <reason> # Pairwise A-vs-B comparison
|
|
67
|
+
sdlab bind [--project <name>] # Bind records to constitution rules
|
|
68
|
+
sdlab painterly [--project <name>] # Post-processing style pass
|
|
69
|
+
|
|
70
|
+
sdlab snapshot create [--profile <name>] # Create frozen dataset snapshot
|
|
71
|
+
sdlab snapshot list # List all snapshots
|
|
72
|
+
sdlab snapshot diff <a> <b> # Compare two snapshots
|
|
73
|
+
sdlab eligibility audit # Audit record training eligibility
|
|
74
|
+
sdlab split build [--snapshot <id>] # Build train/val/test split
|
|
75
|
+
sdlab split audit <id> # Audit split for leakage + balance
|
|
76
|
+
sdlab card generate # Generate dataset card (md + JSON)
|
|
77
|
+
sdlab export build [--snapshot <id>] # Build versioned export package
|
|
78
|
+
sdlab eval-pack build # Build canon-aware eval pack
|
|
61
79
|
```
|
|
62
80
|
|
|
63
|
-
|
|
81
|
+
Todos los comandos aceptan `--project <nombre>` (por defecto: `star-freight`).
|
|
82
|
+
|
|
83
|
+
## Modelo del proyecto
|
|
64
84
|
|
|
65
|
-
|
|
85
|
+
Cada proyecto es un directorio autónomo dentro de `projects/` con su propio canon, configuración y datos:
|
|
66
86
|
|
|
67
87
|
```
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
88
|
+
projects/
|
|
89
|
+
my-project/
|
|
90
|
+
project.json Project identity + generation defaults
|
|
91
|
+
constitution.json Rules array with rationale templates
|
|
92
|
+
lanes.json Subject lanes with detection patterns
|
|
93
|
+
rubric.json Scoring dimensions + thresholds
|
|
94
|
+
terminology.json Group vocabulary + detection order
|
|
95
|
+
canon/ Style constitution (markdown)
|
|
96
|
+
records/ Per-asset JSON (provenance + judgment + canon)
|
|
97
|
+
inputs/prompts/ Prompt packs (JSON)
|
|
98
|
+
outputs/ Generated images (gitignored)
|
|
99
|
+
comparisons/ A-vs-B preference judgments
|
|
100
|
+
snapshots/ Frozen dataset snapshots
|
|
101
|
+
splits/ Train/val/test partitions
|
|
102
|
+
exports/ Versioned export packages
|
|
103
|
+
eval-packs/ Canon-aware eval instruments
|
|
82
104
|
```
|
|
83
105
|
|
|
84
|
-
##
|
|
106
|
+
## Línea de producción
|
|
85
107
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
108
|
+
```
|
|
109
|
+
canon → generate → curate → bind → snapshot → split → export → eval
|
|
110
|
+
| | | | | | | |
|
|
111
|
+
rules ComfyUI judgment rules frozen subject package verify
|
|
112
|
+
selection isolation
|
|
113
|
+
```
|
|
91
114
|
|
|
92
|
-
|
|
93
|
-
|
|
115
|
+
1. **Definir el canon** -- escriba su constitución de estilo y rúbrica de revisión.
|
|
116
|
+
2. **Generar** -- ComfyUI genera candidatos con un origen completo.
|
|
117
|
+
3. **Seleccionar** -- apruebe/rechace con puntuaciones por dimensión y modos de fallo.
|
|
118
|
+
4. **Vincular** -- vincule cada elemento a las reglas establecidas con veredictos de cumplimiento/incumplimiento/parcial.
|
|
119
|
+
5. **Captura** -- congele los registros elegibles en una selección determinista y con huella digital.
|
|
120
|
+
6. **Dividir** -- particione en entrenamiento/validación/prueba con aislamiento temático y equilibrio de categorías.
|
|
121
|
+
7. **Exportar** -- cree un paquete autónomo con manifiesto, metadatos, imágenes y sumas de verificación.
|
|
122
|
+
8. **Evaluar** -- genere instrumentos de prueba que respeten el canon para la verificación del modelo.
|
|
94
123
|
|
|
95
|
-
|
|
96
|
-
npm run generate -- --game star-freight inputs/prompts/wave1.json
|
|
97
|
-
npm run generate -- --game star-freight inputs/prompts/wave1.json --dry-run
|
|
124
|
+
La conversión de formato a formatos posteriores (TRL, LLaVA, Parquet, etc.) se gestiona mediante [`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset). `sdlab` es responsable de la veracidad del conjunto de datos; `repo-dataset` lo convierte en formatos especializados.
|
|
98
125
|
|
|
99
|
-
|
|
100
|
-
npm run generate:identity -- --game star-freight inputs/identity-packets/wave27a.json
|
|
126
|
+
## Plantillas de dominio
|
|
101
127
|
|
|
102
|
-
|
|
103
|
-
npm run curate -- --game star-freight <asset_id> approved "explanation"
|
|
104
|
-
npm run curate -- --game star-freight <asset_id> rejected "explanation" --failures "too_clean"
|
|
128
|
+
Cada plantilla de dominio incluye definiciones de categorías, reglas establecidas, rúbricas de puntuación y estructuras de terminología diseñadas para ese contexto de producción:
|
|
105
129
|
|
|
106
|
-
|
|
107
|
-
|
|
130
|
+
| Dominio | Categorías | Preocupaciones clave |
|
|
131
|
+
|--------|-------|-------------|
|
|
132
|
+
| **game-art** | personaje, entorno, accesorio, interfaz de usuario, nave, interior, equipo | Silueta a escala de juego, diferenciación de facciones, desgaste/envejecimiento |
|
|
133
|
+
| **character-design** | retrato, cuerpo entero, vista de 360 grados, hoja de expresiones, pose de acción | Precisión de las proporciones, lógica del vestuario, interpretación de la personalidad, claridad de los gestos |
|
|
134
|
+
| **creature-design** | concepto, ortográfico, estudio de detalles, acción, referencia de escala, hábitat | Plausibilidad anatómica, lógica evolutiva, distinción de siluetas |
|
|
135
|
+
| **architecture** | exterior, interior, paisaje urbano, detalle estructural, ruina, paisaje | Plausibilidad estructural, consistencia de materiales, perspectiva, coherencia de la época |
|
|
136
|
+
| **vehicle-mech** | exterior, cabina, componente, esquema, hoja de siluetas, variante de daño | Lógica mecánica, lenguaje de diseño funcional, puntos de acceso, descripción de daños. |
|
|
108
137
|
|
|
109
|
-
|
|
110
|
-
npm run canon-bind -- --game star-freight
|
|
138
|
+
## Producción del conjunto de datos
|
|
111
139
|
|
|
112
|
-
|
|
113
|
-
npm run compare -- --game star-freight <asset_a> <asset_b> a "A has better faction read"
|
|
140
|
+
Estructura completa del conjunto de datos: instantánea, división, exportación, evaluación.
|
|
114
141
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
142
|
+
```
|
|
143
|
+
snapshot --> split --> export --> eval-pack
|
|
144
|
+
| | | |
|
|
145
|
+
frozen subject package canon-aware
|
|
146
|
+
selection isolation (manifest, test instruments
|
|
147
|
+
+ lane metadata, (4 task types)
|
|
148
|
+
balance images,
|
|
149
|
+
checksums,
|
|
150
|
+
card)
|
|
118
151
|
```
|
|
119
152
|
|
|
120
|
-
|
|
153
|
+
Las **instantáneas** congelan una selección determinista de registros elegibles. Cada inclusión tiene un registro de la razón. Las huellas de configuración garantizan la reproducibilidad.
|
|
154
|
+
|
|
155
|
+
Las **divisiones** asignan los registros a particiones de entrenamiento/validación/prueba, con aislamiento de sujetos (ninguna familia de sujetos aparece en múltiples divisiones) y distribución equilibrada por "carril". Un generador de números pseudoaleatorios con semilla garantiza resultados idénticos a partir de la misma semilla.
|
|
156
|
+
|
|
157
|
+
Los **paquetes de exportación** son autocontenidos: manifiesto, metadata.jsonl, imágenes (enlaces simbólicos o copias), divisiones, tarjeta del conjunto de datos (Markdown + JSON) y sumas de verificación en formato BSD. Todo lo necesario para reconstruir el conjunto de datos desde cero.
|
|
158
|
+
|
|
159
|
+
Los **paquetes de evaluación** son instrumentos de prueba que tienen en cuenta el canon y que incluyen cuatro tipos de tareas: cobertura de "carriles", deriva prohibida, anclaje/referencia y continuidad del sujeto. Demuestran que la estructura del conjunto de datos está alimentando futuras evaluaciones de modelos, y no solo se están volviendo a depositar archivos.
|
|
160
|
+
|
|
161
|
+
Exportación a formatos posteriores a través de [`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset) (TRL, LLaVA, Qwen2-VL, JSONL, Parquet, y más). `repo-dataset` se encarga de la conversión de formatos; `sdlab` es responsable de la integridad del conjunto de datos.
|
|
162
|
+
|
|
163
|
+
## Ejemplo de Star Freight
|
|
164
|
+
|
|
165
|
+
Clona el repositorio para obtener un ejemplo de funcionamiento completo: 1182 registros, 28 oleadas de indicaciones, 5 facciones, 7 "carriles", 24 reglas constitucionales y 892 activos aprobados de un RPG de ciencia ficción.
|
|
121
166
|
|
|
122
167
|
```bash
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
168
|
+
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
169
|
+
cd style-dataset-lab
|
|
170
|
+
|
|
171
|
+
# Validate the project
|
|
172
|
+
sdlab project doctor --project star-freight
|
|
127
173
|
|
|
128
|
-
#
|
|
129
|
-
|
|
174
|
+
# Run the full dataset spine
|
|
175
|
+
sdlab snapshot create --project star-freight # 839 eligible records
|
|
176
|
+
sdlab split build --project star-freight # ~80/10/10, zero leakage
|
|
177
|
+
sdlab export build --project star-freight # package with checksums
|
|
178
|
+
sdlab eval-pack build --project star-freight # 78 eval records
|
|
130
179
|
```
|
|
131
180
|
|
|
132
|
-
##
|
|
181
|
+
## Migración desde la versión 1.x
|
|
133
182
|
|
|
134
|
-
|
|
183
|
+
La versión 2.0 cambia el nombre de `games/` a `projects/` y `--game` a `--project`:
|
|
135
184
|
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
prompts/ Prompt packs per wave (JSON: subjects, variations, defaults)
|
|
140
|
-
references/ IP-Adapter reference images
|
|
141
|
-
control-guides/ ControlNet guide overlays
|
|
142
|
-
identity-packets/ Named character identity spines
|
|
143
|
-
outputs/
|
|
144
|
-
candidates/ Raw generations (gitignored)
|
|
145
|
-
approved/ Curated approved (gitignored)
|
|
146
|
-
rejected/ Curated rejected (gitignored)
|
|
147
|
-
borderline/ Curated borderline (gitignored)
|
|
148
|
-
painterly/ Painterly-style variants (gitignored)
|
|
149
|
-
records/ Per-asset JSON (provenance + judgment + canon binding)
|
|
150
|
-
comparisons/ A-vs-B preference judgments
|
|
151
|
-
exports/ repo-dataset output (gitignored)
|
|
152
|
-
```
|
|
185
|
+
```bash
|
|
186
|
+
# Rename your data directory
|
|
187
|
+
mv games projects
|
|
153
188
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
checkpoint: dreamshaperXL_v21TurboDPMSDE.safetensors
|
|
158
|
-
lora: classipeintxl_v21.safetensors (weight: 1.0)
|
|
159
|
-
resolution: 1024x1024
|
|
160
|
-
steps: 8
|
|
161
|
-
cfg: 2.0
|
|
162
|
-
sampler: dpmpp_sde
|
|
163
|
-
scheduler: karras
|
|
164
|
-
speed: ~9s per image (RTX 5080)
|
|
189
|
+
# --game still works with a deprecation warning (removed in v3.0)
|
|
190
|
+
sdlab bind --game star-freight # works, prints warning
|
|
191
|
+
sdlab bind --project star-freight # canonical form
|
|
165
192
|
```
|
|
166
193
|
|
|
167
|
-
|
|
194
|
+
## Modelo de seguridad
|
|
195
|
+
|
|
196
|
+
**Solo local.** Se comunica con ComfyUI en `localhost:8188`. No hay telemetría, ni análisis, ni solicitudes externas. Las imágenes permanecen en tu GPU y sistema de archivos.
|
|
168
197
|
|
|
169
198
|
## Requisitos
|
|
170
199
|
|