@mcptoolshop/style-dataset-lab 2.2.1 → 3.0.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.
Files changed (65) hide show
  1. package/CHANGELOG.md +125 -0
  2. package/README.es.md +76 -144
  3. package/README.fr.md +75 -143
  4. package/README.hi.md +75 -143
  5. package/README.it.md +76 -144
  6. package/README.ja.md +75 -143
  7. package/README.md +36 -8
  8. package/README.pt-BR.md +75 -143
  9. package/README.zh.md +76 -144
  10. package/SECURITY.md +3 -1
  11. package/bin/sdlab.js +146 -17
  12. package/lib/adapters/comfyui-runner.js +170 -0
  13. package/lib/adapters/comfyui-workflows.js +163 -0
  14. package/lib/batch-compiler.js +118 -0
  15. package/lib/batch-modes.js +111 -0
  16. package/lib/batch-runs.js +168 -0
  17. package/lib/batch-sheet-render.js +206 -0
  18. package/lib/brief-compiler.js +598 -0
  19. package/lib/brief-render.js +205 -0
  20. package/lib/critique-engine.js +413 -0
  21. package/lib/critique-render.js +171 -0
  22. package/lib/errors.js +82 -0
  23. package/lib/generated-provenance.js +87 -0
  24. package/lib/log.js +36 -0
  25. package/lib/paths.js +31 -0
  26. package/lib/refine-briefs.js +329 -0
  27. package/lib/reingest-selected.js +173 -0
  28. package/lib/run-summary.js +131 -0
  29. package/lib/runtime-runs.js +168 -0
  30. package/lib/selections.js +323 -0
  31. package/lib/snapshot.js +5 -2
  32. package/lib/split.js +5 -2
  33. package/lib/workflow-profiles.js +161 -0
  34. package/package.json +8 -6
  35. package/scripts/batch-generate.js +167 -0
  36. package/scripts/batch-sheet.js +46 -0
  37. package/scripts/batch-show.js +86 -0
  38. package/scripts/brief-compile.js +134 -0
  39. package/scripts/brief-show.js +52 -0
  40. package/scripts/critique-show.js +50 -0
  41. package/scripts/critique.js +70 -0
  42. package/scripts/doctor.js +169 -1
  43. package/scripts/init.js +22 -0
  44. package/scripts/refine.js +119 -0
  45. package/scripts/reingest-selected.js +78 -0
  46. package/scripts/reingest.js +7 -1
  47. package/scripts/run-generate.js +76 -0
  48. package/scripts/run-list.js +58 -0
  49. package/scripts/run-show.js +63 -0
  50. package/scripts/select.js +118 -0
  51. package/scripts/selection-show.js +88 -0
  52. package/scripts/snapshot.js +27 -23
  53. package/scripts/split.js +3 -1
  54. package/scripts/workflow-list.js +61 -0
  55. package/scripts/workflow-show.js +96 -0
  56. package/templates/domains/architecture/workflows/profiles/environment-moodboard.json +62 -0
  57. package/templates/domains/architecture/workflows/profiles/interior-variant-pack.json +60 -0
  58. package/templates/domains/character-design/workflows/profiles/character-portrait-set.json +61 -0
  59. package/templates/domains/character-design/workflows/profiles/expression-sheet.json +59 -0
  60. package/templates/domains/creature-design/workflows/profiles/creature-portrait-set.json +61 -0
  61. package/templates/domains/creature-design/workflows/profiles/silhouette-exploration.json +58 -0
  62. package/templates/domains/game-art/workflows/profiles/character-portrait-set.json +62 -0
  63. package/templates/domains/game-art/workflows/profiles/environment-moodboard.json +61 -0
  64. package/templates/domains/vehicle-mech/workflows/profiles/variant-pack.json +60 -0
  65. package/templates/domains/vehicle-mech/workflows/profiles/vehicle-silhouette-pack.json +59 -0
