@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.pt-BR.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
- Escreva suas regras visuais. Gere imagens. Avalie cada imagem com base nessas regras. Envie os resultados como dados de treinamento versionados e auditáveis.
16
+ Escreva suas regras visuais. Gere imagens. Avalie cada imagem com base nessas regras. Envie os resultados como dados de treinamento versionados e auditáveis, e então coloque os modelos treinados em operação em fluxos de trabalho de produção reais, e alimente os melhores resultados de volta para o seu conjunto de dados.
15
17
 
16
18
  O Style Dataset Lab conecta o que você escreveu sobre o estilo da sua arte ao conjunto de dados que você realmente usa para treinamento. Você define uma estrutura – regras de silhueta, restrições de paleta, linguagem de materiais, o que for importante para o seu projeto. O processo gera candidatos, os avalia com base nessas regras e organiza as obras aprovadas em conjuntos de dados reproduzíveis, onde cada registro explica por que foi incluído.
17
19
 
18
- O ciclo se fecha: treine um modelo, gere novas saídas, avalie-as com base nos mesmos critérios e reintroduza o que for aprovado. O conjunto de dados cresce e as regras permanecem válidas.
20
+ Em seguida, a área de trabalho de produção assume o controle: compile as instruções de geração a partir da "verdade" do projeto, execute-as no ComfyUI, critique os resultados, produza em lote planilhas de expressões e painéis de ambiente, selecione os melhores resultados e reintroduza-os como novos candidatos. O ciclo se fecha: produza, selecione, revise, fortaleça.
19
21
 
20
22
  ## O processo
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
- Aquele último comando é crucial. As saídas geradas passam pelo mesmo processo de revisão de tudo o mais. O ciclo se fecha.
59
+ Essa última instrução é o ponto crucial. Os resultados selecionados passam pelo mesmo processo de revisão que tudo o mais. O conjunto de dados cresce e as regras permanecem válidas.
46
60
 
47
61
  ## O que ele produz
48
62
 
49
- Sete artefatos versionados e com checksum. Cada um está vinculado aos seus predecessores, para que você possa rastrear qualquer registro de treinamento até a regra que o aprovou.
63
+ Sete artefatos do conjunto de dados e uma área de trabalho de produção completa. Cada artefato está vinculado aos seus predecessores, para que você possa rastrear qualquer registro de treinamento até a regra que o aprovou.
50
64
 
51
65
  | Artefato | O que é |
52
66
  |----------|-----------|
@@ -58,6 +72,17 @@ Sete artefatos versionados e com checksum. Cada um está vinculado aos seus pred
58
72
  | **Eval scorecard** | Avaliação de aprovação/reprovação para cada tarefa, com base na avaliação das saídas geradas. |
59
73
  | **Implementation pack** | Exemplos de prompts, falhas conhecidas, testes de continuidade e diretrizes para reintrodução. |
60
74
 
75
+ A área de trabalho de produção adiciona:
76
+
77
+ | Interface | O que ela faz |
78
+ |---------|-------------|
79
+ | **Compiled brief** | Geração determinística a partir do perfil do fluxo de trabalho + "verdade" do projeto. |
80
+ | **Run** | Artefato de execução congelado: instrução + sementes + resultados do ComfyUI + manifesto. |
81
+ | **Critique** | Avaliação estruturada e multidimensional dos resultados em relação ao padrão. |
82
+ | **Batch** | Produção coordenada em vários canais (planilhas de expressões, painéis de ambiente, pacotes de silhuetas). |
83
+ | **Selection** | Artefato de decisão criativa: quais resultados foram escolhidos, por quê e de onde vieram. |
84
+ | **Re-ingest** | Os resultados selecionados são retornados como registros candidatos com total rastreabilidade da geração. |
85
+
61
86
  ## Por que isso existe
62
87
 
63
88
  Os dados de treinamento são o recurso mais valioso em qualquer pipeline de IA visual. No entanto, a maioria dos dados de treinamento é apenas uma pasta de imagens sem histórico, sem rastreamento de avaliação e sem conexão com as regras de estilo que deveria seguir.
@@ -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
  ## Propriedades de confiabilidade
@@ -130,6 +161,66 @@ npm install -g @mcptoolshop/style-dataset-lab
130
161
 
