@mcptoolshop/style-dataset-lab 3.0.1 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/README.es.md +154 -41
  3. package/README.fr.md +153 -40
  4. package/README.hi.md +160 -47
  5. package/README.it.md +155 -42
  6. package/README.ja.md +159 -46
  7. package/README.md +40 -0
  8. package/README.pt-BR.md +154 -41
  9. package/README.zh.md +154 -41
  10. package/bin/sdlab.js +81 -2
  11. package/lib/adapters/ai-toolkit.js +209 -0
  12. package/lib/adapters/comfyui-runner.js +11 -15
  13. package/lib/adapters/comfyui-workflows.js +133 -2
  14. package/lib/adapters/diffusers-lora.js +46 -66
  15. package/lib/adapters/generic-image-caption.js +22 -50
  16. package/lib/batch-runs.js +62 -0
  17. package/lib/canon-build/build.js +450 -0
  18. package/lib/canon-build/emitters/base.js +122 -0
  19. package/lib/canon-build/emitters/character.js +167 -0
  20. package/lib/canon-build/emitters/deity.js +165 -0
  21. package/lib/canon-build/emitters/faction.js +161 -0
  22. package/lib/canon-build/emitters/index.js +38 -0
  23. package/lib/canon-build/emitters/location.js +153 -0
  24. package/lib/canon-build/emitters/monster.js +131 -0
  25. package/lib/canon-build/emitters/relic.js +142 -0
  26. package/lib/canon-build/emitters/ship.js +154 -0
  27. package/lib/canon-build/emitters/species.js +165 -0
  28. package/lib/canon-build/frontmatter.js +76 -0
  29. package/lib/canon-build/lane-resolve.js +64 -0
  30. package/lib/canon-build/load-config.js +117 -0
  31. package/lib/canon-build/load-entry.js +62 -0
  32. package/lib/canon-build/load-schema.js +46 -0
  33. package/lib/captions.js +197 -0
  34. package/lib/comfyui-output.js +70 -0
  35. package/lib/config.js +19 -0
  36. package/lib/freeze-events.js +109 -0
  37. package/lib/freeze-gate.js +165 -0
  38. package/lib/freeze-stamp.js +161 -0
  39. package/lib/rows.js +228 -0
  40. package/lib/training-adapters.js +84 -0
  41. package/lib/training-packages.js +25 -32
  42. package/lib/training-profiles.js +43 -0
  43. package/package.json +29 -2
  44. package/scripts/_batch_cut.py +71 -0
  45. package/scripts/_seam_cutout.py +74 -0
  46. package/scripts/batch-generate.js +56 -13
  47. package/scripts/canon-build.js +88 -0
  48. package/scripts/canon-drift.js +193 -0
  49. package/scripts/canon-freeze-status.js +85 -0
  50. package/scripts/canon-freeze.js +211 -0
  51. package/scripts/canon-unfreeze.js +137 -0
  52. package/scripts/curate.js +12 -0
  53. package/scripts/generate-controlnet.js +12 -0
  54. package/scripts/generate-identity.js +20 -4
  55. package/scripts/generate-ipadapter.js +11 -0
  56. package/scripts/generate.js +250 -102
  57. package/scripts/qwen_generate.py +124 -0
package/README.it.md CHANGED
@@ -8,16 +8,18 @@
8
8
 
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/@mcptoolshop/style-dataset-lab"><img src="https://img.shields.io/npm/v/@mcptoolshop/style-dataset-lab" alt="npm"></a>
11
+ <a href="https://github.com/mcp-tool-shop-org/style-dataset-lab/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/style-dataset-lab/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
12
+ <a href="https://codecov.io/gh/mcp-tool-shop-org/style-dataset-lab"><img src="https://codecov.io/gh/mcp-tool-shop-org/style-dataset-lab/branch/main/graph/badge.svg" alt="codecov"></a>
11
13
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
12
14
  </p>
13
15
 
14
- Scrivete le vostre regole visive. Generate opere d'arte. Valutate ogni immagine in base a tali regole. Distribuite i risultati come dati di addestramento versionati e verificabili.
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.
15
17
 
16
- Style Dataset Lab collega le caratteristiche del vostro stile artistico definite in precedenza al set di dati utilizzato per l'addestramento. Definite una "costituzione" che includa regole sulla silhouette, vincoli di palette, linguaggio dei materiali, o qualsiasi altro aspetto rilevante per il vostro progetto. Il sistema genera candidati, li valuta in base a tali regole e confeziona le opere approvate in set di dati riproducibili, in cui ogni elemento spiega perché è stato incluso.
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.
17
19
 
18
- Il ciclo si chiude: addestrate un modello, generate nuovi risultati, valutateli in base agli stessi criteri e reinserite ciò che supera i test. Il set di dati cresce e le regole rimangono valide.
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.
19
21
 
20
- ## La pipeline
22
+ ## Il flusso di lavoro
21
23
 
