@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 +25 -1
- package/README.es.md +16 -5
- package/README.fr.md +54 -43
- package/README.hi.md +47 -36
- package/README.it.md +14 -3
- package/README.ja.md +16 -5
- package/README.md +11 -0
- package/README.pt-BR.md +16 -5
- package/README.zh.md +49 -38
- package/lib/adapters/comfyui-runner.js +36 -2
- package/lib/critique-engine.js +46 -1
- package/lib/critique-render.js +45 -0
- package/lib/freeze-gate.js +56 -13
- package/lib/run-manifest.js +308 -0
- package/lib/snapshot.js +7 -1
- package/lib/verifier.js +67 -0
- package/package.json +1 -1
- package/scripts/critique.js +32 -7
- package/scripts/curate.js +21 -0
- package/scripts/generate.js +24 -0
- package/scripts/qwen_generate.py +203 -0
- package/scripts/run-generate.js +3 -0
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.
|
|
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
|
|
157
|
-
- **
|
|
158
|
-
- **Los manifiestos son contratos congelados.**
|
|
159
|
-
- **
|
|
160
|
-
- **
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
61
|
+
## Création de contenu canonique
|
|
62
62
|
|
|
63
|
-
Avant l’exécution du pipeline de
|
|
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
|
|
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
|
|
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
|
|
83
|
+
## Ce qu’il produit
|
|
84
84
|
|
|
85
|
-
Sept artefacts
|
|
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
|
|
91
|
-
| **Export package** |
|
|
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
|
|
94
|
-
| **Eval scorecard** | Résultat de réussite/échec par tâche
|
|
95
|
-
| **Implementation pack** | Exemples d’invites,
|
|
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
|
|
102
|
-
| **Run** | Artefact d’exécution figé :
|
|
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
|
|
106
|
-
| **Re-ingest** | Les
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
123
|
-
| **character-design** | portrait, corps entier, rotation, feuille d’
|
|
124
|
-
| **creature-design** | concept, orthographique, étude
|
|
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
|
|
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
|
-
|
|
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’
|
|
157
|
-
- **Les
|
|
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
|
|
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
|
|
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
|
|
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é,
|
|
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,
|
|
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`,
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
**
|
|
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
|
|
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** |
|
|
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 भटकता है, तो आप *क्यों* पूछ सकते हैं। जब आपके अगले प्रशिक्षण दौर में बेहतर डेटा की आवश्यकता होती है, तो आपको पता होता है कि कौन से रिकॉर्ड लगभग
|
|
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** | चरित्र,
|
|
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
|
-
प्रत्येक परियोजना
|
|
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
|
-
- **स्नैपशॉट अपरिवर्तनीय
|
|
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+ और
|
|
195
|
+
Node.js 20+ और [ComfyUI](https://github.com/comfyanonymous/ComfyUI) की आवश्यकता है जो localhost:8188 पर पीढ़ी के लिए चल रहा हो।
|
|
185
196
|
|
|
186
|
-
###
|
|
197
|
+
### ComfyUI के बिना इसे आज़माएं
|
|
187
198
|
|
|
188
|
-
आप पूर्ण गैर-उत्पादन सतह का पता लगा सकते हैं - निरीक्षण, क्यूरेशन, स्नैपशॉट, विभाजन, निर्यात - बंडल किए गए स्टार फ्रेट प्रोजेक्ट का उपयोग
|
|
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/` के
|
|
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
|
-
|
|
226
|
-
ComfyUI चल
|
|
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
|
-
|
|
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
|
-
|
|
263
|
+
एमआईटी
|
|
253
264
|
|
|
254
265
|
---
|
|
255
266
|
|
|
256
|
-
|
|
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
|
|
158
|
-
- **I manifest sono contratti vincolanti.**
|
|
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
|
|
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
|
|