@mcptoolshop/style-dataset-lab 2.0.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/README.fr.md CHANGED
@@ -13,158 +13,187 @@
13
13
 
14
14
  # style-dataset-lab
15
15
 
16
- Une chaîne de production pour la création de jeux de données visuels : des règles de base aux invites structurées, en passant par la génération avec ComfyUI, jusqu'aux données d'entraînement sélectionnées et conformes aux règles.
16
+ Transformez les éléments visuels approuvés en ensembles de données versionnés, validés, divisés, exportables et destinés à l'évaluation.
17
17
 
18
18
  ## Qu'est-ce que c'est ?
19
19
 
20
- Une **chaîne de production** pour la création de jeux de données visuels structurés. Vous définissez des règles de style (règles de base), rédigez des invites, générez avec ComfyUI, sélectionnez les données avec un système de notation par dimension, associez les jugements aux règles de base et exportez dans 10 formats via [`@mcptoolshop/repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset).
20
+ Un **système de production de données visuelles et un pipeline**. Définissez l'apparence de votre projet. Appliquez des règles constitutionnelles. Créez des ensembles de données reproductibles avec des divisions sécurisées contre les fuites. Générez des ensembles d'évaluation pour la vérification future des modèles.
21
21
 
22
- Cette chaîne de production est indépendante du jeu. Chaque jeu dispose de son propre répertoire de données sous `games/<nom>/`; les 13 scripts et les modèles vierges sont partagés. Chaque élément produit contient trois informations.
22
+ Le pipeline produit quatre éléments :
23
23
 
24
- 1. **Pixels de l'image** : générés par ComfyUI avec une traçabilité complète (point de contrôle, LoRA, graine, échantillonneur, cfg).
25
- 2. **Explication canonique** : pourquoi cet élément est conforme ou non au style, basé sur une constitution du style.
26
- 3. **Jugement de qualité** : approuvé/refusé avec des scores par dimension et des règles citées.
24
+ | Élément | Description |
25
+ |----------|-----------|
26
+ | **Snapshot** | Sélection de données éligibles, figée et identifiée de manière unique. Chaque inclusion a une justification explicite. |
27
+ | **Split** | Partition train/validation/test sécurisée contre les fuites. Les données partageant la même famille de sujets sont toujours regroupées dans la même partition. |
28
+ | **Export package** | Ensemble de données autonome : manifeste, métadonnées, images, divisions, description de l'ensemble de données et sommes de contrôle. |
29
+ | **Eval pack** | Tâches de vérification respectant les règles constitutionnelles : couverture des aspects, dérive interdite, ancres/références, cohérence des sujets. |
27
30
 
28
- ## Modèle de sécurité
29
-
30
- **Uniquement local.** style-dataset-lab communique avec ComfyUI sur `localhost:8188` et ne fait jamais de requêtes réseau externes. Pas de télémétrie, pas d'analyses, pas de communication avec un serveur distant. La génération d'images se fait entièrement sur votre GPU. Les enregistrements et les données canoniques restent sur votre système de fichiers.
31
-
32
- ## Ce que le paquet npm contient
33
-
34
- `npm install @mcptoolshop/style-dataset-lab` vous donne :
31
+ Chaque élément du pipeline contient trois informations :
35
32
 
36
- - **13 scripts** -- génération, sélection, comparaison, application des règles de base, style pictural, génération d'identités, génération ControlNet/IP-Adapter, sélection en masse, migration.
37
- - **Modèles vierges** -- constitution de base, grille d'évaluation et ensemble d'exemples d'invites dans le dossier `templates/`.
33
+ 1. **Traçabilité** – historique complet de la génération (point de contrôle, LoRA, seed, échantillonneur, cfg, timing).
34
+ 2. **Conformité aux règles constitutionnelles** – quelles règles constitutionnelles cet élément respecte, ne respecte pas ou respecte partiellement.
35
+ 3. **Évaluation de la qualité** – approuvé/refusé/limite, avec des scores par dimension.
38
36
 
39
- Le paquet npm **ne contient pas** les données du jeu. Clonez le dépôt si vous souhaitez l'exemple de Star Freight (1 182 enregistrements, 28 séries d'invites, 18 catégories visuelles).
37
+ Fonctionne pour les illustrations de jeux, la conception de personnages, la conception de créatures, l'architecture, les concepts de véhicules/robots, et tout domaine où la production visuelle doit rester conforme aux spécifications.
40
38
 
41
- ## Installation
39
+ ## Démarrage rapide
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
- Pour démarrer un nouveau jeu à partir des modèles :
52
+ Domaines disponibles : `game-art`, `character-design`, `creature-design`, `architecture`, `vehicle-mech` ou `generic`.
53
+
54
+ ## Interface en ligne de commande (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
- ## Structure du dépôt monorepo
81
+ Toutes les commandes acceptent `--project <nom>` (par défaut : `star-freight`).
82
+
83
+ ## Modèle du projet
64
84
 
65
- La chaîne de production se trouve dans les dossiers `scripts/` et `templates/`. Chaque jeu se trouve dans le dossier `games/<nom>/` et possède ses propres règles de base, enregistrements et ressources. Les scripts acceptent l'argument `--game <nom>` (par défaut : `star-freight`).
85
+ Chaque projet est un répertoire autonome sous `projects/`, avec sa propre constitution, sa configuration et ses données :
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
- ## Flux de travail de la chaîne de production
106
+ ## Pipeline
85
107
 
86
- La chaîne de production complète, des règles de base à l'exportation des données d'entraînement :
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. **Définir la constitution** – rédigez votre constitution de style et votre grille d'évaluation.
116
+ 2. **Générer** – ComfyUI produit des candidats avec une traçabilité complète.
117
+ 3. **Sélectionner** – approuvez/refusez avec des scores par dimension et des modes de défaillance.
118
+ 4. **Associer** – liez chaque élément aux règles constitutionnelles avec des verdicts d'acceptation/rejet/partiel.
119
+ 5. **Instantané** – figez les données éligibles dans une sélection déterministe et identifiée de manière unique.
120
+ 6. **Diviser** – partitionnez en train/validation/test avec isolement des sujets et équilibre des aspects.
121
+ 7. **Exporter** – créez un package autonome avec un manifeste, des métadonnées, des images et des sommes de contrôle.
122
+ 8. **Évaluer** – générez des instruments de test respectant les règles constitutionnelles pour la vérification du modèle.
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 conversion de format en aval (TRL, LLaVA, Parquet, etc.) est gérée par [`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset). `sdlab` possède la vérité des données ; `repo-dataset` la transforme en formats spécialisés.
98
125
 
