SD style-dataset-lab
v3.0.0

Style Dataset Lab

Build canon-aligned datasets, train style assets, and put them to work.

Define your visual canon. Generate concept art against those rules. Curate, bind, and package versioned datasets. Then compile production briefs, run them through ComfyUI, critique and batch-produce real work surfaces, select the best results, and re-ingest them into your corpus. Every record carries provenance, judgment, and canon binding. The full loop closes.

npm install -g @mcptoolshop/style-dataset-lab

Requires Node 18+. After install, run sdlab init my-project --domain character-design.

Proven in production

Two real style-LoRAs shipped through this pipeline

The same pipeline shipped a coherent style through a brutal, high-rejection exploratory creature run and a converged, high-yield concept run. Two different production profiles, one pipeline, two shipped LoRAs — with real curation numbers you can inspect in the repo.

Tallow Fen

creature-design

A from-scratch bestiary canon and an honest curation gate — 169 rejections against 99 approvals. The gate that can reject hard.

293
records
~34%
approval rate
25
provenance waves

Shipped style tallow_fen_style_v3.safetensors @ 1.5 · base qwen-image

Read the case study →

Rustline

concept-design

Dense, pre-formed canon and a converged run — 172 approvals against 8 rejections. Reused downstream by a second project.

180
records
~96%
approval rate
46
provenance waves

Shipped style rustline_v3ckpt_1500.safetensors @ 1.0 · base qwen-image

Read the case study →

How it works

Define canon. Build datasets. Train models. Compile briefs. Run production. Critique and batch-produce. Select winners. Feed them back. The whole loop.

Write the rules

Define your style constitution: what passes, what fails, and why. Per-dimension scoring rubrics, subject lanes, faction vocabulary. Five domain templates ship with production-grade rules.

Generate and curate

Generate concept art via ComfyUI with full provenance tracking. Review every image against your rubric. Approve, reject, or mark borderline with per-dimension scores.

Bind to canon

Every approved asset is bound to the specific constitution rules it satisfies. Not a tag. A graded, traceable verdict with rationale.

Freeze versioned datasets

Frozen snapshots with config fingerprints. Leakage-safe splits where subject families never cross partition boundaries. Self-contained export packages with checksums.

Build training packages

Manifest-bound, adapter-driven packages for specific trainers. Ships with generic-image-caption and diffusers-lora. Adapters transform layout but never mutate truth.

Run production workflows

Compile generation briefs from project truth. Execute through ComfyUI. Critique runs, refine briefs, batch-produce expression sheets and environment boards.

Select and re-ingest

Choose the best outputs. Selected work returns as candidate records with full generation provenance. Same review, same binding, same standards. The corpus grows.

The pipeline

Define canon

# Scaffold from a domain template
sdlab init my-project --domain game-art

# Validate the project
sdlab project doctor --project my-project

# 5 config files define all rules:
# constitution.json, lanes.json,
# rubric.json, terminology.json,
# project.json

Curate + bind

# Generate and review
sdlab curate  approved \
  "Correct palette, strong silhouette"

# Bind approved work to constitution
sdlab bind --project my-project

# Every record now carries:
# provenance + judgment + canon binding

Produce datasets

# Freeze, split, and package
sdlab snapshot create --project my-project
sdlab split build   # zero subject leakage
sdlab export build  # manifest + checksums
sdlab card generate # dataset card (md + json)

Production loop

# Compile brief, run, batch-produce
sdlab brief compile --workflow portrait-set
sdlab run generate --brief brief_001
sdlab batch generate --mode expression-sheet

# Select winners, re-ingest
sdlab select --run run_001 --approve 001.png
sdlab reingest selected --selection sel_001