@@ -0,0 +1,59 @@
1
+ {
2
+ "workflow_id": "expression-sheet",
3
+ "label": "Expression Sheet",
4
+ "description": "Produce multiple expressions while preserving subject identity.",
5
+ "lane_id": "expression_sheet",
6
+ "subject_mode": "required",
7
+ "output_mode": "expression_sheet",
8
+ "output_count": 6,
9
+ "required_reference_roles": ["anchor"],
10
+ "preferred_reference_tags": ["expression", "approved"],
11
+ "prompt_strategy": {
12
+ "style_prefix": [
13
+ "character expression sheet",
14
+ "consistent identity across expressions",
15
+ "head and shoulders framing"
16
+ ],
17
+ "structure": "style_prefix, subject_identity, canon_focus, controlled_variation",
18
+ "must_include": [
19
+ "subject identity",
20
+ "facial expression variety",
21
+ "consistent costume"
22
+ ],
23
+ "optional_blocks": [
24
+ "emotion label"
25
+ ]
26
+ },
27
+ "negative_strategy": {
28
+ "must_avoid": [
29
+ "face structure drift",
30
+ "hairstyle drift",
31
+ "costume mutation",
32
+ "age drift"
33
+ ],
34
+ "lane_specific_avoid": [
35
+ "full body composition"
36
+ ],
37
+ "subject_specific_avoid": []
38
+ },
39
+ "canon_focus": [
40
+ "anatomy",
41
+ "gesture",
42
+ "costume_logic",
43
+ "palette"
44
+ ],
45
+ "drift_guards": [
46
+ "face structure must remain identical",
47
+ "hairstyle must not change",
48
+ "costume must not mutate"
49
+ ],
50
+ "runtime_defaults": {
51
+ "adapter_target": "comfyui",
52
+ "width": 1024,
53
+ "height": 1024,
54
+ "steps": 30,
55
+ "cfg": 6.5,
56
+ "sampler": "dpmpp_2m",
57
+ "seed_mode": "increment"
58
+ }
59
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "workflow_id": "creature-portrait-set",
3
+ "label": "Creature Portrait Set",
4
+ "description": "Generate creature concept candidates exploring anatomy and silhouette.",
5
+ "lane_id": "concept",
6
+ "subject_mode": "required",
7
+ "output_mode": "portrait_set",
8
+ "output_count": 4,
9
+ "required_reference_roles": ["anchor"],
10
+ "preferred_reference_tags": ["concept", "approved"],
11
+ "prompt_strategy": {
12
+ "style_prefix": [
13
+ "creature concept art",
14
+ "strong anatomical read",
15
+ "distinctive silhouette"
16
+ ],
17
+ "structure": "style_prefix, subject_identity, lane_goal, canon_focus, controlled_variation",
18
+ "must_include": [
19
+ "species identity",
20
+ "anatomy logic",
21
+ "silhouette clarity"
22
+ ],
23
+ "optional_blocks": [
24
+ "scale reference note",
25
+ "locomotion note"
26
+ ]
27
+ },
28
+ "negative_strategy": {
29
+ "must_avoid": [
30
+ "human anatomy default",
31
+ "generic dragon",
32
+ "over-ornamentation",
33
+ "anatomical impossibility"
34
+ ],
35
+ "lane_specific_avoid": [
36
+ "environment focus",
37
+ "multiple creatures"
38
+ ],
39
+ "subject_specific_avoid": []
40
+ },
41
+ "canon_focus": [
42
+ "anatomy",
43
+ "silhouette",
44
+ "material_language",
45
+ "palette"
46
+ ],
47
+ "drift_guards": [
48
+ "preserve species anatomy",
49
+ "preserve silhouette proportions",
50
+ "preserve surface material language"
51
+ ],
52
+ "runtime_defaults": {
53
+ "adapter_target": "comfyui",
54
+ "width": 1024,
55
+ "height": 1024,
56
+ "steps": 30,
57
+ "cfg": 6.5,
58
+ "sampler": "dpmpp_2m",
59
+ "seed_mode": "increment"
60
+ }
61
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "workflow_id": "silhouette-exploration",
3
+ "label": "Silhouette Exploration",
4
+ "description": "Explore silhouette variations for a creature design.",
5
+ "lane_id": "concept",
6
+ "subject_mode": "optional",
7
+ "output_mode": "silhouette_sheet",
8
+ "output_count": 8,
9
+ "required_reference_roles": [],
10
+ "preferred_reference_tags": ["silhouette", "concept"],
11
+ "prompt_strategy": {
12
+ "style_prefix": [
13
+ "creature silhouette exploration",
14
+ "high contrast shape language",
15
+ "varied proportions and mass distribution"
16
+ ],
17
+ "structure": "style_prefix, lane_goal, canon_focus, controlled_variation",
18
+ "must_include": [
19
+ "silhouette variety",
20
+ "readable shape at small scale",
21
+ "consistent design family"
22
+ ],
23
+ "optional_blocks": [
24
+ "size class note",
25
+ "locomotion type note"
26
+ ]
27
+ },
28
+ "negative_strategy": {
29
+ "must_avoid": [
30
+ "uniform silhouettes",
31
+ "human proportions",
32
+ "over-detailed rendering"
33
+ ],
34
+ "lane_specific_avoid": [
35
+ "color distraction",
36
+ "background complexity"
37
+ ],
38
+ "subject_specific_avoid": []
39
+ },
40
+ "canon_focus": [
41
+ "silhouette",
42
+ "anatomy",
43
+ "scale_logic"
44
+ ],
45
+ "drift_guards": [
46
+ "shapes must remain readable at thumbnail scale",
47
+ "design family cohesion across variants"
48
+ ],
49
+ "runtime_defaults": {
50
+ "adapter_target": "comfyui",
51
+ "width": 1024,
52
+ "height": 1024,
53
+ "steps": 30,
54
+ "cfg": 6.5,
55
+ "sampler": "dpmpp_2m",
56
+ "seed_mode": "random"
57
+ }
58
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "workflow_id": "character-portrait-set",
3
+ "label": "Character Portrait Set",
4
+ "description": "Generate a focused portrait candidate pack for a named character.",
5
+ "lane_id": "character",
6
+ "subject_mode": "required",
7
+ "output_mode": "portrait_set",
8
+ "output_count": 4,
9
+ "required_reference_roles": ["anchor"],
10
+ "preferred_reference_tags": ["portrait", "approved"],
11
+ "prompt_strategy": {
12
+ "style_prefix": [
13
+ "character portrait concept art",
14
+ "clean readable silhouette",
15
+ "consistent identity"
16
+ ],
17
+ "structure": "style_prefix, subject_identity, lane_goal, canon_focus, controlled_variation",
18
+ "must_include": [
19
+ "subject identity",
20
+ "costume logic",
21
+ "palette fidelity"
22
+ ],
23
+ "optional_blocks": [
24
+ "lighting note",
25
+ "gesture note"
26
+ ]
27
+ },
28
+ "negative_strategy": {
29
+ "must_avoid": [
30
+ "off-model face",
31
+ "extra accessories",
32
+ "ornamental drift",
33
+ "generic fantasy styling"
34
+ ],
35
+ "lane_specific_avoid": [
36
+ "cropped silhouette",
37
+ "muddy facial read"
38
+ ],
39
+ "subject_specific_avoid": []
40
+ },
41
+ "canon_focus": [
42
+ "silhouette",
43
+ "costume_logic",
44
+ "palette",
45
+ "faction_read",
46
+ "gesture"
47
+ ],
48
+ "drift_guards": [
49
+ "preserve face structure",
50
+ "preserve canonical materials",
51
+ "do not add non-canon ornament"
52
+ ],
53
+ "runtime_defaults": {
54
+ "adapter_target": "comfyui",
55
+ "width": 1024,
56
+ "height": 1024,
57
+ "steps": 30,
58
+ "cfg": 6.5,
59
+ "sampler": "dpmpp_2m",
60
+ "seed_mode": "increment"
61
+ }
62
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "workflow_id": "environment-moodboard",
3
+ "label": "Environment Moodboard",
4
+ "description": "Explore environment palette, lighting, and spatial mood.",
5
+ "lane_id": "environment",
6
+ "subject_mode": "optional",
7
+ "output_mode": "moodboard",
8
+ "output_count": 6,
9
+ "required_reference_roles": [],
10
+ "preferred_reference_tags": ["environment", "approved"],
11
+ "prompt_strategy": {
12
+ "style_prefix": [
13
+ "environment concept art moodboard",
14
+ "painterly atmospheric rendering",
15
+ "strong spatial depth"
16
+ ],
17
+ "structure": "style_prefix, lane_goal, canon_focus, controlled_variation",
18
+ "must_include": [
19
+ "spatial composition",
20
+ "palette adherence",
21
+ "lighting mood"
22
+ ],
23
+ "optional_blocks": [
24
+ "time of day note",
25
+ "weather note"
26
+ ]
27
+ },
28
+ "negative_strategy": {
29
+ "must_avoid": [
30
+ "random architecture style shifts",
31
+ "off-era props",
32
+ "wrong lighting mood",
33
+ "clean sterile surfaces"
34
+ ],
35
+ "lane_specific_avoid": [
36
+ "character focus competing with environment"
37
+ ],
38
+ "subject_specific_avoid": []
39
+ },
40
+ "canon_focus": [
41
+ "palette",
42
+ "material_language",
43
+ "lighting",
44
+ "scale_logic",
45
+ "era_logic"
46
+ ],
47
+ "drift_guards": [
48
+ "palette must stay within project range",
49
+ "architecture style must match era logic",
50
+ "no modern or off-era props"
51
+ ],
52
+ "runtime_defaults": {
53
+ "adapter_target": "comfyui",
54
+ "width": 1024,
55
+ "height": 1024,
56
+ "steps": 30,
57
+ "cfg": 6.5,
58
+ "sampler": "dpmpp_2m",
59
+ "seed_mode": "random"
60
+ }
61
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "workflow_id": "variant-pack",
3
+ "label": "Vehicle Variant Pack",
4
+ "description": "Generate controlled design variants for a named vehicle subject.",
5
+ "lane_id": "exterior",
6
+ "subject_mode": "required",
7
+ "output_mode": "variant_pack",
8
+ "output_count": 4,
9
+ "required_reference_roles": ["anchor"],
10
+ "preferred_reference_tags": ["exterior", "approved"],
11
+ "prompt_strategy": {
12
+ "style_prefix": [
13
+ "vehicle design variant concept art",
14
+ "consistent form language",
15
+ "controlled variation"
16
+ ],
17
+ "structure": "style_prefix, subject_identity, lane_goal, canon_focus, controlled_variation",
18
+ "must_include": [
19
+ "vehicle identity",
20
+ "form language continuity",
21
+ "material palette"
22
+ ],
23
+ "optional_blocks": [
24
+ "color scheme note",
25
+ "loadout variant note"
26
+ ]
27
+ },
28
+ "negative_strategy": {
29
+ "must_avoid": [
30
+ "silhouette drift from reference",
31
+ "wrong faction materials",
32
+ "scale inconsistency"
33
+ ],
34
+ "lane_specific_avoid": [
35
+ "interior focus"
36
+ ],
37
+ "subject_specific_avoid": []
38
+ },
39
+ "canon_focus": [
40
+ "silhouette",
41
+ "material_language",
42
+ "palette",
43
+ "faction_read",
44
+ "scale_logic"
45
+ ],
46
+ "drift_guards": [
47
+ "preserve core silhouette from reference",
48
+ "preserve faction material language",
49
+ "preserve scale relationship"
50
+ ],
51
+ "runtime_defaults": {
52
+ "adapter_target": "comfyui",
53
+ "width": 1024,
54
+ "height": 1024,
55
+ "steps": 30,
56
+ "cfg": 6.5,
57
+ "sampler": "dpmpp_2m",
58
+ "seed_mode": "increment"
59
+ }
60
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "workflow_id": "vehicle-silhouette-pack",
3
+ "label": "Vehicle Silhouette Pack",
4
+ "description": "Explore vehicle silhouette variations and form language.",
5
+ "lane_id": "exterior",
6
+ "subject_mode": "optional",
7
+ "output_mode": "silhouette_sheet",
8
+ "output_count": 6,
9
+ "required_reference_roles": [],
10
+ "preferred_reference_tags": ["exterior", "silhouette"],
11
+ "prompt_strategy": {
12
+ "style_prefix": [
13
+ "vehicle silhouette concept art",
14
+ "strong form language",
15
+ "high contrast shape exploration"
16
+ ],
17
+ "structure": "style_prefix, lane_goal, canon_focus, controlled_variation",
18
+ "must_include": [
19
+ "vehicle form language",
20
+ "silhouette variety",
21
+ "scale read"
22
+ ],
23
+ "optional_blocks": [
24
+ "faction note",
25
+ "role note"
26
+ ]
27
+ },
28
+ "negative_strategy": {
29
+ "must_avoid": [
30
+ "uniform silhouettes",
31
+ "over-detailed rendering",
32
+ "unrealistic proportions"
33
+ ],
34
+ "lane_specific_avoid": [
35
+ "interior focus",
36
+ "background complexity"
37
+ ],
38
+ "subject_specific_avoid": []
39
+ },
40
+ "canon_focus": [
41
+ "silhouette",
42
+ "scale_logic",
43
+ "faction_read",
44
+ "material_language"
45
+ ],
46
+ "drift_guards": [
47
+ "silhouettes must be readable at thumbnail scale",
48
+ "form language must stay within project vocabulary"
49
+ ],
50
+ "runtime_defaults": {
51
+ "adapter_target": "comfyui",
52
+ "width": 1024,
53
+ "height": 1024,
54
+ "steps": 30,
55
+ "cfg": 6.5,
56
+ "sampler": "dpmpp_2m",
57
+ "seed_mode": "random"
58
+ }
59
+ }