@mcptoolshop/style-dataset-lab 3.0.0 → 3.1.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 (99) hide show
  1. package/CHANGELOG.md +108 -15
  2. package/CODE_OF_CONDUCT.md +9 -0
  3. package/CONTRIBUTING.md +71 -0
  4. package/README.es.md +99 -8
  5. package/README.fr.md +100 -9
  6. package/README.hi.md +102 -9
  7. package/README.it.md +99 -8
  8. package/README.ja.md +100 -9
  9. package/README.md +64 -1
  10. package/README.pt-BR.md +99 -8
  11. package/README.zh.md +100 -9
  12. package/SECURITY.md +6 -5
  13. package/bin/sdlab.js +289 -62
  14. package/lib/adapters/comfyui-runner.js +11 -15
  15. package/lib/adapters/diffusers-lora.js +7 -2
  16. package/lib/adapters/generic-image-caption.js +6 -1
  17. package/lib/args.js +200 -13
  18. package/lib/batch-compiler.js +7 -3
  19. package/lib/batch-runs.js +162 -31
  20. package/lib/batch-sheet-render.js +5 -2
  21. package/lib/brief-compiler.js +38 -11
  22. package/lib/card.js +11 -4
  23. package/lib/comfyui-output.js +70 -0
  24. package/lib/comfyui.js +100 -6
  25. package/lib/config.js +68 -3
  26. package/lib/deprecation.js +1 -1
  27. package/lib/eval-pack.js +94 -4
  28. package/lib/eval-runs.js +42 -3
  29. package/lib/export.js +144 -34
  30. package/lib/implementation-packs.js +15 -1
  31. package/lib/log.js +41 -4
  32. package/lib/paths.js +41 -3
  33. package/lib/refine-briefs.js +16 -9
  34. package/lib/reingest-selected.js +14 -3
  35. package/lib/reingest.js +15 -1
  36. package/lib/run-summary.js +3 -2
  37. package/lib/runtime-runs.js +59 -9
  38. package/lib/selections.js +54 -2
  39. package/lib/snapshot.js +100 -7
  40. package/lib/split.js +175 -17
  41. package/lib/training-adapters.js +79 -0
  42. package/lib/training-manifests.js +17 -3
  43. package/lib/training-packages.js +29 -28
  44. package/lib/training-profiles.js +10 -0
  45. package/package.json +27 -3
  46. package/scripts/batch-generate.js +72 -20
  47. package/scripts/batch-sheet.js +3 -3
  48. package/scripts/batch-show.js +3 -3
  49. package/scripts/brief-compile.js +8 -8
  50. package/scripts/brief-show.js +4 -3
  51. package/scripts/canon-bind.js +7 -9
  52. package/scripts/card.js +22 -25
  53. package/scripts/compare.js +38 -33
  54. package/scripts/critique-show.js +3 -3
  55. package/scripts/critique.js +3 -3
  56. package/scripts/curate.js +91 -46
  57. package/scripts/doctor.js +3 -5
  58. package/scripts/eligibility.js +17 -14
  59. package/scripts/eval-pack.js +13 -11
  60. package/scripts/eval-run.js +30 -29
  61. package/scripts/export.js +27 -31
  62. package/scripts/generate-controlnet.js +31 -17
  63. package/scripts/generate-identity.js +37 -20
  64. package/scripts/generate-ipadapter.js +22 -16
  65. package/scripts/generate.js +96 -29
  66. package/scripts/implementation-pack.js +19 -14
  67. package/scripts/init.js +115 -17
  68. package/scripts/painterly.js +8 -10
  69. package/scripts/refine.js +3 -3
  70. package/scripts/reingest-selected.js +3 -3
  71. package/scripts/reingest.js +33 -20
  72. package/scripts/run-generate.js +4 -4
  73. package/scripts/run-list.js +3 -3
  74. package/scripts/run-show.js +3 -3
  75. package/scripts/select.js +5 -4
  76. package/scripts/selection-show.js +3 -3
  77. package/scripts/snapshot.js +22 -24
  78. package/scripts/split.js +26 -31
  79. package/scripts/training-manifest.js +29 -24
  80. package/scripts/training-package.js +24 -20
  81. package/scripts/training-profile.js +13 -8
  82. package/scripts/workflow-list.js +2 -2
  83. package/scripts/workflow-show.js +4 -3
  84. package/templates/domains/architecture/inputs/prompts/example-wave.json +32 -0
  85. package/templates/domains/architecture/terminology.json +10 -8
  86. package/templates/domains/character-design/inputs/prompts/example-wave.json +32 -0
  87. package/templates/domains/character-design/project.json +4 -2
  88. package/templates/domains/creature-design/inputs/prompts/example-wave.json +32 -0
  89. package/templates/domains/creature-design/project.json +4 -2
  90. package/templates/domains/creature-design/terminology.json +1 -0
  91. package/templates/domains/game-art/inputs/prompts/example-wave.json +37 -0
  92. package/templates/domains/game-art/project.json +4 -2
  93. package/templates/domains/vehicle-mech/inputs/prompts/example-wave.json +37 -0
  94. package/templates/domains/vehicle-mech/project.json +4 -2
  95. package/scripts/bulk-curate-wave2-5.js +0 -138
  96. package/scripts/bulk-curate-waves11-18.js +0 -413
  97. package/scripts/curate-wave25.js +0 -209
  98. package/scripts/migrate-records.js +0 -141
  99. package/templates/inputs/prompts/example-wave.json +0 -27
