49 lines
2.9 KiB
Markdown
49 lines
2.9 KiB
Markdown
# WARDROBEGOD — one skeleton, infinite fits
|
|
|
|
The wardrobe generator bench: load bodies (FBX/GLB/OBJ), build a clothes library, generate
|
|
new garments on the farm, fit them, assemble dressed NPCs. Sibling of NPCFACTORY (the
|
|
dress-up/clip bench) and MeshGod imagelab — this one owns *clothing*.
|
|
|
|
python3 server.py → http://localhost:8150
|
|
WG_HOST=0.0.0.0 python3 server.py → expose on the tailnet
|
|
MB_TOKEN=mbt_… python3 server.py → enables the generator tab (MODELBEAST bearer token)
|
|
|
|
No build step: stdlib server + three.js from CDN. Heavy lifting = local headless Blender
|
|
(`blender_ops.py`, tested on 5.1.2; override path with WG_BLENDER).
|
|
|
|
## What it does
|
|
|
|
- **Library panes**: bodies (scans `library/bodies/` + `~/Documents/anatomy` + thriftgod's
|
|
`web/assets/models`), garments, generated images, finished outfits. Upload via file inputs.
|
|
- **Stage**: orbit viewer; FBX auto-converts to GLB (cached in `.glbcache/`); HUD reads
|
|
tris / height / rig state (bones + clips); first clip auto-plays.
|
|
- **Body ops**: scale-to-height (bases arrive 1.0m tall — normalize to ~1.72m);
|
|
decimate-keep-weights (the SAFE local path for rigged meshes — never farm `/finish`).
|
|
- **Rigid attach (tier 1)**: hats/bags/shoes → pick a bone, slide offsets, preview live.
|
|
Bake permanently via the fleet `/rig` endpoint (m1ultra :8011) when happy.
|
|
- **Deforming FIT (tier 2)**: weight-transfers the rigged body's skinning onto a garment
|
|
mesh (Blender data_transfer, nearest-face interpolated, optional inflate-mm of air),
|
|
parents it to the armature. `FIT → wardrobe item` = garment+skeleton GLB (reusable);
|
|
`fit → dressed glb` = body+garment in one.
|
|
- **Assemble**: body + ticked fitted garments → one dressed GLB in `out/` — drop straight
|
|
into thriftgod / djsim / procity, or publish to 3GOD.
|
|
|
|
## Generating NEW clothing (the pipeline, $0 on MODELBEAST)
|
|
|
|
1. **flux** (`flux_local`, Klein) — product-shot prompt template: garment laid flat, white bg
|
|
2. **cutout** (`bg_remove_local`) — the biggest quality lever before 3D
|
|
3. then ONE of:
|
|
- **→ rigid 3D** (`trellis_mac`, ~5 min): hats, shoes, bags, glasses — bone-parent these.
|
|
NOT for floppy cloth: reconstruction eats thin geometry (fleet traps ledger).
|
|
- **→ hanging texture**: flat garment PNG for rack planes (djsim `fittings.js
|
|
garment({image})`) and the paper-doll wardrobe. Flat clothes love this route.
|
|
- **deforming wearables**: model/retopo against the base body (or socket-cut a clothed
|
|
torso, character_kit_modular style), then FIT. Never raw-gen these.
|
|
|
|
## House rules
|
|
|
|
- Bases (anatomical models) stay in the library. **Only dressed outfits ship into games.**
|
|
- FIT requires a rigged body. Unrigged base → rig first (MIRPAMO on ultra, or Mixamo).
|
|
- One skeleton (mixamorig) across the fleet: any garment fitted on one body fits every
|
|
body on that skeleton, and every clip in the bank drives it.
|