22
24
  ```bash
23
25
  # Write your canon. Scaffold the project.
@@ -28,59 +30,104 @@ sdlab generate inputs/prompts/wave1.json --project my-project
28
30
  sdlab curate <id> approved "Strong silhouette, correct faction palette"
29
31
 
30
32
  # Bind approved work to constitution rules
31
- sdlab bind --project my-project
33
+ # (`sdlab bind` is a shorter alias for `canon-bind`)
34
+ sdlab canon-bind --project my-project
32
35
 
33
36
  # Freeze a versioned dataset
34
37
  sdlab snapshot create --project my-project
35
38
  sdlab split build
36
39
  sdlab export build
37
40
 
38
- # Build a training package and close the loop
41
+ # Build a training package
39
42
  sdlab training-manifest create --profile character-style-lora
40
43
  sdlab training-package build
41
- sdlab eval-run create && sdlab eval-run score <id> --outputs results.jsonl
42
- sdlab reingest generated --source ./outputs --manifest <id>
44
+
45
+ # Compile a production brief and run it
46
+ sdlab brief compile --workflow character-portrait-set --subject kael_maren
47
+ sdlab run generate --brief brief_2026-04-16_001
48
+
49
+ # Critique, refine, batch-produce
50
+ sdlab critique --run run_2026-04-16_001
51
+ sdlab refine --run run_2026-04-16_001 --pick 001.png
52
+ sdlab batch generate --mode expression-sheet --subject kael_maren
53
+
54
+ # Select the best outputs and bring them back
55
+ sdlab select --run run_2026-04-16_001 --approve 001.png,003.png
56
+ sdlab reingest selected --selection selection_2026-04-16_001
57
+ ```
58
+
59
+ 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
43
77
  ```
44
78
 
45
- L'ultimo comando è fondamentale. I risultati generati vengono sottoposti allo stesso processo di revisione di tutto il resto. Il ciclo si chiude.
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/).
46
82
 
47
83
  ## Cosa produce
48
84
 
49
- Sette artefatti versionati e con checksum. Ognuno è collegato ai suoi predecessori, in modo da poter risalire a qualsiasi record di addestramento alla regola che lo ha approvato.
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.
50
86
 
51
- | Artefatto. | Cos'è. |
87
+ | Artefatto | Cos'è |
52
88
  |----------|-----------|
53
- | **Snapshot** | Selezione di record "congelati" con impronta di configurazione. Ogni inclusione ha una motivazione esplicita. |
54
- | **Split** | Partizione di addestramento/validazione/test in cui le famiglie di soggetti non si sovrappongono. |
55
- | **Export package** | Set di dati autonomo: manifest, metadati, immagini, suddivisioni, scheda del set di dati, checksum. |
56
- | **Eval pack** | Compiti di test sensibili al "canone": copertura delle "lane", deriva proibita, ancoraggi/modelli di riferimento, continuità dei soggetti. |
57
- | **Training package** | Layout pronto per l'addestramento tramite adattatori (`diffusers-lora`, `generic-image-caption`). Stessa verità, formato diverso. |
58
- | **Eval scorecard** | Valutazione di superamento/non superamento per ogni compito, in base alla valutazione dei risultati generati rispetto ai set di valutazione. |
59
- | **Implementation pack** | Esempi di prompt, errori noti, test di continuità e indicazioni per il reinserimento. |
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. |
96
+
97
+ L'ambiente di lavoro di produzione aggiunge:
98
+
99
+ | Superficie | Cosa fa |
100
+ |---------|-------------|
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. |
60
107
 
61
108
  ## Perché esiste
62
109
 
63
- I dati di addestramento sono l'elemento più importante in qualsiasi pipeline di intelligenza artificiale visiva. Tuttavia, la maggior parte dei dati di addestramento è costituita da una cartella di immagini senza una cronologia, senza una traccia di valutazione e senza un collegamento alle regole di stile che avrebbero dovuto seguire.
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.
64
111
 
65
- Style Dataset Lab rende esplicito questo collegamento. La vostra "costituzione" definisce le regole. La vostra "rubrica" definisce le dimensioni della valutazione. I vostri registri di "curazione" documentano la valutazione. La vostra "prova canonica" dimostra il collegamento. E il vostro set di dati porta con sé tutto questo come una verità strutturata, interrogabile e riproducibile.
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.
66
113
 
67
- Il risultato pratico: quando il vostro LoRA si discosta, potete capire *perché*. Quando la vostra prossima fase di addestramento necessita di dati migliori, sapete esattamente quali record sono "quasi giusti" e quale singola regola hanno violato. Quando un nuovo membro del team chiede qual è il linguaggio visivo del progetto, la risposta non è una lavagna Figma, ma una "costituzione" ricercabile con 1.182 esempi valutati.
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.
68
115
 
69
116
  ## Cinque domini, regole reali
70
117
 
71
- Non modelli di esempio. Ogni dominio viene fornito con regole di "costituzione" di livello professionale, definizioni di "lane", rubriche di valutazione e vocabolario di gruppo.
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.
72
119
 
73
- | Dominio. | Lane. | Cosa viene valutato. |
120
+ | Dominio | Corsie | Cosa viene valutato |
74
121
  |--------|-------|-----------------|
75
- | **game-art** | personaggio, ambiente, oggetto, interfaccia utente, nave, interno, attrezzatura. | Silhouette alla scala del gameplay, interpretazione della fazione, usura e invecchiamento. |
76
- | **character-design** | ritratto, figura intera, vista a 360°, foglio di espressioni, posa d'azione. | proporzioni, logica dell'abbigliamento, personalità, chiarezza dei gesti. |
77
- | **creature-design** | concept, ortografico, studio dei dettagli, azione, riferimento delle dimensioni, habitat. | anatomia, logica evolutiva, distinzione della silhouette. |
78
- | **architecture** | esterno, interno, paesaggio urbano, dettaglio strutturale, rovina, paesaggio. | struttura, coerenza dei materiali, prospettiva, coerenza dell'epoca. |
79
- | **vehicle-mech** | esterno, cabina di pilotaggio, componente, schema, foglio di silhouette, variante danneggiata. | logica meccanica, linguaggio del design, punti di accesso, narrazione dei danni. |
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 |
80
127
 
81
128
  ## Struttura del progetto
82
129
 
83
- Ogni progetto è autonomo. Cinque file di configurazione JSON definiscono le regole; il resto è costituito da dati.
130
+ Ogni progetto è autonomo. Cinque file di configurazione JSON definiscono le regole; tutto il resto sono dati.
84
131
 
85
132
  ```