package/README.hi.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
18
  स्टाइल डेटासेट लैब आपके कलात्मक शैली के बारे में आपने जो कुछ भी लिखा है, उसे उस डेटासेट से जोड़ता है जिससे आप वास्तव में प्रशिक्षण लेते हैं। आप एक "संविधान" परिभाषित करते हैं - जैसे कि आकार के नियम, रंग पैलेट की सीमाएं, सामग्री का विवरण, या जो भी आपके प्रोजेक्ट के लिए महत्वपूर्ण है। यह प्रणाली संभावित विकल्पों को उत्पन्न करती है, उन्हें आपके द्वारा परिभाषित नियमों के आधार पर मूल्यांकन करती है, और स्वीकृत कार्यों को ऐसे डेटासेट में व्यवस्थित करती है जो पुन: प्रयोज्य हों, जहां प्रत्येक प्रविष्टि यह बताती है कि उसे क्यों शामिल किया गया है।
17
19
 
18
- यह प्रक्रिया एक चक्र की तरह चलती है: एक मॉडल को प्रशिक्षित करें, नए आउटपुट उत्पन्न करें, उन्हें एक ही मानदंड के आधार पर मूल्यांकित करें, और जो आउटपुट मानदंडों को पूरा करते हैं, उन्हें वापस डेटासेट में शामिल करें। इस तरह, डेटासेट का आकार बढ़ता रहता है और नियम बने रहते हैं।
20
+ फिर उत्पादन कार्यक्षेत्र (प्रोडक्शन वर्कबेंच) सक्रिय होता है: यह प्रोजेक्ट की वास्तविकताओं से संकलित किए गए विवरणों को लेता है, उन्हें कॉमफीयूआई (ComfyUI) के माध्यम से संसाधित करता है, परिणामों की समीक्षा करता है, बड़ी संख्या में एक्सप्रेशन शीट और वातावरण संबंधी चित्र बनाता है, सर्वोत्तम परिणामों का चयन करता है, और उन्हें नए विकल्पों के रूप में फिर से उपयोग करता है। यह प्रक्रिया एक चक्र में चलती रहती है: उत्पादन, चयन, समीक्षा, और सुधार।
19
21
 
20
22
  ## पाइपलाइन।
21
23
 
@@ -28,25 +30,37 @@ 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
+ "वह अंतिम आदेश महत्वपूर्ण है। चुने गए आउटपुट भी बाकी सब कुछ की तरह ही, उसी समीक्षा प्रक्रिया से गुजरते हैं। डेटा संग्रह लगातार बढ़ रहा है और नियम अभी भी लागू हैं।"
46
60
 
47
61
  ## यह क्या उत्पादित करता है।
48
62
 
49
- सात संस्करणों वाले, चेकसम से सत्यापित दस्तावेज़। प्रत्येक दस्तावेज़ अपने पूर्ववर्ती संस्करणों से जुड़ा हुआ है, जिससे आप किसी भी प्रशिक्षण रिकॉर्ड को उस नियम तक वापस खोज सकते हैं जिसने उसे स्वीकृत किया था।
63
+ सात डेटासेट संबंधी अभिलेखागार (आर्टिफैक्ट) और एक पूर्ण उत्पादन कार्यक्षेत्र उपलब्ध हैं। प्रत्येक अभिलेखागार अपने पूर्ववर्ती अभिलेखागार से जुड़ा हुआ है, जिससे आप किसी भी प्रशिक्षण रिकॉर्ड को उस नियम तक वापस खोज सकते हैं जिसने उसे स्वीकृत किया था।
50
64
 
51
65
  | पुरातत्विक वस्तु। | यह क्या है। |
52
66
  |----------|-----------|
@@ -58,6 +72,17 @@ sdlab reingest generated --source ./outputs --manifest <id>
58
72
  | **Eval scorecard** | प्रत्येक कार्य के लिए, स्कोरिंग के आधार पर उत्पन्न परिणामों की तुलना मूल्यांकन पैकों से की जाती है, और यह निर्धारित किया जाता है कि परिणाम पास हुआ है या फेल। |
59
73
  | **Implementation pack** | त्वरित उदाहरण, ज्ञात विफलताएं, निरंतरता परीक्षण, और पुनः उपयोग के लिए मार्गदर्शन। |
60
74
 
75
+ उत्पादन कार्यक्षेत्र में निम्नलिखित विशेषताएं शामिल हैं:
76
+
77
+ | सतह। | यह क्या करता है। |
78
+ |---------|-------------|
79
+ | **Compiled brief** | कार्यप्रवाह प्रोफाइल और परियोजना की वास्तविक जानकारी के आधार पर, एक निश्चित (निर्धारित) पीढ़ी निर्देश। |
80
+ | **Run** | फ्रीज किए गए निष्पादन कलाकृतियाँ: संक्षिप्त विवरण + बीज (seeds) + कॉमफीयूआई (ComfyUI) के आउटपुट + मैनिफेस्ट (manifest)। |
81
+ | **Critique** | "रन आउटपुट का मानकीकृत, बहु-आयामी मूल्यांकन, जो कि एक स्थापित मानक के आधार पर किया जाता है।" |
82
+ | **Batch** | समन्वित, बहु-स्लॉट उत्पादन (एक्सप्रेशन शीट, पर्यावरण संबंधी बोर्ड, सिल्हूट पैक)। |
83
+ | **Selection** | रचनात्मक निर्णय का दस्तावेज़: किन परिणामों का चयन किया गया, क्यों किया गया, और वे कहाँ से प्राप्त हुए। |
84
+ | **Re-ingest** | चयनित परिणाम "उम्मीदवार रिकॉर्ड" के रूप में वापस आते हैं, जिनमें पूरी जानकारी शामिल होती है कि वे कैसे उत्पन्न हुए। |
85
+
61
86
  ## यह क्यों मौजूद है?
