@mcptoolshop/style-dataset-lab 3.0.1 → 3.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 +77 -0
- package/README.es.md +154 -41
- package/README.fr.md +153 -40
- package/README.hi.md +160 -47
- package/README.it.md +155 -42
- package/README.ja.md +159 -46
- package/README.md +40 -0
- package/README.pt-BR.md +154 -41
- package/README.zh.md +154 -41
- package/bin/sdlab.js +81 -2
- package/lib/adapters/ai-toolkit.js +209 -0
- package/lib/adapters/comfyui-runner.js +11 -15
- package/lib/adapters/comfyui-workflows.js +133 -2
- package/lib/adapters/diffusers-lora.js +46 -66
- package/lib/adapters/generic-image-caption.js +22 -50
- package/lib/batch-runs.js +62 -0
- package/lib/canon-build/build.js +450 -0
- package/lib/canon-build/emitters/base.js +122 -0
- package/lib/canon-build/emitters/character.js +167 -0
- package/lib/canon-build/emitters/deity.js +165 -0
- package/lib/canon-build/emitters/faction.js +161 -0
- package/lib/canon-build/emitters/index.js +38 -0
- package/lib/canon-build/emitters/location.js +153 -0
- package/lib/canon-build/emitters/monster.js +131 -0
- package/lib/canon-build/emitters/relic.js +142 -0
- package/lib/canon-build/emitters/ship.js +154 -0
- package/lib/canon-build/emitters/species.js +165 -0
- package/lib/canon-build/frontmatter.js +76 -0
- package/lib/canon-build/lane-resolve.js +64 -0
- package/lib/canon-build/load-config.js +117 -0
- package/lib/canon-build/load-entry.js +62 -0
- package/lib/canon-build/load-schema.js +46 -0
- package/lib/captions.js +197 -0
- package/lib/comfyui-output.js +70 -0
- package/lib/config.js +19 -0
- package/lib/freeze-events.js +109 -0
- package/lib/freeze-gate.js +165 -0
- package/lib/freeze-stamp.js +161 -0
- package/lib/rows.js +228 -0
- package/lib/training-adapters.js +84 -0
- package/lib/training-packages.js +25 -32
- package/lib/training-profiles.js +43 -0
- package/package.json +29 -2
- package/scripts/_batch_cut.py +71 -0
- package/scripts/_seam_cutout.py +74 -0
- package/scripts/batch-generate.js +56 -13
- package/scripts/canon-build.js +88 -0
- package/scripts/canon-drift.js +193 -0
- package/scripts/canon-freeze-status.js +85 -0
- package/scripts/canon-freeze.js +211 -0
- package/scripts/canon-unfreeze.js +137 -0
- package/scripts/curate.js +12 -0
- package/scripts/generate-controlnet.js +12 -0
- package/scripts/generate-identity.js +20 -4
- package/scripts/generate-ipadapter.js +11 -0
- package/scripts/generate.js +250 -102
- package/scripts/qwen_generate.py +124 -0
package/README.fr.md
CHANGED
|
@@ -8,14 +8,16 @@
|
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<a href="https://www.npmjs.com/package/@mcptoolshop/style-dataset-lab"><img src="https://img.shields.io/npm/v/@mcptoolshop/style-dataset-lab" alt="npm"></a>
|
|
11
|
+
<a href="https://github.com/mcp-tool-shop-org/style-dataset-lab/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/style-dataset-lab/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
12
|
+
<a href="https://codecov.io/gh/mcp-tool-shop-org/style-dataset-lab"><img src="https://codecov.io/gh/mcp-tool-shop-org/style-dataset-lab/branch/main/graph/badge.svg" alt="codecov"></a>
|
|
11
13
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
|
|
12
14
|
</p>
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
Écrivez vos règles visuelles. Générez des œuvres d’art. Évaluez chaque image en fonction de ces règles. Diffusez les résultats sous forme de données d’entraînement versionnées et auditables, puis mettez à profit les modèles entraînés dans des flux de travail de production réels et renvoyez les meilleurs résultats dans votre corpus.
|
|
15
17
|
|
|
16
|
-
Style Dataset Lab relie
|
|
18
|
+
Style Dataset Lab relie ce que vous avez écrit concernant votre style artistique au jeu de données à partir duquel vous effectuez réellement l’entraînement, puis boucle le processus jusqu’à la production. Vous définissez une constitution : règles de silhouette, contraintes de palette, langage des matériaux, tout ce qui compte pour votre projet. Le pipeline génère des candidats, les évalue en fonction de ces règles et regroupe les éléments approuvés dans des jeux de données reproductibles où chaque enregistrement explique pourquoi il a été inclus.
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
Ensuite, l’environnement de travail de production prend le relais : compilez des briefs de génération à partir des données du projet, exécutez-les via ComfyUI, évaluez les résultats, produisez en série des feuilles d’expression et des planches d’ambiance, sélectionnez les meilleurs résultats et réintégrez-les en tant que nouveaux candidats. La boucle se ferme : produire, sélectionner, examiner, améliorer.
|
|
19
21
|
|
|
20
22
|
## Le pipeline
|
|
21
23
|
|
|
@@ -28,59 +30,104 @@ sdlab generate inputs/prompts/wave1.json --project my-project
|
|
|
28
30
|
sdlab curate <id> approved "Strong silhouette, correct faction palette"
|
|
29
31
|
|
|
30
32
|
# Bind approved work to constitution rules
|
|
31
|
-
sdlab bind
|
|
33
|
+
# (`sdlab bind` is a shorter alias for `canon-bind`)
|
|
34
|
+
sdlab canon-bind --project my-project
|
|
32
35
|
|
|
33
36
|
# Freeze a versioned dataset
|
|
34
37
|
sdlab snapshot create --project my-project
|
|
35
38
|
sdlab split build
|
|
36
39
|
sdlab export build
|
|
37
40
|
|
|
38
|
-
# Build a training package
|
|
41
|
+
# Build a training package
|
|
39
42
|
sdlab training-manifest create --profile character-style-lora
|
|
40
43
|
sdlab training-package build
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
|
|
45
|
+
# Compile a production brief and run it
|
|
46
|
+
sdlab brief compile --workflow character-portrait-set --subject kael_maren
|
|
47
|
+
sdlab run generate --brief brief_2026-04-16_001
|
|
48
|
+
|
|
49
|
+
# Critique, refine, batch-produce
|
|
50
|
+
sdlab critique --run run_2026-04-16_001
|
|
51
|
+
sdlab refine --run run_2026-04-16_001 --pick 001.png
|
|
52
|
+
sdlab batch generate --mode expression-sheet --subject kael_maren
|
|
53
|
+
|
|
54
|
+
# Select the best outputs and bring them back
|
|
55
|
+
sdlab select --run run_2026-04-16_001 --approve 001.png,003.png
|
|
56
|
+
sdlab reingest selected --selection selection_2026-04-16_001
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Cette dernière commande est essentielle. Les éléments sélectionnés repassent par le même processus d’évaluation que tous les autres. Le corpus s’enrichit et les règles sont respectées.
|
|
60
|
+
|
|
61
|
+
## Création du canon
|
|
62
|
+
|
|
63
|
+
Avant l’exécution du pipeline de jeu de données, l’espace de noms `sdlab canon *` transforme le référentiel d’entités canoniques de votre projet en les trois projections que l’entraînement et la production utilisent réellement, et verrouille les entrées qui ne doivent pas être modifiées.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Build three projections from the canon entity store:
|
|
67
|
+
# dataset.jsonl → training adapters
|
|
68
|
+
# prompts/*.j2 → ComfyUI workflow invocation
|
|
69
|
+
# context/*.md → Role OS narrative dispatch
|
|
70
|
+
sdlab canon build --project my-project
|
|
71
|
+
|
|
72
|
+
# Freeze an entry so regeneration can't silently change it
|
|
73
|
+
sdlab canon freeze kael_maren --project my-project --reason "prologue portrait locked"
|
|
74
|
+
|
|
75
|
+
# Report drift on frozen entries since the last clean build
|
|
76
|
+
sdlab canon drift --project my-project
|
|
43
77
|
```
|
|
44
78
|
|
|
45
|
-
|
|
79
|
+
`canon build` est adressable par contenu : sa sortie est indexée par un `canon_sha` et mise en cache, de sorte qu’une reconstruction du canon non modifié se fait instantanément. `canon freeze` atteste de chaque blocage par rapport à une version spécifique et l’ajoute à un journal d’audit `freeze-events.jsonl` : les entrées `frozen` refusent purement et simplement la régénération, les entrées `soft-advisory` refusent par défaut (contournement avec `--i-know`). `canon drift` recalcule le hachage de chaque entrée surveillée et signale tout ce qui a changé depuis la dernière reconstruction propre.
|
|
80
|
+
|
|
81
|
+
Flux de travail complet dans le manuel : [Canon build](handbook/canon-build/), [Canon freeze](handbook/canon-freeze/) et [Two-LoRA stacking](handbook/two-lora-stacking/).
|
|
46
82
|
|
|
47
|
-
## Ce
|
|
83
|
+
## Ce que cela produit
|
|
48
84
|
|
|
49
|
-
Sept artefacts
|
|
85
|
+
Sept artefacts de jeu de données et un environnement de travail de production complet. Chaque artefact est lié à ses prédécesseurs, ce qui vous permet de retracer tout enregistrement d’entraînement jusqu’à la règle qui l’a approuvé.
|
|
50
86
|
|
|
51
|
-
|
|
|
87
|
+
| Artefact | Ce que c’est |
|
|
52
88
|
|----------|-----------|
|
|
53
|
-
| **Snapshot** | Sélection
|
|
54
|
-
| **Split** | Partitionnement entraînement/validation/test où les familles de sujets ne
|
|
55
|
-
| **Export package** |
|
|
56
|
-
| **Eval pack** | Tâches de
|
|
57
|
-
| **Training package** | Disposition prête pour l
|
|
58
|
-
| **Eval scorecard** |
|
|
59
|
-
| **Implementation pack** | Exemples
|
|
89
|
+
| **Snapshot** | Sélection des enregistrements figés avec empreinte de configuration. Chaque inclusion a une raison explicite. |
|
|
90
|
+
| **Split** | Partitionnement entraînement/validation/test où les familles de sujets ne franchissent jamais les frontières. |
|
|
91
|
+
| **Export package** | Jeu de données autonome : manifeste, métadonnées, images, partitions, fiche d’informations du jeu de données, sommes de contrôle. |
|
|
92
|
+
| **Eval pack** | Tâches de test tenant compte du canon : couverture des voies, dérive interdite, ancrage/or, continuité des sujets. |
|
|
93
|
+
| **Training package** | Disposition prête pour l’entraîneur via des adaptateurs (`diffusers-lora`, `generic-image-caption`). Même vérité, format différent. |
|
|
94
|
+
| **Eval scorecard** | Résultat de réussite/échec par tâche à partir de l’évaluation des résultats générés par rapport aux ensembles d’évaluation. |
|
|
95
|
+
| **Implementation pack** | Exemples d’invites, échecs connus, tests de continuité et directives de réintégration. |
|
|
96
|
+
|
|
97
|
+
L’environnement de travail de production ajoute :
|
|
98
|
+
|
|
99
|
+
| Surface | Ce que cela fait |
|
|
100
|
+
|---------|-------------|
|
|
101
|
+
| **Compiled brief** | Instruction de génération déterministe à partir du profil de flux de travail + des données du projet. |
|
|
102
|
+
| **Run** | Artefact d’exécution figé : bref + graines + sorties ComfyUI + manifeste. |
|
|
103
|
+
| **Critique** | Évaluation structurée multidimensionnelle des résultats de l’exécution par rapport au canon. |
|
|
104
|
+
| **Batch** | Production coordonnée multi-slots (feuilles d’expression, planches d’ambiance, ensembles de silhouettes). |
|
|
105
|
+
| **Selection** | Artefact de décision créative : quels éléments ont été choisis, pourquoi et d’où ils proviennent. |
|
|
106
|
+
| **Re-ingest** | Les éléments sélectionnés sont renvoyés en tant qu’enregistrements candidats avec la provenance complète de la génération. |
|
|
60
107
|
|
|
61
108
|
## Pourquoi cela existe
|
|
62
109
|
|
|
63
|
-
Les données d
|
|
110
|
+
Les données d’entraînement constituent l’artefact le plus important dans tout pipeline d’IA visuelle. Mais la plupart des données d’entraînement ne sont qu’un dossier d’images sans historique, sans suivi de l’évaluation et sans lien avec les règles de style qu’elles étaient censées suivre.
|
|
64
111
|
|
|
65
|
-
Style Dataset Lab
|
|
112
|
+
Style Dataset Lab rend le lien explicite. Votre constitution définit les règles. Votre barème définit les dimensions d’évaluation. Vos enregistrements de sélection consignent l’évaluation. Votre liaison canonique prouve le lien. Et votre jeu de données conserve tout cela sous forme de vérité structurée, interrogeable et reproductible.
|
|
66
113
|
|
|
67
|
-
Le résultat pratique : lorsque votre LoRA dérive, vous pouvez demander *pourquoi*. Lorsque votre
|
|
114
|
+
Le résultat pratique : lorsque votre LoRA dérive, vous pouvez demander *pourquoi*. Lorsque votre prochain cycle d’entraînement a besoin de meilleures données, vous savez exactement quels enregistrements sont presque corrects et quelle règle unique ils ont violée. Lorsqu’un nouveau membre de l’équipe demande quelle est la langue visuelle du projet, la réponse n’est pas un tableau Figma, mais une constitution consultable avec 1 182 exemples notés.
|
|
68
115
|
|
|
69
116
|
## Cinq domaines, règles réelles
|
|
70
117
|
|
|
71
|
-
|
|
118
|
+
Pas de modèles d’espace réservé. Chaque domaine est livré avec des règles de constitution de qualité professionnelle, des définitions de voies, des barèmes d’évaluation et un vocabulaire de groupe.
|
|
72
119
|
|
|
73
|
-
| Domaine |
|
|
120
|
+
| Domaine | Voies | Ce qui est évalué |
|
|
74
121
|
|--------|-------|-----------------|
|
|
75
|
-
| **game-art** | personnage, environnement, accessoire, interface utilisateur, vaisseau, intérieur, équipement | Silhouette à l
|
|
76
|
-
| **character-design** | portrait, corps entier,
|
|
77
|
-
| **creature-design** | concept, orthographique, étude
|
|
78
|
-
| **architecture** | extérieur, intérieur, paysage urbain, détail structurel, ruine, paysage | Structure, cohérence des matériaux, perspective, cohérence de l
|
|
79
|
-
| **vehicle-mech** | extérieur, cockpit, composant, schéma, feuille de silhouette, variante
|
|
122
|
+
| **game-art** | personnage, environnement, accessoire, interface utilisateur, vaisseau, intérieur, équipement | Silhouette à l’échelle du jeu, lisibilité de la faction, usure et vieillissement |
|
|
123
|
+
| **character-design** | portrait, corps entier, rotation, feuille d’expression, pose d’action | Proportions, logique des costumes, personnalité, clarté des gestes |
|
|
124
|
+
| **creature-design** | concept, orthographique, étude détaillée, action, référence d’échelle, habitat | Anatomie, logique évolutive, distinction de la silhouette |
|
|
125
|
+
| **architecture** | extérieur, intérieur, paysage urbain, détail structurel, ruine, paysage | Structure, cohérence des matériaux, perspective, cohérence de l’époque |
|
|
126
|
+
| **vehicle-mech** | extérieur, cockpit, composant, schéma, feuille de silhouette, variante de dommage | Logique mécanique, langage du design, points d’accès, récit des dommages |
|
|
80
127
|
|
|
81
128
|
## Structure du projet
|
|
82
129
|
|
|
83
|
-
Chaque projet est autonome. Cinq fichiers de configuration JSON définissent les règles
|
|
130
|
+
Chaque projet est autonome. Cinq fichiers de configuration JSON définissent les règles ; tout le reste sont des données.
|
|
84
131
|
|
|
85
132
|
```
|
|
86
133
|
projects/my-project/
|
|
@@ -94,21 +141,27 @@ projects/my-project/
|
|
|
94
141
|
splits/ Train/val/test partitions
|
|
95
142
|
exports/ Versioned export packages
|
|
96
143
|
training/ Profiles, manifests, packages, eval runs, implementations
|
|
144
|
+
workflows/ Workflow profiles + batch mode definitions
|
|
145
|
+
briefs/ Compiled generation briefs
|
|
146
|
+
runs/ Execution artifacts (brief + outputs + manifest)
|
|
147
|
+
batches/ Coordinated multi-slot productions
|
|
148
|
+
selections/ Chosen outputs with reasons and provenance
|
|
149
|
+
inbox/generated/ Re-ingested images awaiting review
|
|
97
150
|
```
|
|
98
151
|
|
|
99
152
|
## Propriétés de confiance
|
|
100
153
|
|
|
101
|
-
|
|
154
|
+
Il ne s’agit pas d’objectifs à atteindre. Elles sont appliquées.
|
|
102
155
|
|
|
103
|
-
- **Les instantanés sont immuables.** L
|
|
104
|
-
- **Les
|
|
105
|
-
- **Les manifestes sont des contrats figés.**
|
|
106
|
-
- **Les adaptateurs ne peuvent pas modifier la vérité.** Disposition différente, mêmes enregistrements. Pas d
|
|
107
|
-
- **Les
|
|
156
|
+
- **Les instantanés sont immuables.** L’empreinte de configuration (SHA-256) prouve qu’aucun changement n’a été apporté.
|
|
157
|
+
- **Les séparations empêchent les fuites.** Les familles de sujets (par identité, lignée ou suffixe d’ID) ne traversent jamais les limites des partitions.
|
|
158
|
+
- **Les manifestes sont des contrats figés.** Hachage d’exportation + empreinte de configuration. Si quoi que ce soit change, créez-en un nouveau.
|
|
159
|
+
- **Les adaptateurs ne peuvent pas modifier la vérité.** Disposition différente, mêmes enregistrements. Pas d’ajouts, pas de suppressions, pas de reclassification.
|
|
160
|
+
- **Les résultats générés sont réintégrés via une revue.** Pas de contournement. Organisez et liez comme tout le reste.
|
|
108
161
|
|
|
109
162
|
## Star Freight
|
|
110
163
|
|
|
111
|
-
Le dépôt
|
|
164
|
+
Le dépôt inclut un exemple complet fonctionnel : 1 182 enregistrements, 5 factions, 7 voies, 24 règles de constitution, 892 actifs approuvés, 2 profils d’entraînement. Un canon visuel RPG de science-fiction réaliste, entièrement organisé.
|
|
112
165
|
|
|
113
166
|
```bash
|
|
114
167
|
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
@@ -118,9 +171,9 @@ sdlab snapshot create --project star-freight # 839 eligible records
|
|
|
118
171
|
sdlab split build --project star-freight # zero subject leakage
|
|
119
172
|
```
|
|
120
173
|
|
|
121
|
-
## Formats
|
|
174
|
+
## Formats en aval
|
|
122
175
|
|
|
123
|
-
`sdlab` est propriétaire
|
|
176
|
+
`sdlab` est propriétaire du jeu de données. La conversion de format est gérée par [`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset) : TRL, LLaVA, Qwen2-VL, JSONL, Parquet et plus encore. `repo-dataset` effectue le rendu ; il ne décide jamais de l’inclusion.
|
|
124
177
|
|
|
125
178
|
## Installation
|
|
126
179
|
|
|
@@ -128,11 +181,71 @@ sdlab split build --project star-freight # zero subject leakage
|
|
|
128
181
|
npm install -g @mcptoolshop/style-dataset-lab
|
|
129
182
|
```
|
|
130
183
|
|
|
131
|
-
Nécessite Node.js 20+ et [ComfyUI](https://github.com/comfyanonymous/ComfyUI)
|
|
184
|
+
Nécessite Node.js 20+ et [ComfyUI](https://github.com/comfyanonymous/ComfyUI) sur localhost:8188 pour la génération.
|
|
185
|
+
|
|
186
|
+
### Essayez-le sans ComfyUI
|
|
187
|
+
|
|
188
|
+
Vous pouvez explorer toute la surface non liée à la génération (inspection, organisation, instantané, séparation, exportation) en utilisant le projet Star Freight inclus sans installer ComfyUI ni télécharger des poids SDXL.
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# Scaffold a fresh project (no ComfyUI needed)
|
|
192
|
+
sdlab init test --domain game-art
|
|
193
|
+
|
|
194
|
+
# Run the canonical health check (no ComfyUI needed)
|
|
195
|
+
sdlab project doctor --project test
|
|
196
|
+
|
|
197
|
+
# Dry-run a snapshot against the bundled Star Freight corpus
|
|
198
|
+
sdlab snapshot create --dry-run --project star-freight
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
`sdlab project doctor` valide chaque configuration de projet (constitution, voies, rubriques, terminologie) et signale l’éligibilité sans toucher au GPU. Toute commande qui modifie l’état généré accepte l’option `--dry-run` pour prévisualiser d’abord l’effet.
|
|
202
|
+
|
|
203
|
+
Si vous oubliez `--project`, l’interface de ligne de commande revient au premier projet qu’elle trouve dans `projects/` et affiche un avertissement ; passez explicitement `--project` pour le supprimer.
|
|
204
|
+
|
|
205
|
+
### Reprise d’une exécution interrompue
|
|
206
|
+
|
|
207
|
+
Les longues exécutions peuvent être reprises sans refaire le travail terminé :
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Skip subjects whose record + image are already on disk.
|
|
211
|
+
# Seeds are preserved — resumed runs are bit-identical to fresh ones.
|
|
212
|
+
sdlab generate inputs/prompts/wave1.json --project my-project --resume
|
|
213
|
+
|
|
214
|
+
# Re-run only failed/missing slots in an existing batch.
|
|
215
|
+
# Inherits mode/subject/theme from the prior manifest.
|
|
216
|
+
sdlab batch generate --resume batch_2026-04-22_001 --project my-project
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Les deux commandes fonctionnent car chaque emplacement écrit son entrée de manifeste de manière atomique lorsqu’il est terminé ; un plantage en cours d’exécution ne corrompt jamais l’état partiel.
|
|
220
|
+
|
|
221
|
+
## Dépannage
|
|
222
|
+
|
|
223
|
+
Modes d’échec courants et solutions :
|
|
224
|
+
|
|
225
|
+
**`ECONNREFUSED 127.0.0.1:8188` pour toute commande `sdlab generate` / `sdlab run generate` / `sdlab batch generate`**
|
|
226
|
+
ComfyUI n’est pas en cours d’exécution. Démarrez ComfyUI (`python main.py --listen 127.0.0.1 --port 8188`) et confirmez avec `curl http://127.0.0.1:8188/system_stats`. Pour pointer vers un autre hôte/port, définissez `COMFY_URL=http://host:port`.
|
|
227
|
+
|
|
228
|
+
**`missing checkpoint` / `LoRA weight not found`**
|
|
229
|
+
Votre profil de flux de travail nomme un fichier modèle qui ne se trouve pas dans le dossier `models/checkpoints/` ou `models/loras/` de ComfyUI. Ouvrez `projects/<project>/workflows/profiles/<profile>.json`, localisez le champ `checkpoint` ou `lora`, et téléchargez soit le poids référencé, soit remplacez-le par un que vous avez déjà. Réexécutez `sdlab project doctor --project <project>` pour confirmer la correction.
|
|
230
|
+
|
|
231
|
+
**Erreurs de `sdlab project doctor`**
|
|
232
|
+
Doctor renvoie des codes d’erreur structurés. Les plus courants :
|
|
233
|
+
- `E_PROJECT_NOT_FOUND` — le répertoire du projet n’existe pas dans `projects/`. Vérifiez l’orthographe.
|
|
234
|
+
- `E_CONFIG_INVALID` — l’un des cinq fichiers de configuration JSON a échoué à la validation du schéma. Le champ `hint` indique le fichier et le champ défectueux.
|
|
235
|
+
- `E_RECORD_DRIFT` — l’empreinte de configuration d’un enregistrement ne correspond plus à sa source. Réorganisez ou reliez comme le suggère l’indice.
|
|
236
|
+
|
|
237
|
+
**`No --project specified, falling back to <name>`**
|
|
238
|
+
Un simple avertissement. Passez explicitement `--project <name>` pour sélectionner le bon projet et supprimer l’avertissement.
|
|
239
|
+
|
|
240
|
+
**Problèmes de mémoire VRAM / problèmes d’aspect pictural**
|
|
241
|
+
Consultez `docs/internal/HANDOFF.md` pour les notes sur le réglage du débruitage pictural. En résumé : diminuez la force du débruitage, réduisez la taille du lot ou passez à un point de contrôle plus petit dans votre profil de flux de travail.
|
|
242
|
+
|
|
243
|
+
**Signalement des bogues**
|
|
244
|
+
Créez un problème sur https://github.com/mcp-tool-shop-org/style-dataset-lab/issues avec votre version de sdlab (`sdlab --version`), la version de Node (`node -v`), la commande complète et la sortie d’erreur structurée. Un modèle de rapport de bogue préremplit les champs.
|
|
132
245
|
|
|
133
246
|
## Sécurité
|
|
134
247
|
|
|
135
|
-
|
|
248
|
+
Uniquement local. 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.
|
|
136
249
|
|
|
137
250
|
## Licence
|
|
138
251
|
|