@mcptoolshop/style-dataset-lab 3.1.0 → 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 +37 -0
- package/README.es.md +84 -62
- package/README.fr.md +85 -63
- package/README.hi.md +97 -77
- package/README.it.md +86 -64
- package/README.ja.md +94 -72
- package/README.md +22 -0
- package/README.pt-BR.md +83 -61
- package/README.zh.md +88 -66
- package/bin/sdlab.js +71 -0
- package/lib/adapters/ai-toolkit.js +209 -0
- 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/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/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 +5 -0
- package/lib/training-packages.js +24 -18
- package/lib/training-profiles.js +33 -0
- package/package.json +12 -3
- package/scripts/_batch_cut.py +71 -0
- package/scripts/_seam_cutout.py +74 -0
- 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 +238 -102
- package/scripts/qwen_generate.py +124 -0
package/README.pt-BR.md
CHANGED
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
|
-
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.
|
|
17
17
|
|
|
18
|
-
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.
|
|
19
19
|
|
|
20
|
-
Em seguida, a
|
|
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.
|
|
21
21
|
|
|
22
|
-
## O
|
|
22
|
+
## O pipeline
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
25
|
# Write your canon. Scaffold the project.
|
|
@@ -56,56 +56,78 @@ sdlab select --run run_2026-04-16_001 --approve 001.png,003.png
|
|
|
56
56
|
sdlab reingest selected --selection selection_2026-04-16_001
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
|
|
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
|
|
77
|
+
```
|
|
78
|
+
|
|
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/).
|
|
60
82
|
|
|
61
83
|
## O que ele produz
|
|
62
84
|
|
|
63
|
-
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.
|
|
64
86
|
|
|
65
87
|
| Artefato | O que é |
|
|
66
88
|
|----------|-----------|
|
|
67
|
-
| **Snapshot** | Seleção de registros
|
|
68
|
-
| **Split** | Partição de treinamento/validação/teste
|
|
69
|
-
| **Export package** | Conjunto de dados autônomo: manifesto, metadados, imagens, divisões,
|
|
70
|
-
| **Eval pack** | Tarefas de
|
|
71
|
-
| **Training package** |
|
|
72
|
-
| **Eval scorecard** |
|
|
73
|
-
| **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. |
|
|
74
96
|
|
|
75
|
-
A
|
|
97
|
+
A estação de trabalho de produção adiciona:
|
|
76
98
|
|
|
77
|
-
|
|
|
99
|
+
| Superfície | O que faz |
|
|
78
100
|
|---------|-------------|
|
|
79
|
-
| **Compiled brief** |
|
|
80
|
-
| **Run** | Artefato de execução congelado:
|
|
81
|
-
| **Critique** | Avaliação estruturada
|
|
82
|
-
| **Batch** | Produção coordenada
|
|
83
|
-
| **Selection** | Artefato de decisão criativa: quais
|
|
84
|
-
| **Re-ingest** |
|
|
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. |
|
|
85
107
|
|
|
86
108
|
## Por que isso existe
|
|
87
109
|
|
|
88
|
-
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.
|
|
89
111
|
|
|
90
|
-
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.
|
|
91
113
|
|
|
92
|
-
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.
|
|
93
115
|
|
|
94
116
|
## Cinco domínios, regras reais
|
|
95
117
|
|
|
96
|
-
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.
|
|
97
119
|
|
|
98
|
-
| Domínio |
|
|
120
|
+
| Domínio | Faixas | O que é avaliado |
|
|
99
121
|
|--------|-------|-----------------|
|
|
100
|
-
| **game-art** | personagem, ambiente,
|
|
101
|
-
| **character-design** | retrato, corpo inteiro,
|
|
102
|
-
| **creature-design** | conceito, ortográfico, estudo de detalhes, ação, referência de escala, habitat | Anatomia, lógica evolutiva, distinção
|
|
103
|
-
| **architecture** | exterior, interior, paisagem urbana, detalhe estrutural, ruína, paisagem | Estrutura, consistência
|
|
104
|
-
| **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 |
|
|
105
127
|
|
|
106
128
|
## Estrutura do projeto
|
|
107
129
|
|
|
108
|
-
Cada projeto é
|
|
130
|
+
Cada projeto é autocontido. Cinco arquivos de configuração JSON definem as regras; tudo o mais são dados.
|
|
109
131
|
|
|
110
132
|
```
|
|
111
133
|
projects/my-project/
|
|
@@ -127,19 +149,19 @@ projects/my-project/
|
|
|
127
149
|
inbox/generated/ Re-ingested images awaiting review
|
|
128
150
|
```
|
|
129
151
|
|
|
130
|
-
## Propriedades de
|
|
152
|
+
## Propriedades de confiança
|
|
131
153
|
|
|
132
|
-
|
|
154
|
+
Estas não são apenas aspirações. Elas são aplicadas.
|
|
133
155
|
|
|
134
|
-
- **Os snapshots são imutáveis.** A impressão digital
|
|
135
|
-
- **As divisões evitam vazamentos.** As famílias de
|
|
136
|
-
- **Os manifestos são contratos
|
|
137
|
-
- **Os adaptadores não podem alterar a verdade.**
|
|
138
|
-
- **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.
|
|
139
161
|
|
|
140
162
|
## Star Freight
|
|
141
163
|
|
|
142
|
-
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.
|
|
143
165
|
|
|
144
166
|
```bash
|
|
145
167
|
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
@@ -149,9 +171,9 @@ sdlab snapshot create --project star-freight # 839 eligible records
|
|
|
149
171
|
sdlab split build --project star-freight # zero subject leakage
|
|
150
172
|
```
|
|
151
173
|
|
|
152
|
-
## Formatos
|
|
174
|
+
## Formatos downstream
|
|
153
175
|
|
|
154
|
-
|
|
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.
|
|
155
177
|
|
|
156
178
|
## Instalação
|
|
157
179
|
|
|
@@ -159,11 +181,11 @@ O projeto `sdlab` é o proprietário do conjunto de dados. A conversão de forma
|
|
|
159
181
|
npm install -g @mcptoolshop/style-dataset-lab
|
|
160
182
|
```
|
|
161
183
|
|
|
162
|
-
Requer Node.js 20
|
|
184
|
+
Requer Node.js 20+ e [ComfyUI](https://github.com/comfyanonymous/ComfyUI) no localhost:8188 para geração.
|
|
163
185
|
|
|
164
186
|
### Experimente sem o ComfyUI
|
|
165
187
|
|
|
166
|
-
Você pode explorar toda a
|
|
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.
|
|
167
189
|
|
|
168
190
|
```bash
|
|
169
191
|
# Scaffold a fresh project (no ComfyUI needed)
|
|
@@ -176,13 +198,13 @@ sdlab project doctor --project test
|
|
|
176
198
|
sdlab snapshot create --dry-run --project star-freight
|
|
177
199
|
```
|
|
178
200
|
|
|
179
|
-
|
|
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.
|
|
180
202
|
|
|
181
|
-
Se você esquecer `--project`, a
|
|
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.
|
|
182
204
|
|
|
183
205
|
### Retomando uma execução interrompida
|
|
184
206
|
|
|
185
|
-
Execuções
|
|
207
|
+
Execuções de geração longas podem ser retomadas sem refazer o trabalho concluído:
|
|
186
208
|
|
|
187
209
|
```bash
|
|
188
210
|
# Skip subjects whose record + image are already on disk.
|
|
@@ -194,36 +216,36 @@ sdlab generate inputs/prompts/wave1.json --project my-project --resume
|
|
|
194
216
|
sdlab batch generate --resume batch_2026-04-22_001 --project my-project
|
|
195
217
|
```
|
|
196
218
|
|
|
197
|
-
Ambos os comandos funcionam porque cada slot
|
|
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.
|
|
198
220
|
|
|
199
221
|
## Solução de problemas
|
|
200
222
|
|
|
201
223
|
Modos de falha comuns e soluções:
|
|
202
224
|
|
|
203
|
-
**`ECONNREFUSED 127.0.0.1:8188` em qualquer
|
|
225
|
+
**`ECONNREFUSED 127.0.0.1:8188` em qualquer `sdlab generate` / `sdlab run generate` / `sdlab batch generate`**
|
|
204
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`.
|
|
205
227
|
|
|
206
228
|
**`missing checkpoint` / `LoRA weight not found`**
|
|
207
|
-
O perfil
|
|
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.
|
|
208
230
|
|
|
209
|
-
**Erros
|
|
210
|
-
|
|
231
|
+
**Erros de `sdlab project doctor`**
|
|
232
|
+
Doctor retorna códigos de erro estruturados. Alguns comuns:
|
|
211
233
|
- `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
|
|
213
|
-
- `E_RECORD_DRIFT` — a impressão digital
|
|
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.
|
|
214
236
|
|
|
215
237
|
**`No --project specified, falling back to <name>`**
|
|
216
|
-
Um aviso leve.
|
|
238
|
+
Um aviso leve. Passe `--project <name>` explicitamente para selecionar o projeto correto e silenciar o aviso.
|
|
217
239
|
|
|
218
|
-
**Problemas
|
|
219
|
-
Consulte
|
|
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.
|
|
220
242
|
|
|
221
|
-
**Relatando
|
|
222
|
-
|
|
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.
|
|
223
245
|
|
|
224
246
|
## Segurança
|
|
225
247
|
|
|
226
|
-
|
|
248
|
+
Apenas local. Sem telemetria, sem análises, sem solicitações externas. As imagens permanecem em sua GPU e sistema de arquivos.
|
|
227
249
|
|
|
228
250
|
## Licença
|
|
229
251
|
|
|
@@ -231,4 +253,4 @@ MIT
|
|
|
231
253
|
|
|
232
254
|
---
|
|
233
255
|
|
|
234
|
-
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
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
编写你的视觉规则。生成艺术作品。根据这些规则评估每张图像。将结果作为版本化的、可审计的训练数据进行输出——然后将训练好的模型应用于实际的生产流程中,并将最佳输出反馈到你的语料库中。
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
“风格数据集实验室”将你记录下来的关于艺术风格的内容与你实际用于训练的数据集联系起来,然后贯穿整个生产过程,形成一个闭环。你可以定义一套规范——轮廓规则、调色板约束、材质语言,以及对你的项目有意义的任何内容。“流水线”生成候选作品,根据这些规则对其进行评分,并将批准的作品打包成可重现的数据集,其中每条记录都解释了它被包含的原因。
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
然后,生产工作台接管:从项目的真实数据中编译生成简报,通过 ComfyUI 运行,评估输出结果,批量制作表情图和环境板,选择最佳结果,并将其重新导入作为新的候选作品。循环完成:生成、选择、审查、改进。
|
|
21
21
|
|
|
22
22
|
## 流水线
|
|
23
23
|
|
|
@@ -56,52 +56,74 @@ sdlab select --run run_2026-04-16_001 --approve 001.png,003.png
|
|
|
56
56
|
sdlab reingest selected --selection selection_2026-04-16_001
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
最后一条命令就是关键。选定的输出会通过与所有其他内容相同的审核流程进行评估。语料库不断增长,规则始终有效。
|
|
60
60
|
|
|
61
|
-
##
|
|
61
|
+
## 规范创作
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
在数据集流水线运行之前,“sdlab canon *”命名空间会将你项目的规范实体存储转换为实际用于训练和生产的三个投影——并锁定那些不应发生变化的项目。
|
|
64
64
|
|
|
65
|
-
|
|
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”(构建规范)是基于内容的——其输出由 `canon_sha` 标识,并进行缓存,因此未更改的规范可以立即重建。“canon freeze”(冻结规范)会针对特定的构建记录每次冻结操作,并将结果附加到 `freeze-events.jsonl` 审计跟踪中:`frozen`(已冻结)条目直接拒绝重新生成,`soft-advisory`(软提示)条目默认拒绝(通过 `--i-know` 参数可以绕过)。“canon drift”(规范漂移)会重新计算每个受监控条目的哈希值,并标记自上次干净构建以来发生变化的任何内容。
|
|
80
|
+
|
|
81
|
+
完整的流程在手册中:[构建规范](handbook/canon-build/)、[冻结规范](handbook/canon-freeze/)和[双 LoRA 堆叠](handbook/two-lora-stacking/)。
|
|
82
|
+
|
|
83
|
+
## 它产生的结果
|
|
84
|
+
|
|
85
|
+
七个数据集工件和一个完整的生产工作台。每个工件都链接到其前身,因此你可以追溯任何训练记录到批准它的规则。
|
|
86
|
+
|
|
87
|
+
| 工件 | 它是什么 |
|
|
66
88
|
|----------|-----------|
|
|
67
|
-
| **Snapshot** |
|
|
68
|
-
| **Split** |
|
|
69
|
-
| **Export package** |
|
|
70
|
-
| **Eval pack** |
|
|
71
|
-
| **Training package** | 通过适配器(`diffusers-lora`、`generic-image-caption
|
|
72
|
-
| **Eval scorecard** |
|
|
73
|
-
| **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** | 提示示例、已知错误、连续性测试和重新导入指南。 |
|
|
74
96
|
|
|
75
|
-
|
|
97
|
+
生产工作台添加的内容:
|
|
76
98
|
|
|
77
|
-
|
|
|
99
|
+
| 表面 | 它做什么 |
|
|
78
100
|
|---------|-------------|
|
|
79
|
-
| **Compiled brief** |
|
|
80
|
-
| **Run** |
|
|
81
|
-
| **Critique** |
|
|
82
|
-
| **Batch** |
|
|
83
|
-
| **Selection** |
|
|
84
|
-
| **Re-ingest** |
|
|
101
|
+
| **Compiled brief** | 从工作流程配置文件 + 项目真实数据中生成确定性的生成指令。 |
|
|
102
|
+
| **Run** | 冻结的执行工件:简报 + 种子 + ComfyUI 输出 + 清单。 |
|
|
103
|
+
| **Critique** | 对运行输出相对于规范进行结构化的多维评估。 |
|
|
104
|
+
| **Batch** | 协调的多插槽生产(表情图、环境板、轮廓包)。 |
|
|
105
|
+
| **Selection** | 创意决策工件:选择了哪些输出,原因是什么,以及它们的来源是什么。 |
|
|
106
|
+
| **Re-ingest** | 选定的输出作为带有完整生成溯源的候选记录返回。 |
|
|
85
107
|
|
|
86
|
-
##
|
|
108
|
+
## 为什么这个工具存在
|
|
87
109
|
|
|
88
|
-
|
|
110
|
+
训练数据是任何视觉 AI 流水线中最重要的工件。但是,大多数训练数据只是一个包含图像的文件夹,没有历史记录、没有判断轨迹,也没有与它应该遵循的风格规则的联系。
|
|
89
111
|
|
|
90
|
-
|
|
112
|
+
“风格数据集实验室”使这种联系变得明确。你的规范定义了规则。你的评分标准定义了评分维度。你的策划记录了判断结果。你的规范绑定证明了这种联系。并且你的数据集将所有这些内容作为结构化、可查询、可重现的真实数据进行传递。
|
|
91
113
|
|
|
92
|
-
|
|
114
|
+
实际效果:当你的 LoRA 发生漂移时,你可以询问*原因*。当你的下一个训练轮次需要更好的数据时,你确切地知道哪些记录是接近成功的,以及它们未能满足哪个单一规则。当新的团队成员询问项目的视觉语言是什么时,答案不是 Figma 板——而是一个可搜索的规范,其中包含 1,182 个经过评分的示例。
|
|
93
115
|
|
|
94
116
|
## 五个领域,真实的规则
|
|
95
117
|
|
|
96
|
-
|
|
118
|
+
不是占位符模板。每个领域都提供生产级别的规范规则、车道定义、评分标准和组词汇。
|
|
97
119
|
|
|
98
|
-
| 领域 |
|
|
120
|
+
| 领域 | 车道 | 要评估的内容 |
|
|
99
121
|
|--------|-------|-----------------|
|
|
100
|
-
| **game-art** | 角色、环境、道具、UI、飞船、内部、设备 |
|
|
101
|
-
| **character-design** |
|
|
102
|
-
| **creature-design** |
|
|
103
|
-
| **architecture** |
|
|
104
|
-
| **vehicle-mech** | 外部、驾驶舱、组件、示意图、轮廓图、损坏变体 |
|
|
122
|
+
| **game-art** | 角色、环境、道具、UI、飞船、内部、设备 | 在游戏规模下的轮廓、派系特征、磨损和老化 |
|
|
123
|
+
| **character-design** | 肖像、全身、旋转图、表情图、动作姿势 | 比例、服装逻辑、个性、手势清晰度 |
|
|
124
|
+
| **creature-design** | 概念、正交视图、细节研究、动作、比例参考、栖息地 | 解剖结构、进化逻辑、轮廓区分 |
|
|
125
|
+
| **architecture** | 外部、内部、街景、结构细节、废墟、景观 | 结构、材质一致性、透视、时代连贯性 |
|
|
126
|
+
| **vehicle-mech** | 外部、驾驶舱、组件、示意图、轮廓图、损坏变体 | 机械逻辑、设计语言、访问点、损坏叙事 |
|
|
105
127
|
|
|
106
128
|
## 项目结构
|
|
107
129
|
|
|
@@ -129,17 +151,17 @@ projects/my-project/
|
|
|
129
151
|
|
|
130
152
|
## 信任属性
|
|
131
153
|
|
|
132
|
-
|
|
154
|
+
这些不是理想化的,而是强制执行的。
|
|
133
155
|
|
|
134
|
-
- **快照是不可变的。**
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
156
|
+
- **快照是不可变的。** 配置指纹(SHA-256)证明没有任何更改。
|
|
157
|
+
- **分割可防止数据泄露。** 主题组(按身份、谱系或 ID 后缀划分)绝不会跨越分区边界。
|
|
158
|
+
- **清单是固定的协议。** 导出哈希 + 配置指纹。如果发生任何更改,请创建一个新的。
|
|
159
|
+
- **适配器不能改变真相。** 不同的布局,相同的记录。没有添加、删除或重新分类。
|
|
160
|
+
- **生成的输出通过审核后重新进入。** 没有绕过机制。像其他所有内容一样进行整理和绑定。
|
|
139
161
|
|
|
140
|
-
##
|
|
162
|
+
## 星际货运
|
|
141
163
|
|
|
142
|
-
该仓库包含一个完整的示例:
|
|
164
|
+
该仓库包含一个完整的示例:1,182 条记录、5 个派系、7 条路线、24 条宪法规则、892 个已批准的资产、2 个训练配置文件。这是一个充满细节的科幻 RPG 视觉规范,经过全面整理。
|
|
143
165
|
|
|
144
166
|
```bash
|
|
145
167
|
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
@@ -151,7 +173,7 @@ sdlab split build --project star-freight # zero subject leakage
|
|
|
151
173
|
|
|
152
174
|
## 下游格式
|
|
153
175
|
|
|
154
|
-
`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` 进行渲染;它不会决定是否包含。
|
|
155
177
|
|
|
156
178
|
## 安装
|
|
157
179
|
|
|
@@ -159,11 +181,11 @@ sdlab split build --project star-freight # zero subject leakage
|
|
|
159
181
|
npm install -g @mcptoolshop/style-dataset-lab
|
|
160
182
|
```
|
|
161
183
|
|
|
162
|
-
需要 Node.js 20+
|
|
184
|
+
需要 Node.js 20+ 和本地主机上的 [ComfyUI](https://github.com/comfyanonymous/ComfyUI),地址为:8188,用于生成。
|
|
163
185
|
|
|
164
|
-
###
|
|
186
|
+
### 不使用 ComfyUI 进行尝试
|
|
165
187
|
|
|
166
|
-
|
|
188
|
+
您可以使用捆绑的“星际货运”项目来探索完整的非生成表面——检查、整理、快照、分割、导出——而无需安装 ComfyUI 或下载任何 SDXL 权重。
|
|
167
189
|
|
|
168
190
|
```bash
|
|
169
191
|
# Scaffold a fresh project (no ComfyUI needed)
|
|
@@ -176,13 +198,13 @@ sdlab project doctor --project test
|
|
|
176
198
|
sdlab snapshot create --dry-run --project star-freight
|
|
177
199
|
```
|
|
178
200
|
|
|
179
|
-
`sdlab project doctor`
|
|
201
|
+
`sdlab project doctor` 会验证每个项目的配置(宪法、路线、评分标准、术语),并在不触及 GPU 的情况下报告其是否符合条件。任何会改变生成状态的命令都接受 `--dry-run` 参数,以便首先预览效果。
|
|
180
202
|
|
|
181
|
-
如果您忘记了 `--project
|
|
203
|
+
如果您忘记了 `--project`,CLI 将回退到 `projects/` 目录下找到的第一个项目,并打印一条警告——明确传递 `--project` 以使其停止发出警告。
|
|
182
204
|
|
|
183
205
|
### 恢复中断的运行
|
|
184
206
|
|
|
185
|
-
|
|
207
|
+
长时间的生成运行可以恢复,而无需重新执行已完成的工作:
|
|
186
208
|
|
|
187
209
|
```bash
|
|
188
210
|
# Skip subjects whose record + image are already on disk.
|
|
@@ -194,41 +216,41 @@ sdlab generate inputs/prompts/wave1.json --project my-project --resume
|
|
|
194
216
|
sdlab batch generate --resume batch_2026-04-22_001 --project my-project
|
|
195
217
|
```
|
|
196
218
|
|
|
197
|
-
|
|
219
|
+
这两个命令都有效,因为每个插槽都会在其完成后以原子方式写入其清单条目——在运行过程中发生崩溃绝不会破坏部分状态。
|
|
198
220
|
|
|
199
221
|
## 故障排除
|
|
200
222
|
|
|
201
|
-
|
|
223
|
+
常见的失败模式和解决方法:
|
|
202
224
|
|
|
203
|
-
|
|
204
|
-
ComfyUI 未运行。启动 ComfyUI (`python main.py --listen 127.0.0.1 --port 8188`),并使用 `curl http://127.0.0.1:8188/system_stats`
|
|
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`。
|
|
205
227
|
|
|
206
|
-
**`missing checkpoint` / `LoRA weight not found
|
|
207
|
-
|
|
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>` 以确认修复。
|
|
208
230
|
|
|
209
231
|
**`sdlab project doctor` 错误**
|
|
210
|
-
Doctor
|
|
211
|
-
- `E_PROJECT_NOT_FOUND
|
|
212
|
-
- `E_CONFIG_INVALID
|
|
213
|
-
- `E_RECORD_DRIFT
|
|
232
|
+
Doctor 返回结构化的错误代码。常见的错误:
|
|
233
|
+
- `E_PROJECT_NOT_FOUND`——项目目录在 `projects/` 下不存在。检查拼写。
|
|
234
|
+
- `E_CONFIG_INVALID`——五个 JSON 配置文件中的一个未能通过模式验证。`hint` 字段指定了错误的 文件和字段。
|
|
235
|
+
- `E_RECORD_DRIFT`——某个记录的配置指纹不再与其来源匹配。如提示所述,重新整理或重新绑定。
|
|
214
236
|
|
|
215
|
-
|
|
216
|
-
|
|
237
|
+
**`No --project specified, falling back to <name>`**
|
|
238
|
+
一个轻微的警告。明确传递 `--project <name>` 以选择正确的项目并消除该警告。
|
|
217
239
|
|
|
218
|
-
**绘画风格 /
|
|
219
|
-
|
|
240
|
+
**绘画风格 / VRAM 内存不足问题**
|
|
241
|
+
请参阅 `docs/internal/HANDOFF.md`,了解有关绘画风格降噪调整说明。简而言之:降低降噪强度、减少批处理大小或在工作流程配置文件中切换到较小的检查点。
|
|
220
242
|
|
|
221
243
|
**报告错误**
|
|
222
|
-
|
|
244
|
+
在 https://github.com/mcp-tool-shop-org/style-dataset-lab/issues 上提交问题,并提供您的 sdlab 版本 (`sdlab --version`)、Node 版本 (`node -v`)、完整的命令以及结构化的错误输出。一个错误报告模板会预填充这些字段。
|
|
223
245
|
|
|
224
246
|
## 安全性
|
|
225
247
|
|
|
226
|
-
|
|
248
|
+
仅限本地使用。没有遥测、分析或外部请求。图像保留在您的 GPU 和文件系统中。
|
|
227
249
|
|
|
228
250
|
## 许可证
|
|
229
251
|
|
|
230
|
-
MIT
|
|
252
|
+
MIT
|
|
231
253
|
|
|
232
254
|
---
|
|
233
255
|
|
|
234
|
-
由 <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> 构建
|