99
- # 4. Generate identity-packet characters (named subjects)
100
- npm run generate:identity -- --game star-freight inputs/identity-packets/wave27a.json
126
+ ## Modèles de domaine
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
+ Chaque modèle de domaine est fourni avec des définitions d'aspects, des règles constitutionnelles, des grilles d'évaluation et des structures terminologiques conçues pour ce contexte de production :
105
129
 
106
- # 6. Generate painterly variants of approved assets
107
- npm run painterly -- --game star-freight
130
+ | Domaine | Aspects | Préoccupations clés |
131
+ |--------|-------|-------------|
132
+ | **game-art** | personnage, environnement, accessoire, interface utilisateur, vaisseau, intérieur, équipement | Silhouette à l'échelle du gameplay, différenciation des factions, usure/vieillissement |
133
+ | **character-design** | portrait, corps entier, vue de face, feuille d'expressions, pose d'action | Précision des proportions, logique des costumes, expression de la personnalité, clarté des gestes |
134
+ | **creature-design** | concept, orthographique, étude de détail, action, référence d'échelle, habitat | Plausibilité anatomique, logique évolutive, distinction des silhouettes |
135
+ | **architecture** | extérieur, intérieur, paysage urbain, détail structurel, ruine, paysage | Plausibilité structurelle, cohérence des matériaux, perspective, cohérence de l'époque |
136
+ | **vehicle-mech** | extérieur, cockpit, composant, schéma, feuille de silhouette, variante endommagée | Logique mécanique, langage de conception fonctionnelle, points d'accès, description des dommages. |
108
137
 
109
- # 7. Bind canon explanations to curated assets
110
- npm run canon-bind -- --game star-freight
138
+ ## Production de l'ensemble de données
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
+ Structure complète de l'ensemble de données : instantané, division, exportation, évaluation.
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
- ## Ajout d'un nouveau jeu
153
+ Les **instantanés** figent une sélection déterministe d'enregistrements éligibles. Chaque inclusion a une trace de raison. Les empreintes de configuration garantissent la reproductibilité.
154
+
155
+ Les **divisions** attribuent les enregistrements aux partitions d'entraînement/validation/test, avec une isolation des sujets (aucune famille de sujets n'apparaît dans plusieurs divisions) et une distribution équilibrée par "voie". Un générateur de nombres pseudo-aléatoires (PRNG) initialisé garantit des résultats identiques à partir de la même initialisation.
156
+
157
+ Les **packages d'exportation** sont autonomes : manifeste, metadata.jsonl, images (liens symboliques ou copies), divisions, fiche de l'ensemble de données (Markdown + JSON), et sommes de contrôle au format BSD. Tout le nécessaire pour reconstruire l'ensemble de données à partir de zéro.
158
+
159
+ Les **packs d'évaluation** sont des outils de test standardisés, prenant en compte le contexte, avec quatre types de tâches : couverture des "voies", dérive interdite, ancres/références, et continuité des sujets. Ils prouvent que la structure de l'ensemble de données alimente l'évaluation future des modèles, et ne se contente pas de décharger des fichiers.
160
+
161
+ Exportation vers des formats compatibles via [`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset) (TRL, LLaVA, Qwen2-VL, JSONL, Parquet, etc.). `repo-dataset` gère la conversion de format ; `sdlab` est responsable de la vérité des données.
162
+
163
+ ## Exemple Star Freight
164
+
165
+ Clonez le dépôt pour un exemple fonctionnel complet : 1182 enregistrements, 28 séries de prompts, 5 factions, 7 "voies", 24 règles constitutionnelles, et 892 ressources approuvées provenant d'un RPG de science-fiction réaliste.
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
- ## Structure du répertoire par jeu
181
+ ## Migration depuis la version 1.x
133
182
 
134
- Chaque répertoire `games/<nom>/` contient :
183
+ La version 2.0 renomme `games/` en `projects/` et `--game` en `--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
- ## Configuration de la génération
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
- Modes de génération supplémentaires : ControlNet (guidé par la pose/la profondeur), IP-Adapter (guidé par une référence) et paquets d'identité (cohérence des personnages nommés).
194
+ ## Modèle de sécurité
195
+
196
+ **Uniquement local.** Communique avec ComfyUI sur `localhost:8188`. Pas de télémétrie, pas d'analyses, pas de requêtes externes. Les images restent sur votre GPU et votre système de fichiers.
168
197
 
169
198
  ## Prérequis
170
199