131
162
  Requer Node.js 20 ou superior e o [ComfyUI](https://github.com/comfyanonymous/ComfyUI) instalado localmente no endereço localhost:8188 para a geração.
132
163
 
164
+ ### Experimente sem o ComfyUI
165
+
166
+ Você pode explorar toda a interface de geração — inspeção, curadoria, instantâneo, divisão, exportação — usando o projeto Star Freight incluso, sem instalar o ComfyUI ou baixar nenhum arquivo de peso do 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
+ O comando `sdlab project doctor` valida todas as configurações do projeto (constituição, caminhos, critérios, terminologia) e informa a elegibilidade sem acessar a GPU. Qualquer comando que modifique o estado gerado aceita a opção `--dry-run` para visualizar o efeito primeiro.
180
+
181
+ Se você esquecer `--project`, a interface de linha de comando (CLI) volta para o primeiro projeto que encontra em `projects/` e exibe um aviso — use `--project` explicitamente para silenciá-lo.
182
+
183
+ ### Retomando uma execução interrompida
184
+
185
+ Execuções longas de geração podem ser retomadas sem a necessidade de refazer o trabalho já concluído:
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
+ Ambos os comandos funcionam porque cada slot escreve sua entrada de manifesto de forma atômica ao finalizar — um erro durante a execução nunca corrompe o estado parcial.
198
+
199
+ ## Solução de problemas
200
+
201
+ Modos de falha comuns e soluções:
202
+
203
+ **`ECONNREFUSED 127.0.0.1:8188` em qualquer comando `sdlab generate` / `sdlab run generate` / `sdlab batch generate`**
204
+ O ComfyUI não está em execução. Inicie o ComfyUI (`python main.py --listen 127.0.0.1 --port 8188`) e confirme com `curl http://127.0.0.1:8188/system_stats`. Para apontar para um host/porta diferente, defina `COMFY_URL=http://host:port`.
205
+
206
+ **`missing checkpoint` / `LoRA weight not found`**
207
+ O perfil do seu fluxo de trabalho nomeia um arquivo de modelo que não está na pasta `models/checkpoints/` ou `models/loras/` do ComfyUI. Abra `projects/<projeto>/workflows/profiles/<perfil>.json`, localize o campo `checkpoint` ou `lora` e, em seguida, baixe o arquivo de peso referenciado ou substitua-o por um que você já tenha. Execute novamente `sdlab project doctor --project <projeto>` para confirmar a correção.
208
+
209
+ **Erros do `sdlab project doctor`**
210
+ O Doctor retorna códigos de erro estruturados. Alguns comuns:
211
+ - `E_PROJECT_NOT_FOUND` — o diretório do projeto não existe em `projects/`. Verifique a ortografia.
212
+ - `E_CONFIG_INVALID` — um dos cinco arquivos de configuração JSON falhou na validação do esquema. O campo `hint` indica qual arquivo e campo estão incorretos.
213
+ - `E_RECORD_DRIFT` — a impressão digital de configuração de um registro não corresponde mais à sua origem. Reavalie ou redefina conforme sugerido na dica.
214
+
215
+ **`No --project specified, falling back to <name>`**
216
+ Um aviso leve. Use `--project <nome>` explicitamente para selecionar o projeto correto e silenciar o aviso.
217
+
218
+ **Problemas relacionados à renderização / Falta de memória na VRAM**
219
+ Consulte o arquivo `docs/internal/HANDOFF.md` para obter informações sobre o ajuste fino da remoção de ruído (denoise). Em resumo: diminua a intensidade da remoção de ruído, reduza o tamanho do lote ou utilize um modelo (checkpoint) menor no seu perfil de trabalho.
220
+
221
+ **Relatando erros**
222
+ Registre um problema em https://github.com/mcp-tool-shop-org/style-dataset-lab/issues, incluindo a versão do sdlab (`sdlab --version`), a versão do Node (`node -v`), o comando completo e a saída de erro formatada. Um modelo de relatório de erro preenche automaticamente os campos.
223
+
133
224
  ## Segurança
134
225
 
135
226
  Funciona apenas localmente. Não há coleta de dados de uso, análises ou requisições externas. As imagens permanecem na sua GPU e no seu sistema de arquivos.
package/README.zh.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
- 七个版本控制的、具有校验和的成果。每个成果都链接到其前身,因此您可以追溯任何训练记录,了解它是根据哪个规则被批准的。
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** | 冻结的执行文件:包含指令、种子、ComfyUI 输出和清单。 |
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,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
+ 您可以使用捆绑的 Star Freight 项目,探索完整的非生成功能,例如检查、整理、快照、分割和导出,而无需安装 ComfyUI 或下载任何 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
+ `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`:五个 JSON 配置文件之一未能通过模式验证。`hint` 字段会指出哪个文件和字段存在问题。
213
+ - `E_RECORD_DRIFT`:记录的配置指纹与其来源不再匹配。根据提示进行重新整理或重新绑定。
214
+
215
+ **`未指定 --project,将使用 <name> 作为默认项目`**
216
+ 这是一个提示信息。为了选择正确的项目并消除此提示,请明确使用 `--project <name>` 参数。
217
+
218
+ **绘画风格 / 显存不足问题**
219
+ 请参考 `docs/internal/HANDOFF.md` 中的关于绘画风格降噪的调整说明。 简而言之:降低降噪强度,减少批次大小,或者在工作流程配置文件中切换到较小的模型文件。
220
+
221
+ **报告错误**
222
+ 请在 https://github.com/mcp-tool-shop-org/style-dataset-lab/issues 上提交问题,并提供您的 sdlab 版本(`sdlab --version`)、Node 版本(`node -v`)、完整的命令以及结构化的错误输出。 错误报告模板会预先填充字段。
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/SECURITY.md CHANGED
@@ -2,11 +2,12 @@
2
2
 
3
3
  ## Supported Versions
4
4
 
5
- | Version | Supported |
6
- |---------|-----------|
7
- | 2.x | Yes |
8
- | 1.x | No |
9
- | 0.x | No |
5
+ | Version | Supported |
6
+ |---------|------------------------|
7
+ | 3.x | Yes |
8
+ | 2.x | Yes (transitional) |
9
+ | 1.x | No |
10
+ | 0.x | No |
10
11
 
11
12
  ## Threat Model
12
13