@mcptoolshop/style-dataset-lab 3.4.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 +27 -0
- package/README.es.md +111 -59
- package/README.fr.md +117 -67
- package/README.hi.md +109 -70
- package/README.it.md +111 -60
- package/README.ja.md +116 -76
- package/README.md +58 -2
- package/README.pt-BR.md +119 -64
- package/README.zh.md +108 -67
- package/bin/sdlab.js +50 -1
- package/lib/adapters/ai-toolkit.js +187 -30
- package/lib/adapters/comfyui-workflows.js +84 -9
- package/lib/asset-ingest.js +575 -0
- package/lib/asset-masks.js +323 -0
- package/lib/asset-source.js +1176 -0
- package/lib/canon-author.js +350 -0
- package/lib/canon-review-gate.js +205 -0
- package/lib/colab-launcher-guards.js +285 -0
- package/lib/export.js +1 -1
- package/lib/freeze-gate.js +3 -0
- package/lib/generated-provenance.js +178 -5
- package/lib/lane1-render.js +668 -0
- package/lib/memory-store.js +663 -0
- package/lib/model-licences.js +305 -0
- package/lib/npy-meta.js +130 -0
- package/lib/png-meta.js +512 -0
- package/lib/records.js +54 -8
- package/lib/reingest-selected.js +15 -1
- package/lib/reingest.js +27 -3
- package/lib/run-manifest.js +59 -11
- package/lib/train-runs.js +214 -0
- package/lib/verifier.js +3 -0
- package/lib/verify-chain.js +367 -0
- package/package.json +2 -2
- package/scripts/asset-ingest.js +160 -0
- package/scripts/canon-draft.js +82 -0
- package/scripts/canon-freeze.js +4 -0
- 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/doctor.js +1 -0
- package/scripts/generate.js +38 -12
- package/scripts/verify.js +67 -0
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
|
|
|
@@ -63,11 +63,61 @@ sdlab select --run run_2026-04-16_001 --approve 001.png,003.png
|
|
|
63
63
|
sdlab reingest selected --selection selection_2026-04-16_001
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
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
67
|
|
|
68
|
-
##
|
|
68
|
+
## O fluxo de ativos — exportações 3D como dados de treinamento
|
|
69
69
|
|
|
70
|
-
|
|
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.
|
|
108
|
+
|
|
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.
|
|
114
|
+
|
|
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.
|
|
71
121
|
|
|
72
122
|
```bash
|
|
73
123
|
# Build three projections from the canon entity store:
|
|
@@ -83,63 +133,65 @@ sdlab canon freeze kael_maren --project my-project --reason "prologue portrait l
|
|
|
83
133
|
sdlab canon drift --project my-project
|
|
84
134
|
```
|
|
85
135
|
|
|
86
|
-
|
|
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.
|
|
87
137
|
|
|
88
|
-
|
|
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/).
|
|
89
141
|
|
|
90
142
|
## O que ele produz
|
|
91
143
|
|
|
92
|
-
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.
|
|
93
145
|
|
|
94
146
|
| Artefato | O que é |
|
|
95
147
|
|----------|-----------|
|
|
96
|
-
| **Snapshot** |
|
|
97
|
-
| **Split** | Partição de treinamento/validação/teste onde as famílias de assuntos nunca cruzam
|
|
98
|
-
| **Export package** | Conjunto de dados autônomo: manifesto, metadados, imagens, divisões, cartão
|
|
99
|
-
| **Eval pack** | Tarefas de teste com
|
|
100
|
-
| **Training package** | Layout pronto para treinamento
|
|
101
|
-
| **Eval scorecard** |
|
|
102
|
-
| **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. |
|
|
103
155
|
|
|
104
|
-
|
|
156
|
+
O ambiente de produção adiciona:
|
|
105
157
|
|
|
106
158
|
| Superfície | O que faz |
|
|
107
159
|
|---------|-------------|
|
|
108
160
|
| **Compiled brief** | Instrução de geração determinística a partir do perfil do fluxo de trabalho + verdade do projeto. |
|
|
109
|
-
| **Run** | Artefato de execução congelado: resumo + sementes +
|
|
110
|
-
| **Critique** | Avaliação estruturada multidimensional
|
|
111
|
-
| **Batch** | Produção coordenada
|
|
112
|
-
| **Selection** | Artefato de decisão criativa: quais
|
|
113
|
-
| **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. |
|
|
114
166
|
|
|
115
167
|
## Por que isso existe
|
|
116
168
|
|
|
117
|
-
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.
|
|
118
170
|
|
|
119
|
-
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.
|
|
120
172
|
|
|
121
|
-
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.
|
|
122
174
|
|
|
123
|
-
## Comprovado
|
|
175
|
+
## Comprovado na produção
|
|
124
176
|
|
|
125
|
-
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.
|
|
126
178
|
|
|
127
|
-
- **[Tallow Fen](handbook/case-study-tallow-fen/)** (design de criaturas) — um bestiário criado do zero,
|
|
128
|
-
- **[Rustline](handbook/case-study-rustline/)** (design
|
|
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.
|
|
129
181
|
|
|
130
|
-
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.
|
|
131
183
|
|
|
132
184
|
## Cinco domínios, regras reais
|
|
133
185
|
|
|
134
|
-
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.
|
|
135
187
|
|
|
136
188
|
| Domínio | Faixas | O que é avaliado |
|
|
137
189
|
|--------|-------|-----------------|
|
|
138
|
-
| **game-art** | personagem, ambiente,
|
|
139
|
-
| **character-design** | retrato, corpo inteiro, rotação, folha de expressão, pose de ação | Proporções, lógica do traje, personalidade, clareza
|
|
140
|
-
| **creature-design** | conceito, ortográfico, estudo de detalhes, ação, referência de escala, habitat | Anatomia, lógica evolutiva, distinção
|
|
141
|
-
| **architecture** | exterior, interior, paisagem urbana,
|
|
142
|
-
| **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 |
|
|
143
195
|
|
|
144
196
|
## Estrutura do projeto
|
|
145
197
|
|
|
@@ -167,22 +219,23 @@ projects/my-project/
|
|
|
167
219
|
|
|
168
220
|
## Propriedades de confiança
|
|
169
221
|
|
|
170
|
-
|
|
222
|
+
Não são apenas aspirações. São aplicadas.
|
|
171
223
|
|
|
172
|
-
- **
|
|
173
|
-
- **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
|
|
174
|
-
- **Os manifestos são contratos congelados.** Hash de exportação + impressão digital da configuração, e `validate` recalcula o hash de cada arquivo
|
|
175
|
-
- **As execuções fixam seu
|
|
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.
|
|
176
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.
|
|
177
|
-
- **Um julgamento indica quem o fez.** `eligibility audit` distingue os julgamentos escritos por uma pessoa dos julgamentos gerados por um script em lote,
|
|
178
|
-
- **A medição nã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.
|
|
179
|
-
- **
|
|
180
|
-
- **
|
|
181
|
-
- **As
|
|
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.
|
|
182
235
|
|
|
183
236
|
## Star Freight
|
|
184
237
|
|
|
185
|
-
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.
|
|
186
239
|
|
|
187
240
|
```bash
|
|
188
241
|
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
@@ -192,7 +245,7 @@ sdlab snapshot create --project star-freight # 839 eligible records
|
|
|
192
245
|
sdlab split build --project star-freight # zero subject leakage
|
|
193
246
|
```
|
|
194
247
|
|
|
195
|
-
## Formatos
|
|
248
|
+
## Formatos de saída
|
|
196
249
|
|
|
197
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.
|
|
198
251
|
|
|
@@ -202,11 +255,11 @@ sdlab split build --project star-freight # zero subject leakage
|
|
|
202
255
|
npm install -g @mcptoolshop/style-dataset-lab
|
|
203
256
|
```
|
|
204
257
|
|
|
205
|
-
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.
|
|
206
259
|
|
|
207
|
-
### Experimente sem
|
|
260
|
+
### Experimente sem ComfyUI
|
|
208
261
|
|
|
209
|
-
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.
|
|
210
263
|
|
|
211
264
|
```bash
|
|
212
265
|
# Scaffold a fresh project (no ComfyUI needed)
|
|
@@ -219,7 +272,7 @@ sdlab project doctor --project test
|
|
|
219
272
|
sdlab snapshot create --dry-run --project star-freight
|
|
220
273
|
```
|
|
221
274
|
|
|
222
|
-
`sdlab project doctor`
|
|
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.
|
|
223
276
|
|
|
224
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.
|
|
225
278
|
|
|
@@ -237,36 +290,38 @@ sdlab generate inputs/prompts/wave1.json --project my-project --resume
|
|
|
237
290
|
sdlab batch generate --resume batch_2026-04-22_001 --project my-project
|
|
238
291
|
```
|
|
239
292
|
|
|
240
|
-
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.
|
|
241
294
|
|
|
242
295
|
## Solução de problemas
|
|
243
296
|
|
|
244
297
|
Modos de falha comuns e soluções:
|
|
245
298
|
|
|
246
299
|
**`ECONNREFUSED 127.0.0.1:8188` em qualquer `sdlab generate` / `sdlab run generate` / `sdlab batch generate`**
|
|
247
|
-
|
|
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`.
|
|
248
301
|
|
|
249
302
|
**`missing checkpoint` / `LoRA weight not found`**
|
|
250
|
-
O perfil
|
|
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.
|
|
251
304
|
|
|
252
305
|
**Erros `sdlab project doctor`**
|
|
253
|
-
|
|
306
|
+
Doctor retorna códigos de erro estruturados. Alguns comuns:
|
|
254
307
|
- `E_PROJECT_NOT_FOUND` — o diretório do projeto não existe em `projects/`. Verifique a ortografia.
|
|
255
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.
|
|
256
|
-
- `E_RECORD_DRIFT` — a impressão digital da configuração de um registro não corresponde mais à sua fonte.
|
|
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.
|
|
257
310
|
|
|
258
|
-
|
|
311
|
+
**`No --project specified, falling back to <name>`**
|
|
259
312
|
Um aviso suave. Passe `--project <name>` explicitamente para selecionar o projeto correto e silenciar o aviso.
|
|
260
313
|
|
|
261
|
-
**
|
|
262
|
-
|
|
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.
|
|
263
316
|
|
|
264
|
-
**
|
|
265
|
-
|
|
317
|
+
**Relatando bugs**
|
|
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.
|
|
266
319
|
|
|
267
320
|
## Segurança
|
|
268
321
|
|
|
269
|
-
|
|
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.
|
|
270
325
|
|
|
271
326
|
## Licença
|
|
272
327
|
|