@sprite-foundry/fantasy-villains-48 1.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.
- package/CHANGELOG.md +22 -0
- package/LICENSE +21 -0
- package/README.md +150 -0
- package/assets/assassin/albedo/back.png +0 -0
- package/assets/assassin/albedo/back_left.png +0 -0
- package/assets/assassin/albedo/back_right.png +0 -0
- package/assets/assassin/albedo/front.png +0 -0
- package/assets/assassin/albedo/front_left.png +0 -0
- package/assets/assassin/albedo/front_right.png +0 -0
- package/assets/assassin/albedo/left.png +0 -0
- package/assets/assassin/albedo/right.png +0 -0
- package/assets/assassin/depth/back.png +0 -0
- package/assets/assassin/depth/back_left.png +0 -0
- package/assets/assassin/depth/back_right.png +0 -0
- package/assets/assassin/depth/front.png +0 -0
- package/assets/assassin/depth/front_left.png +0 -0
- package/assets/assassin/depth/front_right.png +0 -0
- package/assets/assassin/depth/left.png +0 -0
- package/assets/assassin/depth/right.png +0 -0
- package/assets/assassin/manifest.json +77 -0
- package/assets/assassin/normal/back.png +0 -0
- package/assets/assassin/normal/back_left.png +0 -0
- package/assets/assassin/normal/back_right.png +0 -0
- package/assets/assassin/normal/front.png +0 -0
- package/assets/assassin/normal/front_left.png +0 -0
- package/assets/assassin/normal/front_right.png +0 -0
- package/assets/assassin/normal/left.png +0 -0
- package/assets/assassin/normal/right.png +0 -0
- package/assets/assassin/preview/contact_sheet.png +0 -0
- package/assets/blackguard/albedo/back.png +0 -0
- package/assets/blackguard/albedo/back_left.png +0 -0
- package/assets/blackguard/albedo/back_right.png +0 -0
- package/assets/blackguard/albedo/front.png +0 -0
- package/assets/blackguard/albedo/front_left.png +0 -0
- package/assets/blackguard/albedo/front_right.png +0 -0
- package/assets/blackguard/albedo/left.png +0 -0
- package/assets/blackguard/albedo/right.png +0 -0
- package/assets/blackguard/depth/back.png +0 -0
- package/assets/blackguard/depth/back_left.png +0 -0
- package/assets/blackguard/depth/back_right.png +0 -0
- package/assets/blackguard/depth/front.png +0 -0
- package/assets/blackguard/depth/front_left.png +0 -0
- package/assets/blackguard/depth/front_right.png +0 -0
- package/assets/blackguard/depth/left.png +0 -0
- package/assets/blackguard/depth/right.png +0 -0
- package/assets/blackguard/manifest.json +77 -0
- package/assets/blackguard/normal/back.png +0 -0
- package/assets/blackguard/normal/back_left.png +0 -0
- package/assets/blackguard/normal/back_right.png +0 -0
- package/assets/blackguard/normal/front.png +0 -0
- package/assets/blackguard/normal/front_left.png +0 -0
- package/assets/blackguard/normal/front_right.png +0 -0
- package/assets/blackguard/normal/left.png +0 -0
- package/assets/blackguard/normal/right.png +0 -0
- package/assets/blackguard/preview/contact_sheet.png +0 -0
- package/assets/cult-priest/albedo/back.png +0 -0
- package/assets/cult-priest/albedo/back_left.png +0 -0
- package/assets/cult-priest/albedo/back_right.png +0 -0
- package/assets/cult-priest/albedo/front.png +0 -0
- package/assets/cult-priest/albedo/front_left.png +0 -0
- package/assets/cult-priest/albedo/front_right.png +0 -0
- package/assets/cult-priest/albedo/left.png +0 -0
- package/assets/cult-priest/albedo/right.png +0 -0
- package/assets/cult-priest/depth/back.png +0 -0
- package/assets/cult-priest/depth/back_left.png +0 -0
- package/assets/cult-priest/depth/back_right.png +0 -0
- package/assets/cult-priest/depth/front.png +0 -0
- package/assets/cult-priest/depth/front_left.png +0 -0
- package/assets/cult-priest/depth/front_right.png +0 -0
- package/assets/cult-priest/depth/left.png +0 -0
- package/assets/cult-priest/depth/right.png +0 -0
- package/assets/cult-priest/manifest.json +77 -0
- package/assets/cult-priest/normal/back.png +0 -0
- package/assets/cult-priest/normal/back_left.png +0 -0
- package/assets/cult-priest/normal/back_right.png +0 -0
- package/assets/cult-priest/normal/front.png +0 -0
- package/assets/cult-priest/normal/front_left.png +0 -0
- package/assets/cult-priest/normal/front_right.png +0 -0
- package/assets/cult-priest/normal/left.png +0 -0
- package/assets/cult-priest/normal/right.png +0 -0
- package/assets/cult-priest/preview/contact_sheet.png +0 -0
- package/assets/dark-monk/albedo/back.png +0 -0
- package/assets/dark-monk/albedo/back_left.png +0 -0
- package/assets/dark-monk/albedo/back_right.png +0 -0
- package/assets/dark-monk/albedo/front.png +0 -0
- package/assets/dark-monk/albedo/front_left.png +0 -0
- package/assets/dark-monk/albedo/front_right.png +0 -0
- package/assets/dark-monk/albedo/left.png +0 -0
- package/assets/dark-monk/albedo/right.png +0 -0
- package/assets/dark-monk/depth/back.png +0 -0
- package/assets/dark-monk/depth/back_left.png +0 -0
- package/assets/dark-monk/depth/back_right.png +0 -0
- package/assets/dark-monk/depth/front.png +0 -0
- package/assets/dark-monk/depth/front_left.png +0 -0
- package/assets/dark-monk/depth/front_right.png +0 -0
- package/assets/dark-monk/depth/left.png +0 -0
- package/assets/dark-monk/depth/right.png +0 -0
- package/assets/dark-monk/manifest.json +77 -0
- package/assets/dark-monk/normal/back.png +0 -0
- package/assets/dark-monk/normal/back_left.png +0 -0
- package/assets/dark-monk/normal/back_right.png +0 -0
- package/assets/dark-monk/normal/front.png +0 -0
- package/assets/dark-monk/normal/front_left.png +0 -0
- package/assets/dark-monk/normal/front_right.png +0 -0
- package/assets/dark-monk/normal/left.png +0 -0
- package/assets/dark-monk/normal/right.png +0 -0
- package/assets/dark-monk/preview/contact_sheet.png +0 -0
- package/assets/dread-ranger/albedo/back.png +0 -0
- package/assets/dread-ranger/albedo/back_left.png +0 -0
- package/assets/dread-ranger/albedo/back_right.png +0 -0
- package/assets/dread-ranger/albedo/front.png +0 -0
- package/assets/dread-ranger/albedo/front_left.png +0 -0
- package/assets/dread-ranger/albedo/front_right.png +0 -0
- package/assets/dread-ranger/albedo/left.png +0 -0
- package/assets/dread-ranger/albedo/right.png +0 -0
- package/assets/dread-ranger/depth/back.png +0 -0
- package/assets/dread-ranger/depth/back_left.png +0 -0
- package/assets/dread-ranger/depth/back_right.png +0 -0
- package/assets/dread-ranger/depth/front.png +0 -0
- package/assets/dread-ranger/depth/front_left.png +0 -0
- package/assets/dread-ranger/depth/front_right.png +0 -0
- package/assets/dread-ranger/depth/left.png +0 -0
- package/assets/dread-ranger/depth/right.png +0 -0
- package/assets/dread-ranger/manifest.json +77 -0
- package/assets/dread-ranger/normal/back.png +0 -0
- package/assets/dread-ranger/normal/back_left.png +0 -0
- package/assets/dread-ranger/normal/back_right.png +0 -0
- package/assets/dread-ranger/normal/front.png +0 -0
- package/assets/dread-ranger/normal/front_left.png +0 -0
- package/assets/dread-ranger/normal/front_right.png +0 -0
- package/assets/dread-ranger/normal/left.png +0 -0
- package/assets/dread-ranger/normal/right.png +0 -0
- package/assets/dread-ranger/preview/contact_sheet.png +0 -0
- package/assets/necromancer/albedo/back.png +0 -0
- package/assets/necromancer/albedo/back_left.png +0 -0
- package/assets/necromancer/albedo/back_right.png +0 -0
- package/assets/necromancer/albedo/front.png +0 -0
- package/assets/necromancer/albedo/front_left.png +0 -0
- package/assets/necromancer/albedo/front_right.png +0 -0
- package/assets/necromancer/albedo/left.png +0 -0
- package/assets/necromancer/albedo/right.png +0 -0
- package/assets/necromancer/depth/back.png +0 -0
- package/assets/necromancer/depth/back_left.png +0 -0
- package/assets/necromancer/depth/back_right.png +0 -0
- package/assets/necromancer/depth/front.png +0 -0
- package/assets/necromancer/depth/front_left.png +0 -0
- package/assets/necromancer/depth/front_right.png +0 -0
- package/assets/necromancer/depth/left.png +0 -0
- package/assets/necromancer/depth/right.png +0 -0
- package/assets/necromancer/manifest.json +77 -0
- package/assets/necromancer/normal/back.png +0 -0
- package/assets/necromancer/normal/back_left.png +0 -0
- package/assets/necromancer/normal/back_right.png +0 -0
- package/assets/necromancer/normal/front.png +0 -0
- package/assets/necromancer/normal/front_left.png +0 -0
- package/assets/necromancer/normal/front_right.png +0 -0
- package/assets/necromancer/normal/left.png +0 -0
- package/assets/necromancer/normal/right.png +0 -0
- package/assets/necromancer/preview/contact_sheet.png +0 -0
- package/assets/reaver/albedo/back.png +0 -0
- package/assets/reaver/albedo/back_left.png +0 -0
- package/assets/reaver/albedo/back_right.png +0 -0
- package/assets/reaver/albedo/front.png +0 -0
- package/assets/reaver/albedo/front_left.png +0 -0
- package/assets/reaver/albedo/front_right.png +0 -0
- package/assets/reaver/albedo/left.png +0 -0
- package/assets/reaver/albedo/right.png +0 -0
- package/assets/reaver/depth/back.png +0 -0
- package/assets/reaver/depth/back_left.png +0 -0
- package/assets/reaver/depth/back_right.png +0 -0
- package/assets/reaver/depth/front.png +0 -0
- package/assets/reaver/depth/front_left.png +0 -0
- package/assets/reaver/depth/front_right.png +0 -0
- package/assets/reaver/depth/left.png +0 -0
- package/assets/reaver/depth/right.png +0 -0
- package/assets/reaver/manifest.json +77 -0
- package/assets/reaver/normal/back.png +0 -0
- package/assets/reaver/normal/back_left.png +0 -0
- package/assets/reaver/normal/back_right.png +0 -0
- package/assets/reaver/normal/front.png +0 -0
- package/assets/reaver/normal/front_left.png +0 -0
- package/assets/reaver/normal/front_right.png +0 -0
- package/assets/reaver/normal/left.png +0 -0
- package/assets/reaver/normal/right.png +0 -0
- package/assets/reaver/preview/contact_sheet.png +0 -0
- package/assets/warlord/albedo/back.png +0 -0
- package/assets/warlord/albedo/back_left.png +0 -0
- package/assets/warlord/albedo/back_right.png +0 -0
- package/assets/warlord/albedo/front.png +0 -0
- package/assets/warlord/albedo/front_left.png +0 -0
- package/assets/warlord/albedo/front_right.png +0 -0
- package/assets/warlord/albedo/left.png +0 -0
- package/assets/warlord/albedo/right.png +0 -0
- package/assets/warlord/depth/back.png +0 -0
- package/assets/warlord/depth/back_left.png +0 -0
- package/assets/warlord/depth/back_right.png +0 -0
- package/assets/warlord/depth/front.png +0 -0
- package/assets/warlord/depth/front_left.png +0 -0
- package/assets/warlord/depth/front_right.png +0 -0
- package/assets/warlord/depth/left.png +0 -0
- package/assets/warlord/depth/right.png +0 -0
- package/assets/warlord/manifest.json +77 -0
- package/assets/warlord/normal/back.png +0 -0
- package/assets/warlord/normal/back_left.png +0 -0
- package/assets/warlord/normal/back_right.png +0 -0
- package/assets/warlord/normal/front.png +0 -0
- package/assets/warlord/normal/front_left.png +0 -0
- package/assets/warlord/normal/front_right.png +0 -0
- package/assets/warlord/normal/left.png +0 -0
- package/assets/warlord/normal/right.png +0 -0
- package/assets/warlord/preview/contact_sheet.png +0 -0
- package/pack.json +18 -0
- package/package.json +44 -0
- package/previews/banner.png +0 -0
- package/previews/lineup.png +0 -0
- package/previews/logo.png +0 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.0.0] — 2026-03-26
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- 8 villain archetypes: Blackguard, Dread Ranger, Necromancer, Assassin, Cult Priest, Reaver, Warlord, Dark Monk
|
|
13
|
+
- 8 directions per variant (front, front_left, left, back_left, back, back_right, right, front_right)
|
|
14
|
+
- 3 layers per direction: albedo, normal map, depth map
|
|
15
|
+
- 192 total sprite assets (8 variants × 8 directions × 3 layers)
|
|
16
|
+
- Pack-level index (`pack.json`) and per-variant manifests with SHA-256 checksums
|
|
17
|
+
- Contact sheet previews per variant
|
|
18
|
+
- Lineup and banner preview composites
|
|
19
|
+
- Asset verification script (`npm run verify`)
|
|
20
|
+
- Landing page with Starlight handbook (4 pages)
|
|
21
|
+
- SECURITY.md with static-asset threat model
|
|
22
|
+
- CI workflow (paths-gated)
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 MCP Tool Shop
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <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.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/fantasy-villains-sprite-pack/readme.png" width="400" alt="Fantasy Villains" />
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://github.com/mcp-tool-shop-org/fantasy-villains-sprite-pack/actions"><img src="https://github.com/mcp-tool-shop-org/fantasy-villains-sprite-pack/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/@sprite-foundry/fantasy-villains-48"><img src="https://img.shields.io/npm/v/@sprite-foundry/fantasy-villains-48" alt="npm version" /></a>
|
|
12
|
+
<a href="https://github.com/mcp-tool-shop-org/fantasy-villains-sprite-pack/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT License" /></a>
|
|
13
|
+
<a href="https://mcp-tool-shop-org.github.io/fantasy-villains-sprite-pack/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page" /></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
A 48px, 8-direction pixel-art pack of boss-ready humanoid antagonists with albedo, normal, and depth maps for engine-agnostic game use.
|
|
17
|
+
|
|
18
|
+

