@mcptoolshop/style-dataset-lab 3.3.0 → 3.5.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 +60 -0
- package/README.es.md +117 -55
- package/README.fr.md +125 -65
- package/README.hi.md +117 -68
- package/README.it.md +119 -58
- package/README.ja.md +124 -74
- package/README.md +73 -7
- package/README.pt-BR.md +128 -63
- package/README.zh.md +116 -65
- package/bin/sdlab.js +100 -4
- package/lib/adapters/ai-toolkit.js +224 -35
- package/lib/adapters/comfyui-runner.js +79 -26
- package/lib/adapters/comfyui-workflows.js +94 -11
- package/lib/adapters/diffusers-lora.js +37 -5
- package/lib/adapters/generic-image-caption.js +43 -5
- package/lib/args.js +16 -1
- package/lib/asset-ingest.js +575 -0
- package/lib/asset-masks.js +323 -0
- package/lib/asset-source.js +1176 -0
- package/lib/batch-modes.js +29 -8
- package/lib/batch-runs.js +29 -1
- package/lib/batch-sheet-render.js +13 -3
- package/lib/brief-compiler.js +19 -0
- package/lib/candidate-sheet.js +327 -0
- package/lib/canon-author.js +350 -0
- package/lib/canon-build/build.js +146 -93
- package/lib/canon-review-gate.js +205 -0
- package/lib/captions.js +57 -0
- package/lib/card.js +74 -2
- package/lib/colab-launcher-guards.js +285 -0
- package/lib/comfyui.js +116 -18
- package/lib/config.js +116 -12
- package/lib/critique-engine.js +36 -2
- package/lib/eligibility.js +121 -9
- package/lib/eval-pack.js +14 -14
- package/lib/eval-runs.js +33 -0
- package/lib/export.js +122 -34
- package/lib/freeze-gate.js +16 -3
- package/lib/freeze-stamp.js +28 -3
- package/lib/generated-provenance.js +194 -6
- package/lib/implementation-packs.js +95 -17
- package/lib/ingest.js +396 -0
- package/lib/judgment-provenance.js +220 -0
- package/lib/lane1-render.js +668 -0
- package/lib/measure.js +422 -0
- package/lib/memory-store.js +663 -0
- package/lib/model-licences.js +305 -0
- package/lib/npy-meta.js +130 -0
- package/lib/paths.js +196 -7
- package/lib/png-meta.js +512 -0
- package/lib/records.js +54 -8
- package/lib/reingest-selected.js +113 -17
- package/lib/reingest.js +27 -3
- package/lib/run-manifest.js +159 -25
- package/lib/run-summary.js +12 -6
- package/lib/runtime-runs.js +45 -4
- package/lib/snapshot.js +114 -15
- package/lib/split.js +364 -48
- package/lib/train-runs.js +214 -0
- package/lib/training-manifests.js +114 -21
- package/lib/training-packages.js +147 -15
- package/lib/verifier.js +3 -0
- package/lib/verify-chain.js +367 -0
- package/lib/workflow-profiles.js +24 -3
- package/package.json +4 -3
- package/runtime/comfyui/txt2img-qwen.json +38 -0
- package/runtime/comfyui/txt2img-standard.json +21 -0
- package/scripts/_resume.js +62 -0
- package/scripts/_shared-args.js +44 -0
- package/scripts/asset-ingest.js +160 -0
- package/scripts/brief-compile.js +2 -1
- package/scripts/brief-show.js +2 -1
- package/scripts/canon-bind.js +2 -2
- package/scripts/canon-build.js +27 -20
- package/scripts/canon-draft.js +82 -0
- package/scripts/canon-drift.js +16 -7
- package/scripts/canon-freeze-status.js +14 -6
- package/scripts/canon-freeze.js +31 -11
- package/scripts/canon-unfreeze.js +17 -9
- package/scripts/card.js +2 -2
- package/scripts/colab/REAL_SERVICE_ASSUMPTIONS.md +14 -0
- package/scripts/colab/ai-toolkit-override-py315.txt +45 -0
- package/scripts/colab/colab_window.sh +587 -0
- package/scripts/colab/lane1_render.py +970 -0
- package/scripts/colab/launch_guards.py +564 -0
- package/scripts/colab/launch_lane1_stub.sh +309 -0
- package/scripts/colab/launch_lane3_stub.sh +366 -0
- package/scripts/colab/remote_runner.py +59 -0
- package/scripts/compare.js +2 -2
- package/scripts/critique.js +16 -1
- package/scripts/curate.js +2 -2
- package/scripts/doctor.js +182 -55
- package/scripts/eligibility.js +42 -2
- package/scripts/eval-pack.js +2 -2
- package/scripts/eval-run.js +2 -2
- package/scripts/export.js +2 -2
- package/scripts/generate-controlnet.js +45 -25
- package/scripts/generate-identity.js +53 -23
- package/scripts/generate-ipadapter.js +44 -23
- package/scripts/generate.js +86 -17
- package/scripts/implementation-pack.js +2 -2
- package/scripts/ingest.js +145 -0
- package/scripts/init.js +73 -13
- package/scripts/measure.js +170 -0
- package/scripts/measure_image.py +458 -0
- package/scripts/migrate-records.js +142 -0
- package/scripts/painterly-test.js +4 -3
- package/scripts/painterly.js +7 -3
- package/scripts/qwen_generate.py +138 -20
- package/scripts/reingest.js +2 -2
- package/scripts/sheet.js +142 -0
- package/scripts/snapshot.js +2 -2
- package/scripts/split.js +2 -2
- package/scripts/training-manifest.js +2 -2
- package/scripts/training-package.js +2 -2
- package/scripts/training-profile.js +2 -2
- package/scripts/verify.js +67 -0
- package/scripts/workflow-list.js +2 -1
- package/scripts/workflow-show.js +2 -1
package/README.pt-BR.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="README.
|
|
2
|
+
<a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.md">English</a>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
@@ -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
|
-
Escreva suas regras visuais. Gere arte. Avalie cada imagem com base nessas regras. Envie os resultados como dados de treinamento
|
|
16
|
+
Escreva suas regras visuais. Gere arte. Avalie cada imagem com base nessas regras. Envie os resultados como dados de treinamento versionados e auditáveis — e, em seguida, coloque os modelos treinados em uso em fluxos de trabalho de produção reais e alimente os melhores resultados de volta ao seu corpus.
|
|
17
17
|
|
|
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
|
|
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, em seguida, fecha o ciclo até a produção. Você define uma constituição — regras de silhueta, restrições de paleta, linguagem de 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,
|
|
20
|
+
Em seguida, o ambiente de trabalho de produção assume o controle: compile resumos de geração a partir da verdade do projeto, execute-os no ComfyUI, critique os resultados, produza em lote folhas de expressão e painéis de ambiente, selecione os melhores resultados e reimporte-os como novos candidatos. O ciclo se fecha: produzir, selecionar, revisar, aprimorar.
|
|
21
21
|
|
|
22
22
|
## O pipeline
|
|
23
23
|
|
|
@@ -27,8 +27,15 @@ sdlab init my-project --domain character-design
|
|
|
27
27
|
|
|
28
28
|
# Generate candidates via ComfyUI, then review them
|
|
29
29
|
sdlab generate inputs/prompts/wave1.json --project my-project
|
|
30
|
+
sdlab sheet outputs/candidates --project my-project # HTML contact sheet to triage
|
|
30
31
|
sdlab curate <id> approved "Strong silhouette, correct faction palette"
|
|
31
32
|
|
|
33
|
+
# Already have images? Bring them in without generating anything
|
|
34
|
+
sdlab ingest ~/renders/wave1 --project my-project
|
|
35
|
+
|
|
36
|
+
# Measure what the pixels actually are — palette and texture, as numbers
|
|
37
|
+
sdlab measure outputs/candidates --project my-project
|
|
38
|
+
|
|
32
39
|
# Bind approved work to constitution rules
|
|
33
40
|
# (`sdlab bind` is a shorter alias for `canon-bind`)
|
|
34
41
|
sdlab canon-bind --project my-project
|
|
@@ -56,11 +63,61 @@ sdlab select --run run_2026-04-16_001 --approve 001.png,003.png
|
|
|
56
63
|
sdlab reingest selected --selection selection_2026-04-16_001
|
|
57
64
|
```
|
|
58
65
|
|
|
59
|
-
Esse último comando é o ponto crucial.
|
|
66
|
+
Esse último comando é o ponto crucial. Os resultados selecionados retornam pelo mesmo processo de revisão que todos os outros. O corpus cresce e as regras permanecem válidas.
|
|
67
|
+
|
|
68
|
+
## O fluxo de ativos — exportações 3D como dados de treinamento
|
|
69
|
+
|
|
70
|
+
`sdlab ingest` aceita imagens básicas sem questionar. `sdlab asset ingest` exige um **contrato**.
|
|
71
|
+
|
|
72
|
+
Quando um ativo 3D passa pelo seu portão de aceitação, renderizá-lo novamente a partir de N ângulos fornece uma
|
|
73
|
+
visualização consistente *por construção* — uma propriedade que a difusão por visualização
|
|
74
|
+
não pode garantir. O fluxo de ativos aceita essas exportações como dados de treinamento com informações de procedência:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Validate an export's manifest end to end, run the gates, write nothing
|
|
78
|
+
sdlab asset ingest ~/exports/dragon_dense --project my-project --dry-run
|
|
79
|
+
|
|
80
|
+
# Register it: records, candidates, masks, channels, receipt
|
|
81
|
+
sdlab asset ingest ~/exports/dragon_dense --project my-project
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
O diretório de exportação contém um manifesto `asset-source.json` (esquema **1.3.0**) declarando
|
|
85
|
+
seus canais, faixas de paleta, limites do portão, veredicto de aceitação, registro de estilo, como
|
|
86
|
+
as renderizações foram criadas e sua procedência de geração. O sdlab comprova cada declaração
|
|
87
|
+
em relação aos bytes reais e rejeita toda a ingestão em caso de violação — nada é registrado
|
|
88
|
+
com um manifesto inválido.
|
|
89
|
+
|
|
90
|
+
**A junção:** o sdlab fornece o mecanismo, o ativo fornece a semântica. O sdlab nunca faz ray tracing,
|
|
91
|
+
nunca renderiza e nunca aprende que um canal chamado "procedência" é especial. Ele comprova,
|
|
92
|
+
mede, registra e empacota. O que os números *significam* permanece com o ativo.
|
|
93
|
+
|
|
94
|
+
O que o contrato exige:
|
|
95
|
+
|
|
96
|
+
| estágio | o que é comprovado |
|
|
97
|
+
|---|---|
|
|
98
|
+
| **schema** | forma, IDs, faixas de paleta bem formadas e um veredicto de aceitação que é literalmente `"accepted"` |
|
|
99
|
+
| **containment** | cada caminho referenciado resolve *dentro* do diretório de exportação (é uma entrada não confiável) e existe |
|
|
100
|
+
| **encoding** | o IHDR de um PNG corresponde à sua codificação declarada; um cabeçalho NPY corresponde ao seu dtype e forma declarados. Um manifesto que "parece correto", mas discorda de seus bytes, é a classe de falha que este fluxo existe para impedir |
|
|
101
|
+
| **categorical** | PNGs indexados comprovam que PLTE ⊆ paleta declarada; canais filtrados por `nearest` recebem uma decodificação de pixel *exaustiva*; NPYs categóricos recebem uma varredura de valor exaustiva |
|
|
102
|
+
| **gates** | o portão de paleta é executado por renderização, a partir das próprias faixas e limites do manifesto — uma renderização com falha é rejeitada de forma clara e relatada, nunca admitida silenciosamente |
|
|
103
|
+
|
|
104
|
+
Os registros são armazenados **sem curadoria** (`judgment: null`) com `provenance.source: "asset"`, contendo
|
|
105
|
+
o bloco de aceitação literalmente, hashes por arquivo, câmera e orientação derivada, as
|
|
106
|
+
medidas do portão, o registro de estilo declarado e, por imagem, o quadro de geração + semente. Em seguida,
|
|
107
|
+
eles passam pelo mesmo processo de curadoria que todos os outros registros.
|
|
60
108
|
|
|
61
|
-
|
|
109
|
+
A ingestão também relata o que um manifesto *não* declarou — um registro de estilo desconhecido, uma
|
|
110
|
+
falta de `identity.subject_name`, ausência de procedência de geração — como **avisos** em vez de
|
|
111
|
+
falhas. Eles são incluídos no recibo e impressos no CLI. Uma lacuna sobre a qual ninguém é informado é uma lacuna
|
|
112
|
+
que ninguém pode preencher; e, como um manifesto pode *declarar* que suas renderizações são derivações determinísticas sem uma semente própria, o fluxo nunca relata uma lacuna em uma exportação que está
|
|
113
|
+
correta.
|
|
62
114
|
|
|
63
|
-
|
|
115
|
+
Contrato completo, a escada de validação e o raciocínio por trás de cada campo:
|
|
116
|
+
[docs/asset-lane-design.md](docs/asset-lane-design.md).
|
|
117
|
+
|
|
118
|
+
## Criação de conteúdo canônico
|
|
119
|
+
|
|
120
|
+
Antes que o pipeline do conjunto de dados seja executado, o namespace `sdlab canon *` transforma o armazenamento de entidades canônicas 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 mudar.
|
|
64
121
|
|
|
65
122
|
```bash
|
|
66
123
|
# Build three projections from the canon entity store:
|
|
@@ -76,63 +133,65 @@ sdlab canon freeze kael_maren --project my-project --reason "prologue portrait l
|
|
|
76
133
|
sdlab canon drift --project my-project
|
|
77
134
|
```
|
|
78
135
|
|
|
79
|
-
|
|
136
|
+
Um modelo local também pode criar conteúdo canônico, mas nunca decide sobre ele. `sdlab canon draft <class_id> --endpoint <url> --brief "<text>" --out <path>` solicita a um servidor compatível com OpenAI e com loopback apenas uma entrada canônica e prompts, e os grava com `status: "draft"`, `judgment: null` e o modelo de criação carimbado em cada saída. Uma versão preliminar não pode ser congelada até que uma pessoa a aprove: o portão de congelamento rejeita qualquer entrada criada por um modelo sem uma aprovação humana, um motivo e o hash do rascunho exato que foi aprovado.
|
|
80
137
|
|
|
81
|
-
|
|
138
|
+
`canon build` é endereçável por conteúdo — sua saída é indexada por um `canon_sha` e armazenada em cache, portanto, uma reconstrução canônica inalterada é feita instantaneamente. `canon freeze` testemunha cada congelamento em relação a uma versão específica e anexa a um rastreamento de auditoria `freeze-events.jsonl`: as entradas `frozen` rejeitam a regeneração diretamente, as entradas `soft-advisory` rejeitam por padrão (ignorar com `--i-know`). `canon drift` recalcula o hash de cada entrada monitorada e sinaliza qualquer coisa que tenha se movido desde a última construção limpa.
|
|
139
|
+
|
|
140
|
+
Fluxo de trabalho completo no manual: [Construção canônica](handbook/canon-build/), [Congelamento canônico](handbook/canon-freeze/) e [Empilhamento de duas LORAs](handbook/two-lora-stacking/).
|
|
82
141
|
|
|
83
142
|
## O que ele produz
|
|
84
143
|
|
|
85
|
-
Sete artefatos de conjunto de dados e
|
|
144
|
+
Sete artefatos de conjunto de dados e um ambiente de trabalho de produção completo. Cada artefato está vinculado aos seus predecessores para que você possa rastrear qualquer registro de treinamento até a regra que o aprovou.
|
|
86
145
|
|
|
87
146
|
| Artefato | O que é |
|
|
88
147
|
|----------|-----------|
|
|
89
|
-
| **Snapshot** |
|
|
90
|
-
| **Split** | Partição de treinamento/validação/teste onde as famílias de assuntos nunca cruzam
|
|
91
|
-
| **Export package** | Conjunto de dados autônomo: manifesto, metadados, imagens, divisões, cartão
|
|
92
|
-
| **Eval pack** | Tarefas de teste com
|
|
93
|
-
| **Training package** | Layout pronto para
|
|
94
|
-
| **Eval scorecard** |
|
|
95
|
-
| **Implementation pack** | Exemplos de prompts, falhas conhecidas, testes de continuidade e
|
|
148
|
+
| **Snapshot** | Registro de seleção congelado com impressão digital de configuração. Cada inclusão tem uma razão explícita. |
|
|
149
|
+
| **Split** | Partição de treinamento/validação/teste onde as famílias de assuntos nunca cruzam as fronteiras. |
|
|
150
|
+
| **Export package** | Conjunto de dados autônomo: manifesto, metadados, imagens, divisões, cartão de conjunto de dados, somas de verificação. |
|
|
151
|
+
| **Eval pack** | Tarefas de teste com conhecimento do cânone: cobertura de faixa, desvio proibido, âncora/ouro, continuidade do assunto. |
|
|
152
|
+
| **Training package** | Layout pronto para treinamento por meio de adaptadores (`diffusers-lora`, `generic-image-caption`). A mesma verdade, formato diferente. |
|
|
153
|
+
| **Eval scorecard** | Aprovação/reprovação por tarefa, a partir da avaliação dos resultados gerados em relação aos pacotes de avaliação. |
|
|
154
|
+
| **Implementation pack** | Exemplos de prompts, falhas conhecidas, testes de continuidade e orientações para reprocessamento. |
|
|
96
155
|
|
|
97
|
-
|
|
156
|
+
O ambiente de produção adiciona:
|
|
98
157
|
|
|
99
158
|
| Superfície | O que faz |
|
|
100
159
|
|---------|-------------|
|
|
101
160
|
| **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 +
|
|
103
|
-
| **Critique** | Avaliação estruturada multidimensional
|
|
104
|
-
| **Batch** | Produção coordenada
|
|
105
|
-
| **Selection** | Artefato de decisão criativa: quais
|
|
106
|
-
| **Re-ingest** |
|
|
161
|
+
| **Run** | Artefato de execução congelado: resumo + sementes + resultados ComfyUI + manifesto. |
|
|
162
|
+
| **Critique** | Avaliação estruturada multidimensional dos resultados da execução em relação ao cânone. |
|
|
163
|
+
| **Batch** | Produção coordenada em vários slots (folhas de expressão, painéis de ambiente, pacotes de silhueta). |
|
|
164
|
+
| **Selection** | Artefato de decisão criativa: quais resultados foram escolhidos, por quê e de onde vieram. |
|
|
165
|
+
| **Re-ingest** | Os resultados selecionados são retornados como registros candidatos com a proveniência completa da geração. |
|
|
107
166
|
|
|
108
167
|
## Por que isso existe
|
|
109
168
|
|
|
110
|
-
Os dados de treinamento são o artefato de maior impacto em qualquer pipeline de IA visual. Mas
|
|
169
|
+
Os dados de treinamento são o artefato de maior impacto em qualquer pipeline de IA visual. Mas a maioria dos dados de treinamento é uma pasta de imagens sem histórico, sem rastreamento de julgamento e sem conexão com as regras de estilo que deveriam ser seguidas.
|
|
111
170
|
|
|
112
|
-
O Style Dataset Lab torna a conexão explícita. Sua constituição define as regras.
|
|
171
|
+
O Style Dataset Lab torna a conexão explícita. Sua constituição define as regras. Sua rubrica define as dimensões de avaliação. Seus registros de curadoria registram o julgamento. Sua vinculação ao cânone comprova a conexão. E seu conjunto de dados carrega tudo isso para frente como uma verdade estruturada, pesquisável e reproduzível.
|
|
113
172
|
|
|
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
|
|
173
|
+
O resultado prático: quando seu LoRA se desvia, você pode perguntar *por quê*. Quando sua próxima rodada de treinamento precisar de dados melhores, você saberá exatamente quais registros estão próximos de falhar e qual regra específica eles não cumpriram. Quando um novo membro da equipe perguntar qual é a linguagem visual do projeto, a resposta não será um painel do Figma — será uma constituição pesquisável com 1.182 exemplos graduados.
|
|
115
174
|
|
|
116
|
-
## Comprovado
|
|
175
|
+
## Comprovado na produção
|
|
117
176
|
|
|
118
|
-
Este não é um
|
|
177
|
+
Este não é um pipeline de demonstração. Duas LoRAs de estilo reais foram implementadas de ponta a ponta por meio dele — o mesmo ciclo cânone → curadoria → treinamento → implementação, em extremidades opostas do espectro de curadoria.
|
|
119
178
|
|
|
120
|
-
- **[Tallow Fen](handbook/case-study-tallow-fen/)** (design de criaturas) — um bestiário criado do zero,
|
|
121
|
-
- **[Rustline](handbook/case-study-rustline/)** (design de conceito) —
|
|
179
|
+
- **[Tallow Fen](handbook/case-study-tallow-fen/)** (design de criaturas) — um cânone de bestiário criado do zero, **~34% de aprovação** em 293 registros selecionados (169 rejeitados — o filtro rejeita com rigor). Implementado `tallow_fen_style_v3.safetensors` @ 1.5 em `qwen-image`.
|
|
180
|
+
- **[Rustline](handbook/case-study-rustline/)** (design de conceito) — cânone denso e pré-formado, **~96% de aprovação** em 180 registros. Implementado `rustline_v3ckpt_1500.safetensors` @ 1.0 em `qwen-image`, reutilizado em um segundo projeto.
|
|
122
181
|
|
|
123
|
-
O mesmo
|
|
182
|
+
O mesmo pipeline, dois perfis de produção: o filtro de curadoria é real (ele rejeita com rigor em assuntos abertos) e o cânone disciplinado gera alta aceitação.
|
|
124
183
|
|
|
125
184
|
## Cinco domínios, regras reais
|
|
126
185
|
|
|
127
|
-
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
|
|
186
|
+
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 avaliação e vocabulário de grupo.
|
|
128
187
|
|
|
129
188
|
| Domínio | Faixas | O que é avaliado |
|
|
130
189
|
|--------|-------|-----------------|
|
|
131
|
-
| **game-art** | personagem, ambiente,
|
|
132
|
-
| **character-design** | retrato, corpo inteiro, rotação, folha de expressão, pose de ação | Proporções, lógica do traje, personalidade, clareza
|
|
133
|
-
| **creature-design** | conceito, ortográfico, estudo de detalhes, ação, referência de escala, habitat | Anatomia, lógica evolutiva, distinção
|
|
134
|
-
| **architecture** | exterior, interior, paisagem urbana,
|
|
135
|
-
| **vehicle-mech** | exterior, cabine, componente, esquema, folha de silhueta, variante de dano | Lógica mecânica, linguagem de design, pontos de acesso, narrativa de
|
|
190
|
+
| **game-art** | personagem, ambiente, acessório, IU, nave, interior, equipamento | Silhueta na escala de jogabilidade, identificação de facção, desgaste e envelhecimento |
|
|
191
|
+
| **character-design** | retrato, corpo inteiro, rotação, folha de expressão, pose de ação | Proporções, lógica do traje, personalidade, clareza da linguagem corporal |
|
|
192
|
+
| **creature-design** | conceito, ortográfico, estudo de detalhes, ação, referência de escala, habitat | Anatomia, lógica evolutiva, distinção de silhueta |
|
|
193
|
+
| **architecture** | exterior, interior, paisagem urbana, detalhes estruturais, ruína, paisagem | Estrutura, consistência do material, perspectiva, coerência de época |
|
|
194
|
+
| **vehicle-mech** | exterior, cabine, componente, esquema, folha de silhueta, variante de dano | Lógica mecânica, linguagem de design, pontos de acesso, narrativa de dano |
|
|
136
195
|
|
|
137
196
|
## Estrutura do projeto
|
|
138
197
|
|
|
@@ -160,19 +219,23 @@ projects/my-project/
|
|
|
160
219
|
|
|
161
220
|
## Propriedades de confiança
|
|
162
221
|
|
|
163
|
-
|
|
222
|
+
Não são apenas aspirações. São aplicadas.
|
|
164
223
|
|
|
165
|
-
- **
|
|
166
|
-
- **As divisões evitam vazamentos.** As famílias de
|
|
167
|
-
- **Os manifestos são contratos
|
|
168
|
-
- **As execuções fixam seu
|
|
169
|
-
- **Nenhum modelo verifica
|
|
170
|
-
- **
|
|
171
|
-
- **
|
|
224
|
+
- **As capturas de tela são imutáveis.** A impressão digital da configuração (SHA-256) prova que nada mudou. Os IDs são reivindicados atomicamente, portanto, duas execuções simultâneas não podem se intercalar em um único diretório.
|
|
225
|
+
- **As divisões evitam vazamentos — e a verificação que confirma isso é independente.** As famílias de objetos (por identidade, linhagem ou ID normalizado) nunca cruzam os limites da partição, e uma segunda verificação rederiva a identidade do objeto do zero, em vez de reler o mapa que a própria divisão usou. Um cartão de conjunto de dados apenas afirma "vazamento: nenhum (verificado)" quando ambas as verificações são executadas e aprovadas; uma divisão anterior à segunda verificação afirma exatamente isso.
|
|
226
|
+
- **Os manifestos são contratos congelados.** Hash de exportação + impressão digital da configuração, e `validate` recalcula o hash de cada arquivo `checksums.txt` listado — portanto, substituir uma imagem dentro de uma exportação concluída é detectado, incluindo para manifestos criados antes que essa verificação existisse.
|
|
227
|
+
- **As execuções fixam seu gráfico exato.** Cada geração registra `comfy_workflow_sha` + hashes de conteúdo do modelo/LoRA + política de semente, para que uma onda possa ser reproduzida byte a byte. Os executores JS e Python são mantidos em um hash byte a byte por um teste que os inicia. O hash do modelo é opcional (`--hash-models`) e nunca é fabricado — um arquivo irresolvível registra `sha256: null` com uma nota.
|
|
228
|
+
- **Nenhum modelo verifica sua própria saída.** Os julgamentos registram `judged_by_model` e `generator_model`; um aviso é acionado se eles forem o mesmo modelo.
|
|
229
|
+
- **Um julgamento indica quem o fez.** `eligibility audit` distingue os julgamentos escritos por uma pessoa dos julgamentos gerados por um script em lote, para que uma justificativa que descreva uma categoria em vez de uma imagem não possa ser considerada como curadoria.
|
|
230
|
+
- **A medição não é o veredicto.** `sdlab measure` anexa números a um registro. Nunca define um julgamento, um ajuste ou uma aprovação — e onde uma medida é indefinida para uma imagem, registra `null` em vez de um número plausível.
|
|
231
|
+
- **Uma versão pode provar de onde veio cada imagem.** `sdlab verify --project <name>` percorre a cadeia offline para cada registro: o proprietário e a licença no registro, a entrada do cânone à qual estava vinculado (por hash), a licença de cada modelo e LoRA que o criou (ID SPDX, URL da licença, a data em que foi lido e o hash do arquivo) e o hash do fluxo de trabalho no manifesto da execução. Uma ligação ausente faz com que a verificação falhe, em vez de ser aprovada.
|
|
232
|
+
- **Os adaptadores não podem alterar a verdade.** Layout diferente, mesmos registros. Sem adições, sem remoções, sem reclassificação.
|
|
233
|
+
- **As saídas geradas entram novamente por meio da revisão.** Sem desvio. Curadoria e vinculação como tudo o mais. As imagens geradas externamente entram da mesma forma por meio de `sdlab ingest`, sem curadoria.
|
|
234
|
+
- **As falhas são visíveis.** Um registro ausente, uma imagem que não pode ser colocada ou uma legenda que não pode ser criada interrompe uma exportação ou pacote de treinamento, em vez de simplesmente reduzi-lo.
|
|
172
235
|
|
|
173
236
|
## Star Freight
|
|
174
237
|
|
|
175
|
-
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
|
|
238
|
+
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, totalmente organizado.
|
|
176
239
|
|
|
177
240
|
```bash
|
|
178
241
|
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
@@ -182,7 +245,7 @@ sdlab snapshot create --project star-freight # 839 eligible records
|
|
|
182
245
|
sdlab split build --project star-freight # zero subject leakage
|
|
183
246
|
```
|
|
184
247
|
|
|
185
|
-
## Formatos
|
|
248
|
+
## Formatos de saída
|
|
186
249
|
|
|
187
250
|
`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.
|
|
188
251
|
|
|
@@ -192,11 +255,11 @@ sdlab split build --project star-freight # zero subject leakage
|
|
|
192
255
|
npm install -g @mcptoolshop/style-dataset-lab
|
|
193
256
|
```
|
|
194
257
|
|
|
195
|
-
Requer Node.js 20+ e [ComfyUI](https://github.com/comfyanonymous/ComfyUI)
|
|
258
|
+
Requer Node.js 20+ e [ComfyUI](https://github.com/comfyanonymous/ComfyUI) em localhost:8188 para geração.
|
|
196
259
|
|
|
197
|
-
### Experimente sem
|
|
260
|
+
### Experimente sem ComfyUI
|
|
198
261
|
|
|
199
|
-
Você pode explorar toda a
|
|
262
|
+
Você pode explorar toda a superfície não de geração — inspeção, curadoria, captura de tela, divisão, exportação — usando o projeto Star Freight incluído, sem instalar ComfyUI ou baixar quaisquer pesos SDXL.
|
|
200
263
|
|
|
201
264
|
```bash
|
|
202
265
|
# Scaffold a fresh project (no ComfyUI needed)
|
|
@@ -209,9 +272,9 @@ sdlab project doctor --project test
|
|
|
209
272
|
sdlab snapshot create --dry-run --project star-freight
|
|
210
273
|
```
|
|
211
274
|
|
|
212
|
-
`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
|
|
275
|
+
`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 modifique o estado gerado aceita `--dry-run` para visualizar o efeito primeiro.
|
|
213
276
|
|
|
214
|
-
Se você esquecer `--project`, a CLI
|
|
277
|
+
Se você esquecer `--project`, a CLI volta ao primeiro projeto que encontrar em `projects/` e imprime um aviso — passe `--project` explicitamente para silenciá-lo.
|
|
215
278
|
|
|
216
279
|
### Retomando uma execução interrompida
|
|
217
280
|
|
|
@@ -227,36 +290,38 @@ sdlab generate inputs/prompts/wave1.json --project my-project --resume
|
|
|
227
290
|
sdlab batch generate --resume batch_2026-04-22_001 --project my-project
|
|
228
291
|
```
|
|
229
292
|
|
|
230
|
-
Ambos os comandos funcionam porque cada slot grava sua entrada de manifesto atomicamente
|
|
293
|
+
Ambos os comandos funcionam porque cada slot grava sua entrada de manifesto atomicamente quando termina — uma falha no meio da execução nunca corrompe o estado parcial.
|
|
231
294
|
|
|
232
295
|
## Solução de problemas
|
|
233
296
|
|
|
234
297
|
Modos de falha comuns e soluções:
|
|
235
298
|
|
|
236
299
|
**`ECONNREFUSED 127.0.0.1:8188` em qualquer `sdlab generate` / `sdlab run generate` / `sdlab batch generate`**
|
|
237
|
-
|
|
300
|
+
ComfyUI não está em execução. Inicie 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`.
|
|
238
301
|
|
|
239
302
|
**`missing checkpoint` / `LoRA weight not found`**
|
|
240
|
-
O perfil de fluxo de trabalho
|
|
303
|
+
O perfil de fluxo de trabalho nomeia um arquivo de modelo que não está na pasta `models/checkpoints/` ou `models/loras/` de ComfyUI. Abra `projects/<project>/workflows/profiles/<profile>.json`, localize o campo `checkpoint` ou `lora` e baixe o peso referenciado ou troque-o por um que você já tenha. Execute `sdlab project doctor --project <project>` novamente para confirmar a correção.
|
|
241
304
|
|
|
242
|
-
**Erros
|
|
305
|
+
**Erros `sdlab project doctor`**
|
|
243
306
|
Doctor retorna códigos de erro estruturados. Alguns comuns:
|
|
244
307
|
- `E_PROJECT_NOT_FOUND` — o diretório do projeto não existe em `projects/`. Verifique a ortografia.
|
|
245
|
-
- `E_CONFIG_INVALID` — um dos cinco arquivos de configuração JSON falhou na validação do esquema. O campo `hint`
|
|
246
|
-
- `E_RECORD_DRIFT` — a impressão digital da configuração de um registro não corresponde mais à sua fonte.
|
|
308
|
+
- `E_CONFIG_INVALID` — um dos cinco arquivos de configuração JSON falhou na validação do esquema. O campo `hint` nomeia o arquivo e o campo com problemas.
|
|
309
|
+
- `E_RECORD_DRIFT` — a impressão digital da configuração de um registro não corresponde mais à sua fonte. Reorganize ou redefina conforme a sugestão.
|
|
247
310
|
|
|
248
311
|
**`No --project specified, falling back to <name>`**
|
|
249
|
-
Um aviso
|
|
312
|
+
Um aviso suave. Passe `--project <name>` explicitamente para selecionar o projeto correto e silenciar o aviso.
|
|
250
313
|
|
|
251
|
-
**Problemas de VRAM /
|
|
252
|
-
Consulte `docs/internal/HANDOFF.md` para obter as notas
|
|
314
|
+
**Problemas de memória VRAM / Painterly**
|
|
315
|
+
Consulte `docs/internal/HANDOFF.md` para obter as notas de ajuste de desfoque "painterly". Em resumo: diminua a força do desfoque, reduza o tamanho do lote ou altere para um ponto de verificação menor em seu perfil de fluxo de trabalho.
|
|
253
316
|
|
|
254
317
|
**Relatando bugs**
|
|
255
|
-
Crie
|
|
318
|
+
Crie um problema 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.
|
|
256
319
|
|
|
257
320
|
## Segurança
|
|
258
321
|
|
|
259
|
-
|
|
322
|
+
Local por padrão. Sem telemetria, sem análise e sem solicitações externas da CLI `sdlab`: as imagens permanecem em sua GPU e sistema de arquivos, e `canon draft` recusa qualquer ponto de extremidade que não seja o loopback.
|
|
323
|
+
|
|
324
|
+
A única exceção é a opção de adesão voluntária. `scripts/colab/` contém kits de lançamento para executar um processo de renderização ou uma etapa de treinamento LoRA na sua própria conta do Google Colab. Eles carregam apenas os arquivos que você especificar, são executados dentro de um limite de gastos lido do saldo atual da sua conta Colab e encerram a própria sessão ao serem encerrados. Estes kits são **experimentais**: ainda não passaram por um teste completo em um ambiente real.
|
|
260
325
|
|
|
261
326
|
## Licença
|
|
262
327
|
|