86
133
  projects/my-project/
@@ -94,21 +141,27 @@ projects/my-project/
94
141
  splits/ Train/val/test partitions
95
142
  exports/ Versioned export packages
96
143
  training/ Profiles, manifests, packages, eval runs, implementations
144
+ workflows/ Workflow profiles + batch mode definitions
145
+ briefs/ Compiled generation briefs
146
+ runs/ Execution artifacts (brief + outputs + manifest)
147
+ batches/ Coordinated multi-slot productions
148
+ selections/ Chosen outputs with reasons and provenance
149
+ inbox/generated/ Re-ingested images awaiting review
97
150
  ```
98
151
 
99
- ## Principi fondamentali
152
+ ## Proprietà di affidabilità
100
153
 
101
- Questi principi non sono solo aspirazionali, ma vengono applicati rigorosamente.
154
+ Queste non sono semplici aspirazioni. Sono applicate rigorosamente.
102
155
 
103
- - **Gli snapshot sono immutabili.** L'impronta digitale della configurazione (SHA-256) dimostra che nulla è cambiato.
104
- - **Le suddivisioni impediscono la fuoriuscita di dati.** Le famiglie di soggetti (definite da identità, lignaggio o suffisso ID) non attraversano i confini delle partizioni.
105
- - **I manifesti sono contratti vincolanti.** Esportazione dell'hash + impronta digitale della configurazione. Se qualcosa cambia, è necessario crearne uno nuovo.
106
- - **Gli adattatori non possono alterare i dati.** Layout diversi, ma stessi record. Nessuna aggiunta, nessuna rimozione, nessuna riclassificazione.
107
- - **Gli output generati vengono riesaminati.** Non ci sono scorciatoie. Vengono curati e collegati come tutto il resto.
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.
108
161
 
109
162
  ## Star Freight
110
163
 
111
- Il repository include un esempio completo e funzionante: 1.182 record, 5 fazioni, 7 percorsi, 24 regole costituzionali, 892 risorse approvate, 2 profili di addestramento. Un canone visivo di un RPG fantascientifico, completamente curato.
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.
112
165
 
113
166
  ```bash
114
167
  git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
@@ -118,9 +171,9 @@ sdlab snapshot create --project star-freight # 839 eligible records
118
171
  sdlab split build --project star-freight # zero subject leakage
119
172
  ```
120
173
 
121
- ## Formati di output
174
+ ## Formati downstream
122
175
 
123
- `sdlab` è proprietaria del dataset. 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 la conversione; non decide quali dati includere.
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.
124
177
 
125
178
  ## Installazione
126
179
 
@@ -128,11 +181,71 @@ sdlab split build --project star-freight # zero subject leakage
128
181
  npm install -g @mcptoolshop/style-dataset-lab
129
182
  ```
130
183
 
