@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.
- package/CHANGELOG.md +108 -15
- package/CODE_OF_CONDUCT.md +9 -0
- package/CONTRIBUTING.md +71 -0
- package/README.es.md +99 -8
- package/README.fr.md +100 -9
- package/README.hi.md +102 -9
- package/README.it.md +99 -8
- package/README.ja.md +100 -9
- package/README.md +64 -1
- package/README.pt-BR.md +99 -8
- package/README.zh.md +100 -9
- package/SECURITY.md +6 -5
- package/bin/sdlab.js +289 -62
- package/lib/adapters/comfyui-runner.js +11 -15
- package/lib/adapters/diffusers-lora.js +7 -2
- package/lib/adapters/generic-image-caption.js +6 -1
- package/lib/args.js +200 -13
- package/lib/batch-compiler.js +7 -3
- package/lib/batch-runs.js +162 -31
- package/lib/batch-sheet-render.js +5 -2
- package/lib/brief-compiler.js +38 -11
- package/lib/card.js +11 -4
- package/lib/comfyui-output.js +70 -0
- package/lib/comfyui.js +100 -6
- package/lib/config.js +68 -3
- package/lib/deprecation.js +1 -1
- package/lib/eval-pack.js +94 -4
- package/lib/eval-runs.js +42 -3
- package/lib/export.js +144 -34
- package/lib/implementation-packs.js +15 -1
- package/lib/log.js +41 -4
- package/lib/paths.js +41 -3
- package/lib/refine-briefs.js +16 -9
- package/lib/reingest-selected.js +14 -3
- package/lib/reingest.js +15 -1
- package/lib/run-summary.js +3 -2
- package/lib/runtime-runs.js +59 -9
- package/lib/selections.js +54 -2
- package/lib/snapshot.js +100 -7
- package/lib/split.js +175 -17
- package/lib/training-adapters.js +79 -0
- package/lib/training-manifests.js +17 -3
- package/lib/training-packages.js +29 -28
- package/lib/training-profiles.js +10 -0
- package/package.json +27 -3
- package/scripts/batch-generate.js +72 -20
- package/scripts/batch-sheet.js +3 -3
- package/scripts/batch-show.js +3 -3
- package/scripts/brief-compile.js +8 -8
- package/scripts/brief-show.js +4 -3
- package/scripts/canon-bind.js +7 -9
- package/scripts/card.js +22 -25
- package/scripts/compare.js +38 -33
- package/scripts/critique-show.js +3 -3
- package/scripts/critique.js +3 -3
- package/scripts/curate.js +91 -46
- package/scripts/doctor.js +3 -5
- package/scripts/eligibility.js +17 -14
- package/scripts/eval-pack.js +13 -11
- package/scripts/eval-run.js +30 -29
- package/scripts/export.js +27 -31
- package/scripts/generate-controlnet.js +31 -17
- package/scripts/generate-identity.js +37 -20
- package/scripts/generate-ipadapter.js +22 -16
- package/scripts/generate.js +96 -29
- package/scripts/implementation-pack.js +19 -14
- package/scripts/init.js +115 -17
- package/scripts/painterly.js +8 -10
- package/scripts/refine.js +3 -3
- package/scripts/reingest-selected.js +3 -3
- package/scripts/reingest.js +33 -20
- package/scripts/run-generate.js +4 -4
- package/scripts/run-list.js +3 -3
- package/scripts/run-show.js +3 -3
- package/scripts/select.js +5 -4
- package/scripts/selection-show.js +3 -3
- package/scripts/snapshot.js +22 -24
- package/scripts/split.js +26 -31
- package/scripts/training-manifest.js +29 -24
- package/scripts/training-package.js +24 -20
- package/scripts/training-profile.js +13 -8
- package/scripts/workflow-list.js +2 -2
- package/scripts/workflow-show.js +4 -3
- package/templates/domains/architecture/inputs/prompts/example-wave.json +32 -0
- package/templates/domains/architecture/terminology.json +10 -8
- package/templates/domains/character-design/inputs/prompts/example-wave.json +32 -0
- package/templates/domains/character-design/project.json +4 -2
- package/templates/domains/creature-design/inputs/prompts/example-wave.json +32 -0
- package/templates/domains/creature-design/project.json +4 -2
- package/templates/domains/creature-design/terminology.json +1 -0
- package/templates/domains/game-art/inputs/prompts/example-wave.json +37 -0
- package/templates/domains/game-art/project.json +4 -2
- package/templates/domains/vehicle-mech/inputs/prompts/example-wave.json +37 -0
- package/templates/domains/vehicle-mech/project.json +4 -2
- package/scripts/bulk-curate-wave2-5.js +0 -138
- package/scripts/bulk-curate-waves11-18.js +0 -413
- package/scripts/curate-wave25.js +0 -209
- package/scripts/migrate-records.js +0 -141
- 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
|
-
|
|
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
|
|
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
|
|
41
|
+
# Build a training package
|
|
39
42
|
sdlab training-manifest create --profile character-style-lora
|
|
40
43
|
sdlab training-package build
|
|
41
|
-
|
|
42
|
-
|
|
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
|
+
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
|
|
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
|
|
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
|
|
41
|
+
# Build a training package
|
|
39
42
|
sdlab training-manifest create --profile character-style-lora
|
|
40
43
|
sdlab training-package build
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
|
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
|
|