@mcptoolshop/style-dataset-lab 2.1.0 → 2.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,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
- Una canalización de producción para la creación de conjuntos de datos visuales: desde reglas establecidas hasta indicaciones estructuradas, pasando por la generación con ComfyUI, hasta la creación de datos de entrenamiento curados y sujetos a reglas.
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 **canalización** para la creación de conjuntos de datos visuales de entrenamiento estructurados. Se definen reglas de estilo (establecidas), se crean indicaciones, se genera contenido con ComfyUI, se realiza una curación con puntuación por dimensión, se asocian juicios a las reglas establecidas y se exporta en 10 formatos a través de [`@mcptoolshop/repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset).
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 canalización es independiente del juego. Cada juego tiene su propio directorio de datos dentro de `games/<nombre>/`; los 13 scripts y las plantillas vacías se comparten. Cada activo generado contiene tres elementos:
22
+ La línea de producción genera cuatro elementos:
23
23
 
24
- 1. **Píxeles de la imagen** -- generados por ComfyUI con información completa de origen (checkpoint, LoRA, semilla, sampler, cfg).
25
- 2. **Explicación de la regla establecida** -- la razón por la cual la imagen es o no está de acuerdo con el estilo definido, basada en una constitución de estilo.
26
- 3. **Juicio de calidad** -- aprobado/rechazado con puntuaciones por dimensión y reglas citadas.
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
- ## Modelo de seguridad
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
- - **13 scripts** -- para generar, curar, comparar, asociar a la regla establecida, generar imágenes con estilo pictórico, generar identidades, generar imágenes con ControlNet/IP-Adapter, curación masiva, migración.
37
- - **Plantillas vacías** -- una constitución de inicio, una rúbrica de revisión y un paquete de ejemplos de indicaciones en `templates/`.
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
- El paquete npm **no** incluye datos del juego. Clone el repositorio si desea el ejemplo de Star Freight (1182 registros, 28 oleadas de indicaciones, 18 categorías visuales).
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
- ## Instalación
39
+ ## Comienzo rápido
42
40
 
43
41
  ```bash
44
- # Get the pipeline scripts + templates
45
- npm install @mcptoolshop/style-dataset-lab
42
+ # Install the CLI + pipeline
43
+ npm install -g @mcptoolshop/style-dataset-lab
46
44
 
47
- # Or clone the repo for the Star Freight example data
48
- git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
49
- cd style-dataset-lab
50
- npm install
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
- Para comenzar un nuevo juego a partir de las plantillas:
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
- # 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
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
- ## Estructura del monorepositorio
81
+ Todos los comandos aceptan `--project <nombre>` (por defecto: `star-freight`).
82
+
83
+ ## Modelo del proyecto
64
84
 
65
- La canalización se encuentra en `scripts/` y `templates/`. Cada juego se encuentra en `games/<nombre>/` con su propia regla establecida, registros y activos. Los scripts aceptan `--game <nombre>` (por defecto, `star-freight`).
85
+ Cada proyecto es un directorio autónomo dentro de `projects/` con su propio canon, configuración y datos:
66
86
 
67
87
  ```
68
- style-dataset-lab/
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
73
- games/
74
- star-freight/ Star Freight example (1,182 records, repo-only)
75
- canon/ Style constitution, review rubric, species canon
76
- records/ Per-asset JSON (provenance + judgment + canon)
77
- comparisons/ A-vs-B preference judgments
78
- inputs/ Prompt packs, identity packets, references
79
- outputs/ Generated images (gitignored)
80
- exports/ repo-dataset output (gitignored)
81
- <your-game>/ Add more games with the same structure
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
- ## Flujo de trabajo de la canalización
106
+ ## Línea de producción
85
107
 
86
- La canalización completa, desde la regla establecida hasta la exportación para el entrenamiento:
87
-
88
- ```bash
89
- # 1. Write your canon -- style constitution + review rubric
90
- # (start from templates/ or write from scratch)
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
- # 2. Create prompt packs in inputs/prompts/
93
- # (see templates/inputs/prompts/example-wave.json)
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
- # 3. Start ComfyUI and generate candidates
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
- # 4. Generate identity-packet characters (named subjects)
100
- npm run generate:identity -- --game star-freight inputs/identity-packets/wave27a.json
126
+ ## Plantillas de dominio
101
127
 
102
- # 5. Curate -- approve, reject, or mark borderline
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
- # 6. Generate painterly variants of approved assets
107
- npm run painterly -- --game star-freight
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
- # 7. Bind canon explanations to curated assets
110
- npm run canon-bind -- --game star-freight
138
+ ## Producción del conjunto de datos
111
139
 
112
- # 8. Record pairwise comparisons
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
- # 9. Export training data via repo-dataset
116
- repo-dataset visual generate ./games/star-freight --format trl
117
- repo-dataset visual inspect ./games/star-freight
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
- ## Añadir un nuevo juego
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
- # 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
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
- # Edit your canon/constitution.md and canon/review-rubric.md
129
- # Edit your prompt pack, then run the pipeline with --game my-game
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
- ## Estructura del directorio por juego
181
+ ## Migración desde la versión 1.x
133
182
 
134
- Cada directorio `games/<nombre>/` contiene:
183
+ La versión 2.0 cambia el nombre de `games/` a `projects/` y `--game` a `--project`:
135
184
 
136
- ```
137
- canon/ Style constitution, review rubric, species canon, identity gates
138
- inputs/
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
- ## Configuración de la generación
155
-
156
- ```yaml
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
- Modos de generación adicionales: ControlNet (guiado por pose/profundidad), IP-Adapter (guiado por referencia) y paquetes de identidad (consistencia de personajes nombrados).
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