@mcptoolshop/style-dataset-lab 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/README.es.md +84 -62
- package/README.fr.md +85 -63
- package/README.hi.md +97 -77
- package/README.it.md +86 -64
- package/README.ja.md +94 -72
- package/README.md +22 -0
- package/README.pt-BR.md +83 -61
- package/README.zh.md +88 -66
- package/bin/sdlab.js +71 -0
- package/lib/adapters/ai-toolkit.js +209 -0
- package/lib/adapters/comfyui-workflows.js +133 -2
- package/lib/adapters/diffusers-lora.js +46 -66
- package/lib/adapters/generic-image-caption.js +22 -50
- package/lib/canon-build/build.js +450 -0
- package/lib/canon-build/emitters/base.js +122 -0
- package/lib/canon-build/emitters/character.js +167 -0
- package/lib/canon-build/emitters/deity.js +165 -0
- package/lib/canon-build/emitters/faction.js +161 -0
- package/lib/canon-build/emitters/index.js +38 -0
- package/lib/canon-build/emitters/location.js +153 -0
- package/lib/canon-build/emitters/monster.js +131 -0
- package/lib/canon-build/emitters/relic.js +142 -0
- package/lib/canon-build/emitters/ship.js +154 -0
- package/lib/canon-build/emitters/species.js +165 -0
- package/lib/canon-build/frontmatter.js +76 -0
- package/lib/canon-build/lane-resolve.js +64 -0
- package/lib/canon-build/load-config.js +117 -0
- package/lib/canon-build/load-entry.js +62 -0
- package/lib/canon-build/load-schema.js +46 -0
- package/lib/captions.js +197 -0
- package/lib/config.js +19 -0
- package/lib/freeze-events.js +109 -0
- package/lib/freeze-gate.js +165 -0
- package/lib/freeze-stamp.js +161 -0
- package/lib/rows.js +228 -0
- package/lib/training-adapters.js +5 -0
- package/lib/training-packages.js +24 -18
- package/lib/training-profiles.js +33 -0
- package/package.json +12 -3
- package/scripts/_batch_cut.py +71 -0
- package/scripts/_seam_cutout.py +74 -0
- package/scripts/canon-build.js +88 -0
- package/scripts/canon-drift.js +193 -0
- package/scripts/canon-freeze-status.js +85 -0
- package/scripts/canon-freeze.js +211 -0
- package/scripts/canon-unfreeze.js +137 -0
- package/scripts/curate.js +12 -0
- package/scripts/generate-controlnet.js +12 -0
- package/scripts/generate-identity.js +20 -4
- package/scripts/generate-ipadapter.js +11 -0
- package/scripts/generate.js +238 -102
- package/scripts/qwen_generate.py +124 -0
package/README.it.md
CHANGED
|
@@ -13,13 +13,13 @@
|
|
|
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
|
+
Scrivi le tue regole visive. Genera immagini. Valuta ogni immagine in base a tali regole. Pubblica i risultati come dati di addestramento verificabili e versionati, quindi utilizza i modelli addestrati in flussi di lavoro di produzione reali e reintroduci gli output migliori nel tuo corpus.
|
|
17
17
|
|
|
18
|
-
Style Dataset Lab collega le
|
|
18
|
+
Style Dataset Lab collega le indicazioni che hai fornito sullo stile artistico al set di dati da cui effettivamente esegui l'addestramento, quindi completa il ciclo fino alla fase di produzione. Definisci una serie di regole: regole sulla silhouette, vincoli sulla palette, linguaggio dei materiali o qualsiasi altro elemento rilevante per il tuo progetto. Il flusso di lavoro genera candidati, li valuta in base alle regole e raggruppa gli elementi approvati in set di dati riproducibili, dove ogni record spiega perché è stato incluso.
|
|
19
19
|
|
|
20
|
-
Successivamente,
|
|
20
|
+
Successivamente, l'ambiente di lavoro di produzione prende il sopravvento: compila le specifiche per la generazione a partire dai dati del progetto, eseguile tramite ComfyUI, valuta gli output, genera in batch fogli di espressione e schede ambientali, seleziona i risultati migliori e reintroducili come nuovi candidati. Il ciclo si chiude: produci, seleziona, rivedi, rafforza.
|
|
21
21
|
|
|
22
|
-
##
|
|
22
|
+
## Il flusso di lavoro
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
25
|
# Write your canon. Scaffold the project.
|
|
@@ -56,56 +56,78 @@ 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
|
-
Quest'ultimo comando è
|
|
59
|
+
Quest'ultimo comando è il punto cruciale. Gli output selezionati vengono reintrodotti nello stesso processo di revisione insieme a tutti gli altri elementi. Il corpus si espande e le regole rimangono valide.
|
|
60
|
+
|
|
61
|
+
## Definizione del canone
|
|
62
|
+
|
|
63
|
+
Prima che il flusso di lavoro del set di dati venga eseguito, lo spazio dei nomi `sdlab canon *` trasforma l'archivio delle entità del canone del tuo progetto nelle tre proiezioni utilizzate effettivamente per l'addestramento e la produzione, e blocca le voci che non devono subire modifiche.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Build three projections from the canon entity store:
|
|
67
|
+
# dataset.jsonl → training adapters
|
|
68
|
+
# prompts/*.j2 → ComfyUI workflow invocation
|
|
69
|
+
# context/*.md → Role OS narrative dispatch
|
|
70
|
+
sdlab canon build --project my-project
|
|
71
|
+
|
|
72
|
+
# Freeze an entry so regeneration can't silently change it
|
|
73
|
+
sdlab canon freeze kael_maren --project my-project --reason "prologue portrait locked"
|
|
74
|
+
|
|
75
|
+
# Report drift on frozen entries since the last clean build
|
|
76
|
+
sdlab canon drift --project my-project
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`canon build` è basato sull'indirizzamento dei contenuti: il suo output è identificato da un codice `canon_sha` ed è memorizzato nella cache, quindi una ricostruzione del canone invariata viene eseguita istantaneamente. `canon freeze` registra ogni "congelamento" rispetto a una versione specifica e lo aggiunge a una traccia di controllo in `freeze-events.jsonl`: le voci "congelate" rifiutano esplicitamente la rigenerazione, mentre le voci "soft-advisory" rifiutano per impostazione predefinita (è possibile ignorare l'impostazione con `--i-know`). `canon drift` ricalcola l'hash di ogni voce monitorata e segnala eventuali modifiche rispetto all'ultima versione pulita.
|
|
80
|
+
|
|
81
|
+
Flusso di lavoro completo nel manuale: [Canon build](handbook/canon-build/), [Canon freeze](handbook/canon-freeze/) e [Two-LoRA stacking](handbook/two-lora-stacking/).
|
|
60
82
|
|
|
61
83
|
## Cosa produce
|
|
62
84
|
|
|
63
|
-
|
|
85
|
+
Sette artefatti del set di dati e un ambiente di lavoro di produzione completo. Ogni artefatto è collegato ai suoi predecessori, in modo da poter risalire a qualsiasi record di addestramento fino alla regola che lo ha approvato.
|
|
64
86
|
|
|
65
|
-
| Artefatto
|
|
87
|
+
| Artefatto | Cos'è |
|
|
66
88
|
|----------|-----------|
|
|
67
|
-
| **Snapshot** | Selezione di record
|
|
68
|
-
| **Split** | Partizione
|
|
69
|
-
| **Export package** | Set di dati autonomo:
|
|
70
|
-
| **Eval pack** |
|
|
71
|
-
| **Training package** | Layout pronto per l'addestramento tramite adattatori (`diffusers-lora`, `generic-image-caption`).
|
|
72
|
-
| **Eval scorecard** | Valutazione
|
|
73
|
-
| **Implementation pack** | Esempi di prompt, errori noti, test di continuità e indicazioni per
|
|
89
|
+
| **Snapshot** | Selezione di record congelati con impronta di configurazione. Ogni inclusione ha una motivazione esplicita. |
|
|
90
|
+
| **Split** | Partizione train/val/test in cui le famiglie di soggetti non superano i confini. |
|
|
91
|
+
| **Export package** | Set di dati autonomo: manifesto, metadati, immagini, suddivisioni, scheda del set di dati, checksum. |
|
|
92
|
+
| **Eval pack** | Attività di test consapevoli del canone: copertura delle corsie, divieto di modifiche, ancoraggio/oro, continuità dei soggetti. |
|
|
93
|
+
| **Training package** | Layout pronto per l'addestramento tramite adattatori (`diffusers-lora`, `generic-image-caption`). Stessi dati, formato diverso. |
|
|
94
|
+
| **Eval scorecard** | Valutazione per attività con esito positivo/negativo basata sulla valutazione degli output generati rispetto ai pacchetti di valutazione. |
|
|
95
|
+
| **Implementation pack** | Esempi di prompt, errori noti, test di continuità e indicazioni per la reintroduzione. |
|
|
74
96
|
|
|
75
|
-
L'ambiente di lavoro di produzione
|
|
97
|
+
L'ambiente di lavoro di produzione aggiunge:
|
|
76
98
|
|
|
77
|
-
| Superficie
|
|
99
|
+
| Superficie | Cosa fa |
|
|
78
100
|
|---------|-------------|
|
|
79
|
-
| **Compiled brief** |
|
|
80
|
-
| **Run** | Artefatto di esecuzione
|
|
81
|
-
| **Critique** | Valutazione strutturata
|
|
82
|
-
| **Batch** | Produzione coordinata
|
|
83
|
-
| **Selection** | Artefatto
|
|
84
|
-
| **Re-ingest** | Gli output selezionati vengono
|
|
101
|
+
| **Compiled brief** | Istruzioni di generazione deterministiche dal profilo del flusso di lavoro + dati del progetto. |
|
|
102
|
+
| **Run** | Artefatto di esecuzione congelato: breve descrizione + seed + output ComfyUI + manifesto. |
|
|
103
|
+
| **Critique** | Valutazione strutturata multidimensionale degli output rispetto al canone. |
|
|
104
|
+
| **Batch** | Produzione coordinata multi-slot (fogli di espressione, schede ambientali, pacchetti di silhouette). |
|
|
105
|
+
| **Selection** | Artefatto decisionale creativo: quali output sono stati scelti, perché e da dove provengono. |
|
|
106
|
+
| **Re-ingest** | Gli output selezionati vengono reintrodotti come record candidati con la cronologia completa della generazione. |
|
|
85
107
|
|
|
86
108
|
## Perché esiste
|
|
87
109
|
|
|
88
|
-
I dati di addestramento sono l'
|
|
110
|
+
I dati di addestramento sono l'artefatto più importante in qualsiasi flusso di lavoro di intelligenza artificiale visiva. Ma la maggior parte dei dati di addestramento è una cartella di immagini senza cronologia, senza traccia delle valutazioni e senza collegamento con le regole di stile che avrebbero dovuto seguire.
|
|
89
111
|
|
|
90
|
-
Style Dataset Lab rende
|
|
112
|
+
Style Dataset Lab rende esplicita questa connessione. La tua costituzione definisce le regole. La tua rubrica definisce le dimensioni della valutazione. I tuoi record di curatela registrano la valutazione. Il tuo legame con il canone dimostra la connessione. E il tuo set di dati conserva tutto questo come informazioni strutturate, ricercabili e riproducibili.
|
|
91
113
|
|
|
92
|
-
Il risultato pratico: quando il
|
|
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.
|
|
93
115
|
|
|
94
116
|
## Cinque domini, regole reali
|
|
95
117
|
|
|
96
|
-
Non modelli di esempio. Ogni dominio viene fornito con regole
|
|
118
|
+
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.
|
|
97
119
|
|
|
98
|
-
| Dominio
|
|
120
|
+
| Dominio | Corsie | Cosa viene valutato |
|
|
99
121
|
|--------|-------|-----------------|
|
|
100
|
-
| **game-art** | personaggio, ambiente, oggetto, interfaccia utente, nave, interno, attrezzatura
|
|
101
|
-
| **character-design** | ritratto, figura intera,
|
|
102
|
-
| **creature-design** |
|
|
103
|
-
| **architecture** | esterno, interno, paesaggio urbano, dettaglio strutturale, rovina, paesaggio
|
|
104
|
-
| **vehicle-mech** | esterno, cabina di pilotaggio, componente, schema, foglio di silhouette, variante danneggiata
|
|
122
|
+
| **game-art** | personaggio, ambiente, oggetto di scena, interfaccia utente, nave, interno, attrezzatura | Silhouette su scala di gioco, identificazione della fazione, usura e invecchiamento |
|
|
123
|
+
| **character-design** | ritratto, figura intera, rotazione a 360 gradi, foglio di espressioni, posa d'azione | Proporzioni, logica del costume, personalità, chiarezza dei gesti |
|
|
124
|
+
| **creature-design** | concetto, ortografico, studio dettagliato, azione, riferimento alla scala, habitat | Anatomia, logica evolutiva, distinzione della silhouette |
|
|
125
|
+
| **architecture** | esterno, interno, paesaggio urbano, dettaglio strutturale, rovina, paesaggio | Struttura, coerenza dei materiali, prospettiva, coerenza dell'epoca |
|
|
126
|
+
| **vehicle-mech** | esterno, cabina di pilotaggio, componente, schema, foglio di silhouette, variante danneggiata | Logica meccanica, linguaggio del design, punti di accesso, narrazione dei danni |
|
|
105
127
|
|
|
106
128
|
## Struttura del progetto
|
|
107
129
|
|
|
108
|
-
Ogni progetto è autonomo. Cinque file di configurazione JSON definiscono le regole; il resto
|
|
130
|
+
Ogni progetto è autonomo. Cinque file di configurazione JSON definiscono le regole; tutto il resto sono dati.
|
|
109
131
|
|
|
110
132
|
```
|
|
111
133
|
projects/my-project/
|
|
@@ -127,19 +149,19 @@ projects/my-project/
|
|
|
127
149
|
inbox/generated/ Re-ingested images awaiting review
|
|
128
150
|
```
|
|
129
151
|
|
|
130
|
-
##
|
|
152
|
+
## Proprietà di affidabilità
|
|
131
153
|
|
|
132
|
-
|
|
154
|
+
Queste non sono semplici aspirazioni. Sono applicate rigorosamente.
|
|
133
155
|
|
|
134
|
-
- **Gli snapshot sono immutabili.** L'impronta
|
|
135
|
-
- **Le suddivisioni
|
|
136
|
-
- **I
|
|
137
|
-
- **Gli adattatori non possono alterare
|
|
138
|
-
- **Gli output generati vengono
|
|
156
|
+
- **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.
|
|
159
|
+
- **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.
|
|
139
161
|
|
|
140
162
|
## Star Freight
|
|
141
163
|
|
|
142
|
-
Il repository include un esempio completo
|
|
164
|
+
Il repository include un esempio completo funzionante: 1.182 record, 5 fazioni, 7 percorsi, 24 regole costitutive, 892 risorse approvate, 2 profili di addestramento. Un canone visivo di fantascienza RPG, completamente curato.
|
|
143
165
|
|
|
144
166
|
```bash
|
|
145
167
|
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
@@ -149,9 +171,9 @@ sdlab snapshot create --project star-freight # 839 eligible records
|
|
|
149
171
|
sdlab split build --project star-freight # zero subject leakage
|
|
150
172
|
```
|
|
151
173
|
|
|
152
|
-
## Formati
|
|
174
|
+
## Formati downstream
|
|
153
175
|
|
|
154
|
-
`sdlab` è
|
|
176
|
+
`sdlab` è il proprietario del set di dati. La conversione del formato è gestita da [`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset): TRL, LLaVA, Qwen2-VL, JSONL, Parquet e altro. `repo-dataset` esegue il rendering; non decide mai l'inclusione.
|
|
155
177
|
|
|
156
178
|
## Installazione
|
|
157
179
|
|
|
@@ -159,11 +181,11 @@ sdlab split build --project star-freight # zero subject leakage
|
|
|
159
181
|
npm install -g @mcptoolshop/style-dataset-lab
|
|
160
182
|
```
|
|
161
183
|
|
|
162
|
-
Richiede Node.js 20+ e [ComfyUI](https://github.com/comfyanonymous/ComfyUI)
|
|
184
|
+
Richiede Node.js 20+ e [ComfyUI](https://github.com/comfyanonymous/ComfyUI) su localhost:8188 per la generazione.
|
|
163
185
|
|
|
164
186
|
### Prova senza ComfyUI
|
|
165
187
|
|
|
166
|
-
È possibile esplorare l'intera interfaccia
|
|
188
|
+
È possibile esplorare l'intera interfaccia non di generazione (ispezione, curatela, snapshot, suddivisione, esportazione) utilizzando il progetto Star Freight incluso, senza installare ComfyUI o scaricare alcun peso SDXL.
|
|
167
189
|
|
|
168
190
|
```bash
|
|
169
191
|
# Scaffold a fresh project (no ComfyUI needed)
|
|
@@ -176,13 +198,13 @@ sdlab project doctor --project test
|
|
|
176
198
|
sdlab snapshot create --dry-run --project star-freight
|
|
177
199
|
```
|
|
178
200
|
|
|
179
|
-
|
|
201
|
+
`sdlab project doctor` convalida la configurazione di ogni progetto (costituzione, percorsi, rubrica, terminologia) e segnala l'idoneità senza toccare la GPU. Qualsiasi comando che modifica lo stato generato accetta `--dry-run` per visualizzare in anteprima l'effetto.
|
|
180
202
|
|
|
181
|
-
Se si dimentica `--project`, la CLI
|
|
203
|
+
Se si dimentica `--project`, la CLI torna al primo progetto che trova nella cartella `projects/` e stampa un avviso; passare `--project` esplicitamente per disattivare l'avviso.
|
|
182
204
|
|
|
183
|
-
###
|
|
205
|
+
### Ripresa di un'esecuzione interrotta
|
|
184
206
|
|
|
185
|
-
|
|
207
|
+
Le lunghe esecuzioni di generazione possono essere riprese senza ripetere il lavoro completato:
|
|
186
208
|
|
|
187
209
|
```bash
|
|
188
210
|
# Skip subjects whose record + image are already on disk.
|
|
@@ -194,36 +216,36 @@ sdlab generate inputs/prompts/wave1.json --project my-project --resume
|
|
|
194
216
|
sdlab batch generate --resume batch_2026-04-22_001 --project my-project
|
|
195
217
|
```
|
|
196
218
|
|
|
197
|
-
Entrambi i comandi funzionano perché ogni
|
|
219
|
+
Entrambi i comandi funzionano perché ogni slot scrive la sua voce del manifest in modo atomico al termine; un arresto anomalo durante l'esecuzione non corrompe mai lo stato parziale.
|
|
198
220
|
|
|
199
221
|
## Risoluzione dei problemi
|
|
200
222
|
|
|
201
223
|
Modalità di errore comuni e soluzioni:
|
|
202
224
|
|
|
203
|
-
**`ECONNREFUSED 127.0.0.1:8188` in qualsiasi
|
|
204
|
-
ComfyUI non è in esecuzione.
|
|
225
|
+
**`ECONNREFUSED 127.0.0.1:8188` in qualsiasi `sdlab generate` / `sdlab run generate` / `sdlab batch generate`**
|
|
226
|
+
ComfyUI non è in esecuzione. Avviare ComfyUI (`python main.py --listen 127.0.0.1 --port 8188`) e confermare con `curl http://127.0.0.1:8188/system_stats`. Per puntare a un host/porta diverso, impostare `COMFY_URL=http://host:port`.
|
|
205
227
|
|
|
206
228
|
**`missing checkpoint` / `LoRA weight not found`**
|
|
207
|
-
Il profilo del flusso di lavoro
|
|
229
|
+
Il profilo del flusso di lavoro fa riferimento a un file modello che non si trova nelle cartelle `models/checkpoints/` o `models/loras/` di ComfyUI. Aprire `projects/<project>/workflows/profiles/<profile>.json`, individuare il campo `checkpoint` o `lora` e scaricare il peso di riferimento oppure sostituirlo con uno che si ha già. Rieseguire `sdlab project doctor --project <project>` per confermare la correzione.
|
|
208
230
|
|
|
209
231
|
**Errori di `sdlab project doctor`**
|
|
210
|
-
Doctor restituisce codici di errore strutturati. Alcuni
|
|
211
|
-
- `E_PROJECT_NOT_FOUND
|
|
212
|
-
- `E_CONFIG_INVALID
|
|
213
|
-
- `E_RECORD_DRIFT
|
|
232
|
+
Doctor restituisce codici di errore strutturati. Alcuni comuni:
|
|
233
|
+
- `E_PROJECT_NOT_FOUND`: la directory del progetto non esiste in `projects/`. Controllare l'ortografia.
|
|
234
|
+
- `E_CONFIG_INVALID`: uno dei cinque file di configurazione JSON ha fallito la convalida dello schema. Il campo `hint` indica il file e il campo problematici.
|
|
235
|
+
- `E_RECORD_DRIFT`: l'impronta della configurazione di un record non corrisponde più alla sua origine. Rielaborare o ricollegare come suggerisce l'indicazione.
|
|
214
236
|
|
|
215
|
-
**`
|
|
216
|
-
Un avviso
|
|
237
|
+
**`No --project specified, falling back to <name>`**
|
|
238
|
+
Un avviso lieve. Passare `--project <name>` esplicitamente per selezionare il progetto corretto e disattivare l'avviso.
|
|
217
239
|
|
|
218
|
-
**Problemi
|
|
219
|
-
Consultare
|
|
240
|
+
**Problemi di memoria VRAM / "Painterly"**
|
|
241
|
+
Consultare `docs/internal/HANDOFF.md` per le note sulla regolazione del denoising "painterly". In breve: ridurre la forza del denoising, diminuire la dimensione del batch o passare a un checkpoint più piccolo nel profilo del flusso di lavoro.
|
|
220
242
|
|
|
221
243
|
**Segnalazione di bug**
|
|
222
|
-
Aprire una segnalazione
|
|
244
|
+
Aprire una segnalazione su https://github.com/mcp-tool-shop-org/style-dataset-lab/issues con la versione di sdlab (`sdlab --version`), la versione di Node (`node -v`), il comando completo e l'output strutturato dell'errore. Un modello per la segnalazione di bug precompila i campi.
|
|
223
245
|
|
|
224
246
|
## Sicurezza
|
|
225
247
|
|
|
226
|
-
|
|
248
|
+
Solo locale. Nessun telemetria, nessuna analisi, nessuna richiesta esterna. Le immagini rimangono sulla GPU e sul file system.
|
|
227
249
|
|
|
228
250
|
## Licenza
|
|
229
251
|
|
|
@@ -231,4 +253,4 @@ MIT
|
|
|
231
253
|
|
|
232
254
|
---
|
|
233
255
|
|
|
234
|
-
|
|
256
|
+
Realizzato da <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|
package/README.ja.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
|
-
|
|
20
|
+
次に、制作ワークベンチが引き継ぎます。プロジェクトの要件から生成指示をまとめ、ComfyUIで実行し、出力を評価し、表現シートや環境ボードを一括作成し、最良の結果を選択して、新しい候補として再取り込みます。このループは、生成、選択、レビュー、強化という流れで閉じられます。
|
|
21
21
|
|
|
22
22
|
## パイプライン
|
|
23
23
|
|
|
@@ -56,56 +56,78 @@ 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
|
-
|
|
63
|
+
データセットパイプラインを実行する前に、`sdlab canon *`名前空間は、プロジェクトのカノンエンティティストアを、実際のトレーニングと制作で使用される3つのプロジェクションに変換し、変更してはならないエントリをロックします。
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
```bash
|
|
66
|
+
# Build three projections from the canon entity store:
|
|
67
|
+
# dataset.jsonl → training adapters
|
|
68
|
+
# prompts/*.j2 → ComfyUI workflow invocation
|
|
69
|
+
# context/*.md → Role OS narrative dispatch
|
|
70
|
+
sdlab canon build --project my-project
|
|
71
|
+
|
|
72
|
+
# Freeze an entry so regeneration can't silently change it
|
|
73
|
+
sdlab canon freeze kael_maren --project my-project --reason "prologue portrait locked"
|
|
74
|
+
|
|
75
|
+
# Report drift on frozen entries since the last clean build
|
|
76
|
+
sdlab canon drift --project my-project
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`canon build`はコンテンツアドレス指定であり、その出力は`canon_sha`でキー付けされ、キャッシュされます。そのため、変更されていないカノンは瞬時に再構築されます。`canon freeze`は、各フリーズを特定のビルドに対して記録し、`freeze-events.jsonl`監査トレイルに追加します。`frozen`エントリは完全に再生成を拒否し、`soft-advisory`エントリはデフォルトで拒否しますが(`--i-know`オプションで回避できます)。`canon drift`は、監視対象のすべてのエントリのハッシュを再計算し、最後のクリーンビルド以降に変更されたものをフラグします。
|
|
80
|
+
|
|
81
|
+
完全なワークフローについては、ハンドブックをご覧ください。[カノンビルド](handbook/canon-build/)、[カノンフリーズ](handbook/canon-freeze/)、および[Two-LoRAスタッキング](handbook/two-lora-stacking/)。
|
|
82
|
+
|
|
83
|
+
## 生成されるもの
|
|
84
|
+
|
|
85
|
+
7つのデータセット成果物と完全な制作ワークベンチ。各成果物は、その先行するものにリンクされており、トレーニングレコードを承認したルールまで追跡できます。
|
|
86
|
+
|
|
87
|
+
| 成果物 | 概要 |
|
|
66
88
|
|----------|-----------|
|
|
67
|
-
| **Snapshot** |
|
|
68
|
-
| **Split** |
|
|
69
|
-
| **Export package** |
|
|
70
|
-
| **Eval pack** |
|
|
71
|
-
| **Training package** | アダプター(`diffusers-lora`、`generic-image-caption
|
|
72
|
-
| **Eval scorecard** |
|
|
73
|
-
| **Implementation pack** |
|
|
89
|
+
| **Snapshot** | 構成のフィンガープリントを持つフリーズされたレコード選択。すべての包含には明確な理由があります。 |
|
|
90
|
+
| **Split** | 被験者グループが境界を越えない、トレーニング/検証/テストの分割。 |
|
|
91
|
+
| **Export package** | 自己完結型のデータセット:マニフェスト、メタデータ、画像、分割、データセットカード、チェックサム。 |
|
|
92
|
+
| **Eval pack** | カノンを意識したテストタスク:レーンカバレッジ、禁止されたドリフト、アンカー/ゴールド、被験者の連続性。 |
|
|
93
|
+
| **Training package** | アダプター(`diffusers-lora`、`generic-image-caption`)を介したトレーナー対応のレイアウト。同じ情報でありながら、異なる形式です。 |
|
|
94
|
+
| **Eval scorecard** | 生成された出力を評価パックに対してスコアリングし、タスクごとの合格/不合格を判定します。 |
|
|
95
|
+
| **Implementation pack** | プロンプト例、既知の失敗、連続性テスト、および再取り込みガイダンス。 |
|
|
74
96
|
|
|
75
|
-
|
|
97
|
+
制作ワークベンチは以下を追加します:
|
|
76
98
|
|
|
77
|
-
|
|
|
99
|
+
| 表面 | 機能 |
|
|
78
100
|
|---------|-------------|
|
|
79
|
-
| **Compiled brief** |
|
|
80
|
-
| **Run** |
|
|
81
|
-
| **Critique** |
|
|
82
|
-
| **Batch** |
|
|
83
|
-
| **Selection** |
|
|
84
|
-
| **Re-ingest** |
|
|
101
|
+
| **Compiled brief** | ワークフロープロファイルとプロジェクトの要件からの決定的な生成指示。 |
|
|
102
|
+
| **Run** | フリーズされた実行成果物:ブリーフィング+シード+ComfyUI出力+マニフェスト。 |
|
|
103
|
+
| **Critique** | カノンに対する実行出力の構造化された多次元評価。 |
|
|
104
|
+
| **Batch** | 調整されたマルチスロット制作(表現シート、環境ボード、シルエットパック)。 |
|
|
105
|
+
| **Selection** | クリエイティブな意思決定成果物:どの出力が選択され、その理由は何で、どこから来たのか。 |
|
|
106
|
+
| **Re-ingest** | 選択された出力は、完全な生成の来歴とともに、候補レコードとして返されます。 |
|
|
85
107
|
|
|
86
|
-
##
|
|
108
|
+
## このシステムが存在する理由
|
|
87
109
|
|
|
88
|
-
|
|
110
|
+
トレーニングデータは、あらゆるビジュアルAIパイプラインにおいて最も効果的な成果物です。しかし、ほとんどのトレーニングデータは、履歴も、判断の記録も、従うべきスタイルルールとの関連性もない、単なる画像のフォルダーにすぎません。
|
|
89
111
|
|
|
90
|
-
|
|
112
|
+
スタイルデータセットラボは、この関連性を明確にします。あなたの憲法がルールを定義します。あなたのルーブリックがスコアリングの次元を定義します。あなたのキュレーションが判断を記録します。あなたのカノンバインディングがその関連性を証明します。そして、あなたのデータセットは、それらすべてを構造化され、クエリ可能で、再現可能な情報として前進させます。
|
|
91
113
|
|
|
92
|
-
|
|
114
|
+
実用的な結果:LoRAがドリフトした場合、なぜそうなるのかを尋ねることができます。次のトレーニングラウンドにより良いデータが必要な場合、どのレコードがほぼ合格であり、どの単一のルールに失敗したかを正確に知ることができます。新しいチームメンバーがプロジェクトのビジュアル言語について質問した場合、答えはFigmaボードではなく、1,182件の評価された例を含む検索可能な憲法です。
|
|
93
115
|
|
|
94
|
-
## 5
|
|
116
|
+
## 5つのドメイン、実際のルール
|
|
95
117
|
|
|
96
|
-
|
|
118
|
+
プレースホルダーテンプレートではありません。各ドメインには、実運用レベルのカノン憲法ルール、レーン定義、スコアリングルーブリック、およびグループ語彙が付属しています。
|
|
97
119
|
|
|
98
|
-
| ドメイン |
|
|
120
|
+
| ドメイン | レーン | 評価対象となるもの |
|
|
99
121
|
|--------|-------|-----------------|
|
|
100
|
-
| **game-art** | キャラクター、環境、小道具、UI
|
|
101
|
-
| **character-design** |
|
|
102
|
-
| **creature-design** |
|
|
103
|
-
| **architecture** |
|
|
104
|
-
| **vehicle-mech** |
|
|
122
|
+
| **game-art** | キャラクター、環境、小道具、UI、船、インテリア、装備 | ゲームプレイ規模でのシルエット、派閥の識別、摩耗と経年変化 |
|
|
123
|
+
| **character-design** | ポートレート、全身像、ターンアラウンド、表現シート、アクションポーズ | プロポーション、衣装の論理、個性、ジェスチャーの明確さ |
|
|
124
|
+
| **creature-design** | コンセプト、オルソグラフィック、詳細な研究、アクション、スケール参照、生息地 | 解剖学、進化の論理、シルエットの区別 |
|
|
125
|
+
| **architecture** | 外観、内装、街並み、構造的な詳細、廃墟、風景 | 構造、マテリアルの整合性、視点、時代の整合性 |
|
|
126
|
+
| **vehicle-mech** | 外観、コックピット、コンポーネント、図面、シルエットシート、損傷バリアント | 機械的な論理、デザイン言語、アクセスポイント、損傷の物語 |
|
|
105
127
|
|
|
106
|
-
##
|
|
128
|
+
## プロジェクトの構造
|
|
107
129
|
|
|
108
|
-
|
|
130
|
+
各プロジェクトは独立しています。5つのJSON設定ファイルでルールを定義します。それ以外はすべてデータです。
|
|
109
131
|
|
|
110
132
|
```
|
|
111
133
|
projects/my-project/
|
|
@@ -127,19 +149,19 @@ projects/my-project/
|
|
|
127
149
|
inbox/generated/ Re-ingested images awaiting review
|
|
128
150
|
```
|
|
129
151
|
|
|
130
|
-
##
|
|
152
|
+
## 信頼性のためのプロパティ
|
|
131
153
|
|
|
132
|
-
|
|
154
|
+
これらは理想的なものではありません。強制的に適用されます。
|
|
133
155
|
|
|
134
|
-
- **スナップショットは不変です。** 設定のフィンガープリント(SHA-256
|
|
135
|
-
-
|
|
136
|
-
- **マニフェストは固定された契約です。**
|
|
137
|
-
-
|
|
138
|
-
-
|
|
156
|
+
- **スナップショットは不変です。** 設定のフィンガープリント(SHA-256)により、変更がないことが証明されます。
|
|
157
|
+
- **分割によってデータの漏洩を防ぎます。** サブジェクトファミリー(ID、系統、またはIDサフィックスによる)は、決してパーティション境界を越えません。
|
|
158
|
+
- **マニフェストは固定された契約です。** エクスポートハッシュ + 設定フィンガープリント。変更がある場合は、新しいものを生成します。
|
|
159
|
+
- **アダプターは真実を変更できません。** レイアウトは異なりますが、レコードは同じです。追加、削除、再分類はありません。
|
|
160
|
+
- **生成された出力は、レビューを通じて再度利用されます。** バイパスはありません。他のものと同様に、キュレーションとバインドを行います。
|
|
139
161
|
|
|
140
|
-
##
|
|
162
|
+
## スター・フレイト
|
|
141
163
|
|
|
142
|
-
|
|
164
|
+
このリポジトリには、完全な動作例が含まれています:1,182件のレコード、5つの派閥、7つのルート、24の憲法ルール、892個の承認済みアセット、2つのトレーニングプロファイル。洗練されたSF RPGのビジュアルカノンで、完全にキュレーションされています。
|
|
143
165
|
|
|
144
166
|
```bash
|
|
145
167
|
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
@@ -149,9 +171,9 @@ sdlab snapshot create --project star-freight # 839 eligible records
|
|
|
149
171
|
sdlab split build --project star-freight # zero subject leakage
|
|
150
172
|
```
|
|
151
173
|
|
|
152
|
-
##
|
|
174
|
+
## 下流形式
|
|
153
175
|
|
|
154
|
-
`sdlab
|
|
176
|
+
`sdlab`がデータセットを所有します。フォーマット変換は[`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset)によって処理されます:TRL、LLaVA、Qwen2-VL、JSONL、Parquetなど。`repo-dataset`はレンダリングを行い、データの選択は行いません。
|
|
155
177
|
|
|
156
178
|
## インストール
|
|
157
179
|
|
|
@@ -159,11 +181,11 @@ sdlab split build --project star-freight # zero subject leakage
|
|
|
159
181
|
npm install -g @mcptoolshop/style-dataset-lab
|
|
160
182
|
```
|
|
161
183
|
|
|
162
|
-
|
|
184
|
+
Node.js 20+と、ローカルホストの8188ポートで動作する[ComfyUI](https://github.com/comfyanonymous/ComfyUI)が必要です(生成用)。
|
|
163
185
|
|
|
164
186
|
### ComfyUIなしで試す
|
|
165
187
|
|
|
166
|
-
ComfyUI
|
|
188
|
+
バンドルされたスター・フレイトプロジェクトを使用して、完全な非生成機能(検査、キュレーション、スナップショット、分割、エクスポート)を、ComfyUIのインストールやSDXLウェイトのダウンロードなしで探索できます。
|
|
167
189
|
|
|
168
190
|
```bash
|
|
169
191
|
# Scaffold a fresh project (no ComfyUI needed)
|
|
@@ -176,13 +198,13 @@ sdlab project doctor --project test
|
|
|
176
198
|
sdlab snapshot create --dry-run --project star-freight
|
|
177
199
|
```
|
|
178
200
|
|
|
179
|
-
`sdlab project doctor
|
|
201
|
+
`sdlab project doctor`は、すべてのプロジェクト設定(憲法、ルート、ルーブリック、用語)を検証し、GPUに触れることなく有効性を報告します。生成された状態を変更するコマンドはすべて、最初に効果をプレビューするために`--dry-run`を受け入れます。
|
|
180
202
|
|
|
181
|
-
`--project
|
|
203
|
+
`--project`を忘れた場合、CLIは`projects/`の下で最初に見つかったプロジェクトにフォールバックし、警告を表示します。警告を抑制するには、`--project`を明示的に指定してください。
|
|
182
204
|
|
|
183
|
-
###
|
|
205
|
+
### 中断された実行の再開
|
|
184
206
|
|
|
185
|
-
|
|
207
|
+
長時間の生成実行は、完了した作業をやり直さずに再開できます。
|
|
186
208
|
|
|
187
209
|
```bash
|
|
188
210
|
# Skip subjects whose record + image are already on disk.
|
|
@@ -194,41 +216,41 @@ sdlab generate inputs/prompts/wave1.json --project my-project --resume
|
|
|
194
216
|
sdlab batch generate --resume batch_2026-04-22_001 --project my-project
|
|
195
217
|
```
|
|
196
218
|
|
|
197
|
-
|
|
219
|
+
両方のコマンドが機能するのは、各スロットが完了時にマニフェストエントリをアトミックに書き込むためです。実行中にクラッシュが発生しても、部分的な状態が破損することはありません。
|
|
198
220
|
|
|
199
221
|
## トラブルシューティング
|
|
200
222
|
|
|
201
|
-
|
|
223
|
+
一般的なエラーとその修正:
|
|
202
224
|
|
|
203
|
-
**`
|
|
204
|
-
ComfyUIが実行されていません。ComfyUIを起動します(`python main.py --listen 127.0.0.1 --port 8188
|
|
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`を設定します。
|
|
205
227
|
|
|
206
|
-
**`missing checkpoint` / `LoRA weight not found
|
|
207
|
-
|
|
228
|
+
**`missing checkpoint` / `LoRA weight not found`**
|
|
229
|
+
ワークフロープロファイルで、ComfyUIの`models/checkpoints/`または`models/loras/`フォルダにないモデルファイルを指定しています。`projects/<project>/workflows/profiles/<profile>.json`を開き、`checkpoint`または`lora`フィールドを見つけて、参照されているウェイトをダウンロードするか、すでに持っているものと置き換えます。`sdlab project doctor --project <project>`を再実行して、修正を確認します。
|
|
208
230
|
|
|
209
|
-
**`sdlab project doctor
|
|
210
|
-
Doctor
|
|
211
|
-
- `E_PROJECT_NOT_FOUND
|
|
212
|
-
- `E_CONFIG_INVALID
|
|
213
|
-
- `E_RECORD_DRIFT
|
|
231
|
+
**`sdlab project doctor`のエラー**
|
|
232
|
+
Doctorは構造化されたエラーコードを返します。一般的なもの:
|
|
233
|
+
- `E_PROJECT_NOT_FOUND` — プロジェクトディレクトリが`projects/`の下に存在しません。スペルを確認してください。
|
|
234
|
+
- `E_CONFIG_INVALID` — 5つのJSON設定ファイルのいずれかが、スキーマ検証に失敗しました。`hint`フィールドには、問題のあるファイルとフィールドの名前が表示されます。
|
|
235
|
+
- `E_RECORD_DRIFT` — レコードの設定フィンガープリントが、そのソースと一致しなくなりました。ヒントに従って、再キュレーションまたは再バインドしてください。
|
|
214
236
|
|
|
215
|
-
**`No --project specified, falling back to <name
|
|
216
|
-
|
|
237
|
+
**`No --project specified, falling back to <name>`**
|
|
238
|
+
軽度の警告です。`--project <name>`を明示的に指定して、適切なプロジェクトを選択し、警告を抑制します。
|
|
217
239
|
|
|
218
|
-
|
|
219
|
-
|
|
240
|
+
**Painterly / VRAMのメモリ不足の問題**
|
|
241
|
+
`docs/internal/HANDOFF.md`を参照して、Painterlyのデノイズ調整に関する注意事項を確認してください。要するに:デノイズ強度を下げたり、バッチサイズを減らしたり、ワークフロープロファイルでより小さいチェックポイントに切り替えたりします。
|
|
220
242
|
|
|
221
243
|
**バグの報告**
|
|
222
|
-
|
|
244
|
+
https://github.com/mcp-tool-shop-org/style-dataset-lab/issues に、sdlabバージョン(`sdlab --version`)、Nodeバージョン(`node -v`)、完全なコマンド、および構造化されたエラー出力を添えて問題を報告してください。バグ報告テンプレートには、フィールドが事前に設定されています。
|
|
223
245
|
|
|
224
246
|
## セキュリティ
|
|
225
247
|
|
|
226
|
-
|
|
248
|
+
ローカルでのみ動作します。テレメトリ、分析、外部リクエストはありません。画像はGPUとファイルシステムにのみ保存されます。
|
|
227
249
|
|
|
228
250
|
## ライセンス
|
|
229
251
|
|
|
230
|
-
MIT
|
|
252
|
+
MIT
|
|
231
253
|
|
|
232
254
|
---
|
|
233
255
|
|
|
234
|
-
|
|
256
|
+
MCP Tool Shopによって作成されました。
|
package/README.md
CHANGED
|
@@ -58,6 +58,28 @@ sdlab reingest selected --selection selection_2026-04-16_001
|
|
|
58
58
|
|
|
59
59
|
That last command is the point. Selected outputs come back through the same review process as everything else. The corpus grows and the rules hold.
|
|
60
60
|
|
|
61
|
+
## Canon authoring
|
|
62
|
+
|
|
63
|
+
Before the dataset pipeline runs, the `sdlab canon *` namespace turns your project's canon entity store into the three projections training and production actually consume — and locks the entries that must not drift.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Build three projections from the canon entity store:
|
|
67
|
+
# dataset.jsonl → training adapters
|
|
68
|
+
# prompts/*.j2 → ComfyUI workflow invocation
|
|
69
|
+
# context/*.md → Role OS narrative dispatch
|
|
70
|
+
sdlab canon build --project my-project
|
|
71
|
+
|
|
72
|
+
# Freeze an entry so regeneration can't silently change it
|
|
73
|
+
sdlab canon freeze kael_maren --project my-project --reason "prologue portrait locked"
|
|
74
|
+
|
|
75
|
+
# Report drift on frozen entries since the last clean build
|
|
76
|
+
sdlab canon drift --project my-project
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`canon build` is content-addressable — its output is keyed by a `canon_sha` and cached, so an unchanged canon rebuilds instantly. `canon freeze` witnesses each freeze against a specific build and appends to a `freeze-events.jsonl` audit trail: `frozen` entries refuse regeneration outright, `soft-advisory` entries refuse by default (bypass with `--i-know`). `canon drift` recomputes every watched entry's hash and flags anything that moved since the last clean build.
|
|
80
|
+
|
|
81
|
+
Full workflow in the handbook: [Canon build](handbook/canon-build/), [Canon freeze](handbook/canon-freeze/), and [Two-LoRA stacking](handbook/two-lora-stacking/).
|
|
82
|
+
|
|
61
83
|
## What it produces
|
|
62
84
|
|
|
63
85
|
Seven dataset artifacts and a full production workbench. Each artifact links to its predecessors so you can trace any training record back to the rule that approved it.
|