62
87
 
63
88
  प्रशिक्षण डेटा किसी भी विज़ुअल एआई प्रणाली में सबसे महत्वपूर्ण घटक होता है। लेकिन अधिकांश प्रशिक्षण डेटा छवियों का एक संग्रह होता है, जिसमें कोई पृष्ठभूमि जानकारी, कोई मूल्यांकन प्रक्रिया, और उन शैलीगत नियमों से कोई संबंध नहीं होता जिनका पालन करने की अपेक्षा की जाती थी।
@@ -94,6 +119,12 @@ projects/my-project/
94
119
  splits/ Train/val/test partitions
95
120
  exports/ Versioned export packages
96
121
  training/ Profiles, manifests, packages, eval runs, implementations
122
+ workflows/ Workflow profiles + batch mode definitions
123
+ briefs/ Compiled generation briefs
124
+ runs/ Execution artifacts (brief + outputs + manifest)
125
+ batches/ Coordinated multi-slot productions
126
+ selections/ Chosen outputs with reasons and provenance
127
+ inbox/generated/ Re-ingested images awaiting review
97
128
  ```
98
129
 
99
130
  ## ट्रस्ट की संपत्ति।
@@ -130,13 +161,75 @@ npm install -g @mcptoolshop/style-dataset-lab
130
161
 
131
162
  इसके लिए Node.js 20+ और [ComfyUI](https://github.com/comfyanonymous/ComfyUI) की आवश्यकता है, जो localhost:8188 पर चल रहा होना चाहिए, ताकि सामग्री उत्पन्न की जा सके।
132
163
 
164
+ ### इसे बिना ComfyUI के आज़माएं।
165
+
166
+ आप "स्टार फ्रेट" नामक प्रोजेक्ट का उपयोग करके, बिना किसी भी अतिरिक्त सॉफ़्टवेयर को स्थापित किए या किसी भी एसडीएक्सएल फ़ाइल को डाउनलोड किए, "नॉन-जेनरेशन" (गैर-उत्पादन) की सभी सुविधाओं का पता लगा सकते हैं, जैसे कि निरीक्षण, चयन, स्नैपशॉट, विभाजन और निर्यात।
167
+
168
+ ```bash
169
+ # Scaffold a fresh project (no ComfyUI needed)
170
+ sdlab init test --domain game-art
171
+
172
+ # Run the canonical health check (no ComfyUI needed)
173
+ sdlab project doctor --project test
174
+
175
+ # Dry-run a snapshot against the bundled Star Freight corpus
176
+ sdlab snapshot create --dry-run --project star-freight
177
+ ```
178
+
179
+ `sdlab प्रोजेक्ट डॉक्टर` प्रत्येक प्रोजेक्ट कॉन्फ़िगरेशन (संरचना, चरण, मूल्यांकन मानदंड, शब्दावली) की जांच करता है और बिना ग्राफिक्स प्रोसेसिंग यूनिट (GPU) का उपयोग किए, परियोजना की पात्रता की रिपोर्ट देता है। कोई भी कमांड जो उत्पन्न डेटा को बदलता है, `--dry-run` विकल्प के साथ उपयोग किया जा सकता है ताकि पहले उसके प्रभाव को देखा जा सके।
180
+
181
+ यदि आप `--project` विकल्प को भूल जाते हैं, तो कमांड-लाइन इंटरफेस (CLI) `projects/` फ़ोल्डर के अंतर्गत पाए जाने वाले पहले प्रोजेक्ट का उपयोग करेगा और एक चेतावनी प्रदर्शित करेगा। इस चेतावनी को बंद करने के लिए, `--project` विकल्प को स्पष्ट रूप से निर्दिष्ट करें।
182
+
183
+ ### अवरुद्ध प्रक्रिया को फिर से शुरू करना
184
+
185
+ लंबे समय तक चलने वाली प्रक्रियाओं को फिर से शुरू किया जा सकता है बिना पहले से किए गए काम को दोहराए:
186
+
187
+ ```bash
188
+ # Skip subjects whose record + image are already on disk.
189
+ # Seeds are preserved — resumed runs are bit-identical to fresh ones.
190
+ sdlab generate inputs/prompts/wave1.json --project my-project --resume
191
+
192
+ # Re-run only failed/missing slots in an existing batch.
193
+ # Inherits mode/subject/theme from the prior manifest.
194
+ sdlab batch generate --resume batch_2026-04-22_001 --project my-project
195
+ ```
196
+
197
+ दोनों कमांड काम करते हैं क्योंकि प्रत्येक स्लॉट अपनी मैनिफेस्ट प्रविष्टि को पूरा होने पर एक साथ लिखता है - प्रक्रिया के बीच में होने वाली किसी भी खराबी से आंशिक स्थिति दूषित नहीं होती है।
198
+
199
+ ## समस्या निवारण।
200
+
201
+ सामान्य खराबी के प्रकार और उनके समाधान:
202
+
203
+ `ECONNREFUSED 127.0.0.1:8188` - यह त्रुटि `sdlab generate`, `sdlab run generate` या `sdlab batch generate` कमांड चलाने के दौरान आ सकती है।
204
+
205
+ ComfyUI चल नहीं रहा है। ComfyUI को शुरू करें (`python main.py --listen 127.0.0.1 --port 8188`) और `curl http://127.0.0.1:8188/system_stats` कमांड से इसकी पुष्टि करें। यदि आप किसी अन्य होस्ट/पोर्ट का उपयोग करना चाहते हैं, तो `COMFY_URL=http://होस्ट:पोर्ट` सेट करें।
206
+
207
+ **`चेकपॉइंट गुम है` / `LoRA फ़ाइल नहीं मिली`**
208
+
209
+ आपके वर्कफ़्लो प्रोफाइल में एक मॉडल फ़ाइल का नाम दिया गया है जो ComfyUI के `models/checkpoints/` या `models/loras/` फ़ोल्डर में मौजूद नहीं है। `projects/<प्रोजेक्ट>/workflows/profiles/<प्रोफाइल>.json` फ़ाइल खोलें, `checkpoint` या `lora` फ़ील्ड ढूंढें, और या तो संदर्भित फ़ाइल को डाउनलोड करें या उसे उस फ़ाइल से बदल दें जो आपके पास पहले से है। सुधार की पुष्टि करने के लिए `sdlab project doctor --project <प्रोजेक्ट>` कमांड को फिर से चलाएं।
210
+
211
+ **`sdlab प्रोजेक्ट डॉक्टर` त्रुटियां**
212
+ डॉक्टर संरचित त्रुटि कोड लौटाता है। कुछ सामान्य त्रुटियां:
213
+ - `E_PROJECT_NOT_FOUND` — "projects/" फ़ोल्डर के अंतर्गत प्रोजेक्ट डायरेक्टरी मौजूद नहीं है। वर्तनी की जांच करें।
214
+ - `E_CONFIG_INVALID` — पांच JSON कॉन्फ़िगरेशन फ़ाइलों में से किसी एक में स्कीमा सत्यापन विफल हो गया है। "hint" फ़ील्ड में उस गलत फ़ाइल और फ़ील्ड का नाम दिया गया है।
215
+ - `E_RECORD_DRIFT` — किसी रिकॉर्ड के कॉन्फ़िगरेशन फ़िंगरप्रिंट अब उसके स्रोत से मेल नहीं खाते हैं। "hint" में दिए गए सुझाव के अनुसार, इसे फिर से व्यवस्थित करें या फिर से जोड़ें।
216
+
217
+ **`कोई प्रोजेक्ट निर्दिष्ट नहीं है, इसलिए डिफ़ॉल्ट रूप से <नाम> का उपयोग किया जा रहा है`**
218
+ यह एक चेतावनी संदेश है। सही प्रोजेक्ट का चयन करने और इस चेतावनी को बंद करने के लिए `--project <नाम>` विकल्प का स्पष्ट रूप से उपयोग करें।
219
+
220
+ **पेंटरली / वीआरएएम (VRAM) मेमोरी से बाहर होने की समस्याएँ**
221
+ "पेंटरली" डीनोइजिंग (denoise) के ट्यूनिंग नोट्स के लिए, `docs/internal/HANDOFF.md` देखें। संक्षेप में: डीनोइजिंग की शक्ति को कम करें, बैच का आकार घटाएं, या अपने वर्कफ़्लो प्रोफाइल में छोटे चेकपॉइंट का उपयोग करें।
222
+
223
+ **बग की रिपोर्ट करना**
224
+ https://github.com/mcp-tool-shop-org/style-dataset-lab/issues पर एक मुद्दा दर्ज करें, जिसमें आपके sdlab संस्करण (`sdlab --version`), नोड संस्करण (`node -v`), पूरा कमांड और संरचित त्रुटि आउटपुट शामिल हों। एक बग रिपोर्ट टेम्पलेट स्वचालित रूप से फ़ील्ड को भर देगा।
225
+
133
226
  ## सुरक्षा