|
|
19
|
+
|
|
20
|
+
## What's Included
|
|
21
|
+
|
|
22
|
+
8 villain archetypes — elite humanoid antagonists, not generic monsters:
|
|
23
|
+
|
|
24
|
+

|
|
25
|
+
|
|
26
|
+
| Variant | Role | Silhouette |
|
|
27
|
+
|---------|------|------------|
|
|
28
|
+
| Blackguard | Elite tank | Closed dark helm, tower shield, spiked mace, black plate |
|
|
29
|
+
| Dread Ranger | Ranged hunter | Skull mask over hood, longbow, bone trophies, tattered cloak |
|
|
30
|
+
| Necromancer | Summoner/caster | Bone crown, skull staff, tattered robes, gaunt frame |
|
|
31
|
+
| Assassin | Flanker | Face mask, curved daggers, vial bandolier, compact crouched posture |
|
|
32
|
+
| Cult Priest | Support/debuffer | Horned headdress, censer on chain, structured red/black vestments |
|
|
33
|
+
| Reaver | Heavy damage | Executioner's cleaver, half-mask, bare scarred torso, widest villain |
|
|
34
|
+
| Warlord | Commander | Crown-helm with plume, halberd, banner on back, ornate gold/red armor |
|
|
35
|
+
| Dark Monk | Fast specialist | Shaved tattooed head, chain-weighted staff, metal-studded wraps |
|
|
36
|
+
|
|
37
|
+
Each variant ships with three map layers:
|
|
38
|
+
|
|
39
|
+
- **Albedo** — base color sprites (transparent PNG)
|
|
40
|
+
- **Normal** — normal maps for dynamic lighting
|
|
41
|
+
- **Depth** — depth maps for parallax and elevation effects
|
|
42
|
+
|
|
43
|
+
## Install
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm install @sprite-foundry/fantasy-villains-48
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Folder Structure
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
assets/
|
|
53
|
+
blackguard/
|
|
54
|
+
albedo/ 8 directional PNGs (front, front_left, left, back_left, back, back_right, right, front_right)
|
|
55
|
+
normal/ 8 matching normal maps
|
|
56
|
+
depth/ 8 matching depth maps
|
|
57
|
+
preview/ contact sheet
|
|
58
|
+
manifest.json
|
|
59
|
+
dread-ranger/
|
|
60
|
+
necromancer/
|
|
61
|
+
assassin/
|
|
62
|
+
cult-priest/
|
|
63
|
+
reaver/
|
|
64
|
+
warlord/
|
|
65
|
+
dark-monk/
|
|
66
|
+
pack.json pack-level index
|
|
67
|
+
previews/ banner and lineup sheets
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Manifest Format
|
|
71
|
+
|
|
72
|
+
Each variant has a `manifest.json`:
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"slug": "blackguard",
|
|
77
|
+
"name": "Blackguard",
|
|
78
|
+
"version": "1.0.0",
|
|
79
|
+
"tileSize": 48,
|
|
80
|
+
"directions": ["front", "front_left", "left", "back_left", "back", "back_right", "right", "front_right"],
|
|
81
|
+
"layers": {
|
|
82
|
+
"albedo": "albedo/{direction}.png",
|
|
83
|
+
"normal": "normal/{direction}.png",
|
|
84
|
+
"depth": "depth/{direction}.png"
|
|
85
|
+
},
|
|
86
|
+
"preview": "preview/contact_sheet.png"
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The pack-level `pack.json` indexes all variants with paths to each manifest.
|
|
91
|
+
|
|
92
|
+
## Engine Compatibility
|
|
93
|
+
|
|
94
|
+
These are plain PNG files with JSON metadata. They work with any engine or framework that can load images:
|
|
95
|
+
|
|
96
|
+
- Phaser
|
|
97
|
+
- PixiJS
|
|
98
|
+
- Godot
|
|
99
|
+
- RPG Maker
|
|
100
|
+
- Unity (2D)
|
|
101
|
+
- Custom engines
|
|
102
|
+
|
|
103
|
+
No engine-specific format or runtime dependency.
|
|
104
|
+
|
|
105
|
+
## Specs
|
|
106
|
+
|
|
107
|
+
- **Tile size:** 48 x 48 px
|
|
108
|
+
- **Directions:** 8 (front, front_left, left, back_left, back, back_right, right, front_right)
|
|
109
|
+
- **Format:** transparent PNG
|
|
110
|
+
- **Maps:** albedo + normal + depth
|
|
111
|
+
- **Animation:** static poses (v1)
|
|
112
|
+
- **Perspective:** top-down
|
|
113
|
+
|
|
114
|
+
## Extending the Pack
|
|
115
|
+
|
|
116
|
+
Want to generate additional villain variants that match this pack's art style and export contract?
|
|
117
|
+
|
|
118
|
+
This pack was produced with [Sprite Foundry](https://github.com/mcp-tool-shop-org/sprite-foundry), an open-source ComfyUI + SDXL pixel-art generation pipeline. The foundry repo contains everything you need:
|
|
119
|
+
|
|
120
|
+
- **Generation pipeline** — `pipeline/foundry_gen.py` drives ComfyUI with per-subject configs
|
|
121
|
+
- **Subject configs** — `pipeline/chars/villain_*.json` define the exact prompts, seeds, silhouette rules, and reject conditions for every variant in this pack
|
|
122
|
+
- **Batch manifest** — `pipeline/manifests/fantasy_villains_04.json` maps all 8 configs to the export structure
|
|
123
|
+
- **Export CLI** — `foundry export <run_id>` produces deterministic packs with checksums
|
|
124
|
+
- **ControlNet tuning** — humanoid depth strength 0.60, end% 0.85 (documented in the manifest)
|
|
125
|
+
|
|
126
|
+
To add a new variant:
|
|
127
|
+
|
|
128
|
+
1. Create a subject config in `pipeline/chars/` following the existing villain configs
|
|
129
|
+
2. Register: `python -m foundry.cli subject-add <id> --name "Name"`
|
|
130
|
+
3. Generate: `python -m pipeline.foundry_gen --config pipeline/chars/<config>.json`
|
|
131
|
+
4. Review, accept, produce maps, accept finish, export
|
|
132
|
+
5. Copy the exported pack into the matching `assets/<slug>/` directory
|
|
133
|
+
|
|
134
|
+
The [Sprite Foundry README](https://github.com/mcp-tool-shop-org/sprite-foundry#readme) has the full pipeline walkthrough.
|
|
135
|
+
|
|
136
|
+
## Security
|
|
137
|
+
|
|
138
|
+
This package contains **only static PNG images and JSON metadata**. There is no executable code, no install hooks, no network access, and no telemetry. Assets are read-only by design.
|
|
139
|
+
|
|
140
|
+
See [SECURITY.md](SECURITY.md) for the full security policy.
|
|
141
|
+
|
|
142
|
+
## License
|
|
143
|
+
|
|
144
|
+
MIT — use in commercial and non-commercial projects.
|
|
145
|
+
|
|
146
|
+
## Credits
|
|
147
|
+
|
|
148
|
+
Generated with [Sprite Foundry](https://github.com/mcp-tool-shop-org/sprite-foundry) using ComfyUI + SDXL pixel-art pipeline.
|
|
149
|
+
|
|
150
|
+
Built by <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0.0",
|
|
3
|
+
"exported_at": "2026-03-26T21:20:59.730428+00:00",
|
|
4
|
+
"foundry_version": "90ef703",
|
|
5
|
+
"identity": {
|
|
6
|
+
"subject_slug": "villain_assassin",
|
|
7
|
+
"display_name": "Assassin",
|
|
8
|
+
"body_family": "bipedal"
|
|
9
|
+
},
|
|
10
|
+
"provenance": {
|
|
11
|
+
"run_id": "villain_assassin_p3_20260326_205507",
|
|
12
|
+
"seed": 812000,
|
|
13
|
+
"generated_at": "2026-03-26T20:56:02.372442+00:00",
|
|
14
|
+
"accepted_at": "2026-03-26T20:57:02.470749+00:00",
|
|
15
|
+
"regen_count": 0,
|
|
16
|
+
"reject_count": 0,
|
|
17
|
+
"git_hash": "90ef703"
|
|
18
|
+
},
|
|
19
|
+
"generation": {
|
|
20
|
+
"stack_id": "A_v2",
|
|
21
|
+
"checkpoint": "juggernautXL_ragnarokBy.safetensors",
|
|
22
|
+
"lora": "pixel-art-xl @ 0.85",
|
|
23
|
+
"controlnet_depth": null,
|
|
24
|
+
"controlnet_depth_strength": null,
|
|
25
|
+
"controlnet_depth_end_percent": null,
|
|
26
|
+
"controlnet_edge": null,
|
|
27
|
+
"controlnet_edge_strength": null
|
|
28
|
+
},
|
|
29
|
+
"render_contract": {
|
|
30
|
+
"width": 48,
|
|
31
|
+
"height": 48,
|
|
32
|
+
"direction_order": [
|
|
33
|
+
"front",
|
|
34
|
+
"front_left",
|
|
35
|
+
"left",
|
|
36
|
+
"back_left",
|
|
37
|
+
"back",
|
|
38
|
+
"back_right",
|
|
39
|
+
"right",
|
|
40
|
+
"front_right"
|
|
41
|
+
],
|
|
42
|
+
"pivot": "center_bottom",
|
|
43
|
+
"transparency": true
|
|
44
|
+
},
|
|
45
|
+
"files": {
|
|
46
|
+
"albedo/front.png": "a5708663ca3557d3f5d14e18dde3eee4d2746d4ff0ce9a6700542d2c5f2d2049",
|
|
47
|
+
"normal/front.png": "2be89c2570b54d389b7d91f9f279a817909e13746fdcdd4b4a1100be9719a34a",
|
|
48
|
+
"depth/front.png": "9973445b0fdc140fdf26efd11c3eb946cbbd8173fbb45bad2cc5b0929f4eeb36",
|
|
49
|
+
"albedo/front_left.png": "080dbda03aaa98c4afe1cb2433973dfb9c8a23631f49568b8190abdf722a54dc",
|
|
50
|
+
"normal/front_left.png": "07185dba5b333433e1f864ac8c6e4f80db9253110dd15dd5697590073dfd26e8",
|
|
51
|
+
"depth/front_left.png": "9db9486776b8fb8029fd0996467f0bb7139039489eee5e6c91b3e8f0e5a4ef41",
|
|
52
|
+
"albedo/left.png": "dd74c63d323ab32b1cc374bcc784adf1788acb4fa6224ad433c9b5d542dbc428",
|
|
53
|
+
"normal/left.png": "ae4cd1cae47ea0c37055d6ac249b6aa41bdd4e38acf7f27c5af66f91cd9ba038",
|
|
54
|
+
"depth/left.png": "3bdde5d2f92597ff5830e58cdaa396b6d54507d5fd7c9eba103bd755c608bd07",
|
|
55
|
+
"albedo/back_left.png": "009932b075ea5e52673287feeccce6a74b02a277d16652ca40b995d6f3df9a01",
|
|
56
|
+
"normal/back_left.png": "8f13ba054f619df419ef4e54cd5e19c71a8fc56bc17b884d9208e1e0494d9a03",
|
|
57
|
+
"depth/back_left.png": "39124fb0b15248efcd9cce69c9b6eb4cdd8c693fbc6f33b191036d64e037486f",
|
|
58
|
+
"albedo/back.png": "3a56c7ed419d767a3572a1558b1cb7b3c5bad1c29ee09b88a158780b1c81cb03",
|
|
59
|
+
"normal/back.png": "1e4144b9b57242559a8744cf05bac28523c4d3d615cefd3c06700dc12588447a",
|
|
60
|
+
"depth/back.png": "884c9ebcd9b72017179eb77fdf82e94f49bc0e87002a8c80560537c9159af2ca",
|
|
61
|
+
"albedo/back_right.png": "2ed5df6a81ce678165243483475dd87c661feb6d74b0f17e02d97d1b90dad1d1",
|
|
62
|
+
"normal/back_right.png": "b2259d5a6f9596d6bab6cb360fb89b2e83d414ec2f3ff03185f4bc2855048b91",
|
|
63
|
+
"depth/back_right.png": "8090d6e16f8eb2f8f2e66bb9ca6c8a5447a1028a484b0b3ba417e96b0c52f888",
|
|
64
|
+
"albedo/right.png": "6d4d48942b6f91d89231da4abb52a85dd045c0a54429ea54561fadbd4af4242f",
|
|
65
|
+
"normal/right.png": "47f4a2a083fe0b0c09d10f3907b39616af12fd4cf31076b431a87e418a94c611",
|
|
66
|
+
"depth/right.png": "fe666d458899410963ee87dd0308817c5ccf8ebf2bfb8919b1c2aa65a1816ef6",
|
|
67
|
+
"albedo/front_right.png": "82a7e982a26d483ae97a7fda820f708f7a09fba3a3d2663384539eae04f54c3a",
|
|
68
|
+
"normal/front_right.png": "ad109eb236f71c769d276bfc8595e6c0073b4229387ccec0d17efa8f3fb1c667",
|
|
69
|
+
"depth/front_right.png": "29602de9f7ea1f8d76e4010cc52d819183e4c7153548a5dfb2721ff7c23a55ce",
|
|
70
|
+
"preview/contact_sheet.png": "ce81037dff39e7641aa948e6394841b2777b0e20fc205cd366dca19cbdb1d577"
|
|
71
|
+
},
|
|
72
|
+
"source": {
|
|
73
|
+
"bakeoff_dir": "bakeoff\\villain_assassin_p3_20260326_205507",
|
|
74
|
+
"maps_dir": "bakeoff\\villain_assassin_p3_20260326_205507_maps"
|
|
75
|
+
},
|
|
76
|
+
"notes": null
|
|
77
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0.0",
|
|
3
|
+
"exported_at": "2026-03-26T21:20:47.165461+00:00",
|
|
4
|
+
"foundry_version": "90ef703",
|
|
5
|
+
"identity": {
|
|
6
|
+
"subject_slug": "villain_blackguard",
|
|
7
|
+
"display_name": "Blackguard",
|
|
8
|
+
"body_family": "bipedal"
|
|
9
|
+
},
|
|
10
|
+
"provenance": {
|
|
11
|
+
"run_id": "villain_blackguard_p3_20260326_204649",
|
|
12
|
+
"seed": 811700,
|
|
13
|
+
"generated_at": "2026-03-26T20:47:43.619466+00:00",
|
|
14
|
+
"accepted_at": "2026-03-26T20:49:08.564348+00:00",
|
|
15
|
+
"regen_count": 0,
|
|
16
|
+
"reject_count": 0,
|
|
17
|
+
"git_hash": "90ef703"
|
|
18
|
+
},
|
|
19
|
+
"generation": {
|
|
20
|
+
"stack_id": "A_v2",
|
|
21
|
+
"checkpoint": "juggernautXL_ragnarokBy.safetensors",
|
|
22
|
+
"lora": "pixel-art-xl @ 0.85",
|
|
23
|
+
"controlnet_depth": null,
|
|
24
|
+
"controlnet_depth_strength": null,
|
|
25
|
+
"controlnet_depth_end_percent": null,
|
|
26
|
+
"controlnet_edge": null,
|
|
27
|
+
"controlnet_edge_strength": null
|
|
28
|
+
},
|
|
29
|
+
"render_contract": {
|
|
30
|
+
"width": 48,
|
|
31
|
+
"height": 48,
|
|
32
|
+
"direction_order": [
|
|
33
|
+
"front",
|
|
34
|
+
"front_left",
|
|
35
|
+
"left",
|
|
36
|
+
"back_left",
|
|
37
|
+
"back",
|
|
38
|
+
"back_right",
|
|
39
|
+
"right",
|
|
40
|
+
"front_right"
|
|
41
|
+
],
|
|
42
|
+
"pivot": "center_bottom",
|
|
43
|
+
"transparency": true
|
|
44
|
+
},
|
|
45
|
+
"files": {
|
|
46
|
+
"albedo/front.png": "dba63a5888125cb087e29a84ff717a704b7343066bf6b1188aaaf498996167e3",
|
|
47
|
+
"normal/front.png": "ce03bdaf8bc0cbc7e81f1f4e040a9df6783021a9ca5f89f156b86aa951c106bf",
|
|
48
|
+
"depth/front.png": "2087c9a0610d897444fc4dfcd59072a431968a66e5ab01c7cf3764a44a27356b",
|
|
49
|
+
"albedo/front_left.png": "7e89a97654b0347e9cbb9eb206ce469c23fe6a6871a01275f471e44d9791617b",
|
|
50
|
+
"normal/front_left.png": "99c44caad17ba54d9d7287476648a1470dc4971c124890362e64734e68c064b6",
|
|
51
|
+
"depth/front_left.png": "01e6b3a3451cd384f21669fbcf6bbe53bb19d48c741c27a7e4c5ac9991b242d6",
|
|
52
|
+
"albedo/left.png": "61459fbff51e1605220d61b28bc66dc1146d6407dff2b4260cd8be9544334c72",
|
|
53
|
+
"normal/left.png": "3fb94325bf36ef46082d24e3d7302ac4b7d61eef8180c245bd710f5a332eb421",
|
|
54
|
+
"depth/left.png": "7704064d1f784abc1900a094a609d32e394fec742d0c866ad712805250dc10c1",
|
|
55
|
+
"albedo/back_left.png": "2373bc470cd5e27ef08b259b6504c8a0e2786585f5675a1049b9c0a0a2f3ed53",
|
|
56
|
+
"normal/back_left.png": "0825006654b96e00bacfa87cdbbd9cc8809ae436cf45e2bf18657ef0c2661f64",
|
|
57
|
+
"depth/back_left.png": "dab253f5ab6669e3f757ea050b087a9bc57f75caa1adb35b81788b500a272a15",
|
|
58
|
+
"albedo/back.png": "e82850918716a8793a7f5a4be41c19f11af3b03684164cc5c5c1cc38197e5a7c",
|
|
59
|
+
"normal/back.png": "3d1d7c5df2518ead6ec113955a93bcc3de2d24ea03772d8b5e1eea71f90ed20a",
|
|
60
|
+
"depth/back.png": "80d5f8eab4f39e8e10f5445aecd44922aaa0eb82656ac8500f8ddf04c581116b",
|
|
61
|
+
"albedo/back_right.png": "be1443e5818a89d5d12ef8c3a7b2fa2daf4754aa5a258b2c5a354a805be701e8",
|
|
62
|
+
"normal/back_right.png": "59340e3ed64c76c08a0cb7e5eaba901af871dc29ded3d32f446e33cec4cd980f",
|
|
63
|
+
"depth/back_right.png": "031e6d65990fea58bf92178e1d97518aedba20eef183cab73547e82623176d33",
|
|
64
|
+
"albedo/right.png": "48a80ed1ab308610c543b1081fde6534263bf9915655f10b5fe300ff23abd963",
|
|
65
|
+
"normal/right.png": "cfba651209ad22583548659c66f9dcb9ca629a2f3a8694128c27136de5144e1a",
|
|
66
|
+
"depth/right.png": "5f8b08391e88d740c06dc3cd012cc12aa34be43d101618117bb312e8a8ba6113",
|
|
67
|
+
"albedo/front_right.png": "76ae7a4d542b4ca8ed71bbe29226d8d01bd4033d0a40b7f1f54d55e19905e3b4",
|
|
68
|
+
"normal/front_right.png": "0a4750beeb7f2bddf3bb079e5c7a64f908aa949b20a0902462e89fc65654876e",
|
|
69
|
+
"depth/front_right.png": "93c62e9e988f0965a9cc5f81af35eaa94790898c2ffb869252d7030ac8d62522",
|
|
70
|
+
"preview/contact_sheet.png": "d610a3abddd7395ac2d2d4e902009eabc727b256a41268fd3af635e62d796467"
|
|
71
|
+
},
|
|
72
|
+
"source": {
|
|
73
|
+
"bakeoff_dir": "bakeoff\\villain_blackguard_p3_20260326_204649",
|
|
74
|
+
"maps_dir": "bakeoff\\villain_blackguard_p3_20260326_204649_maps"
|
|
75
|
+
},
|
|
76
|
+
"notes": null
|
|
77
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0.0",
|
|
3
|
+
"exported_at": "2026-03-26T21:20:59.995741+00:00",
|
|
4
|
+
"foundry_version": "90ef703",
|
|
5
|
+
"identity": {
|
|
6
|
+
"subject_slug": "villain_cult_priest",
|
|
7
|
+
"display_name": "Cult Priest",
|
|
8
|
+
"body_family": "bipedal"
|
|
9
|
+
},
|
|
10
|
+
"provenance": {
|
|
11
|
+
"run_id": "villain_cult_priest_p3_20260326_205712",
|
|
12
|
+
"seed": 812100,
|
|
13
|
+
"generated_at": "2026-03-26T20:58:07.042870+00:00",
|
|
14
|
+
"accepted_at": "2026-03-26T20:59:06.578130+00:00",
|
|
15
|
+
"regen_count": 0,
|
|
16
|
+
"reject_count": 0,
|
|
17
|
+
"git_hash": "90ef703"
|
|
18
|
+
},
|
|
19
|
+
"generation": {
|
|
20
|
+
"stack_id": "A_v2",
|
|
21
|
+
"checkpoint": "juggernautXL_ragnarokBy.safetensors",
|
|
22
|
+
"lora": "pixel-art-xl @ 0.85",
|
|
23
|
+
"controlnet_depth": null,
|
|
24
|
+
"controlnet_depth_strength": null,
|
|
25
|
+
"controlnet_depth_end_percent": null,
|
|
26
|
+
"controlnet_edge": null,
|
|
27
|
+
"controlnet_edge_strength": null
|
|
28
|
+
},
|
|
29
|
+
"render_contract": {
|
|
30
|
+
"width": 48,
|
|
31
|
+
"height": 48,
|
|
32
|
+
"direction_order": [
|
|
33
|
+
"front",
|
|
34
|
+
"front_left",
|
|
35
|
+
"left",
|
|
36
|
+
"back_left",
|
|
37
|
+
"back",
|
|
38
|
+
"back_right",
|
|
39
|
+
"right",
|
|
40
|
+
"front_right"
|
|
41
|
+
],
|
|
42
|
+
"pivot": "center_bottom",
|
|
43
|
+
"transparency": true
|
|
44
|
+
},
|
|
45
|
+
"files": {
|
|
46
|
+
"albedo/front.png": "2a6a840e9b8a1bb134e3f2bda4bd5375cfca15bf26417f95b5e37cd92f1dad7c",
|
|
47
|
+
"normal/front.png": "4fa7a0ddaa2c4a6d999c9c98d5ba7be779d47a6201492b15ecc0ae1cdd0b88e8",
|
|
48
|
+
"depth/front.png": "52ec3619ba45e02470bd61749ddc6956cdb08e120473ab96595acee4b524b59f",
|
|
49
|
+
"albedo/front_left.png": "39a0f513351869442f1be196f5a5f83d71f7ed7ffb496f0f2f491f88606674f0",
|
|
50
|
+
"normal/front_left.png": "ae2c8e20c2bc3c3ee2c3933b2929c34805b9017112d04ccd772d9457678234fb",
|
|
51
|
+
"depth/front_left.png": "9b4a58f850fb38728e94d6dd56e2c361902ba11d70f1c9f346551695446d3cee",
|
|
52
|
+
"albedo/left.png": "7a518adeb6cc7a3722fd03a3b7dd8021d6839c78f4021bfa77f20dbaf9b5bf7c",
|
|
53
|
+
"normal/left.png": "894d3a9c955b158f00db6a8bfed9da6c86dfe6984d13113dc740141b039c00fc",
|
|
54
|
+
"depth/left.png": "0150379e189b165b4965ddcecfaec4ba29e3aef9b7c7d4c5a58de63f4cf70241",
|
|
55
|
+
"albedo/back_left.png": "330b505034dbb8100822c2f6dd26c9e221e0612296fe6dc51eeaa30fef8270d2",
|
|
56
|
+
"normal/back_left.png": "d7cc3c61d56f37f47b754145a9b8e55f17470eb18747ef5b622f23f5608b8362",
|
|
57
|
+
"depth/back_left.png": "014fe64dd8f711e36b42dfb930e59bbebd77f397708676f8b8e8e69607aa1c22",
|
|
58
|
+
"albedo/back.png": "7d8974f3f3365c4d064ca0a0f9d43b011e260bb2aa1d68eeea9e5df2a753e41f",
|
|
59
|
+
"normal/back.png": "3ad84d40f32b6d8be0572b3b48b4106cef7f60127bd0372d248d24dff67db222",
|
|
60
|
+
"depth/back.png": "b24913010971a6a8a801e637c65f0e0ff87e24cb48b2b3a6007788fae6fc18ba",
|
|
61
|
+
"albedo/back_right.png": "4a41c80ee12203af8cc1f147cab4321527e18ab2f3286457dfce4bdbd26a47e2",
|
|
62
|
+
"normal/back_right.png": "07088f547d947c58c0cb0250be0c50a45e8deee7637e1f198814f1af6990ab85",
|
|
63
|
+
"depth/back_right.png": "c2a7a8a243a083c6fc2abfa479e854c337a4d4e6c65a43904ab81cf969ee46a9",
|
|
64
|
+
"albedo/right.png": "150e9dbc75c18c907c70d0390814c7cd19475772b0785398b93af6d67a5e0317",
|
|
65
|
+
"normal/right.png": "ef931e56d1d768b8ad4d757429e1d33ae230cab63c91b0b7647ab231023638ac",
|
|
66
|
+
"depth/right.png": "f8f0adde6d7de3d4ab184a58681f366377b5de554457f08b140567e55ddef005",
|
|
67
|
+
"albedo/front_right.png": "0803c0268594a11b6798196bc70d0d5ff5c317673ab7f14f09f67e57d38dfbca",
|
|
68
|
+
"normal/front_right.png": "97e13fe1672d2d930f050e11422deb8fced3e084040727f61526a6ae0f1e2112",
|
|
69
|
+
"depth/front_right.png": "d40368d3fa62c0ecfe8e94b03978c10e1c76e973ba73c7a0e798d90ef78ff360",
|
|
70
|
+
"preview/contact_sheet.png": "bd5d921e3d9b57c80de9d448ddebfa15b43f5aa292567213ceea83354da11f65"
|
|
71
|
+
},
|
|
72
|
+
"source": {
|
|
73
|
+
"bakeoff_dir": "bakeoff\\villain_cult_priest_p3_20260326_205712",
|
|
74
|
+
"maps_dir": "bakeoff\\villain_cult_priest_p3_20260326_205712_maps"
|
|
75
|
+
},
|
|
76
|
+
"notes": null
|
|
77
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|