131
- Richiede Node.js 20+ e [ComfyUI](https://github.com/comfyanonymous/ComfyUI) installato localmente all'indirizzo localhost:8188 per la generazione.
184
+ Richiede Node.js 20+ e [ComfyUI](https://github.com/comfyanonymous/ComfyUI) su localhost:8188 per la generazione.
185
+
186
+ ### Prova senza ComfyUI
187
+
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.
189
+
190
+ ```bash
191
+ # Scaffold a fresh project (no ComfyUI needed)
192
+ sdlab init test --domain game-art
193
+
194
+ # Run the canonical health check (no ComfyUI needed)
195
+ sdlab project doctor --project test
196
+
197
+ # Dry-run a snapshot against the bundled Star Freight corpus
198
+ sdlab snapshot create --dry-run --project star-freight
199
+ ```
200
+
201
+ `sdlab project doctor` 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.
202
+
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.
204
+
205
+ ### Ripresa di un'esecuzione interrotta
206
+
207
+ Le lunghe esecuzioni di generazione possono essere riprese senza ripetere il lavoro completato:
208
+
209
+ ```bash
210
+ # Skip subjects whose record + image are already on disk.
211
+ # Seeds are preserved — resumed runs are bit-identical to fresh ones.
212
+ sdlab generate inputs/prompts/wave1.json --project my-project --resume
213
+
214
+ # Re-run only failed/missing slots in an existing batch.
215
+ # Inherits mode/subject/theme from the prior manifest.
216
+ sdlab batch generate --resume batch_2026-04-22_001 --project my-project
217
+ ```
218
+
219
+ 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.
220
+
221
+ ## Risoluzione dei problemi
222
+
223
+ Modalità di errore comuni e soluzioni:
224
+
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`.
227
+
228
+ **`missing checkpoint` / `LoRA weight not found`**
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.
230
+
231
+ **Errori di `sdlab project doctor`**
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.
236
+
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.
239
+
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.
242
+
243
+ **Segnalazione di bug**
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.
132
245
 
133
246
  ## Sicurezza
134
247
 
135
- Funziona solo localmente. Nessuna telemetria, nessuna analisi, nessuna richiesta esterna. Le immagini rimangono sulla GPU e sul filesystem locale.
248
+ Solo locale. Nessun telemetria, nessuna analisi, nessuna richiesta esterna. Le immagini rimangono sulla GPU e sul file system.
136
249
 
137
250
  ## Licenza
138
251
 
@@ -140,4 +253,4 @@ MIT
140
253
 
141
254
  ---
142
255
 
143
- Creato da <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
256
+ Realizzato da <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
package/README.ja.md CHANGED
@@ -8,14 +8,16 @@
8
8
 
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/@mcptoolshop/style-dataset-lab"><img src="https://img.shields.io/npm/v/@mcptoolshop/style-dataset-lab" alt="npm"></a>
11
+ <a href="https://github.com/mcp-tool-shop-org/style-dataset-lab/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/style-dataset-lab/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
12
+ <a href="https://codecov.io/gh/mcp-tool-shop-org/style-dataset-lab"><img src="https://codecov.io/gh/mcp-tool-shop-org/style-dataset-lab/branch/main/graph/badge.svg" alt="codecov"></a>
11
13
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
12
14
  </p>
13
15
 
14
- 視覚的なルールを定義してください。それに基づいて画像を生成し、生成されたすべての画像をそのルールに照らし合わせて評価します。そして、バージョン管理された、監査可能なトレーニングデータとして結果を配布します。
16
+ 自分のビジュアルルールを記述します。アートを生成します。すべての画像をそれらのルールに対して評価します。結果をバージョン管理された、監査可能なトレーニングデータとして出力し、次に、トレーニング済みのモデルを実際の制作ワークフローで活用し、最高の出力をコーパスに再投入します。
15
17
 
16
- Style Dataset Labは、お客様が記述されたアートスタイルに関する情報と、実際に学習に使用するデータセットを連携させます。お客様は、シルエットのルール、カラーパレットの制限、素材に関する記述など、プロジェクトにとって重要な要素を定義します。このシステムは、定義されたルールに基づいて候補を生成し、それらを評価し、承認された作品を再現可能なデータセットにまとめます。このデータセットでは、各レコードが、なぜその作品が選択されたのかを説明しています。
18
+ スタイルデータセットラボは、アートスタイルに関する記述と、実際にトレーニングに使用するデータセットを結びつけ、その後、制作プロセス全体を通してそのループを閉じます。プロジェクトにとって重要な要素(シルエットルール、パレットの制約、マテリアルの表現など)を定義します。パイプラインは候補を生成し、それらをルールに基づいて評価し、承認されたものを再現可能なデータセットにパッケージ化します。各レコードには、なぜそれが含まれたのかが説明されています。
17
19
 
18
- このプロセスはループを形成します。モデルを訓練し、新しい出力を生成し、それらを同じ基準で評価し、評価基準を満たしたものをデータセットに再取り込みます。データセットは徐々に成長し、そのルールは維持されます。
20
+ 次に、制作ワークベンチが引き継ぎます。プロジェクトの要件から生成指示をまとめ、ComfyUIで実行し、出力を評価し、表現シートや環境ボードを一括作成し、最良の結果を選択して、新しい候補として再取り込みます。このループは、生成、選択、レビュー、強化という流れで閉じられます。
19
21
 
20
22
  ## パイプライン
21
23
 
@@ -28,59 +30,104 @@ sdlab generate inputs/prompts/wave1.json --project my-project
28
30
  sdlab curate <id> approved "Strong silhouette, correct faction palette"
29
31
 
30
32
  # Bind approved work to constitution rules
31
- sdlab bind --project my-project
33
+ # (`sdlab bind` is a shorter alias for `canon-bind`)
34
+ sdlab canon-bind --project my-project
32
35
 
33
36
  # Freeze a versioned dataset
34
37
  sdlab snapshot create --project my-project
35
38
  sdlab split build
36
39
  sdlab export build
37
40
 
38
- # Build a training package and close the loop
41
+ # Build a training package
39
42
  sdlab training-manifest create --profile character-style-lora
40
43
  sdlab training-package build
41
- sdlab eval-run create && sdlab eval-run score <id> --outputs results.jsonl
42
- sdlab reingest generated --source ./outputs --manifest <id>
44
+
45
+ # Compile a production brief and run it
46
+ sdlab brief compile --workflow character-portrait-set --subject kael_maren
47
+ sdlab run generate --brief brief_2026-04-16_001
48
+
49
+ # Critique, refine, batch-produce
50
+ sdlab critique --run run_2026-04-16_001
51
+ sdlab refine --run run_2026-04-16_001 --pick 001.png
52
+ sdlab batch generate --mode expression-sheet --subject kael_maren
53
+
54
+ # Select the best outputs and bring them back
55
+ sdlab select --run run_2026-04-16_001 --approve 001.png,003.png
56
+ sdlab reingest selected --selection selection_2026-04-16_001
43
57
  ```
44
58
 
45
- 最後のコマンドが重要な点です。生成された出力も、他のものと同様に、同じ審査プロセスを経ます。これにより、一連の作業が完了し、サイクルが閉じます。
59
+ 最後のコマンドがポイントです。選択された出力は、他のすべてのものと同様に、同じレビュープロセスを経て再利用されます。コーパスが増加し、ルールは維持されます。
60
+
61
+ ## カノンオーサリング
62
+
63
+ データセットパイプラインを実行する前に、`sdlab canon *`名前空間は、プロジェクトのカノンエンティティストアを、実際のトレーニングと制作で使用される3つのプロジェクションに変換し、変更してはならないエントリをロックします。
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
+ ```
46
78
 
47
- ## それが生成するものは何か
79
+ `canon build`はコンテンツアドレス指定であり、その出力は`canon_sha`でキー付けされ、キャッシュされます。そのため、変更されていないカノンは瞬時に再構築されます。`canon freeze`は、各フリーズを特定のビルドに対して記録し、`freeze-events.jsonl`監査トレイルに追加します。`frozen`エントリは完全に再生成を拒否し、`soft-advisory`エントリはデフォルトで拒否しますが(`--i-know`オプションで回避できます)。`canon drift`は、監視対象のすべてのエントリのハッシュを再計算し、最後のクリーンビルド以降に変更されたものをフラグします。
48
80
 
49
- バージョン管理された7つのデータセットがあり、それぞれにチェックサムが付与されています。各データセットは、その前のバージョンとリンクされており、これにより、どのトレーニング記録も、それを承認したルールまで遡って追跡することができます。
81
+ 完全なワークフローについては、ハンドブックをご覧ください。[カノンビルド](handbook/canon-build/)、[カノンフリーズ](handbook/canon-freeze/)、および[Two-LoRAスタッキング](handbook/two-lora-stacking/)。
50
82
 
51
- | 成果物 | 内容 |
83
+ ## 生成されるもの
84
+
85
+ 7つのデータセット成果物と完全な制作ワークベンチ。各成果物は、その先行するものにリンクされており、トレーニングレコードを承認したルールまで追跡できます。
86
+
87
+ | 成果物 | 概要 |
52
88
  |----------|-----------|
53
- | **Snapshot** | 設定情報と合わせて、一度記録されたデータは固定され、変更されません。すべてのデータには、そのデータが記録された理由が明示的に記載されています。 |
54
- | **Split** | 学習データ、検証データ、テストデータに分割する際、対象となる家族がデータセットの境界線をまたがないようにする。 |
55
- | **Export package** | 自己完結型のデータセット:マニフェスト、メタデータ、画像、分割データ、データセットの説明、およびチェックサム。 |
56
- | **Eval pack** | 規定に準拠した検証タスク:表現の網羅性、許容されない変化、基準/正解データ、対象の一貫性。 |
57
- | **Training package** | アダプター(`diffusers-lora`、`generic-image-caption`)を使用することで、トレーニングに適した構成にすることができます。同じ原理に基づいているものの、形式が異なります。 |
58
- | **Eval scorecard** | 各タスクごとに、評価データセットと照合して生成された結果に基づいて、合格/不合格を判定します。 |
59
- | **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** | プロンプト例、既知の失敗、連続性テスト、および再取り込みガイダンス。 |
96
+
97
+ 制作ワークベンチは以下を追加します:
60
98
 
61
- ## なぜこれが存在するのか
99
+ | 表面 | 機能 |
100
+ |---------|-------------|
101
+ | **Compiled brief** | ワークフロープロファイルとプロジェクトの要件からの決定的な生成指示。 |
102
+ | **Run** | フリーズされた実行成果物:ブリーフィング+シード+ComfyUI出力+マニフェスト。 |
103
+ | **Critique** | カノンに対する実行出力の構造化された多次元評価。 |
104
+ | **Batch** | 調整されたマルチスロット制作(表現シート、環境ボード、シルエットパック)。 |
105
+ | **Selection** | クリエイティブな意思決定成果物:どの出力が選択され、その理由は何で、どこから来たのか。 |
106
+ | **Re-ingest** | 選択された出力は、完全な生成の来歴とともに、候補レコードとして返されます。 |
62
107
 
63
- トレーニングデータは、あらゆる画像認識AIのパイプラインにおいて、最も重要な要素です。しかし、多くのトレーニングデータは、履歴や判断の記録が一切なく、また、本来従うべきスタイルルールとの関連性も欠けている、単なる画像ファイル群に過ぎません。
108
+ ## このシステムが存在する理由
64
109
 
65
- Style Dataset Labは、これらの要素間の関連性を明確に示します。あなたの規定はルールを定義し、評価基準は評価の基準を定義します。キュレーション記録は判断を記録し、規範文書は関連性を証明します。そして、あなたのデータセットは、これらの要素を構造化された、検索可能で、再現可能な真実として体系的にまとめて提供します。
110
+ トレーニングデータは、あらゆるビジュアルAIパイプラインにおいて最も効果的な成果物です。しかし、ほとんどのトレーニングデータは、履歴も、判断の記録も、従うべきスタイルルールとの関連性もない、単なる画像のフォルダーにすぎません。
66
111
 
67
- 具体的な結果として、LoRAモデルの性能が低下した場合、「なぜ」その原因を特定できます。また、次の学習ラウンドでより良いデータが必要になった場合、どのデータがわずかに基準に達していないのか、そしてそれがどの特定のルールに違反しているのかを正確に把握できます。さらに、新しいチームメンバーがプロジェクトのビジュアル表現について質問された場合、答えはFigmaのボードではなく、1,182の評価済みサンプルを含む、検索可能な規定書となります。
112
+ スタイルデータセットラボは、この関連性を明確にします。あなたの憲法がルールを定義します。あなたのルーブリックがスコアリングの次元を定義します。あなたのキュレーションが判断を記録します。あなたのカノンバインディングがその関連性を証明します。そして、あなたのデータセットは、それらすべてを構造化され、クエリ可能で、再現可能な情報として前進させます。
68
113
 
69
- ## 5つの分野、そして明確なルール
114
+ 実用的な結果:LoRAがドリフトした場合、なぜそうなるのかを尋ねることができます。次のトレーニングラウンドにより良いデータが必要な場合、どのレコードがほぼ合格であり、どの単一のルールに失敗したかを正確に知ることができます。新しいチームメンバーがプロジェクトのビジュアル言語について質問した場合、答えはFigmaボードではなく、1,182件の評価された例を含む検索可能な憲法です。
70
115
 
71
- これは単なるプレースホルダーのテンプレートではありません。各分野には、実用レベルの構成ルール、レーン定義、採点基準、および関連語彙が用意されています。
116
+ ## 5つのドメイン、実際のルール
72
117
 
73
- | ドメイン | 表現 | 何が評価されるのか。 |
118
+ プレースホルダーテンプレートではありません。各ドメインには、実運用レベルのカノン憲法ルール、レーン定義、スコアリングルーブリック、およびグループ語彙が付属しています。
119
+
120
+ | ドメイン | レーン | 評価対象となるもの |
74
121
  |--------|-------|-----------------|
75
- | **game-art** | キャラクター、環境、小道具、UI、船、内装、装備 | ゲームプレイ時の外観、派閥ごとの特徴、使用感、経年劣化。 |
76
- | **character-design** | ポートレート、全身像、アングル図、表情シート、アクションポーズ | プロポーション、衣装の合理性、人物の性格、身振り手振りの表現力。 |
77
- | **creature-design** | コンセプト、正投影図、詳細図、アクション、スケール参照、生息地 | 解剖学的構造、進化論的な論理、シルエットの識別。 |
78
- | **architecture** | 外観、内装、街並み、構造の詳細、廃墟、風景 | 構造、素材の一貫性、視点、時代背景との整合性。 |
79
- | **vehicle-mech** | 外観、コックピット、コンポーネント、設計図、シルエット図、損傷バリエーション | 機械的なロジック、機能的なデザイン言語、アクセスポイント、損害状況の説明 |
122
+ | **game-art** | キャラクター、環境、小道具、UI、船、インテリア、装備 | ゲームプレイ規模でのシルエット、派閥の識別、摩耗と経年変化 |
123
+ | **character-design** | ポートレート、全身像、ターンアラウンド、表現シート、アクションポーズ | プロポーション、衣装の論理、個性、ジェスチャーの明確さ |
124
+ | **creature-design** | コンセプト、オルソグラフィック、詳細な研究、アクション、スケール参照、生息地 | 解剖学、進化の論理、シルエットの区別 |
125
+ | **architecture** | 外観、内装、街並み、構造的な詳細、廃墟、風景 | 構造、マテリアルの整合性、視点、時代の整合性 |
126
+ | **vehicle-mech** | 外観、コックピット、コンポーネント、図面、シルエットシート、損傷バリアント | 機械的な論理、デザイン言語、アクセスポイント、損傷の物語 |
80
127
 
81
- ## プロジェクトの構成
128
+ ## プロジェクトの構造
82
129
 
83
- 各プロジェクトは独立した構成になっています。5つのJSON設定ファイルがルールを定義し、それ以外の部分はすべてデータです。
130
+ 各プロジェクトは独立しています。5つのJSON設定ファイルでルールを定義します。それ以外はすべてデータです。
84
131
 
85
132
  ```
86
133
  projects/my-project/
@@ -94,21 +141,27 @@ projects/my-project/
94
141
  splits/ Train/val/test partitions
95
142
  exports/ Versioned export packages
96
143
  training/ Profiles, manifests, packages, eval runs, implementations
144
+ workflows/ Workflow profiles + batch mode definitions
145
+ briefs/ Compiled generation briefs
146
+ runs/ Execution artifacts (brief + outputs + manifest)
147
+ batches/ Coordinated multi-slot productions
148
+ selections/ Chosen outputs with reasons and provenance
149
+ inbox/generated/ Re-ingested images awaiting review
97
150
  ```
98
151
 
99
- ## 信託財産
152
+ ## 信頼性のためのプロパティ
100
153
 
101
- これらは目標や理想ではなく、義務として定められています。
154
+ これらは理想的なものではありません。強制的に適用されます。
102
155
 
103
- - **スナップショットは不変です。** 設定のフィンガープリント(SHA-256)は、何も変更されていないことを証明します。
104
- - **分割によって情報漏洩を防ぎます。** データセット(ID、系統、またはIDの末尾による分類)は、パーティションの境界を越えることはありません。
105
- - **マニフェストは固定された契約です。** エクスポートのハッシュ値と設定のフィンガープリントを含みます。 何か変更があった場合は、新しいものを新たに作成してください。
106
- - **アダプターは真実を改変できません。** レイアウトは異なる場合でも、同じレコードが含まれます。 追加、削除、再分類は一切ありません。
107
- - **生成された出力は、必ずレビュープロセスを経て再利用されます。** スキップすることはできません。 他のデータと同様に、キュレーションと紐付けを行います。
156
+ - **スナップショットは不変です。** 設定のフィンガープリント(SHA-256)により、変更がないことが証明されます。
157
+ - **分割によってデータの漏洩を防ぎます。** サブジェクトファミリー(ID、系統、またはIDサフィックスによる)は、決してパーティション境界を越えません。
158
+ - **マニフェストは固定された契約です。** エクスポートハッシュ + 設定フィンガープリント。変更がある場合は、新しいものを生成します。
159
+ - **アダプターは真実を変更できません。** レイアウトは異なりますが、レコードは同じです。追加、削除、再分類はありません。
160
+ - **生成された出力は、レビューを通じて再度利用されます。** バイパスはありません。他のものと同様に、キュレーションとバインドを行います。
108
161
 
109
- ## スターフレイト
162
+ ## スター・フレイト
110
163
 
111
- このリポジトリには、完全で動作するサンプルが含まれています。具体的には、1,182件のデータ、5つの派閥、7つのルート、24個の憲法ルール、892個の承認済みアセット、および2つのトレーニングプロファイルが含まれています。これは、徹底的にキュレーションされた、ハードなSF RPGのビジュアル表現です。
164
+ このリポジトリには、完全な動作例が含まれています:1,182件のレコード、5つの派閥、7つのルート、24の憲法ルール、892個の承認済みアセット、2つのトレーニングプロファイル。洗練されたSF RPGのビジュアルカノンで、完全にキュレーションされています。
112
165
 
113
166
  ```bash
114
167
  git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
@@ -118,9 +171,9 @@ sdlab snapshot create --project star-freight # 839 eligible records
118
171
  sdlab split build --project star-freight # zero subject leakage
119
172
  ```
120
173
 
121
- ## 対応形式
174
+ ## 下流形式
122
175
 
123
- `sdlab` がこのデータセットを所有しています。フォーマット変換は、[`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset) によって処理されます。対応形式は、TRL、LLaVA、Qwen2-VL、JSONL、Parquetなどです。`repo-dataset` はデータのレンダリングを担当し、データの取り込みに関する判断は行いません。
176
+ `sdlab`がデータセットを所有します。フォーマット変換は[`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset)によって処理されます:TRL、LLaVA、Qwen2-VL、JSONL、Parquetなど。`repo-dataset`はレンダリングを行い、データの選択は行いません。
124
177
 
125
178
  ## インストール
126
179
 
@@ -128,11 +181,71 @@ sdlab split build --project star-freight # zero subject leakage
128
181
  npm install -g @mcptoolshop/style-dataset-lab
129
182
  ```
130
183
 
131
- 生成には、Node.js 20以降のバージョンと、ローカルホストの8188番ポートで動作している [ComfyUI](https://github.com/comfyanonymous/ComfyUI) が必要です。
184
+ Node.js 20+と、ローカルホストの8188ポートで動作する[ComfyUI](https://github.com/comfyanonymous/ComfyUI)が必要です(生成用)。
185
+
186
+ ### ComfyUIなしで試す
187
+
188
+ バンドルされたスター・フレイトプロジェクトを使用して、完全な非生成機能(検査、キュレーション、スナップショット、分割、エクスポート)を、ComfyUIのインストールやSDXLウェイトのダウンロードなしで探索できます。
189
+
190
+ ```bash
191
+ # Scaffold a fresh project (no ComfyUI needed)
192
+ sdlab init test --domain game-art
193
+
194
+ # Run the canonical health check (no ComfyUI needed)
195
+ sdlab project doctor --project test
196
+
197
+ # Dry-run a snapshot against the bundled Star Freight corpus
198
+ sdlab snapshot create --dry-run --project star-freight
199
+ ```
200
+
201
+ `sdlab project doctor`は、すべてのプロジェクト設定(憲法、ルート、ルーブリック、用語)を検証し、GPUに触れることなく有効性を報告します。生成された状態を変更するコマンドはすべて、最初に効果をプレビューするために`--dry-run`を受け入れます。
202
+
203
+ `--project`を忘れた場合、CLIは`projects/`の下で最初に見つかったプロジェクトにフォールバックし、警告を表示します。警告を抑制するには、`--project`を明示的に指定してください。
204
+
205
+ ### 中断された実行の再開
206
+
207
+ 長時間の生成実行は、完了した作業をやり直さずに再開できます。
208
+
209
+ ```bash
210
+ # Skip subjects whose record + image are already on disk.
211
+ # Seeds are preserved — resumed runs are bit-identical to fresh ones.
212
+ sdlab generate inputs/prompts/wave1.json --project my-project --resume
213
+
214
+ # Re-run only failed/missing slots in an existing batch.
215
+ # Inherits mode/subject/theme from the prior manifest.
216
+ sdlab batch generate --resume batch_2026-04-22_001 --project my-project
217
+ ```
218
+
219
+ 両方のコマンドが機能するのは、各スロットが完了時にマニフェストエントリをアトミックに書き込むためです。実行中にクラッシュが発生しても、部分的な状態が破損することはありません。
220
+
221
+ ## トラブルシューティング
222
+
223
+ 一般的なエラーとその修正:
224
+
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`を設定します。
227
+
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>`を再実行して、修正を確認します。
230
+
231
+ **`sdlab project doctor`のエラー**
232
+ Doctorは構造化されたエラーコードを返します。一般的なもの:
233
+ - `E_PROJECT_NOT_FOUND` — プロジェクトディレクトリが`projects/`の下に存在しません。スペルを確認してください。
234
+ - `E_CONFIG_INVALID` — 5つのJSON設定ファイルのいずれかが、スキーマ検証に失敗しました。`hint`フィールドには、問題のあるファイルとフィールドの名前が表示されます。
235
+ - `E_RECORD_DRIFT` — レコードの設定フィンガープリントが、そのソースと一致しなくなりました。ヒントに従って、再キュレーションまたは再バインドしてください。
236
+
237
+ **`No --project specified, falling back to <name>`**
238
+ 軽度の警告です。`--project <name>`を明示的に指定して、適切なプロジェクトを選択し、警告を抑制します。
239
+
240
+ **Painterly / VRAMのメモリ不足の問題**
241
+ `docs/internal/HANDOFF.md`を参照して、Painterlyのデノイズ調整に関する注意事項を確認してください。要するに:デノイズ強度を下げたり、バッチサイズを減らしたり、ワークフロープロファイルでより小さいチェックポイントに切り替えたりします。
242
+
243
+ **バグの報告**
244
+ https://github.com/mcp-tool-shop-org/style-dataset-lab/issues に、sdlabバージョン(`sdlab --version`)、Nodeバージョン(`node -v`)、完全なコマンド、および構造化されたエラー出力を添えて問題を報告してください。バグ報告テンプレートには、フィールドが事前に設定されています。
132
245
 
133
246
  ## セキュリティ
134
247
 
135
- ローカル環境でのみ動作します。テレメトリー、分析、外部へのリクエストは一切ありません。画像はすべて、あなたのGPUとファイルシステム内に保存されます。
248
+ ローカルでのみ動作します。テレメトリ、分析、外部リクエストはありません。画像はGPUとファイルシステムにのみ保存されます。
136
249
 
137
250
  ## ライセンス
138
251
 
@@ -140,4 +253,4 @@ MIT
140
253
 
141
254
  ---
142
255
 
143
- 開発:<a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
256
+ MCP Tool Shopによって作成されました。