134
227
 
135
228
  यह केवल स्थानीय रूप से काम करता है। इसमें कोई टेलीमेट्री, कोई विश्लेषण और कोई बाहरी अनुरोध शामिल नहीं हैं। छवियां आपके GPU और फ़ाइल सिस्टम पर ही रहती हैं।
136
229
 
137
230
  ## लाइसेंस
138
231
 
139
- MIT
232
+ एमआईटी (MIT)
140
233
 
141
234
  ---
142
235
 
package/README.it.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
- 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
+ Definisci le tue regole visive. Genera immagini. Valuta ogni immagine in base a quelle regole. Invia i risultati come dati di addestramento versionati e verificabili, quindi metti in funzione i modelli addestrati nei flussi di lavoro di produzione reali e reinserisci i risultati migliori nel tuo database.
15
17
 
16
18
  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.
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, entra in gioco l'ambiente di lavoro di produzione: compila le istruzioni di generazione a partire dalle informazioni del progetto, eseguile tramite ComfyUI, valuta i risultati, genera in batch fogli di espressioni e schemi ambientali, seleziona i risultati migliori e reinseriscili come nuovi candidati. Il ciclo si chiude: genera, seleziona, valuta, migliora.
19
21
 
20
22
  ## La pipeline
21
23
 
@@ -28,25 +30,37 @@ 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
- L'ultimo comando è fondamentale. I risultati generati vengono sottoposti allo stesso processo di revisione di tutto il resto. Il ciclo si chiude.
59
+ Quest'ultimo comando è fondamentale. I risultati selezionati vengono sottoposti allo stesso processo di valutazione di tutto il resto. Il database cresce e le regole rimangono valide.
46
60
 
47
61
  ## Cosa produce
