@mcptoolshop/style-dataset-lab 3.2.0 → 3.3.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
@@ -4,7 +4,31 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## Unreleased
6
6
 
7
- ## [3.2.0] - 2026-07-06
7
+ ## [3.3.0] - 2026-07-06
8
+
9
+ **Provenance hardening.** This release closes the three weakest workflow-standards scores (PIN_PER_STEP, EXTERNAL_VERIFIER, UNCERTAINTY_GATED_HUMANS) so shipped, production LoRA work is byte-for-byte reproducible and the verifier/human-gate muscles are in place. No breaking changes — every new field is additive and optional; legacy manifests and records load unchanged.
10
+
11
+ ### Added
12
+
13
+ - **PIN_PER_STEP — run-manifest pinning contract** (`lib/run-manifest.js`, the single source of truth): every generation writer now records a `pinning` block so a wave is byte-for-byte replayable —
14
+ - **`comfy_workflow_sha`** — SHA-256 of the exact ComfyUI graph submitted (per-item seed + prompt normalized out, so one hash pins the whole wave's pipeline skeleton). The JS runners (`generate.js`, `comfyui-runner.js`) and the Python bridge (`scripts/qwen_generate.py`) produce a **byte-identical** hash for the same graph.
15
+ - **Model + LoRA content identity** — `unet`/`clip`/`vae`/`checkpoint` and each LoRA upgraded from a bare filename to `{name, size_bytes, sha256}`. `sha256` is opt-in via `--hash-models` (best-effort, resolved under the ComfyUI models dir, cached by `(name, size, mtime)` so multi-GB checkpoints aren't re-hashed every wave); `size_bytes` is always recorded when the file resolves. Unresolvable files record `sha256: null` with a `hash_note` — a hash is never fabricated.
16
+ - **`seed_policy`** — records the intent behind seed selection (`base+increment`, `explicit-per-item`, `fixed`, `random`), not just the values.
17
+ - New `--hash-models` flag on `sdlab generate` and `sdlab run generate` (and `scripts/qwen_generate.py`).
18
+ - **EXTERNAL_VERIFIER — judge/generator provenance** (`lib/verifier.js`): curate and critique records now carry **`judged_by_model`** (`human` / `rule-based:sdlab-critique-v1`) and **`generator_model`** (derived as `<base>:<model>`, e.g. `qwen-image:qwen_image_fp8_e4m3fn`), and a **WARN fires when the two are the same model** — the self-verification failure mode. (Today's rule-based critique engine is a different artifact class from the generator, so the warning does not fire; the fields + warning install the muscle for when an LLM critique mode enters the loop.)
19
+ - **UNCERTAINTY_GATED_HUMANS —**
20
+ - **`sdlab critique --triage`** surfaces only the candidates that need a human — `off-model` OR ≥ `--drift-threshold` (default 3) drift issues — so attention gates on uncertainty rather than on every item. The full `critique.json` is unchanged; triage is a view over it.
21
+ - **Contrastive freeze-gate refusals** — the freeze bypass prompt now leads with the default action and the system's reasoning (`Default: REFUSE — "<id>" is <status> frozen by <by> on <date>, reason: "<why>". Override with --i-know --reason ONLY if your change does not touch the watched fields [...]`), and `curate <id> borderline` prints a contrastive HOLD advisory.
22
+
23
+ ### Changed
24
+
25
+ - **Manifest `SCHEMA_VERSION` 2.2.0 → 2.3.0** — the ComfyUI run manifest now stamps `schema_version` and carries the `pinning` block. Readers still `checkManifestVersion()`-warn (never throw) on mismatch, so pre-3.3.0 manifests load fine.
26
+
27
+ ### Tests & coverage
28
+
29
+ - **400 tests, 0 failing** (368 → 400: +32 for pinning, verifier fields, triage, and contrastive freeze wording). Coverage: statements **63.53%** / branches **75.77%** / functions **69.04%**.
30
+
31
+
8
32
 
9
33
  The **canon authoring** release. A new `sdlab canon *` namespace turns a project's canon entity store into the projections training actually consumes, and wraps a witness-backed freeze spine around entries that must not drift — plus first-class Flux and Qwen-Image training paths.
10
34
 
package/README.es.md CHANGED
@@ -113,6 +113,15 @@ Style Dataset Lab hace que la conexión sea explícita. Tu constitución define
113
113
 
114
114
  El resultado práctico: cuando tu LoRA se desvía, puedes preguntar *por qué*. Cuando tu próxima ronda de entrenamiento necesita mejores datos, sabes exactamente qué registros son casi correctos y cuál es la única regla que no cumplieron. Cuando un nuevo miembro del equipo pregunta cuál es el lenguaje visual del proyecto, la respuesta no es un panel de Figma, sino una constitución consultable con 1182 ejemplos calificados.
115
115
 
116
+ ## Probado en producción
117
+
118
+ Esto no es una cadena de procesamiento de prueba. Dos modelos LoRA reales con diferentes estilos se han procesado por completo a través de ella: el mismo ciclo de canon → curación → entrenamiento → lanzamiento, pero en extremos opuestos del espectro de la curación.
119
+
120
+ - **[Tallow Fen](handbook/case-study-tallow-fen/)** (diseño de criaturas): un bestiario completamente nuevo, con una **aprobación de aproximadamente el 34 %** en 293 registros seleccionados (169 rechazados; la fase de selección es estricta). Se lanzó `tallow_fen_style_v3.safetensors` con un valor de 1,5 en `qwen-image`.
121
+ - **[Rustline](handbook/case-study-rustline/)** (diseño conceptual): un canon denso y predefinido, con una **aprobación de aproximadamente el 96 %** en 180 registros. Se lanzó `rustline_v3ckpt_1500.safetensors` con un valor de 1,0 en `qwen-image`, y se reutilizó posteriormente en un segundo proyecto.
122
+
123
+ La misma cadena de procesamiento, dos perfiles de producción: la fase de selección es real (rechaza estrictamente los temas abiertos) y un canon bien definido produce una alta tasa de aceptación.
124
+
116
125
  ## Cinco dominios, reglas reales
117
126
 
118
127
  No son plantillas genéricas. Cada dominio se entrega con reglas de constitución de grado de producción, definiciones de carriles, rúbricas de puntuación y vocabulario de grupo.
@@ -153,11 +162,13 @@ projects/my-project/
153
162
 
154
163
  Estas no son aspiracionales. Se aplican rigurosamente.
155
164
 
156
- - **Las instantáneas son inmutables.** La huella digital de la configuración (SHA-256) demuestra que nada ha cambiado.
157
- - **Las divisiones evitan fugas.** Las familias de sujetos (por identidad, linaje o sufijo de ID) nunca cruzan los límites de las particiones.
158
- - **Los manifiestos son contratos congelados.** Hash de exportación + huella digital de la configuración. Si algo cambia, cree uno nuevo.
159
- - **Los adaptadores no pueden modificar la verdad.** Diseño diferente, mismos registros. Sin adiciones, sin eliminaciones, sin reclasificaciones.
160
- - **Las salidas generadas vuelven a entrar mediante revisión.** No hay atajos. Curar y vincular como todo lo demás.
165
+ - **Las instantáneas son inmutables.** La huella digital de la configuración (SHA-256) demuestra que no se ha modificado nada.
166
+ - **La división evita fugas.** Las familias de temas (por identidad, linaje o sufijo de ID) nunca cruzan los límites de las particiones.
167
+ - **Los manifiestos son contratos congelados.** Exporta el hash + la huella digital de la configuración. Si algo cambia, crea uno nuevo.
168
+ - **Las ejecuciones fijan su gráfico exacto.** Cada generación registra `comfy_workflow_sha` + los hashes del contenido del modelo/LoRA + la política de semillas, por lo que una serie se puede reproducir byte a byte, siendo idéntica en los ejecutores JS y Python. El hash del modelo es opcional (`--hash-models`) y nunca se falsifica.
169
+ - **Ningún modelo verifica su propia salida.** Los juicios registran `judged_by_model` y `generator_model`; se muestra una advertencia si alguna vez son el mismo modelo.
170
+ - **Los adaptadores no pueden alterar la verdad.** Diseño diferente, mismos registros. No hay adiciones, ni eliminaciones, ni reclasificaciones.
171
+ - **Las salidas generadas vuelven a entrar en la fase de revisión.** No hay atajos. Se curan y se vinculan como cualquier otra cosa.
161
172
 
162
173
  ## Star Freight
163
174
 
package/README.fr.md CHANGED
@@ -13,11 +13,11 @@
13
13
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
14
14
  </p>
15
15
 
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.
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 en œuvre les modèles entraînés dans des flux de travail de production réels et renvoyez les meilleurs résultats dans votre corpus.
17
17
 
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.
18
+ Style Dataset Lab relie ce que vous avez écrit sur votre style artistique à l’ensemble 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 œuvres approuvées dans des ensembles de données reproductibles où chaque enregistrement explique pourquoi il a été inclus.
19
19
 
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.
20
+ Ensuite, l’environnement de travail de production prend le relais : compilez des instructions de génération à partir des éléments clés 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.
21
21
 
22
22
  ## Le pipeline
23
23
 
@@ -56,11 +56,11 @@ sdlab select --run run_2026-04-16_001 --approve 001.png,003.png
56
56
  sdlab reingest selected --selection selection_2026-04-16_001
57
57
  ```
58
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.
59
+ Cette dernière commande est essentielle. Les résultats sélectionnés repassent par le même processus d’évaluation que tous les autres éléments. Le corpus s’enrichit et les règles sont respectées.
60
60
 
61
- ## Création du canon
61
+ ## Création de contenu canonique
62
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.
63
+ Avant l’exécution du pipeline de l’ensemble 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
64
 
65
65
  ```bash
66
66
  # Build three projections from the canon entity store:
@@ -76,58 +76,67 @@ sdlab canon freeze kael_maren --project my-project --reason "prologue portrait l
76
76
  sdlab canon drift --project my-project
77
77
  ```
78
78
 
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.
79
+ `canon build` est basé sur des adresses de contenu : sa sortie est identifié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 possible 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
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/).
81
+ Flux de travail complet dans le manuel : [Canon build](handbook/canon-build/), [Canon freeze](handbook/canon-freeze/) et [Empilement Two-LoRA](handbook/two-lora-stacking/).
82
82
 
83
- ## Ce que cela produit
83
+ ## Ce qu’il produit
84
84
 
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é.
85
+ Sept artefacts d’ensemble 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é.
86
86
 
87
- | Artefact | Ce que c’est |
87
+ | Artefact. | Ce que c’est. |
88
88
  |----------|-----------|
89
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. |
90
+ | **Split** | Partitionnement entraînement/validation/test où les familles de sujets ne se croisent jamais. |
91
+ | **Export package** | Ensemble de données autonome : manifeste, métadonnées, images, partitions, fiche d’informations sur l’ensemble de données, sommes de contrôle. |
92
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. |
93
+ | **Training package** | Disposition prête pour le formateur 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 obtenu en évaluant les résultats générés par rapport aux ensembles d’évaluation. |
95
+ | **Implementation pack** | Exemples d’invites, erreurs connues, tests de continuité et instructions pour la réintégration. |
96
96
 
97
97
  L’environnement de travail de production ajoute :
98
98
 
99
- | Surface | Ce que cela fait |
99
+ | Surface. | Ce que cela fait. |
100
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. |
101
+ | **Compiled brief** | Instruction de génération déterministe à partir du profil de flux de travail + des éléments clés du projet. |
102
+ | **Run** | Artefact d’exécution figé : instruction + graines + résultats ComfyUI + manifeste. |
103
103
  | **Critique** | Évaluation structurée multidimensionnelle des résultats de l’exécution par rapport au canon. |
104
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. |
105
+ | **Selection** | Artefact de décision créative : quels résultats ont été choisis, pourquoi et d’où ils proviennent. |
106
+ | **Re-ingest** | Les résultats sélectionnés sont renvoyés en tant qu’enregistrements candidats avec une provenance complète de la génération. |
107
107
 
108
108
  ## Pourquoi cela existe
109
109
 
110
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.
111
111
 
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.
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 ensemble de données conserve tout cela sous une forme structurée, interrogeable et reproductible.
113
113
 
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.
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 ils ont violée. Lorsqu’un nouveau membre de l’équipe demande quel est le langage visuel du projet, la réponse n’est pas un tableau Figma, mais une constitution consultable avec 1 182 exemples notés.
115
+
116
+ ## Prouvé en production
117
+
118
+ Il ne s’agit pas d’un pipeline de démonstration. Deux LoRA de style réels ont été mis en œuvre de bout en bout grâce à celui-ci, en utilisant la même boucle canon → sélection → entraînement → diffusion, aux extrémités opposées du spectre de la sélection.
119
+
120
+ - **[Tallow Fen](handbook/case-study-tallow-fen/)** (conception de créatures) : un canon de bestiaire créé à partir de zéro, avec environ 34 % d’approbation sur 293 enregistrements sélectionnés (169 rejetés — la porte rejette fermement). Diffusion de `tallow_fen_style_v3.safetensors` @ 1.5 sur `qwen-image`.
121
+ - **[Rustline](handbook/case-study-rustline/)** (conception de concepts) : canon dense et préformé, avec environ 96 % d’approbation sur 180 enregistrements. Diffusion de `rustline_v3ckpt_1500.safetensors` @ 1.0 sur `qwen-image`, réutilisé en aval par un deuxième projet.
122
+
123
+ Même pipeline, deux profils de production : la porte de sélection est réelle (elle rejette fermement les sujets ouverts) et une canonisation disciplinée donne des taux d’acceptation élevés.
115
124
 
116
125
  ## Cinq domaines, règles réelles
117
126
 
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.
127
+ Pas de modèles génériques. 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.
119
128
 
120
129
  | Domaine | Voies | Ce qui est évalué |
121
130
  |--------|-------|-----------------|
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 |
131
+ | **game-art** | personnage, environnement, accessoire, interface utilisateur, vaisseau, intérieur, équipement | Silhouette à l’échelle du jeu, identification de la faction, usure et vieillissement |
132
+ | **character-design** | portrait, corps entier, rotation, feuille d’expressions, pose d’action | Proportions, cohérence du costume, personnalité, clarté des gestes |
133
+ | **creature-design** | concept, orthographique, étude de détails, action, référence d’échelle, habitat | Anatomie, logique évolutive, distinction de la silhouette |
125
134
  | **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
135
  | **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 |
127
136
 
128
137
  ## Structure du projet
129
138
 
130
- Chaque projet est autonome. Cinq fichiers de configuration JSON définissent les règles ; tout le reste sont des données.
139
+ Chaque projet est autonome. Cinq fichiers de configuration JSON définissent les règles ; tout le reste est constitué de données.
131
140
 
132
141
  ```
133
142
  projects/my-project/
@@ -151,17 +160,19 @@ projects/my-project/
151
160
 
152
161
  ## Propriétés de confiance
153
162
 
154
- Il ne s’agit pas d’objectifs à atteindre. Elles sont appliquées.
163
+ Ce ne sont pas des objectifs à atteindre. Elles sont appliquées.
155
164
 
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.
165
+ - **Les instantanés sont immuables.** L’empreinte de configuration (SHA-256) prouve qu’il n’y a eu aucun changement.
166
+ - **Les divisions empêchent les fuites.** Les familles de sujets (par identité, lignée ou suffixe d’ID) ne traversent jamais les limites des partitions.
158
167
  - **Les manifestes sont des contrats figés.** Hachage d’exportation + empreinte de configuration. Si quoi que ce soit change, créez-en un nouveau.
168
+ - **Les exécutions fixent leur graphique exact.** Chaque génération enregistre `comfy_workflow_sha` + hachages du contenu du modèle/LoRA + politique de graines, de sorte qu’une série peut être rejouée octet par octet — identique sur les exécutants JS et Python. Le hachage des modèles est facultatif (`--hash-models`) et n’est jamais fabriqué.
169
+ - **Aucun modèle ne vérifie sa propre sortie.** Les évaluations enregistrent `judged_by_model` et `generator_model`; un avertissement s’affiche si ce sont toujours le même modèle.
159
170
  - **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.
171
+ - **Les sorties générées réintègrent le processus par le biais de l’examen.** Pas de contournement. Organisez et liez comme tout le reste.
161
172
 
162
173
  ## Star Freight
163
174
 
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é.
175
+ Le dépôt comprend un exemple complet et 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é.
165
176
 
166
177
  ```bash
167
178
  git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
@@ -173,7 +184,7 @@ sdlab split build --project star-freight # zero subject leakage
173
184
 
174
185
  ## Formats en aval
175
186
 
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.
187
+ `sdlab` est propriétaire de l’ensemble 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.
177
188
 
178
189
  ## Installation
179
190
 
@@ -185,7 +196,7 @@ Nécessite Node.js 20+ et [ComfyUI](https://github.com/comfyanonymous/ComfyUI) s
185
196
 
186
197
  ### Essayez-le sans ComfyUI
187
198
 
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.
199
+ Vous pouvez explorer toute la surface non liée à la génération (inspection, organisation, instantané, division, exportation) en utilisant le projet Star Freight inclus sans installer ComfyUI ni télécharger des poids SDXL.
189
200
 
190
201
  ```bash
191
202
  # Scaffold a fresh project (no ComfyUI needed)
@@ -198,9 +209,9 @@ sdlab project doctor --project test
198
209
  sdlab snapshot create --dry-run --project star-freight
199
210
  ```
200
211
 
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.
212
+ `sdlab project doctor` valide chaque configuration de projet (constitution, voies, critères, terminologie) et signale l’éligibilité sans toucher au GPU. Toute commande qui modifie l’état généré accepte `--dry-run` pour prévisualiser d’abord l’effet.
202
213
 
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.
214
+ Si vous oubliez `--project`, la CLI revient au premier projet qu’elle trouve dans `projects/` et affiche un avertissement ; passez `--project` explicitement pour le désactiver.
204
215
 
205
216
  ### Reprise d’une exécution interrompue
206
217
 
@@ -216,7 +227,7 @@ sdlab generate inputs/prompts/wave1.json --project my-project --resume
216
227
  sdlab batch generate --resume batch_2026-04-22_001 --project my-project
217
228
  ```
218
229
 
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.
230
+ Les deux commandes fonctionnent car chaque emplacement écrit son entrée de manifeste de manière atomique lorsqu’il a terminé — un plantage en cours d’exécution ne corrompt jamais l’état partiel.
220
231
 
221
232
  ## Dépannage
222
233
 
@@ -226,26 +237,26 @@ Modes d’échec courants et solutions :
226
237
  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
238
 
228
239
  **`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.
240
+ Le profil de votre flux de travail fait référence à 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
241
 
231
242
  **Erreurs de `sdlab project doctor`**
232
243
  Doctor renvoie des codes d’erreur structurés. Les plus courants :
233
244
  - `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.
245
+ - `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 concernés.
235
246
  - `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
247
 
237
248
  **`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.
249
+ Un simple avertissement. Passez `--project <name>` explicitement pour sélectionner le bon projet et désactiver l’avertissement.
239
250
 
240
251
  **Problèmes de mémoire VRAM / problèmes d’aspect pictural**
241
252
  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
253
 
243
- **Signalement des bogues**
254
+ **Signaler des bogues**
244
255
  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.
245
256
 
246
257
  ## Sécurité
247
258
 
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.
259
+ Uniquement local. Pas de télémétrie, pas d’analyses, pas de demandes externes. Les images restent sur votre GPU et votre système de fichiers.
249
260
 
250
261
  ## Licence
251
262
 
package/README.hi.md CHANGED
@@ -13,11 +13,11 @@
13
13
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
14
14
  </p>
15
15
 
16
- अपनी दृश्य नियम लिखें। कला उत्पन्न करें। प्रत्येक छवि का उन नियमों के अनुसार मूल्यांकन करें। परिणामों को संस्करणित, ऑडिट करने योग्य प्रशिक्षण डेटा के रूप में प्रस्तुत करें — फिर प्रशिक्षित मॉडल को वास्तविक उत्पादन वर्कफ़्लो में उपयोग करें और सर्वोत्तम आउटपुट को वापस अपने डेटासेट में फीड करें।
16
+ अपनी दृश्य नियम लिखें। कला उत्पन्न करें। प्रत्येक छवि का उन नियमों के विरुद्ध मूल्यांकन करें। परिणामों को संस्करणित, ऑडिट करने योग्य प्रशिक्षण डेटा के रूप में प्रस्तुत करें — फिर प्रशिक्षित मॉडल को वास्तविक उत्पादन वर्कफ़्लो में काम पर लगाएं और सर्वोत्तम आउटपुट को वापस अपने डेटासेट में फीड करें।
17
17
 
18
- स्टाइल डेटासेट लैब आपके कला शैली के बारे में आपने जो कुछ भी लिखा है, उसे उस डेटासेट से जोड़ता है जिससे आप वास्तव में प्रशिक्षण लेते हैं, और फिर उत्पादन प्रक्रिया के अंत तक इस चक्र को पूरा करता है। आप एक संविधान परिभाषित करते हैं — सिल्हूट नियम, रंग पैलेट की सीमाएँ, सामग्री भाषा, या आपके प्रोजेक्ट के लिए जो भी महत्वपूर्ण हो। पाइपलाइन संभावित विकल्पों को उत्पन्न करती है, उनका उन नियमों के अनुसार मूल्यांकन करती है, और स्वीकृत कार्यों को पुनरुत्पादनीय डेटासेट में पैकेज करती है, जहाँ प्रत्येक रिकॉर्ड यह बताता है कि इसे क्यों शामिल किया गया था।
18
+ स्टाइल डेटासेट लैब आपके कला शैली के बारे में आपने जो कुछ भी लिखा है, उसे उस डेटासेट से जोड़ता है जिससे आप वास्तव में प्रशिक्षण लेते हैं, और फिर उत्पादन प्रक्रिया के अंत तक इस चक्र को पूरा करता है। आप एक संविधान परिभाषित करते हैं — सिल्हूट नियम, रंग पैलेट की सीमाएं, सामग्री भाषा, या आपके प्रोजेक्ट के लिए जो भी महत्वपूर्ण हो। पाइपलाइन संभावित विकल्पों को उत्पन्न करती है, उनका उन नियमों के विरुद्ध मूल्यांकन करती है, और स्वीकृत कार्यों को पुनरुत्पादनीय डेटासेट में पैकेज करती है, जहाँ प्रत्येक रिकॉर्ड यह बताता है कि इसे क्यों शामिल किया गया था।
19
19
 
20
- फिर उत्पादन वर्कबेंच कार्यभार संभालता है: प्रोजेक्ट की वास्तविकता से पीढ़ी संबंधी संक्षिप्त विवरण संकलित करें, उन्हें ComfyUI के माध्यम से चलाएं, आउटपुट का मूल्यांकन करें, अभिव्यक्ति शीट और पर्यावरण बोर्ड को बैच में तैयार करें, सर्वोत्तम परिणामों का चयन करें, और उन्हें नए संभावित विकल्पों के रूप में फिर से शामिल करें। चक्र पूरा होता है: उत्पन्न करें, चुनें, समीक्षा करें, मजबूत बनाएं।
20
+ फिर उत्पादन वर्कबेंच कार्यभार संभालता है: प्रोजेक्ट की वास्तविकता से पीढ़ी संबंधी संक्षिप्त विवरण संकलित करें, उन्हें ComfyUI के माध्यम से चलाएं, आउटपुट का मूल्यांकन करें, अभिव्यक्ति शीट और पर्यावरण बोर्ड को बैच में बनाएं, सर्वोत्तम परिणामों का चयन करें, और उन्हें नए संभावित विकल्पों के रूप में फिर से शामिल करें। चक्र पूरा होता है: उत्पन्न करें, चुनें, समीक्षा करें, मजबूत बनाएं।
21
21
 
22
22
  ## पाइपलाइन
23
23
 
@@ -56,11 +56,11 @@ sdlab select --run run_2026-04-16_001 --approve 001.png,003.png
56
56
  sdlab reingest selected --selection selection_2026-04-16_001
57
57
  ```
58
58
 
59
- यह अंतिम कमांड ही महत्वपूर्ण है। चयनित आउटपुट अन्य सभी चीज़ों की तरह समान समीक्षा प्रक्रिया से गुजरते हैं। डेटासेट बढ़ता है और नियम बने रहते हैं।
59
+ यह अंतिम कमांड ही महत्वपूर्ण है। चयनित आउटपुट अन्य सभी चीज़ों की तरह समान समीक्षा प्रक्रिया के माध्यम से वापस आते हैं। डेटासेट बढ़ता है और नियम बने रहते हैं।
60
60
 
61
61
  ## मानक सामग्री निर्माण
62
62
 
63
- डेटासेट पाइपलाइन चलने से पहले, `sdlab canon *` नेमस्पेस आपके प्रोजेक्ट के मानक इकाई भंडार को उन तीन अनुमानों में बदल देता है जिनका वास्तव में प्रशिक्षण और उत्पादन में उपयोग किया जाता है — और उन प्रविष्टियों को लॉक कर देता है जिन्हें बदला नहीं जाना चाहिए।
63
+ डेटासेट पाइपलाइन चलने से पहले, `sdlab canon *` नेमस्पेस आपके प्रोजेक्ट के मानक इकाई भंडार को उन तीन अनुमानों में बदल देता है जिनका वास्तव में प्रशिक्षण और उत्पादन में उपयोग किया जाता है — और उन प्रविष्टियों को लॉक कर देता है जिन्हें बदलना नहीं चाहिए।
64
64
 
65
65
  ```bash
66
66
  # Build three projections from the canon entity store:
@@ -76,7 +76,7 @@ sdlab canon freeze kael_maren --project my-project --reason "prologue portrait l
76
76
  sdlab canon drift --project my-project
77
77
  ```
78
78
 
79
- `canon build` सामग्री-आधारित है — इसका आउटपुट `canon_sha` द्वारा कुंजीबद्ध होता है और कैश किया जाता है, इसलिए अपरिवर्तित मानक का पुनर्निर्माण तुरंत हो जाता है। `canon freeze` प्रत्येक फ़्रीज़ को एक विशिष्ट बिल्ड के विरुद्ध प्रमाणित करता है और इसे `freeze-events.jsonl` ऑडिट ट्रेल में जोड़ता है: `frozen` प्रविष्टियाँ सीधे पुनरुत्पादन से इनकार करती हैं, `soft-advisory` प्रविष्टियाँ डिफ़ॉल्ट रूप से इनकार करती हैं ( `--i-know` के साथ बाईपास करें)। `canon drift` प्रत्येक देखी गई प्रविष्टि के हैश की फिर से गणना करता है और पिछली स्वच्छ बिल्ड के बाद से बदली हुई किसी भी चीज़ को चिह्नित करता है।
79
+ `canon build` सामग्री-आधारित होता है — इसका आउटपुट `canon_sha` द्वारा कुंजीबद्ध होता है और कैश किया जाता है, इसलिए अपरिवर्तित मानक का पुनर्निर्माण तुरंत हो जाता है। `canon freeze` प्रत्येक फ़्रीज़ को एक विशिष्ट बिल्ड के विरुद्ध प्रमाणित करता है और इसे `freeze-events.jsonl` ऑडिट ट्रेल में जोड़ता है: `frozen` प्रविष्टियाँ सीधे पुनरुत्पादन से इनकार करती हैं, `soft-advisory` प्रविष्टियाँ डिफ़ॉल्ट रूप से इनकार करती हैं ( `--i-know` के साथ बाईपास करें)। `canon drift` प्रत्येक देखी गई प्रविष्टि के हैश की फिर से गणना करता है और पिछली स्वच्छ बिल्ड के बाद से बदली हुई किसी भी चीज़ को चिह्नित करता है।
80
80
 
81
81
  हैंडबुक में संपूर्ण वर्कफ़्लो: [Canon build](handbook/canon-build/), [Canon freeze](handbook/canon-freeze/), और [Two-LoRA stacking](handbook/two-lora-stacking/)।
82
82
 
@@ -90,8 +90,8 @@ sdlab canon drift --project my-project
90
90
  | **Split** | प्रशिक्षण/मान्यकरण/परीक्षण विभाजन जहाँ विषय परिवार कभी भी सीमाओं को पार नहीं करते हैं। |
91
91
  | **Export package** | स्व-निहित डेटासेट: मेनिफ़ेस्ट, मेटाडेटा, छवियाँ, स्प्लिट्स, डेटासेट कार्ड, चेकसम। |
92
92
  | **Eval pack** | मानक-जागरूक परीक्षण कार्य: लेन कवरेज, निषिद्ध विचलन, एंकर/गोल्ड, विषय निरंतरता। |
93
- | **Training package** | ट्रेनर-तैयार लेआउट एडेप्टर के माध्यम से (`diffusers-lora`, `generic-image-caption`)। समान सत्य, अलग प्रारूप। |
94
- | **Eval scorecard** | जनरेट किए गए आउटपुट का मूल्यांकन पैक के विरुद्ध करने पर प्रति-कार्य पास/फेल। |
93
+ | **Training package** | एडेप्टर के माध्यम से ट्रेनर-तैयार लेआउट (`diffusers-lora`, `generic-image-caption`)। समान सत्य, अलग प्रारूप। |
94
+ | **Eval scorecard** | उत्पन्न आउटपुट का मूल्यांकन पैक के विरुद्ध स्कोर करने से प्रति-कार्य पास/फेल। |
95
95
  | **Implementation pack** | संकेत उदाहरण, ज्ञात विफलताएँ, निरंतरता परीक्षण और पुन: समावेश मार्गदर्शन। |
96
96
 
97
97
  उत्पादन वर्कबेंच निम्नलिखित जोड़ता है:
@@ -103,31 +103,40 @@ sdlab canon drift --project my-project
103
103
  | **Critique** | मानक के विरुद्ध रन आउटपुट का संरचित बहु-आयामी मूल्यांकन। |
104
104
  | **Batch** | समन्वित बहु-स्लॉट उत्पादन (अभिव्यक्ति शीट, पर्यावरण बोर्ड, सिल्हूट पैक)। |
105
105
  | **Selection** | रचनात्मक निर्णय कलाकृति: किन आउटपुट को चुना गया, क्यों और वे कहाँ से आए। |
106
- | **Re-ingest** | चयनित आउटपुट पूर्ण पीढ़ी के मूल के साथ उम्मीदवार रिकॉर्ड के रूप में वापस आते हैं। |
106
+ | **Re-ingest** | चयनित आउटपुट पूर्ण पीढ़ी के मूल के साथ संभावित रिकॉर्ड के रूप में वापस आते हैं। |
107
107
 
108
108
  ## यह क्यों मौजूद है
109
109
 
110
- प्रशिक्षण डेटा किसी भी दृश्य AI पाइपलाइन में सबसे महत्वपूर्ण कलाकृति है। लेकिन अधिकांश प्रशिक्षण डेटा छवियों का एक फ़ोल्डर होता है जिसमें कोई इतिहास, कोई निर्णय प्रक्रिया और उस शैली के नियमों से कोई संबंध नहीं होता है जिनका पालन करने वाला था।
110
+ प्रशिक्षण डेटा किसी भी दृश्य AI पाइपलाइन में सबसे अधिक उपयोगी कलाकृति है। लेकिन अधिकांश प्रशिक्षण डेटा छवियों का एक फ़ोल्डर होता है जिसमें कोई इतिहास, कोई निर्णय प्रक्रिया और उस शैली के नियमों से कोई संबंध नहीं होता है जिनका पालन करने वाला था।
111
111
 
112
- स्टाइल डेटासेट लैब कनेक्शन को स्पष्ट करता है। आपका संविधान नियमों को परिभाषित करता है। आपकी रुब्रिक स्कोरिंग आयामों को परिभाषित करती है। आपके क्यूरेशन रिकॉर्ड निर्णय को दर्ज करते हैं। आपका मानक बंधन कनेक्शन साबित करता है। और आपका डेटासेट उन सभी को संरचित, क्वेरेबल, पुनरुत्पादनीय सत्य के रूप में आगे बढ़ाता है।
112
+ स्टाइल डेटासेट लैब कनेक्शन को स्पष्ट करता है। आपका संविधान नियमों को परिभाषित करता है। आपकी रुब्रिक स्कोरिंग आयामों को परिभाषित करती है। आपकी क्यूरेशन रिकॉर्ड निर्णय को दर्ज करती है। आपका मानक बंधन कनेक्शन साबित करता है। और आपका डेटासेट उन सभी को संरचित, खोज योग्य, पुनरुत्पादनीय सत्य के रूप में आगे बढ़ाता है।
113
113
 
114
- व्यावहारिक परिणाम: जब आपका LoRA भटकता है, तो आप *क्यों* पूछ सकते हैं। जब आपके अगले प्रशिक्षण दौर में बेहतर डेटा की आवश्यकता होती है, तो आपको पता होता है कि कौन से रिकॉर्ड लगभग विफल रहे और उन्होंने किस एकल नियम का उल्लंघन किया। जब एक नया टीम सदस्य पूछता है कि प्रोजेक्ट की दृश्य भाषा क्या है, तो उत्तर फ़िग्मा बोर्ड नहीं है — यह 1,182 वर्गीकृत उदाहरणों के साथ एक खोज योग्य संविधान है।
114
+ व्यावहारिक परिणाम: जब आपका LoRA भटकता है, तो आप *क्यों* पूछ सकते हैं। जब आपके अगले प्रशिक्षण दौर में बेहतर डेटा की आवश्यकता होती है, तो आपको पता होता है कि कौन से रिकॉर्ड लगभग सफल हैं और वे किस एकल नियम में विफल रहे। जब एक नया टीम सदस्य पूछता है कि प्रोजेक्ट की दृश्य भाषा क्या है, तो उत्तर फ़िग्मा बोर्ड नहीं है — यह 1,182 वर्गीकृत उदाहरणों के साथ एक खोज योग्य संविधान है।
115
+
116
+ ## उत्पादन में सिद्ध
117
+
118
+ यह कोई डेमो पाइपलाइन नहीं है। दो वास्तविक शैली-LoRA इसके माध्यम से अंत-से-अंत तक भेजे गए हैं — समान मानक → क्यूरेट → प्रशिक्षित करें → भेजें चक्र, क्यूरेशन स्पेक्ट्रम के विपरीत छोरों पर।
119
+
120
+ - **[Tallow Fen](handbook/case-study-tallow-fen/)** (जीव-डिजाइन) — एक स्क्रैच से बनाया गया सर्वश्रेष्ठ प्राणी मानक, 293 क्यूरेट किए गए रिकॉर्ड में लगभग 34% स्वीकृति (169 अस्वीकृत — गेट कठिन रूप से अस्वीकार करता है)। `qwen-image` पर 1.5 पर `tallow_fen_style_v3.safetensors` भेजा गया।
121
+ - **[Rustline](handbook/case-study-rustline/)** (अवधारणा-डिजाइन) — घनी, पहले से निर्मित मानक, 180 रिकॉर्ड में लगभग 96% स्वीकृति। `qwen-image` पर 1.0 पर `rustline_v3ckpt_1500.safetensors` भेजा गया, बाद में एक दूसरे प्रोजेक्ट द्वारा पुन: उपयोग किया गया।
122
+
123
+ समान पाइपलाइन, दो उत्पादन प्रोफ़ाइल: क्यूरेशन गेट वास्तविक है (यह खुले विषयों पर कठिन रूप से अस्वीकार करता है), और अनुशासित मानक उच्च स्वीकृति देता है।
115
124
 
116
125
  ## पाँच डोमेन, वास्तविक नियम
117
126
 
118
127
  कोई प्लेसहोल्डर टेम्पलेट नहीं। प्रत्येक डोमेन उत्पादन-ग्रेड संविधान नियमों, लेन परिभाषाओं, स्कोरिंग रुब्रिक और समूह शब्दावली के साथ आता है।
119
128
 
120
- | डोमेन | लेन | क्या मूल्यांकन किया जाता है |
129
+ | डोमेन | लेन | किस चीज़ का मूल्यांकन किया जाता है |
121
130
  |--------|-------|-----------------|
122
- | **game-art** | चरित्र, पर्यावरण, प्रॉप, UI, जहाज, आंतरिक भाग, उपकरण | गेमप्ले पैमाने पर सिल्हूट, गुट पढ़ना, पहनना और उम्र बढ़ना |
123
- | **character-design** | पोर्ट्रेट, पूर्ण शरीर, टर्नअराउंड, अभिव्यक्ति शीट, एक्शन पोज़ | अनुपात, पोशाक तर्क, व्यक्तित्व, हावभाव स्पष्टता |
124
- | **creature-design** | अवधारणा, ऑर्थोग्राफिक, विवरण अध्ययन, क्रिया, पैमाने संदर्भ, आवास | शरीर रचना विज्ञान, विकासवादी तर्क, सिल्हूट भेद |
131
+ | **game-art** | चरित्र, वातावरण, प्रॉप, यूआई, जहाज, आंतरिक भाग, उपकरण | गेमप्ले पैमाने पर सिल्हूट, गुट पहचान, घिसाव और उम्र बढ़ना |
132
+ | **character-design** | पोर्ट्रेट, फुल-बॉडी, टर्नअराउंड, एक्सप्रेशन शीट, एक्शन पोज़ | अनुपात, पोशाक तर्क, व्यक्तित्व, हावभाव स्पष्टता |
133
+ | **creature-design** | अवधारणा, ऑर्थोग्राफिक, विवरण अध्ययन, क्रिया, पैमाने संदर्भ, आवास | शरीर रचना, विकासवादी तर्क, सिल्हूट भेद |
125
134
  | **architecture** | बाहरी भाग, आंतरिक भाग, सड़क दृश्य, संरचनात्मक विवरण, खंडहर, परिदृश्य | संरचना, सामग्री स्थिरता, परिप्रेक्ष्य, युग सामंजस्य |
126
- | **vehicle-mech** | बाहरी भाग, कॉकपिट, घटक, आरेख, सिल्हूट शीट, क्षति भिन्नता | यांत्रिक तर्क, डिजाइन भाषा, पहुंच बिंदु, क्षति कथा |
135
+ | **vehicle-mech** | बाहरी भाग, कॉकपिट, घटक, आरेखीय योजना, सिल्हूट शीट, क्षति भिन्नता | यांत्रिक तर्क, डिज़ाइन भाषा, एक्सेस बिंदु, क्षति विवरण |
127
136
 
128
137
  ## परियोजना संरचना
129
138
 
130
- प्रत्येक परियोजना स्वयंपूर्ण है। पाँच JSON कॉन्फ़िगरेशन फ़ाइलें नियमों को परिभाषित करती हैं; बाकी सब डेटा है।
139
+ प्रत्येक परियोजना स्व-निहित है। पाँच JSON कॉन्फ़िगरेशन फ़ाइलें नियमों को परिभाषित करती हैं; बाकी सब डेटा है।
131
140
 
132
141
  ```
133
142
  projects/my-project/
@@ -151,17 +160,19 @@ projects/my-project/
151
160
 
152
161
  ## विश्वसनीयता गुण
153
162
 
154
- ये केवल आकांक्षात्मक नहीं हैं। इन्हें लागू किया जाता है।
163
+ ये आकांक्षात्मक नहीं हैं। इन्हें लागू किया जाता है।
155
164
 
156
- - **स्नैपशॉट अपरिवर्तनीय होते हैं।** कॉन्फ़िगरेशन फ़िंगरप्रिंट (SHA-256) साबित करता है कि कुछ भी नहीं बदला।
165
+ - **स्नैपशॉट अपरिवर्तनीय हैं।** कॉन्फ़िगरेशन फ़िंगरप्रिंट (SHA-256) साबित करता है कि कुछ भी नहीं बदला।
157
166
  - **विभाजन रिसाव को रोकते हैं।** विषय परिवार (पहचान, वंश या आईडी प्रत्यय के अनुसार) कभी भी विभाजन सीमाओं को पार नहीं करते हैं।
158
167
  - **मैनिफेस्ट जमे हुए अनुबंध हैं।** निर्यात हैश + कॉन्फ़िगरेशन फ़िंगरप्रिंट। यदि कुछ भी बदलता है, तो एक नया बनाएं।
168
+ - **रन अपने सटीक ग्राफ़ को पिन करते हैं।** प्रत्येक पीढ़ी `comfy_workflow_sha` + मॉडल/LoRA सामग्री हैश + बीज नीति रिकॉर्ड करती है, इसलिए एक लहर बाइट-दर-बाइट दोहराने योग्य होती है - JS और Python रनर दोनों में समान। मॉडल हैशिंग वैकल्पिक है (`--hash-models`) और कभी भी मनगढ़ंत नहीं होता है।
169
+ - **कोई भी मॉडल अपने स्वयं के आउटपुट को सत्यापित नहीं करता है।** निर्णय `judged_by_model` और `generator_model` रिकॉर्ड करते हैं; यदि वे कभी एक ही मॉडल होते हैं तो एक चेतावनी जारी होती है।
159
170
  - **एडेप्टर सत्य को परिवर्तित नहीं कर सकते।** अलग लेआउट, समान रिकॉर्ड। कोई अतिरिक्त नहीं, कोई हटाने नहीं, कोई पुनर्वर्गीकरण नहीं।
160
171
  - **उत्पन्न आउटपुट समीक्षा के माध्यम से फिर से प्रवेश करते हैं।** कोई बाईपास नहीं। अन्य सभी की तरह क्यूरेट और बांधें।
161
172
 
162
173
  ## स्टार फ्रेट
163
174
 
164
- रिपो में एक पूर्ण कार्यशील उदाहरण शामिल है: 1,182 रिकॉर्ड, 5 गुट, 7 लेन, 24 संविधान नियम, 892 स्वीकृत संपत्ति, 2 प्रशिक्षण प्रोफाइल। एक आकर्षक विज्ञान-फाई आरपीजी विज़ुअल कैनन, पूरी तरह से क्यूरेट किया गया।
175
+ रिपो में एक पूर्ण कार्यशील उदाहरण शामिल है: 1,182 रिकॉर्ड, 5 गुट, 7 लेन, 24 संविधान नियम, 892 स्वीकृत संपत्ति, 2 प्रशिक्षण प्रोफाइल। एक कठोर विज्ञान-फाई आरपीजी दृश्य कैनन, पूरी तरह से क्यूरेट किया गया।
165
176
 
166
177
  ```bash
167
178
  git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
@@ -173,19 +184,19 @@ sdlab split build --project star-freight # zero subject leakage
173
184
 
174
185
  ## डाउनस्ट्रीम प्रारूप
175
186
 
176
- `sdlab` डेटासेट का मालिक है। प्रारूप रूपांतरण [`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset) द्वारा संभाला जाता है: TRL, LLaVA, Qwen2-VL, JSONL, Parquet और अन्य। `repo-dataset` प्रस्तुत करता है; यह कभी भी समावेश का निर्णय नहीं लेता।
187
+ `sdlab` डेटासेट का मालिक है। प्रारूप रूपांतरण [`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset) द्वारा संभाला जाता है: TRL, LLaVA, Qwen2-VL, JSONL, Parquet और अन्य। `repo-dataset` प्रस्तुत करता है; यह कभी भी समावेश का निर्णय नहीं लेता है।
177
188
 
178
- ## स्थापना
189
+ ## स्थापित करें
179
190
 
180
191
  ```bash
181
192
  npm install -g @mcptoolshop/style-dataset-lab
182
193
  ```
183
194
 
184
- Node.js 20+ और स्थानीय होस्ट:8188 पर [ComfyUI](https://github.com/comfyanonymous/ComfyUI) की आवश्यकता है।
195
+ Node.js 20+ और [ComfyUI](https://github.com/comfyanonymous/ComfyUI) की आवश्यकता है जो localhost:8188 पर पीढ़ी के लिए चल रहा हो।
185
196
 
186
- ### इसे ComfyUI के बिना आज़माएं
197
+ ### ComfyUI के बिना इसे आज़माएं
187
198
 
188
- आप पूर्ण गैर-उत्पादन सतह का पता लगा सकते हैं - निरीक्षण, क्यूरेशन, स्नैपशॉट, विभाजन, निर्यात - बंडल किए गए स्टार फ्रेट प्रोजेक्ट का उपयोग करके, ComfyUI स्थापित किए बिना या किसी भी SDXL भार को डाउनलोड किए बिना।
199
+ आप पूर्ण गैर-उत्पादन सतह का पता लगा सकते हैं - निरीक्षण, क्यूरेशन, स्नैपशॉट, विभाजन, निर्यात - बंडल किए गए स्टार फ्रेट प्रोजेक्ट का उपयोग करके ComfyUI स्थापित किए बिना या किसी भी SDXL भार को डाउनलोड किए बिना।
189
200
 
190
201
  ```bash
191
202
  # Scaffold a fresh project (no ComfyUI needed)
@@ -200,11 +211,11 @@ sdlab snapshot create --dry-run --project star-freight
200
211
 
201
212
  `sdlab project doctor` प्रत्येक परियोजना कॉन्फ़िगरेशन (संविधान, लेन, रुब्रिक, शब्दावली) को मान्य करता है और GPU को छुए बिना पात्रता की रिपोर्ट करता है। कोई भी कमांड जो उत्पन्न स्थिति को परिवर्तित करता है, वह पहले प्रभाव का पूर्वावलोकन करने के लिए `--dry-run` स्वीकार करता है।
202
213
 
203
- यदि आप `--project` भूल जाते हैं, तो CLI `projects/` के अंतर्गत पाए जाने वाले पहले प्रोजेक्ट पर वापस चला जाता है और एक चेतावनी प्रिंट करता है - इसे शांत करने के लिए स्पष्ट रूप से `--project` पास करें।
214
+ यदि आप `--project` भूल जाते हैं, तो CLI `projects/` के तहत पाए जाने वाले पहले प्रोजेक्ट पर वापस आ जाता है और एक चेतावनी प्रिंट करता है - इसे चुप कराने के लिए स्पष्ट रूप से `--project` पास करें।
204
215
 
205
- ### अवरुद्ध रन को फिर से शुरू करना
216
+ ### रुके हुए रन को फिर से शुरू करना
206
217
 
207
- लंबे समय तक चलने वाले उत्पादन कार्यों को पूर्ण किए गए कार्य को दोहराए बिना फिर से शुरू किया जा सकता है:
218
+ लंबे समय तक चलने वाली पीढ़ी के रन को बिना पूर्ण किए गए काम को दोहराए फिर से शुरू किया जा सकता है:
208
219
 
209
220
  ```bash
210
221
  # Skip subjects whose record + image are already on disk.
@@ -222,22 +233,22 @@ sdlab batch generate --resume batch_2026-04-22_001 --project my-project
222
233
 
223
234
  सामान्य विफलता मोड और समाधान:
224
235
 
225
- किसी भी `sdlab generate` / `sdlab run generate` / `sdlab batch generate` पर **`ECONNREFUSED 127.0.0.1:8188`**
226
- ComfyUI चल नहीं रहा है। ComfyUI शुरू करें (`python main.py --listen 127.0.0.1 --port 8188`) और `curl http://127.0.0.1:8188/system_stats` से पुष्टि करें। किसी भिन्न होस्ट/पोर्ट पर इंगित करने के लिए, `COMFY_URL=http://host:port` सेट करें।
236
+ **किसी भी `sdlab generate` / `sdlab run generate` / `sdlab batch generate` पर `ECONNREFUSED 127.0.0.1:8188`**
237
+ ComfyUI नहीं चल रहा है। ComfyUI शुरू करें (`python main.py --listen 127.0.0.1 --port 8188`) और `curl http://127.0.0.1:8188/system_stats` से पुष्टि करें। किसी भिन्न होस्ट/पोर्ट पर इंगित करने के लिए, `COMFY_URL=http://host:port` सेट करें।
227
238
 
228
239
  **`missing checkpoint` / `LoRA weight not found`**
229
240
  आपके वर्कफ़्लो प्रोफ़ाइल में एक मॉडल फ़ाइल का नाम है जो ComfyUI के `models/checkpoints/` या `models/loras/` फ़ोल्डर में नहीं है। `projects/<project>/workflows/profiles/<profile>.json` खोलें, `checkpoint` या `lora` फ़ील्ड का पता लगाएं, और या तो संदर्भित भार डाउनलोड करें या इसे किसी ऐसे भार से बदल दें जो आपके पास पहले से है। फिक्स की पुष्टि करने के लिए `sdlab project doctor --project <project>` को फिर से चलाएं।
230
241
 
231
242
  **`sdlab project doctor` त्रुटियाँ**
232
243
  डॉक्टर संरचित त्रुटि कोड लौटाता है। सामान्य:
233
- - `E_PROJECT_NOT_FOUND` - परियोजना निर्देशिका `projects/` के अंतर्गत मौजूद नहीं है। वर्तनी की जाँच करें।
244
+ - `E_PROJECT_NOT_FOUND` - परियोजना निर्देशिका `projects/` के तहत मौजूद नहीं है। वर्तनी की जाँच करें।
234
245
  - `E_CONFIG_INVALID` - पाँच JSON कॉन्फ़िगरेशन फ़ाइलों में से एक स्कीमा सत्यापन विफल हो गया। `hint` फ़ील्ड खराब फ़ाइल और फ़ील्ड का नाम देता है।
235
246
  - `E_RECORD_DRIFT` - किसी रिकॉर्ड का कॉन्फ़िगरेशन फ़िंगरप्रिंट अब इसके स्रोत से मेल नहीं खाता है। संकेत के अनुसार फिर से क्यूरेट या पुन: बांधें।
236
247
 
237
- **`No --project specified, falling back to <name>`**
248
+ **`कोई --project निर्दिष्ट नहीं है, <name> पर वापस आ रहा है`**
238
249
  एक नरम चेतावनी। सही परियोजना का चयन करने और चेतावनी को शांत करने के लिए स्पष्ट रूप से `--project <name>` पास करें।
239
250
 
240
- **पेंटरली / VRAM आउट-ऑफ़-मेमोरी मुद्दे**
251
+ **पेंटरली / VRAM आउट-ऑफ-मेमोरी मुद्दे**
241
252
  पेंटरली डेनोइज़ ट्यूनिंग नोट्स के लिए `docs/internal/HANDOFF.md` देखें। संक्षेप में: डेनोइज़ शक्ति को कम करें, बैच आकार को कम करें या अपने वर्कफ़्लो प्रोफ़ाइल में एक छोटे चेकपॉइंट पर स्विच करें।
242
253
 
243
254
  **बग की रिपोर्ट करना**
@@ -249,8 +260,8 @@ https://github.com/mcp-tool-shop-org/style-dataset-lab/issues पर अपन
249
260
 
250
261
  ## लाइसेंस
251
262
 
252
- MIT
263
+ एमआईटी
253
264
 
254
265
  ---
255
266
 
256
- <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a> द्वारा निर्मित
267
+ एमसीपी टूल शॉप द्वारा निर्मित।
package/README.it.md CHANGED
@@ -113,6 +113,15 @@ Style Dataset Lab rende esplicita questa connessione. La tua costituzione defini
113
113
 
114
114
  Il risultato pratico: quando il tuo LoRA subisce modifiche indesiderate, puoi chiedere *perché*. Quando il tuo prossimo ciclo di addestramento richiede dati migliori, sai esattamente quali record sono quasi corretti e quale singola regola hanno violato. Quando un nuovo membro del team chiede qual è il linguaggio visivo del progetto, la risposta non è una bacheca Figma, ma una costituzione ricercabile con 1.182 esempi valutati.
115
115
 
116
+ ## Testato in produzione
117
+
118
+ Non si tratta di una pipeline dimostrativa. Due modelli LoRA reali sono stati elaborati integralmente attraverso questa pipeline: lo stesso ciclo canonico → curatela → addestramento → distribuzione, agli estremi opposti dello spettro della curatela.
119
+
120
+ - **[Tallow Fen](handbook/case-study-tallow-fen/)** (progettazione di creature): un canone di bestiario creato da zero, con circa il **34% di approvazioni** su 293 record curati (169 rifiutati: la fase di selezione è rigorosa). È stato distribuito `tallow_fen_style_v3.safetensors` a 1.5 su `qwen-image`.
121
+ - **[Rustline](handbook/case-study-rustline/)** (progettazione concettuale): un canone denso e predefinito, con circa il **96% di approvazioni** su 180 record. È stato distribuito `rustline_v3ckpt_1500.safetensors` a 1.0 su `qwen-image`, ed è stato riutilizzato in un secondo progetto.
122
+
123
+ La stessa pipeline, due profili di produzione: la fase di curatela è reale (rifiuta rigorosamente i contenuti inappropriati) e un canone ben definito produce alti tassi di accettazione.
124
+
116
125
  ## Cinque domini, regole reali
117
126
 
118
127
  Non semplici modelli di esempio. Ogni dominio viene fornito con regole della costituzione adatte alla produzione, definizioni delle corsie, rubriche di valutazione e vocabolario di gruppo.
@@ -154,10 +163,12 @@ projects/my-project/
154
163
  Queste non sono semplici aspirazioni. Sono applicate rigorosamente.
155
164
 
156
165
  - **Gli snapshot sono immutabili.** L'impronta della configurazione (SHA-256) dimostra che nulla è stato modificato.
157
- - **Le suddivisioni prevengono perdite di dati.** Le famiglie di soggetti (per identità, discendenza o suffisso ID) non si sovrappongono mai tra le diverse partizioni.
158
- - **I manifest sono contratti vincolanti.** Hash dell'esportazione + impronta della configurazione. Se qualcosa cambia, crearne uno nuovo.
166
+ - **Le suddivisioni prevengono la dispersione dei dati.** Le famiglie di soggetti (per identità, discendenza o suffisso ID) non superano mai i confini delle partizioni.
167
+ - **I manifest sono contratti vincolanti.** Esportazione dell'hash + impronta della configurazione. Se qualcosa cambia, crearne uno nuovo.
168
+ - **Le esecuzioni fissano il loro grafo esatto.** Ogni generazione registra `comfy_workflow_sha` + hash del contenuto del modello/LoRA + politica dei seed, in modo che un ciclo possa essere riprodotto byte per byte: identico sia nell'ambiente JS che Python. L'hashing del modello è opzionale (`--hash-models`) e non viene mai falsificato.
169
+ - **Nessun modello verifica il proprio output.** Le valutazioni registrano `judged_by_model` e `generator_model`; se questi valori sono mai uguali, viene visualizzato un avviso.
159
170
  - **Gli adattatori non possono alterare la verità.** Layout diverso, stessi record. Nessuna aggiunta, nessuna rimozione, nessuna riclassificazione.
160
- - **Gli output generati vengono rielaborati tramite revisione.** Nessun bypass. Curare e collegare come tutto il resto.
171
+ - **Gli output generati vengono reintrodotti attraverso la revisione.** Nessun bypass. Curatela e collegamento come per tutti gli altri elementi.
161
172
 
162
173
  ## Star Freight
163
174