@mcptoolshop/style-dataset-lab 3.1.0 → 3.3.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 +61 -0
- package/README.es.md +96 -63
- package/README.fr.md +97 -64
- package/README.hi.md +108 -77
- package/README.it.md +97 -64
- package/README.ja.md +105 -72
- package/README.md +33 -0
- package/README.pt-BR.md +94 -61
- package/README.zh.md +98 -65
- package/bin/sdlab.js +71 -0
- package/lib/adapters/ai-toolkit.js +209 -0
- package/lib/adapters/comfyui-runner.js +36 -2
- 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/critique-engine.js +46 -1
- package/lib/critique-render.js +45 -0
- package/lib/freeze-events.js +109 -0
- package/lib/freeze-gate.js +208 -0
- package/lib/freeze-stamp.js +161 -0
- package/lib/rows.js +228 -0
- package/lib/run-manifest.js +308 -0
- package/lib/snapshot.js +7 -1
- package/lib/training-adapters.js +5 -0
- package/lib/training-packages.js +24 -18
- package/lib/training-profiles.js +33 -0
- package/lib/verifier.js +67 -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/critique.js +32 -7
- package/scripts/curate.js +33 -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 +262 -102
- package/scripts/qwen_generate.py +327 -0
- package/scripts/run-generate.js +3 -0
package/README.md
CHANGED
|
@@ -58,6 +58,28 @@ sdlab reingest selected --selection selection_2026-04-16_001
|
|
|
58
58
|
|
|
59
59
|
That last command is the point. Selected outputs come back through the same review process as everything else. The corpus grows and the rules hold.
|
|
60
60
|
|
|
61
|
+
## Canon authoring
|
|
62
|
+
|
|
63
|
+
Before the dataset pipeline runs, the `sdlab canon *` namespace turns your project's canon entity store into the three projections training and production actually consume — and locks the entries that must not drift.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Build three projections from the canon entity store:
|
|
67
|
+
# dataset.jsonl → training adapters
|
|
68
|
+
# prompts/*.j2 → ComfyUI workflow invocation
|
|
69
|
+
# context/*.md → Role OS narrative dispatch
|
|
70
|
+
sdlab canon build --project my-project
|
|
71
|
+
|
|
72
|
+
# Freeze an entry so regeneration can't silently change it
|
|
73
|
+
sdlab canon freeze kael_maren --project my-project --reason "prologue portrait locked"
|
|
74
|
+
|
|
75
|
+
# Report drift on frozen entries since the last clean build
|
|
76
|
+
sdlab canon drift --project my-project
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`canon build` is content-addressable — its output is keyed by a `canon_sha` and cached, so an unchanged canon rebuilds instantly. `canon freeze` witnesses each freeze against a specific build and appends to a `freeze-events.jsonl` audit trail: `frozen` entries refuse regeneration outright, `soft-advisory` entries refuse by default (bypass with `--i-know`). `canon drift` recomputes every watched entry's hash and flags anything that moved since the last clean build.
|
|
80
|
+
|
|
81
|
+
Full workflow in the handbook: [Canon build](handbook/canon-build/), [Canon freeze](handbook/canon-freeze/), and [Two-LoRA stacking](handbook/two-lora-stacking/).
|
|
82
|
+
|
|
61
83
|
## What it produces
|
|
62
84
|
|
|
63
85
|
Seven dataset artifacts and a full production workbench. Each artifact links to its predecessors so you can trace any training record back to the rule that approved it.
|
|
@@ -91,6 +113,15 @@ Style Dataset Lab makes the connection explicit. Your constitution defines the r
|
|
|
91
113
|
|
|
92
114
|
The practical result: when your LoRA drifts, you can ask *why*. When your next training round needs better data, you know exactly which records are near-misses and what single rule they failed. When a new team member asks what the project's visual language is, the answer isn't a Figma board — it's a searchable constitution with 1,182 graded examples.
|
|
93
115
|
|
|
116
|
+
## Proven in production
|
|
117
|
+
|
|
118
|
+
This isn't a demo pipeline. Two real style-LoRAs have shipped end-to-end through it — the same canon → curate → train → ship loop, at opposite ends of the curation spectrum.
|
|
119
|
+
|
|
120
|
+
- **[Tallow Fen](handbook/case-study-tallow-fen/)** (creature-design) — a from-scratch bestiary canon, **~34% approval** across 293 curated records (169 rejected — the gate rejects hard). Shipped `tallow_fen_style_v3.safetensors` @ 1.5 on `qwen-image`.
|
|
121
|
+
- **[Rustline](handbook/case-study-rustline/)** (concept-design) — dense, pre-formed canon, **~96% approval** across 180 records. Shipped `rustline_v3ckpt_1500.safetensors` @ 1.0 on `qwen-image`, reused downstream by a second project.
|
|
122
|
+
|
|
123
|
+
Same pipeline, two production profiles: the curation gate is real (it rejects hard on open subjects), and disciplined canon yields high acceptance.
|
|
124
|
+
|
|
94
125
|
## Five domains, real rules
|
|
95
126
|
|
|
96
127
|
Not placeholder templates. Each domain ships with production-grade constitution rules, lane definitions, scoring rubrics, and group vocabulary.
|
|
@@ -134,6 +165,8 @@ These are not aspirational. They are enforced.
|
|
|
134
165
|
- **Snapshots are immutable.** Config fingerprint (SHA-256) proves nothing changed.
|
|
135
166
|
- **Splits prevent leakage.** Subject families (by identity, lineage, or ID suffix) never cross partition boundaries.
|
|
136
167
|
- **Manifests are frozen contracts.** Export hash + config fingerprint. If anything changes, create a new one.
|
|
168
|
+
- **Runs pin their exact graph.** Every generation records `comfy_workflow_sha` + model/LoRA content hashes + seed policy, so a wave is byte-for-byte replayable — identical across the JS and Python runners. Model hashing is opt-in (`--hash-models`) and never fabricated.
|
|
169
|
+
- **No model verifies its own output.** Judgments record `judged_by_model` and `generator_model`; a warning fires if they are ever the same model.
|
|
137
170
|
- **Adapters cannot mutate truth.** Different layout, same records. No additions, no removals, no reclassification.
|
|
138
171
|
- **Generated outputs re-enter through review.** No bypass. Curate and bind like everything else.
|
|
139
172
|
|
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,87 @@ 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.
|
|
111
|
+
|
|
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.
|
|
113
|
+
|
|
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.
|
|
115
|
+
|
|
116
|
+
## Comprovado em produção
|
|
117
|
+
|
|
118
|
+
Este não é um fluxo de trabalho de demonstração. Duas LoRAs reais foram processadas integralmente através dele — o mesmo ciclo de criação → curadoria → treinamento → lançamento, em extremos opostos do espectro da curadoria.
|
|
89
119
|
|
|
90
|
-
|
|
120
|
+
- **[Tallow Fen](handbook/case-study-tallow-fen/)** (design de criaturas) — um bestiário criado do zero, com aproximadamente **34% de aprovação** em 293 registros selecionados (169 rejeitados — a triagem é rigorosa). Lançado `tallow_fen_style_v3.safetensors` @ 1.5 no `qwen-image`.
|
|
121
|
+
- **[Rustline](handbook/case-study-rustline/)** (design de conceito) — um conjunto denso e pré-definido, com aproximadamente **96% de aprovação** em 180 registros. Lançado `rustline_v3ckpt_1500.safetensors` @ 1.0 no `qwen-image`, reutilizado posteriormente por um segundo projeto.
|
|
91
122
|
|
|
92
|
-
O
|
|
123
|
+
O mesmo fluxo de trabalho, dois perfis de produção: a triagem da curadoria é real (rejeita rigorosamente temas abertos) e uma abordagem disciplinada na criação resulta em alta aceitação.
|
|
93
124
|
|
|
94
125
|
## Cinco domínios, regras reais
|
|
95
126
|
|
|
96
|
-
Não são modelos
|
|
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 pontuação e vocabulário de grupo.
|
|
97
128
|
|
|
98
|
-
| Domínio |
|
|
129
|
+
| Domínio | Faixas | O que é avaliado |
|
|
99
130
|
|--------|-------|-----------------|
|
|
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,
|
|
131
|
+
| **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 |
|
|
132
|
+
| **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 |
|
|
133
|
+
| **creature-design** | conceito, ortográfico, estudo de detalhes, ação, referência de escala, habitat | Anatomia, lógica evolutiva, distinção da silhueta |
|
|
134
|
+
| **architecture** | exterior, interior, paisagem urbana, detalhe estrutural, ruína, paisagem | Estrutura, consistência do material, perspectiva, coerência de época |
|
|
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 danos |
|
|
105
136
|
|
|
106
137
|
## Estrutura do projeto
|
|
107
138
|
|
|
108
|
-
Cada projeto é
|
|
139
|
+
Cada projeto é autocontido. Cinco arquivos de configuração JSON definem as regras; tudo o mais são dados.
|
|
109
140
|
|
|
110
141
|
```
|
|
111
142
|
projects/my-project/
|
|
@@ -127,19 +158,21 @@ projects/my-project/
|
|
|
127
158
|
inbox/generated/ Re-ingested images awaiting review
|
|
128
159
|
```
|
|
129
160
|
|
|
130
|
-
## Propriedades de
|
|
161
|
+
## Propriedades de confiança
|
|
131
162
|
|
|
132
|
-
|
|
163
|
+
Estas não são apenas aspirações. Elas são aplicadas.
|
|
133
164
|
|
|
134
|
-
- **Os
|
|
135
|
-
- **As divisões evitam vazamentos.** As famílias de
|
|
136
|
-
- **Os manifestos são contratos fixos.**
|
|
137
|
-
- **
|
|
138
|
-
- **
|
|
165
|
+
- **Os instantâneos são imutáveis.** A impressão digital da configuração (SHA-256) comprova que nada foi alterado.
|
|
166
|
+
- **As divisões evitam vazamentos.** As famílias de temas (por identidade, linhagem ou sufixo de ID) nunca cruzam os limites das partições.
|
|
167
|
+
- **Os manifestos são contratos fixos.** Exporta o hash + impressão digital da configuração. Se algo mudar, crie um novo.
|
|
168
|
+
- **As execuções fixam seu grafo exato.** Cada geração registra `comfy_workflow_sha` + hashes do conteúdo do modelo/LoRA + política de semente, para que uma série possa ser reproduzida byte a byte — idêntica nos executores JS e Python. O hash do modelo é opcional (`--hash-models`) e nunca é fabricado.
|
|
169
|
+
- **Nenhum modelo verifica seu próprio resultado.** As avaliações registram `judged_by_model` e `generator_model`; um aviso é exibido se eles forem o mesmo modelo.
|
|
170
|
+
- **Os adaptadores não podem alterar a verdade.** Layout diferente, os mesmos registros. Sem adições, sem remoções, sem reclassificação.
|
|
171
|
+
- **As saídas geradas são reintroduzidas através da revisão.** Sem desvio. Curadoria e vinculação como em tudo o mais.
|
|
139
172
|
|
|
140
173
|
## Star Freight
|
|
141
174
|
|
|
142
|
-
O repositório inclui um exemplo completo e funcional: 1.182 registros, 5 facções, 7
|
|
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 sombrio, totalmente selecionado.
|
|
143
176
|
|
|
144
177
|
```bash
|
|
145
178
|
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
@@ -149,9 +182,9 @@ sdlab snapshot create --project star-freight # 839 eligible records
|
|
|
149
182
|
sdlab split build --project star-freight # zero subject leakage
|
|
150
183
|
```
|
|
151
184
|
|
|
152
|
-
## Formatos
|
|
185
|
+
## Formatos downstream
|
|
153
186
|
|
|
154
|
-
|
|
187
|
+
`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
188
|
|
|
156
189
|
## Instalação
|
|
157
190
|
|
|
@@ -159,11 +192,11 @@ O projeto `sdlab` é o proprietário do conjunto de dados. A conversão de forma
|
|
|
159
192
|
npm install -g @mcptoolshop/style-dataset-lab
|
|
160
193
|
```
|
|
161
194
|
|
|
162
|
-
Requer Node.js 20
|
|
195
|
+
Requer Node.js 20+ e [ComfyUI](https://github.com/comfyanonymous/ComfyUI) no localhost:8188 para geração.
|
|
163
196
|
|
|
164
197
|
### Experimente sem o ComfyUI
|
|
165
198
|
|
|
166
|
-
Você pode explorar toda a
|
|
199
|
+
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
200
|
|
|
168
201
|
```bash
|
|
169
202
|
# Scaffold a fresh project (no ComfyUI needed)
|
|
@@ -176,13 +209,13 @@ sdlab project doctor --project test
|
|
|
176
209
|
sdlab snapshot create --dry-run --project star-freight
|
|
177
210
|
```
|
|
178
211
|
|
|
179
|
-
|
|
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 altere o estado gerado aceita `--dry-run` para visualizar o efeito primeiro.
|
|
180
213
|
|
|
181
|
-
Se você esquecer `--project`, a
|
|
214
|
+
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
215
|
|
|
183
216
|
### Retomando uma execução interrompida
|
|
184
217
|
|
|
185
|
-
Execuções
|
|
218
|
+
Execuções de geração longas podem ser retomadas sem refazer o trabalho concluído:
|
|
186
219
|
|
|
187
220
|
```bash
|
|
188
221
|
# Skip subjects whose record + image are already on disk.
|
|
@@ -194,36 +227,36 @@ sdlab generate inputs/prompts/wave1.json --project my-project --resume
|
|
|
194
227
|
sdlab batch generate --resume batch_2026-04-22_001 --project my-project
|
|
195
228
|
```
|
|
196
229
|
|
|
197
|
-
Ambos os comandos funcionam porque cada slot
|
|
230
|
+
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
231
|
|
|
199
232
|
## Solução de problemas
|
|
200
233
|
|
|
201
234
|
Modos de falha comuns e soluções:
|
|
202
235
|
|
|
203
|
-
**`ECONNREFUSED 127.0.0.1:8188` em qualquer
|
|
236
|
+
**`ECONNREFUSED 127.0.0.1:8188` em qualquer `sdlab generate` / `sdlab run generate` / `sdlab batch generate`**
|
|
204
237
|
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
238
|
|
|
206
239
|
**`missing checkpoint` / `LoRA weight not found`**
|
|
207
|
-
O perfil
|
|
240
|
+
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
241
|
|
|
209
|
-
**Erros
|
|
210
|
-
|
|
242
|
+
**Erros de `sdlab project doctor`**
|
|
243
|
+
Doctor retorna códigos de erro estruturados. Alguns comuns:
|
|
211
244
|
- `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
|
|
245
|
+
- `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.
|
|
246
|
+
- `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
247
|
|
|
215
248
|
**`No --project specified, falling back to <name>`**
|
|
216
|
-
Um aviso leve.
|
|
249
|
+
Um aviso leve. Passe `--project <name>` explicitamente para selecionar o projeto correto e silenciar o aviso.
|
|
217
250
|
|
|
218
|
-
**Problemas
|
|
219
|
-
Consulte
|
|
251
|
+
**Problemas de VRAM / "Painterly" (estilo pictórico) / falta de memória**
|
|
252
|
+
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
253
|
|
|
221
|
-
**Relatando
|
|
222
|
-
|
|
254
|
+
**Relatando bugs**
|
|
255
|
+
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
256
|
|
|
224
257
|
## Segurança
|
|
225
258
|
|
|
226
|
-
|
|
259
|
+
Apenas local. Sem telemetria, sem análises, sem solicitações externas. As imagens permanecem em sua GPU e sistema de arquivos.
|
|
227
260
|
|
|
228
261
|
## Licença
|
|
229
262
|
|
|
@@ -231,4 +264,4 @@ MIT
|
|
|
231
264
|
|
|
232
265
|
---
|
|
233
266
|
|
|
234
|
-
Criado por <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a
|
|
267
|
+
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,83 @@ 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** |
|
|
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** | 选定的输出作为带有完整生成来源的候选记录返回。 |
|
|
107
|
+
|
|
108
|
+
## 为什么这个系统存在
|
|
109
|
+
|
|
110
|
+
训练数据是任何视觉 AI 流水线中最重要的工件。但是,大多数训练数据只是一个包含图像的文件夹,没有历史记录、没有判断轨迹,也没有与它应该遵循的风格规则的联系。
|
|
111
|
+
|
|
112
|
+
“风格数据集实验室”使这种联系变得明确。你的规范定义了规则。你的评分标准定义了评分维度。你的策划记录了判断结果。你的规范绑定证明了这种联系。并且你的数据集将所有这些内容作为结构化、可查询、可重现的真实数据进行传递。
|
|
113
|
+
|
|
114
|
+
实际效果:当你的 LoRA 发生漂移时,你可以询问*原因*。当你的下一个训练轮次需要更好的数据时,你确切地知道哪些记录是接近成功的,以及它们未能满足哪个单一规则。当新的团队成员询问项目的视觉语言是什么时,答案不是 Figma 板——而是一个可搜索的规范,其中包含 1,182 个分级的示例。
|
|
85
115
|
|
|
86
|
-
##
|
|
116
|
+
## 在生产中得到验证
|
|
87
117
|
|
|
88
|
-
|
|
118
|
+
这不是一个演示流水线。两个真实的风格 LoRA 都通过它完成了端到端的流程——相同的规范 → 策划 → 训练 → 发布循环,位于策划频谱的两端。
|
|
89
119
|
|
|
90
|
-
|
|
120
|
+
- **[Tallow Fen](handbook/case-study-tallow-fen/)**(生物设计)——一个从头开始构建的奇幻生物典籍规范,在 293 个策划记录中,大约有 **34% 的批准率**(169 个被拒绝——审核严格)。发布了 `tallow_fen_style_v3.safetensors`,权重为 1.5,用于 `qwen-image`。
|
|
121
|
+
- **[Rustline](handbook/case-study-rustline/)**(概念设计)——密集、预先构建的规范,在 180 个记录中,大约有 **96% 的批准率**。发布了 `rustline_v3ckpt_1500.safetensors`,权重为 1.0,用于 `qwen-image`,并在后续项目中被第二个项目重用。
|
|
91
122
|
|
|
92
|
-
|
|
123
|
+
相同的流水线,两种生产配置:策划审核是真实的(它会严格拒绝开放主题),并且严谨的规范可以产生很高的接受率。
|
|
93
124
|
|
|
94
125
|
## 五个领域,真实的规则
|
|
95
126
|
|
|
96
|
-
|
|
127
|
+
不是占位符模板。每个领域都提供生产级别的规范规则、车道定义、评分标准和组词汇表。
|
|
97
128
|
|
|
98
|
-
| 领域 |
|
|
129
|
+
| 领域 | 通道 | 评估标准 |
|
|
99
130
|
|--------|-------|-----------------|
|
|
100
|
-
| **game-art** |
|
|
101
|
-
| **character-design** |
|
|
102
|
-
| **creature-design** |
|
|
103
|
-
| **architecture** |
|
|
104
|
-
| **vehicle-mech** | 外部、驾驶舱、组件、示意图、轮廓图、损坏变体 |
|
|
131
|
+
| **game-art** | 角色、环境、道具、用户界面、飞船、内部场景、设备 | 游戏中的轮廓、阵营特征、磨损和老化效果 |
|
|
132
|
+
| **character-design** | 肖像、全身图、旋转图、表情表、动作姿势 | 比例、服装逻辑、个性、手势清晰度 |
|
|
133
|
+
| **creature-design** | 概念图、正投影图、细节研究、动态效果、比例参考、栖息地 | 解剖结构、进化逻辑、轮廓区分 |
|
|
134
|
+
| **architecture** | 外部、内部、街景、结构细节、废墟、景观 | 结构、材质一致性、透视、时代背景的一致性 |
|
|
135
|
+
| **vehicle-mech** | 外部、驾驶舱、组件、示意图、轮廓图、损坏变体 | 机械逻辑、设计语言、访问点、损坏叙事 |
|
|
105
136
|
|
|
106
137
|
## 项目结构
|
|
107
138
|
|
|
@@ -129,17 +160,19 @@ projects/my-project/
|
|
|
129
160
|
|
|
130
161
|
## 信任属性
|
|
131
162
|
|
|
132
|
-
|
|
163
|
+
这些不是理想化的,而是强制执行的。
|
|
133
164
|
|
|
134
|
-
- **快照是不可变的。**
|
|
135
|
-
-
|
|
136
|
-
- **清单是冻结的合同。**
|
|
137
|
-
-
|
|
138
|
-
-
|
|
165
|
+
- **快照是不可变的。** 配置指纹(SHA-256)证明没有任何更改。
|
|
166
|
+
- **分割可以防止数据泄露。** 主题组(按身份、血统或 ID 后缀划分)永远不会跨越分区边界。
|
|
167
|
+
- **清单是冻结的合同。** 导出哈希 + 配置指纹。如果发生任何更改,请创建一个新的。
|
|
168
|
+
- **运行会固定其确切的图。** 每次生成都会记录 `comfy_workflow_sha` + 模型/LoRA 内容哈希 + 种子策略,因此一个批次可以完全重现——在 JS 和 Python 运行器中都是相同的。模型哈希是可选的(`--hash-models`),并且绝不会被伪造。
|
|
169
|
+
- **没有模型会验证自己的输出。** 评估会记录 `judged_by_model` 和 `generator_model`;如果它们曾经是同一个模型,则会发出警告。
|
|
170
|
+
- **适配器不能改变真相。** 不同的布局,相同的数据。没有添加、删除或重新分类。
|
|
171
|
+
- **生成的输出通过审核后重新进入。** 没有绕过。像其他所有内容一样进行策划和绑定。
|
|
139
172
|
|
|
140
|
-
##
|
|
173
|
+
## 星际货运
|
|
141
174
|
|
|
142
|
-
|
|
175
|
+
该仓库包含一个完整的可运行示例:1,182 条记录、5 个阵营、7 个通道、24 条宪法规则、892 个已批准的资源、2 个训练配置文件。这是一个粗犷的科幻 RPG 视觉规范,经过完全策划。
|
|
143
176
|
|
|
144
177
|
```bash
|
|
145
178
|
git clone https://github.com/mcp-tool-shop-org/style-dataset-lab
|
|
@@ -151,7 +184,7 @@ sdlab split build --project star-freight # zero subject leakage
|
|
|
151
184
|
|
|
152
185
|
## 下游格式
|
|
153
186
|
|
|
154
|
-
`sdlab` 拥有数据集。格式转换由 [`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset)
|
|
187
|
+
`sdlab` 拥有数据集。格式转换由 [`repo-dataset`](https://github.com/mcp-tool-shop-org/repo-dataset) 处理:TRL、LLaVA、Qwen2-VL、JSONL、Parquet 等。`repo-dataset` 进行渲染;它不会决定是否包含。
|
|
155
188
|
|
|
156
189
|
## 安装
|
|
157
190
|
|
|
@@ -159,11 +192,11 @@ sdlab split build --project star-freight # zero subject leakage
|
|
|
159
192
|
npm install -g @mcptoolshop/style-dataset-lab
|
|
160
193
|
```
|
|
161
194
|
|
|
162
|
-
需要 Node.js 20+
|
|
195
|
+
需要 Node.js 20+ 和本地主机上的 [ComfyUI](https://github.com/comfyanonymous/ComfyUI),地址为 8188,用于生成。
|
|
163
196
|
|
|
164
|
-
###
|
|
197
|
+
### 在不使用 ComfyUI 的情况下试用
|
|
165
198
|
|
|
166
|
-
|
|
199
|
+
您可以探索完整的非生成界面——检查、策划、快照、分割、导出——使用捆绑的星际货运项目,而无需安装 ComfyUI 或下载任何 SDXL 权重。
|
|
167
200
|
|
|
168
201
|
```bash
|
|
169
202
|
# Scaffold a fresh project (no ComfyUI needed)
|
|
@@ -176,9 +209,9 @@ sdlab project doctor --project test
|
|
|
176
209
|
sdlab snapshot create --dry-run --project star-freight
|
|
177
210
|
```
|
|
178
211
|
|
|
179
|
-
`sdlab project doctor`
|
|
212
|
+
`sdlab project doctor` 会验证每个项目配置(宪法、通道、评分标准、术语),并在不触及 GPU 的情况下报告资格。任何会更改生成状态的命令都接受 `--dry-run`,以便首先预览效果。
|
|
180
213
|
|
|
181
|
-
如果您忘记了 `--project
|
|
214
|
+
如果您忘记了 `--project`,CLI 将回退到在 `projects/` 下找到的第一个项目并打印警告——明确传递 `--project` 以使其停止发出警告。
|
|
182
215
|
|
|
183
216
|
### 恢复中断的运行
|
|
184
217
|
|
|
@@ -194,40 +227,40 @@ sdlab generate inputs/prompts/wave1.json --project my-project --resume
|
|
|
194
227
|
sdlab batch generate --resume batch_2026-04-22_001 --project my-project
|
|
195
228
|
```
|
|
196
229
|
|
|
197
|
-
|
|
230
|
+
这两个命令都有效,因为每个插槽都会在其完成后以原子方式写入其清单条目——在运行过程中发生崩溃绝不会破坏部分状态。
|
|
198
231
|
|
|
199
232
|
## 故障排除
|
|
200
233
|
|
|
201
|
-
|
|
234
|
+
常见的失败模式和解决方法:
|
|
202
235
|
|
|
203
|
-
|
|
204
|
-
ComfyUI
|
|
236
|
+
**任何 `sdlab generate` / `sdlab run generate` / `sdlab batch generate` 上的 `ECONNREFUSED 127.0.0.1:8188`**
|
|
237
|
+
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
238
|
|
|
206
|
-
**`missing checkpoint` / `LoRA weight not found
|
|
207
|
-
|
|
239
|
+
**`missing checkpoint` / `LoRA weight not found`**
|
|
240
|
+
您的工作流程配置文件指定了一个不在 ComfyUI 的 `models/checkpoints/` 或 `models/loras/` 文件夹中的模型文件。打开 `projects/<project>/workflows/profiles/<profile>.json`,找到 `checkpoint` 或 `lora` 字段,然后下载引用的权重或将其替换为您已有的权重。重新运行 `sdlab project doctor --project <project>` 以确认修复。
|
|
208
241
|
|
|
209
242
|
**`sdlab project doctor` 错误**
|
|
210
|
-
Doctor
|
|
211
|
-
- `E_PROJECT_NOT_FOUND
|
|
212
|
-
- `E_CONFIG_INVALID
|
|
213
|
-
- `E_RECORD_DRIFT
|
|
243
|
+
Doctor 返回结构化的错误代码。常见的错误:
|
|
244
|
+
- `E_PROJECT_NOT_FOUND`——项目目录在 `projects/` 下不存在。检查拼写。
|
|
245
|
+
- `E_CONFIG_INVALID`——五个 JSON 配置文件中的一个未能通过模式验证。`hint` 字段指定了错误的 文件和字段。
|
|
246
|
+
- `E_RECORD_DRIFT`——记录的配置指纹不再与其来源匹配。如提示所述,重新策划或重新绑定。
|
|
214
247
|
|
|
215
|
-
|
|
216
|
-
|
|
248
|
+
**`No --project specified, falling back to <name>`**
|
|
249
|
+
一个软警告。明确传递 `--project <name>` 以选择正确的项目并停止发出警告。
|
|
217
250
|
|
|
218
|
-
**绘画风格 /
|
|
219
|
-
|
|
251
|
+
**绘画风格 / VRAM 内存不足问题**
|
|
252
|
+
请参阅 `docs/internal/HANDOFF.md`,了解有关绘画风格降噪调整说明。简而言之:降低降噪强度、减少批处理大小或在工作流程配置文件中切换到较小的检查点。
|
|
220
253
|
|
|
221
254
|
**报告错误**
|
|
222
|
-
|
|
255
|
+
在 https://github.com/mcp-tool-shop-org/style-dataset-lab/issues 上提交问题,并提供您的 sdlab 版本(`sdlab --version`)、Node 版本(`node -v`)、完整的命令以及结构化的错误输出。一个错误报告模板会预填充这些字段。
|
|
223
256
|
|
|
224
257
|
## 安全性
|
|
225
258
|
|
|
226
|
-
|
|
259
|
+
仅限本地使用。没有遥测、分析或外部请求。图像保留在您的 GPU 和文件系统中。
|
|
227
260
|
|
|
228
|
-
##
|
|
261
|
+
## 许可协议
|
|
229
262
|
|
|
230
|
-
MIT
|
|
263
|
+
MIT
|
|
231
264
|
|
|
232
265
|
---
|
|
233
266
|
|