48
62
 
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.
63
+ Sono disponibili sette elementi del database e un intero ambiente di lavoro di produzione. Ogni elemento è collegato ai suoi predecessori, in modo da poter risalire a qualsiasi record di addestramento alla regola che lo ha approvato.
50
64
 
51
65
  | Artefatto. | Cos'è. |
52
66
  |----------|-----------|
@@ -58,6 +72,17 @@ Sette artefatti versionati e con checksum. Ognuno è collegato ai suoi predecess
58
72
  | **Eval scorecard** | Valutazione di superamento/non superamento per ogni compito, in base alla valutazione dei risultati generati rispetto ai set di valutazione. |
59
73
  | **Implementation pack** | Esempi di prompt, errori noti, test di continuità e indicazioni per il reinserimento. |
60
74
 
75
+ L'ambiente di lavoro di produzione offre:
76
+
77
+ | Superficie di interazione | Cosa fa |
78
+ |---------|-------------|
79
+ | **Compiled brief** | Generazione deterministica a partire dal profilo del flusso di lavoro e dalle informazioni del progetto. |
80
+ | **Run** | Artefatto di esecuzione stabile: istruzioni + seed + output di ComfyUI + manifest. |
81
+ | **Critique** | Valutazione strutturata e multidimensionale dei risultati rispetto al modello di riferimento. |
82
+ | **Batch** | Produzione coordinata su più canali (fogli di espressioni, schemi ambientali, pacchetti di silhouette). |
83
+ | **Selection** | Artefatto delle decisioni creative: quali output sono stati scelti, perché e da dove provengono. |
84
+ | **Re-ingest** | Gli output selezionati vengono restituiti come record candidati con la completa provenienza della generazione. |
85
+
61
86
  ## Perché esiste
62
87
 
63
88
  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.
@@ -94,6 +119,12 @@ projects/my-project/
94
119
  splits/ Train/val/test partitions
95
120
  exports/ Versioned export packages
96
121
  training/ Profiles, manifests, packages, eval runs, implementations
122
+ workflows/ Workflow profiles + batch mode definitions
123
+ briefs/ Compiled generation briefs
124
+ runs/ Execution artifacts (brief + outputs + manifest)
125
+ batches/ Coordinated multi-slot productions
126
+ selections/ Chosen outputs with reasons and provenance
127
+ inbox/generated/ Re-ingested images awaiting review
97
128
  ```
98
129
 
99
130
  ## Principi fondamentali
@@ -130,6 +161,66 @@ npm install -g @mcptoolshop/style-dataset-lab
130
161
 
131
162
  Richiede Node.js 20+ e [ComfyUI](https://github.com/comfyanonymous/ComfyUI) installato localmente all'indirizzo localhost:8188 per la generazione.
132
163
 
164
+ ### Prova senza ComfyUI
165
+
166
+ È possibile esplorare l'intera interfaccia di interazione, escluse le funzioni di generazione, tramite l'ispezione, la curatela, lo snapshot, la suddivisione e l'esportazione, utilizzando il progetto Star Freight incluso, senza installare ComfyUI o scaricare alcun file SDXL.
167
+
168
+ ```bash
169
+ # Scaffold a fresh project (no ComfyUI needed)
170
+ sdlab init test --domain game-art
171
+
172
+ # Run the canonical health check (no ComfyUI needed)
173
+ sdlab project doctor --project test
174
+
175
+ # Dry-run a snapshot against the bundled Star Freight corpus
176
+ sdlab snapshot create --dry-run --project star-freight
177
+ ```
178
+
179
+ Il comando `sdlab project doctor` convalida la configurazione di ogni progetto (costituzione, percorsi, rubriche, terminologia) e segnala l'idoneità senza utilizzare la GPU. Qualsiasi comando che modifichi lo stato generato accetta l'opzione `--dry-run` per visualizzare l'effetto prima di applicarlo.
180
+
181
+ Se si dimentica `--project`, la CLI passa al primo progetto trovato nella cartella `projects/` e visualizza un avviso; per disattivare l'avviso, è necessario specificare esplicitamente `--project`.
182
+
183
+ ### Riprendere un'esecuzione interrotta
184
+
185
+ È possibile riprendere le lunghe esecuzioni di generazione senza dover ripetere il lavoro già completato:
186
+
187
+ ```bash
188
+ # Skip subjects whose record + image are already on disk.
189
+ # Seeds are preserved — resumed runs are bit-identical to fresh ones.
190
+ sdlab generate inputs/prompts/wave1.json --project my-project --resume
191
+
192
+ # Re-run only failed/missing slots in an existing batch.
193
+ # Inherits mode/subject/theme from the prior manifest.
194
+ sdlab batch generate --resume batch_2026-04-22_001 --project my-project
195
+ ```
196
+
197
+ Entrambi i comandi funzionano perché ogni sezione scrive il proprio file manifest in modo atomico al termine dell'esecuzione; un arresto anomalo durante l'esecuzione non corrompe lo stato parziale.
198
+
199
+ ## Risoluzione dei problemi
200
+
201
+ Modalità di errore comuni e soluzioni:
202
+
203
+ **`ECONNREFUSED 127.0.0.1:8188` in qualsiasi comando `sdlab generate` / `sdlab run generate` / `sdlab batch generate`**
204
+ ComfyUI non è in esecuzione. Avvia ComfyUI (`python main.py --listen 127.0.0.1 --port 8188`) e verifica con `curl http://127.0.0.1:8188/system_stats`. Per puntare a un host/porta diverso, imposta `COMFY_URL=http://host:port`.
205
+
206
+ **`missing checkpoint` / `LoRA weight not found`**
207
+ Il profilo del flusso di lavoro indica un file modello che non si trova nelle cartelle `models/checkpoints/` o `models/loras/` di ComfyUI. Apri `projects/<project>/workflows/profiles/<profile>.json`, individua il campo `checkpoint` o `lora` e scarica il file corrispondente oppure sostituiscilo con uno che hai già. Esegui nuovamente `sdlab project doctor --project <project>` per confermare la correzione.
208
+
209
+ **Errori di `sdlab project doctor`**
210
+ Doctor restituisce codici di errore strutturati. Alcuni esempi comuni:
211
+ - `E_PROJECT_NOT_FOUND` — la directory del progetto non esiste nella cartella `projects/`. Verifica l'ortografia.
212
+ - `E_CONFIG_INVALID` — uno dei cinque file di configurazione JSON non ha superato la convalida dello schema. Il campo `hint` indica il file e il campo errati.
213
+ - `E_RECORD_DRIFT` — l'impronta digitale della configurazione di un record non corrisponde più alla sua origine. Ricurata o ricollega come suggerito nell'hint.
214
+
215
+ **`Nessun progetto specificato, si utilizza il valore predefinito <name>`**
216
+ Un avviso di lieve entità. Utilizzare l'opzione `--project <name>` per specificare esplicitamente il progetto desiderato e silenziare l'avviso.
217
+
218
+ **Problemi relativi alla memoria della VRAM (painterly)**
219
+ Consultare il file `docs/internal/HANDOFF.md` per le note sulla regolazione del denoising "painterly". In breve: ridurre l'intensità del denoising, diminuire la dimensione del batch o utilizzare un checkpoint più piccolo nel profilo di lavoro.
220
+
221
+ **Segnalazione di bug**
222
+ Aprire una segnalazione all'indirizzo https://github.com/mcp-tool-shop-org/style-dataset-lab/issues, includendo la versione di sdlab (`sdlab --version`), la versione di Node (`node -v`), il comando completo e l'output dettagliato dell'errore. Un modello per la segnalazione di bug precompila i campi.
223
+
133
224
  ## Sicurezza
