@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.
- package/CHANGELOG.md +77 -0
- package/README.es.md +154 -41
- package/README.fr.md +153 -40
- package/README.hi.md +160 -47
- package/README.it.md +155 -42
- package/README.ja.md +159 -46
- package/README.md +40 -0
- package/README.pt-BR.md +154 -41
- package/README.zh.md +154 -41
- package/bin/sdlab.js +81 -2
- package/lib/adapters/ai-toolkit.js +209 -0
- package/lib/adapters/comfyui-runner.js +11 -15
- package/lib/adapters/comfyui-workflows.js +133 -2
- package/lib/adapters/diffusers-lora.js +46 -66
- package/lib/adapters/generic-image-caption.js +22 -50
- package/lib/batch-runs.js +62 -0
- package/lib/canon-build/build.js +450 -0
- package/lib/canon-build/emitters/base.js +122 -0
- package/lib/canon-build/emitters/character.js +167 -0
- package/lib/canon-build/emitters/deity.js +165 -0
- package/lib/canon-build/emitters/faction.js +161 -0
- package/lib/canon-build/emitters/index.js +38 -0
- package/lib/canon-build/emitters/location.js +153 -0
- package/lib/canon-build/emitters/monster.js +131 -0
- package/lib/canon-build/emitters/relic.js +142 -0
- package/lib/canon-build/emitters/ship.js +154 -0
- package/lib/canon-build/emitters/species.js +165 -0
- package/lib/canon-build/frontmatter.js +76 -0
- package/lib/canon-build/lane-resolve.js +64 -0
- package/lib/canon-build/load-config.js +117 -0
- package/lib/canon-build/load-entry.js +62 -0
- package/lib/canon-build/load-schema.js +46 -0
- package/lib/captions.js +197 -0
- package/lib/comfyui-output.js +70 -0
- package/lib/config.js +19 -0
- package/lib/freeze-events.js +109 -0
- package/lib/freeze-gate.js +165 -0
- package/lib/freeze-stamp.js +161 -0
- package/lib/rows.js +228 -0
- package/lib/training-adapters.js +84 -0
- package/lib/training-packages.js +25 -32
- package/lib/training-profiles.js +43 -0
- package/package.json +29 -2
- package/scripts/_batch_cut.py +71 -0
- package/scripts/_seam_cutout.py +74 -0
- package/scripts/batch-generate.js +56 -13
- package/scripts/canon-build.js +88 -0
- package/scripts/canon-drift.js +193 -0
- package/scripts/canon-freeze-status.js +85 -0
- package/scripts/canon-freeze.js +211 -0
- package/scripts/canon-unfreeze.js +137 -0
- package/scripts/curate.js +12 -0
- package/scripts/generate-controlnet.js +12 -0
- package/scripts/generate-identity.js +20 -4
- package/scripts/generate-ipadapter.js +11 -0
- package/scripts/generate.js +250 -102
- package/scripts/qwen_generate.py +124 -0
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
|
|
|
@@ -56,6 +58,28 @@ sdlab reingest selected --selection selection_2026-04-16_001
|
|
|
56
58
|
|
|
57
59
|
That last command is the point. Selected outputs come back through the same review process as everything else. The corpus grows and the rules hold.
|
|
58
60
|
|
|
61
|
+
## Canon authoring
|
|
62
|
+
|
|
63
|
+
Before the dataset pipeline runs, the `sdlab canon *` namespace turns your project's canon entity store into the three projections training and production actually consume — and locks the entries that must not drift.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Build three projections from the canon entity store:
|
|
67
|
+
# dataset.jsonl → training adapters
|
|
68
|
+
# prompts/*.j2 → ComfyUI workflow invocation
|
|
69
|
+
# context/*.md → Role OS narrative dispatch
|
|
70
|
+
sdlab canon build --project my-project
|
|
71
|
+
|
|
72
|
+
# Freeze an entry so regeneration can't silently change it
|
|
73
|
+
sdlab canon freeze kael_maren --project my-project --reason "prologue portrait locked"
|
|
74
|
+
|
|
75
|
+
# Report drift on frozen entries since the last clean build
|
|
76
|
+
sdlab canon drift --project my-project
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`canon build` is content-addressable — its output is keyed by a `canon_sha` and cached, so an unchanged canon rebuilds instantly. `canon freeze` witnesses each freeze against a specific build and appends to a `freeze-events.jsonl` audit trail: `frozen` entries refuse regeneration outright, `soft-advisory` entries refuse by default (bypass with `--i-know`). `canon drift` recomputes every watched entry's hash and flags anything that moved since the last clean build.
|
|
80
|
+
|
|
81
|
+
Full workflow in the handbook: [Canon build](handbook/canon-build/), [Canon freeze](handbook/canon-freeze/), and [Two-LoRA stacking](handbook/two-lora-stacking/).
|
|
82
|
+
|
|
59
83
|
## What it produces
|
|
60
84
|
|
|
61
85
|
Seven dataset artifacts and a full production workbench. Each artifact links to its predecessors so you can trace any training record back to the rule that approved it.
|
|
@@ -178,6 +202,22 @@ sdlab snapshot create --dry-run --project star-freight
|
|
|
178
202
|
|
|
179
203
|
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.
|
|
180
204
|
|
|
205
|
+
### Resuming an interrupted run
|
|
206
|
+
|
|
207
|
+
Long generation runs can be resumed without redoing completed work:
|
|
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
|
+
Both commands work because every slot writes its manifest entry atomically as it finishes — a crash mid-run never corrupts the partial state.
|
|
220
|
+
|
|
181
221
|
## Troubleshooting
|
|
182
222
|
|
|
183
223
|
Common failure modes and fixes:
|
package/README.pt-BR.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
|
-
Escreva suas regras visuais. Gere
|
|
16
|
+
Escreva suas regras visuais. Gere arte. Avalie cada imagem com base nessas regras. Envie os resultados como dados de treinamento auditáveis e versionados — e, em seguida, coloque modelos treinados para trabalhar em fluxos de trabalho de produção reais e insira as melhores saídas de volta no seu corpus.
|
|
15
17
|
|
|
16
|
-
O Style Dataset Lab conecta o que você escreveu sobre
|
|
18
|
+
O Style Dataset Lab conecta o que você escreveu sobre seu estilo artístico ao conjunto de dados do qual você realmente treina, e então fecha o ciclo até a produção. Você define uma constituição — regras de silhueta, restrições de paleta, linguagem dos materiais, qualquer coisa que seja importante para o seu projeto. O pipeline gera candidatos, avalia-os com base nessas regras e empacota o trabalho aprovado em conjuntos de dados reproduzíveis, onde cada registro explica por que foi incluído.
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
Em seguida, a estação de trabalho de produção assume o controle: compile resumos de geração a partir da verdade do projeto, execute-os no ComfyUI, critique as saídas, produza em lote folhas de expressão e painéis de ambiente, selecione os melhores resultados e reintroduza-os como novos candidatos. O ciclo se fecha: produzir, selecionar, revisar, fortalecer.
|
|
19
21
|
|
|
20
|
-
## O
|
|
22
|
+
## O pipeline
|
|
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
|
|
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
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Esse último comando é o ponto crucial. As saídas selecionadas retornam pelo mesmo processo de revisão que tudo o mais. O corpus cresce e as regras permanecem válidas.
|
|
60
|
+
|
|
61
|
+
## Criação do cânone
|
|
62
|
+
|
|
63
|
+
Antes que o pipeline do conjunto de dados seja executado, o namespace `sdlab canon *` transforma o repositório de entidades do cânone do seu projeto nas três projeções que o treinamento e a produção realmente usam — e bloqueia as entradas que não devem ser alteradas.
|
|
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
|
-
|
|
79
|
+
`canon build` é endereçável por conteúdo — sua saída é identificada por um `canon_sha` e armazenada em cache, para que uma reconstrução do cânone inalterado seja feita instantaneamente. `canon freeze` registra cada congelamento em relação a uma construção específica e anexa a um rastreamento de auditoria `freeze-events.jsonl`: as entradas `frozen` rejeitam explicitamente a regeneração, as entradas `soft-advisory` rejeitam por padrão (ignore com `--i-know`). `canon drift` recalcula o hash de cada entrada monitorada e sinaliza qualquer coisa que tenha sido alterada desde a última construção limpa.
|
|
80
|
+
|
|
81
|
+
Fluxo de trabalho completo no manual: [Canon build](handbook/canon-build/), [Canon freeze](handbook/canon-freeze/) e [Two-LoRA stacking](handbook/two-lora-stacking/).
|
|
46
82
|
|
|
47
83
|
## O que ele produz
|
|
48
84
|
|
|
49
|
-
Sete artefatos
|
|
85
|
+
Sete artefatos de conjunto de dados e uma estação 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
86
|
|
|
51
87
|
| Artefato | O que é |
|
|
52
88
|
|----------|-----------|
|
|
53
|
-
| **Snapshot** | Seleção de registros
|
|
54
|
-
| **Split** | Partição de treinamento/validação/teste
|
|
55
|
-
| **Export package** | Conjunto de dados autônomo: manifesto, metadados, imagens, divisões,
|
|
56
|
-
| **Eval pack** | Tarefas de
|
|
57
|
-
| **Training package** |
|
|
58
|
-
| **Eval scorecard** |
|
|
59
|
-
| **Implementation pack** | Exemplos de prompts, falhas conhecidas, testes de continuidade e
|
|
89
|
+
| **Snapshot** | Seleção de registros congelados com impressão digital da configuração. Cada inclusão tem uma razão explícita. |
|
|
90
|
+
| **Split** | Partição de treinamento/validação/teste onde as famílias de assuntos nunca cruzam os limites. |
|
|
91
|
+
| **Export package** | Conjunto de dados autônomo: manifesto, metadados, imagens, divisões, cartão do conjunto de dados, somas de verificação. |
|
|
92
|
+
| **Eval pack** | Tarefas de teste com reconhecimento do cânone: cobertura da faixa, desvio proibido, âncora/ouro, continuidade do assunto. |
|
|
93
|
+
| **Training package** | Layout pronto para o treinador por meio de adaptadores (`diffusers-lora`, `generic-image-caption`). A mesma verdade, formato diferente. |
|
|
94
|
+
| **Eval scorecard** | Resultado de aprovação/reprovação por tarefa a partir da pontuação das saídas geradas em relação aos pacotes de avaliação. |
|
|
95
|
+
| **Implementation pack** | Exemplos de prompts, falhas conhecidas, testes de continuidade e orientação para reintrodução. |
|
|
96
|
+
|
|
97
|
+
A estação de trabalho de produção adiciona:
|
|
98
|
+
|
|
99
|
+
| Superfície | O que faz |
|
|
100
|
+
|---------|-------------|
|
|
101
|
+
| **Compiled brief** | Instrução de geração determinística a partir do perfil do fluxo de trabalho + verdade do projeto. |
|
|
102
|
+
| **Run** | Artefato de execução congelado: resumo + sementes + saídas do ComfyUI + manifesto. |
|
|
103
|
+
| **Critique** | Avaliação estruturada multidimensional das saídas da execução em relação ao cânone. |
|
|
104
|
+
| **Batch** | Produção coordenada multislot (folhas de expressão, painéis de ambiente, pacotes de silhueta). |
|
|
105
|
+
| **Selection** | Artefato de decisão criativa: quais saídas foram escolhidas, por quê e de onde vieram. |
|
|
106
|
+
| **Re-ingest** | As saídas selecionadas retornam como registros candidatos com toda a proveniência da geração. |
|
|
60
107
|
|
|
61
108
|
## Por que isso existe
|
|
62
109
|
|
|
63
|
-
Os dados de treinamento são o
|
|
110
|
+
Os dados de treinamento são o artefato de maior impacto em qualquer pipeline de IA visual. Mas, na maioria das vezes, os dados de treinamento são apenas uma pasta de imagens sem histórico, sem rastreamento de julgamento e sem conexão com as regras de estilo que deveriam ser seguidas.
|
|
64
111
|
|
|
65
|
-
O Style Dataset Lab torna
|
|
112
|
+
O Style Dataset Lab torna a conexão explícita. Sua constituição define as regras. Seu rubrica define as dimensões de pontuação. Seus registros de curadoria registram o julgamento. Sua vinculação do cânone prova a conexão. E seu conjunto de dados carrega tudo isso para frente como uma verdade estruturada, pesquisável e reproduzível.
|
|
66
113
|
|
|
67
|
-
O resultado prático: quando seu LoRA se desvia, você pode perguntar *por quê*. Quando sua próxima rodada de treinamento precisar de melhores dados, você saberá exatamente quais registros estão próximos do ideal e qual regra
|
|
114
|
+
O resultado prático: quando seu LoRA se desvia, você pode perguntar *por quê*. Quando sua próxima rodada de treinamento precisar de melhores dados, você saberá exatamente quais registros estão próximos do ideal e qual regra única eles não cumpriram. Quando um novo membro da equipe perguntar qual é a linguagem visual do projeto, a resposta não será uma placa Figma — será uma constituição pesquisável com 1.182 exemplos graduados.
|
|
68
115
|
|
|
69
116
|
## Cinco domínios, regras reais
|
|
70
117
|
|
|
71
|
-
Não são modelos
|
|
118
|
+
Não são apenas modelos de exemplo. Cada domínio é fornecido com regras de constituição de nível de produção, definições de faixa, rubricas de pontuação e vocabulário de grupo.
|
|
72
119
|
|
|
73
|
-
| Domínio |
|
|
120
|
+
| Domínio | Faixas | O que é avaliado |
|
|
74
121
|
|--------|-------|-----------------|
|
|
75
|
-
| **game-art** | personagem, ambiente,
|
|
76
|
-
| **character-design** | retrato, corpo inteiro,
|
|
77
|
-
| **creature-design** | conceito, ortográfico, estudo de detalhes, ação, referência de escala, habitat | Anatomia, lógica evolutiva, distinção
|
|
78
|
-
| **architecture** | exterior, interior, paisagem urbana, detalhe estrutural, ruína, paisagem | Estrutura, consistência
|
|
79
|
-
| **vehicle-mech** | exterior,
|
|
122
|
+
| **game-art** | personagem, ambiente, adereço, interface do usuário, nave, interior, equipamento | Silhueta na escala de jogabilidade, leitura da facção, desgaste e envelhecimento |
|
|
123
|
+
| **character-design** | retrato, corpo inteiro, rotação, folha de expressão, pose de ação | Proporções, lógica do traje, personalidade, clareza dos gestos |
|
|
124
|
+
| **creature-design** | conceito, ortográfico, estudo de detalhes, ação, referência de escala, habitat | Anatomia, lógica evolutiva, distinção da silhueta |
|
|
125
|
+
| **architecture** | exterior, interior, paisagem urbana, detalhe estrutural, ruína, paisagem | Estrutura, consistência do material, perspectiva, coerência de época |
|
|
126
|
+
| **vehicle-mech** | exterior, cabine, componente, esquema, folha de silhueta, variante de dano | Lógica mecânica, linguagem de design, pontos de acesso, narrativa de danos |
|
|
80
127
|
|
|
81
128
|
## Estrutura do projeto
|
|
82
129
|
|
|
83
|
-
Cada projeto é
|
|
130
|
+
Cada projeto é autocontido. Cinco arquivos de configuração JSON definem as regras; tudo o mais são dados.
|
|
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
|
-
## Propriedades de
|
|
152
|
+
## Propriedades de confiança
|
|
100
153
|
|
|
101
|
-
|
|
154
|
+
Estas não são apenas aspirações. Elas são aplicadas.
|
|
102
155
|
|
|
103
|
-
- **Os snapshots são imutáveis.** A impressão digital
|
|
104
|
-
- **As divisões evitam vazamentos.** As famílias de
|
|
105
|
-
- **Os manifestos são contratos
|
|
106
|
-
- **Os adaptadores não podem alterar a verdade.**
|
|
107
|
-
- **As saídas geradas
|
|
156
|
+
- **Os snapshots são imutáveis.** A impressão digital da configuração (SHA-256) prova que nada foi alterado.
|
|
157
|
+
- **As divisões evitam vazamentos.** As famílias de objetos (por identidade, linhagem ou sufixo de ID) nunca cruzam os limites das partições.
|
|
158
|
+
- **Os manifestos são contratos congelados.** Hash de exportação + impressão digital da configuração. Se algo mudar, crie um novo.
|
|
159
|
+
- **Os adaptadores não podem alterar a verdade.** Layout diferente, mesmos registros. Sem adições, sem remoções, sem reclassificações.
|
|
160
|
+
- **As saídas geradas retornam através da revisão.** Sem atalhos. Curadoria e vinculação como tudo o mais.
|
|
108
161
|
|
|
109
162
|
## Star Freight
|
|
110
163
|
|
|
111
|
-
O repositório inclui um exemplo completo e funcional: 1.182 registros, 5 facções, 7
|
|
164
|
+
O repositório inclui um exemplo completo e funcional: 1.182 registros, 5 facções, 7 rotas, 24 regras de constituição, 892 ativos aprovados, 2 perfis de treinamento. Um cânone visual de RPG de ficção científica sombrio, totalmente selecionado.
|
|
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
|
-
## Formatos
|
|
174
|
+
## Formatos downstream
|
|
122
175
|
|
|
123
|
-
|
|
176
|
+
`sdlab` é o proprietário do conjunto de dados. A conversão de formato é tratada por [`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset): TRL, LLaVA, Qwen2-VL, JSONL, Parquet e muito mais. `repo-dataset` renderiza; nunca decide a inclusão.
|
|
124
177
|
|
|
125
178
|
## Instalação
|
|
126
179
|
|
|
@@ -128,11 +181,71 @@ O projeto `sdlab` é o proprietário do conjunto de dados. A conversão de forma
|
|
|
128
181
|
npm install -g @mcptoolshop/style-dataset-lab
|
|
129
182
|
```
|
|
130
183
|
|
|
131
|
-
Requer Node.js 20
|
|
184
|
+
Requer Node.js 20+ e [ComfyUI](https://github.com/comfyanonymous/ComfyUI) no localhost:8188 para geração.
|
|
185
|
+
|
|
186
|
+
### Experimente sem o ComfyUI
|
|
187
|
+
|
|
188
|
+
Você pode explorar toda a funcionalidade não relacionada à geração — inspeção, curadoria, snapshot, divisão, exportação — usando o projeto Star Freight incluído, sem instalar o ComfyUI ou baixar quaisquer pesos 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` valida cada configuração de projeto (constituição, rotas, rubrica, terminologia) e relata a elegibilidade sem tocar na GPU. Qualquer comando que altere o estado gerado aceita `--dry-run` para visualizar o efeito primeiro.
|
|
202
|
+
|
|
203
|
+
Se você esquecer `--project`, a CLI voltará ao primeiro projeto que encontrar em `projects/` e imprimirá um aviso — passe `--project` explicitamente para silenciá-lo.
|
|
204
|
+
|
|
205
|
+
### Retomando uma execução interrompida
|
|
206
|
+
|
|
207
|
+
Execuções de geração longas podem ser retomadas sem refazer o trabalho concluído:
|
|
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
|
+
Ambos os comandos funcionam porque cada slot grava sua entrada de manifesto atomicamente ao terminar — uma falha no meio da execução nunca corrompe o estado parcial.
|
|
220
|
+
|
|
221
|
+
## Solução de problemas
|
|
222
|
+
|
|
223
|
+
Modos de falha comuns e soluções:
|
|
224
|
+
|
|
225
|
+
**`ECONNREFUSED 127.0.0.1:8188` em qualquer `sdlab generate` / `sdlab run generate` / `sdlab batch generate`**
|
|
226
|
+
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`.
|
|
227
|
+
|
|
228
|
+
**`missing checkpoint` / `LoRA weight not found`**
|
|
229
|
+
O perfil de fluxo de trabalho especifica um arquivo de modelo que não está na pasta `models/checkpoints/` ou `models/loras/` do ComfyUI. Abra `projects/<project>/workflows/profiles/<profile>.json`, localize o campo `checkpoint` ou `lora` e, ou baixe o peso referenciado ou substitua-o por um que você já tenha. Execute novamente `sdlab project doctor --project <project>` para confirmar a correção.
|
|
230
|
+
|
|
231
|
+
**Erros de `sdlab project doctor`**
|
|
232
|
+
Doctor retorna códigos de erro estruturados. Alguns comuns:
|
|
233
|
+
- `E_PROJECT_NOT_FOUND` — o diretório do projeto não existe em `projects/`. Verifique a ortografia.
|
|
234
|
+
- `E_CONFIG_INVALID` — um dos cinco arquivos de configuração JSON falhou na validação do esquema. O campo `hint` indica o arquivo e o campo com problemas.
|
|
235
|
+
- `E_RECORD_DRIFT` — a impressão digital da configuração de um registro não corresponde mais à sua fonte. Reavalie ou redefina conforme sugerido no aviso.
|
|
236
|
+
|
|
237
|
+
**`No --project specified, falling back to <name>`**
|
|
238
|
+
Um aviso leve. Passe `--project <name>` explicitamente para selecionar o projeto correto e silenciar o aviso.
|
|
239
|
+
|
|
240
|
+
**Problemas de VRAM / "Painterly" (estilo pictórico) / falta de memória**
|
|
241
|
+
Consulte `docs/internal/HANDOFF.md` para obter as notas sobre o ajuste do ruído no estilo pictórico. Em resumo: diminua a intensidade do ruído, reduza o tamanho do lote ou altere para um checkpoint menor em seu perfil de fluxo de trabalho.
|
|
242
|
+
|
|
243
|
+
**Relatando bugs**
|
|
244
|
+
Crie uma solicitação em https://github.com/mcp-tool-shop-org/style-dataset-lab/issues com sua versão do sdlab (`sdlab --version`), versão do Node (`node -v`), o comando completo e a saída de erro estruturada. Um modelo de relatório de bug preenche os campos automaticamente.
|
|
132
245
|
|
|
133
246
|
## Segurança
|
|
134
247
|
|
|
135
|
-
|
|
248
|
+
Apenas local. Sem telemetria, sem análises, sem solicitações externas. As imagens permanecem em sua GPU e sistema de arquivos.
|
|
136
249
|
|
|
137
250
|
## Licença
|
|
138
251
|
|
|
@@ -140,4 +253,4 @@ MIT
|
|
|
140
253
|
|
|
141
254
|
---
|
|
142
255
|
|
|
143
|
-
Criado por <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a
|
|
256
|
+
Criado por <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|
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
|
+
“风格数据集实验室”将你记录下来的关于艺术风格的内容与你实际用于训练的数据集联系起来,然后贯穿整个生产过程,形成一个闭环。你可以定义一套规范——轮廓规则、调色板约束、材质语言,以及对你的项目有意义的任何内容。“流水线”生成候选作品,根据这些规则对其进行评分,并将批准的作品打包成可重现的数据集,其中每条记录都解释了它被包含的原因。
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
然后,生产工作台接管:从项目的真实数据中编译生成简报,通过 ComfyUI 运行,评估输出结果,批量制作表情图和环境板,选择最佳结果,并将其重新导入作为新的候选作品。循环完成:生成、选择、审查、改进。
|
|
19
21
|
|
|
20
22
|
## 流水线
|
|
21
23
|
|
|
@@ -28,55 +30,100 @@ 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
|
+
最后一条命令就是关键。选定的输出会通过与所有其他内容相同的审核流程进行评估。语料库不断增长,规则始终有效。
|
|
60
|
+
|
|
61
|
+
## 规范创作
|
|
62
|
+
|
|
63
|
+
在数据集流水线运行之前,“sdlab canon *”命名空间会将你项目的规范实体存储转换为实际用于训练和生产的三个投影——并锁定那些不应发生变化的项目。
|
|
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
|
-
|
|
81
|
+
完整的流程在手册中:[构建规范](handbook/canon-build/)、[冻结规范](handbook/canon-freeze/)和[双 LoRA 堆叠](handbook/two-lora-stacking/)。
|
|
50
82
|
|
|
51
|
-
|
|
83
|
+
## 它产生的结果
|
|
84
|
+
|
|
85
|
+
七个数据集工件和一个完整的生产工作台。每个工件都链接到其前身,因此你可以追溯任何训练记录到批准它的规则。
|
|
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
|
-
|
|
108
|
+
## 为什么这个工具存在
|
|
64
109
|
|
|
65
|
-
|
|
110
|
+
训练数据是任何视觉 AI 流水线中最重要的工件。但是,大多数训练数据只是一个包含图像的文件夹,没有历史记录、没有判断轨迹,也没有与它应该遵循的风格规则的联系。
|
|
66
111
|
|
|
67
|
-
|
|
112
|
+
“风格数据集实验室”使这种联系变得明确。你的规范定义了规则。你的评分标准定义了评分维度。你的策划记录了判断结果。你的规范绑定证明了这种联系。并且你的数据集将所有这些内容作为结构化、可查询、可重现的真实数据进行传递。
|
|
113
|
+
|
|
114
|
+
实际效果:当你的 LoRA 发生漂移时,你可以询问*原因*。当你的下一个训练轮次需要更好的数据时,你确切地知道哪些记录是接近成功的,以及它们未能满足哪个单一规则。当新的团队成员询问项目的视觉语言是什么时,答案不是 Figma 板——而是一个可搜索的规范,其中包含 1,182 个经过评分的示例。
|
|
68
115
|
|
|
69
116
|
## 五个领域,真实的规则
|
|
70
117
|
|
|
71
|
-
|
|
118
|
+
不是占位符模板。每个领域都提供生产级别的规范规则、车道定义、评分标准和组词汇。
|
|
72
119
|
|
|
73
|
-
| 领域 |
|
|
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
|
|
|
@@ -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
|
-
- **快照是不可变的。**
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
156
|
+
- **快照是不可变的。** 配置指纹(SHA-256)证明没有任何更改。
|
|
157
|
+
- **分割可防止数据泄露。** 主题组(按身份、谱系或 ID 后缀划分)绝不会跨越分区边界。
|
|
158
|
+
- **清单是固定的协议。** 导出哈希 + 配置指纹。如果发生任何更改,请创建一个新的。
|
|
159
|
+
- **适配器不能改变真相。** 不同的布局,相同的记录。没有添加、删除或重新分类。
|
|
160
|
+
- **生成的输出通过审核后重新进入。** 没有绕过机制。像其他所有内容一样进行整理和绑定。
|
|
108
161
|
|
|
109
|
-
##
|
|
162
|
+
## 星际货运
|
|
110
163
|
|
|
111
|
-
该仓库包含一个完整的示例:
|
|
164
|
+
该仓库包含一个完整的示例:1,182 条记录、5 个派系、7 条路线、24 条宪法规则、892 个已批准的资产、2 个训练配置文件。这是一个充满细节的科幻 RPG 视觉规范,经过全面整理。
|
|
112
165
|
|
|
113
166
|
```bash
|
|
114
167
|
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
@@ -120,7 +173,7 @@ sdlab split build --project star-freight # zero subject leakage
|
|
|
120
173
|
|
|
121
174
|
## 下游格式
|
|
122
175
|
|
|
123
|
-
`sdlab` 拥有数据集。格式转换由 [`repo-dataset`](https://github.com/mcp-tool-shop-org/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+
|
|
184
|
+
需要 Node.js 20+ 和本地主机上的 [ComfyUI](https://github.com/comfyanonymous/ComfyUI),地址为:8188,用于生成。
|
|
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`——五个 JSON 配置文件中的一个未能通过模式验证。`hint` 字段指定了错误的 文件和字段。
|
|
235
|
+
- `E_RECORD_DRIFT`——某个记录的配置指纹不再与其来源匹配。如提示所述,重新整理或重新绑定。
|
|
236
|
+
|
|
237
|
+
**`No --project specified, falling back to <name>`**
|
|
238
|
+
一个轻微的警告。明确传递 `--project <name>` 以选择正确的项目并消除该警告。
|
|
239
|
+
|
|
240
|
+
**绘画风格 / VRAM 内存不足问题**
|
|
241
|
+
请参阅 `docs/internal/HANDOFF.md`,了解有关绘画风格降噪调整说明。简而言之:降低降噪强度、减少批处理大小或在工作流程配置文件中切换到较小的检查点。
|
|
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
|
-
|
|
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
|
+
由 <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a> 构建
|