134
225
 
135
226
  Funziona solo localmente. Nessuna telemetria, nessuna analisi, nessuna richiesta esterna. Le immagini rimangono sulla GPU e sul filesystem locale.
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
18
  Style Dataset Labは、お客様が記述されたアートスタイルに関する情報と、実際に学習に使用するデータセットを連携させます。お客様は、シルエットのルール、カラーパレットの制限、素材に関する記述など、プロジェクトにとって重要な要素を定義します。このシステムは、定義されたルールに基づいて候補を生成し、それらを評価し、承認された作品を再現可能なデータセットにまとめます。このデータセットでは、各レコードが、なぜその作品が選択されたのかを説明しています。
17
19
 
18
- このプロセスはループを形成します。モデルを訓練し、新しい出力を生成し、それらを同じ基準で評価し、評価基準を満たしたものをデータセットに再取り込みます。データセットは徐々に成長し、そのルールは維持されます。
20
+ 次に、本番環境用のワークベンチが稼働します。プロジェクトの要件に基づいて生成指示を作成し、ComfyUIで実行し、結果を評価し、表現シートや環境ボードをまとめて作成し、最適な結果を選択し、新しい候補として再登録します。このサイクルを繰り返します。生成、選択、評価、改善。
19
21
 
20
22
  ## パイプライン
21
23
 
@@ -28,25 +30,37 @@ 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
+ この最後のコマンドが重要です。選択された出力は、他のすべてのデータと同様に、同じ評価プロセスを経ます。学習データが蓄積され、ルールが維持されます。
46
60
 
47
61
  ## それが生成するものは何か
48
62
 
49
- バージョン管理された7つのデータセットがあり、それぞれにチェックサムが付与されています。各データセットは、その前のバージョンとリンクされており、これにより、どのトレーニング記録も、それを承認したルールまで遡って追跡することができます。
63
+ 7種類のデータセットファイルと、完全な本番環境用ワークベンチが含まれています。各ファイルは、以前のファイルとリンクされており、どの学習記録も、それを承認したルールまで遡ることができます。
50
64
 
51
65
  | 成果物 | 内容 |
52
66
  |----------|-----------|
@@ -58,6 +72,17 @@ sdlab reingest generated --source ./outputs --manifest <id>
58
72
  | **Eval scorecard** | 各タスクごとに、評価データセットと照合して生成された結果に基づいて、合格/不合格を判定します。 |
59
73
  | **Implementation pack** | プロンプトの例、既知の問題点、動作確認テスト、および再取り込みに関する手順。 |
60
74
 
75
+ 本番環境用ワークベンチには、以下が含まれます。
76
+
77
+ | 機能 | 概要 |
78
+ |---------|-------------|
79
+ | **Compiled brief** | ワークフロープロファイルとプロジェクト要件に基づいて、決定論的な画像生成を行います。 |
80
+ | **Run** | 生成結果の記録:指示、シード値、ComfyUIの出力、マニフェストファイル。 |
81
+ | **Critique** | 生成結果を基準と比較し、多角的な評価を行います。 |
82
+ | **Batch** | 表現シート、環境ボード、シルエットパックなど、複数の要素をまとめて生成します。 |
83
+ | **Selection** | 選択された出力について、なぜ選択されたのか、どこから来たのかといった情報を記録します。 |
84
+ | **Re-ingest** | 選択された出力は、生成元の情報を含む候補レコードとして登録されます。 |
85
+
61
86
  ## なぜこれが存在するのか
62
87
 
63
88
  トレーニングデータは、あらゆる画像認識AIのパイプラインにおいて、最も重要な要素です。しかし、多くのトレーニングデータは、履歴や判断の記録が一切なく、また、本来従うべきスタイルルールとの関連性も欠けている、単なる画像ファイル群に過ぎません。
@@ -94,6 +119,12 @@ projects/my-project/
94
119
  splits/ Train/val/test partitions
95
120
  exports/ Versioned export packages
96
121
  training/ Profiles, manifests, packages, eval runs, implementations
122
+ workflows/ Workflow profiles + batch mode definitions
123
+ briefs/ Compiled generation briefs
124
+ runs/ Execution artifacts (brief + outputs + manifest)
125
+ batches/ Coordinated multi-slot productions
126
+ selections/ Chosen outputs with reasons and provenance
127
+ inbox/generated/ Re-ingested images awaiting review
97
128
  ```
98
129
 
99
130
  ## 信託財産
@@ -130,13 +161,73 @@ npm install -g @mcptoolshop/style-dataset-lab
130
161
 
131
162
  生成には、Node.js 20以降のバージョンと、ローカルホストの8188番ポートで動作している [ComfyUI](https://github.com/comfyanonymous/ComfyUI) が必要です。
132
163
 
164
+ ### ComfyUIなしで試す
165
+
166
+ ComfyUIをインストールしたり、SDXLのモデルファイルをダウンロードしたりせずに、検査、キュレーション、スナップショット、分割、エクスポートなど、すべての機能を「Star Freight」プロジェクトを通じて利用できます。
167
+
168
+ ```bash
169
+ # Scaffold a fresh project (no ComfyUI needed)
170
+ sdlab init test --domain game-art
171
+
172
+ # Run the canonical health check (no ComfyUI needed)
173
+ sdlab project doctor --project test
174
+
175
+ # Dry-run a snapshot against the bundled Star Freight corpus
176
+ sdlab snapshot create --dry-run --project star-freight
177
+ ```
178
+
179
+ `sdlab project doctor`コマンドは、すべてのプロジェクト設定(構成、ルール、評価基準、用語集)を検証し、GPUに負荷をかけずに、プロジェクトが利用可能かどうかを報告します。生成状態を変更するコマンドには、事前に効果を確認するための`--dry-run`オプションがあります。
180
+
181
+ `--project`オプションを省略すると、CLIは`projects/`ディレクトリにある最初のプロジェクトを使用し、警告を表示します。警告を抑制するには、`--project`オプションを明示的に指定してください。
182
+
183
+ ### 中断されたジョブの再開
184
+
185
+ 長時間のジョブ実行中に中断が発生した場合でも、完了済みの作業をやり直すことなく、ジョブを再開することができます。
186
+
187
+ ```bash
188
+ # Skip subjects whose record + image are already on disk.
189
+ # Seeds are preserved — resumed runs are bit-identical to fresh ones.
190
+ sdlab generate inputs/prompts/wave1.json --project my-project --resume
191
+
192
+ # Re-run only failed/missing slots in an existing batch.
193
+ # Inherits mode/subject/theme from the prior manifest.
194
+ sdlab batch generate --resume batch_2026-04-22_001 --project my-project
195
+ ```
196
+
197
+ これらのコマンドは、いずれも正常に動作します。なぜなら、各処理ステップは、完了時にその結果を完全に記録するため、ジョブ実行中に問題が発生した場合でも、部分的に完了した状態が破損することはないからです。
198
+
199
+ ## トラブルシューティング
200
+
201
+ 一般的なエラーと解決策:
202
+
203
+ **`ECONNREFUSED 127.0.0.1:8188`が発生した場合(`sdlab generate`、`sdlab run generate`、`sdlab batch generate`など)**
204
+ 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
+
206
+ **`missing checkpoint` / `LoRA weight not found`が発生した場合**
207
+ ワークフロープロファイルで指定されているモデルファイルが、ComfyUIの`models/checkpoints/`または`models/loras/`フォルダに存在しません。`projects/<project>/workflows/profiles/<profile>.json`を開き、`checkpoint`または`lora`の項目を探し、指定されたモデルファイルをダウンロードするか、代わりに既存のファイルを使用してください。修正後、`sdlab project doctor --project <project>`を再実行して確認します。
208
+
209
+ **`sdlab project doctor`でエラーが発生した場合**
210
+ Doctorは、構造化されたエラーコードを返します。一般的なエラーは以下の通りです。
211
+ - `E_PROJECT_NOT_FOUND`:プロジェクトディレクトリが`projects/`ディレクトリに存在しません。スペルを確認してください。
212
+ - `E_CONFIG_INVALID`:5つのJSON設定ファイルのいずれかが、スキーマ検証に失敗しました。`hint`の項目には、問題のあるファイルとフィールドの名前が表示されます。
213
+ - `E_RECORD_DRIFT`:レコードの設定フィンガープリントが、元のデータと一致しなくなりました。`hint`に示されているように、再キュレーションまたは再バインドを行ってください。
214
+
215
+ **`No --project specified, falling back to <name>`という警告が表示された場合**
216
+ これは、警告です。正しいプロジェクトを選択し、警告を抑制するには、`--project <name>`オプションを明示的に指定してください。
217
+
218
+ **ペインタリー処理 / VRAMのメモリ不足に関する問題**
219
+ ペインタリー処理の調整に関する詳細は、`docs/internal/HANDOFF.md` を参照してください。簡単に言うと、ノイズ除去の強度を下げたり、バッチサイズを小さくしたり、ワークフロープロファイルでより小さいチェックポイントを使用するように変更してください。
220
+
221
+ **バグの報告**
222
+ バグを発見した場合は、https://github.com/mcp-tool-shop-org/style-dataset-lab/issues に、`sdlab --version` で確認できるsdlabのバージョン、`node -v` で確認できるNodeのバージョン、実行したコマンド全体、および構造化されたエラー出力を添えて報告してください。バグレポートのテンプレートには、必要な項目が事前に入力されています。
223
+
133
224
  ## セキュリティ
134
225
 
135
226
  ローカル環境でのみ動作します。テレメトリー、分析、外部へのリクエストは一切ありません。画像はすべて、あなたのGPUとファイルシステム内に保存されます。
136
227
 
137
228
  ## ライセンス
138
229
 
139
- MIT
230
+ MITライセンス
140
231
 
141
232
  ---
142
233
 
package/README.md CHANGED
@@ -8,6 +8,8 @@
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
 
@@ -28,7 +30,8 @@ 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
@@ -158,6 +161,66 @@ npm install -g @mcptoolshop/style-dataset-lab
158
161
 
159
162
  Requires Node.js 20+ and [ComfyUI](https://github.com/comfyanonymous/ComfyUI) on localhost:8188 for generation.
160
163
 
164
+ ### Try it without ComfyUI
165
+
166
+ You can explore the full non-generation surface — inspection, curation, snapshot, split, export — using the bundled Star Freight project without installing ComfyUI or downloading any SDXL weights.
167
+
168
+ ```bash
169
+ # Scaffold a fresh project (no ComfyUI needed)
170
+ sdlab init test --domain game-art
171
+
172
+ # Run the canonical health check (no ComfyUI needed)
173
+ sdlab project doctor --project test
174
+
175
+ # Dry-run a snapshot against the bundled Star Freight corpus
176
+ sdlab snapshot create --dry-run --project star-freight
177
+ ```
178
+
179
+ `sdlab project doctor` validates every project config (constitution, lanes, rubric, terminology) and reports eligibility without touching the GPU. Any command that mutates generated state accepts `--dry-run` to preview the effect first.
180
+
181
+ If you forget `--project`, the CLI falls back to the first project it finds under `projects/` and prints a warning — pass `--project` explicitly to silence it.
182
+
183
+ ### Resuming an interrupted run
184
+
185
+ Long generation runs can be resumed without redoing completed work:
186
+
187
+ ```bash
188
+ # Skip subjects whose record + image are already on disk.
189
+ # Seeds are preserved — resumed runs are bit-identical to fresh ones.
190
+ sdlab generate inputs/prompts/wave1.json --project my-project --resume
191
+
192
+ # Re-run only failed/missing slots in an existing batch.
193
+ # Inherits mode/subject/theme from the prior manifest.
194
+ sdlab batch generate --resume batch_2026-04-22_001 --project my-project
195
+ ```
196
+
197
+ Both commands work because every slot writes its manifest entry atomically as it finishes — a crash mid-run never corrupts the partial state.
198
+
199
+ ## Troubleshooting
200
+
201
+ Common failure modes and fixes:
202
+
203
+ **`ECONNREFUSED 127.0.0.1:8188` on any `sdlab generate` / `sdlab run generate` / `sdlab batch generate`**
204
+ ComfyUI isn't running. Start ComfyUI (`python main.py --listen 127.0.0.1 --port 8188`) and confirm with `curl http://127.0.0.1:8188/system_stats`. To point at a different host/port, set `COMFY_URL=http://host:port`.
205
+
206
+ **`missing checkpoint` / `LoRA weight not found`**
207
+ Your workflow profile names a model file that isn't in ComfyUI's `models/checkpoints/` or `models/loras/` folder. Open `projects/<project>/workflows/profiles/<profile>.json`, locate the `checkpoint` or `lora` field, and either download the referenced weight or swap it for one you already have. Re-run `sdlab project doctor --project <project>` to confirm the fix.
208
+
209
+ **`sdlab project doctor` errors**
210
+ Doctor returns structured error codes. Common ones:
211
+ - `E_PROJECT_NOT_FOUND` — the project directory doesn't exist under `projects/`. Check spelling.
212
+ - `E_CONFIG_INVALID` — one of the five JSON config files failed schema validation. The `hint` field names the bad file and field.
213
+ - `E_RECORD_DRIFT` — a record's config fingerprint no longer matches its source. Re-curate or re-bind as the hint suggests.
214
+
215
+ **`No --project specified, falling back to <name>`**
216
+ A soft warning. Pass `--project <name>` explicitly to select the right project and silence the warning.
217
+
218
+ **Painterly / VRAM out-of-memory issues**
219
+ See `docs/internal/HANDOFF.md` for the painterly denoise tuning notes. In short: lower the denoise strength, reduce batch size, or switch to a smaller checkpoint in your workflow profile.
220
+
221
+ **Reporting bugs**
222
+ File an issue at https://github.com/mcp-tool-shop-org/style-dataset-lab/issues with your sdlab version (`sdlab --version`), Node version (`node -v`), the full command, and the structured error output. A bug-report template prefills the fields.
223
+
161
224
  ## Security
162
225
 
163
226
  Local-only. No telemetry, no analytics, no external requests. Images stay on your GPU and filesystem.