Now you can swap the portraits in Wizardry 8 without the pain.
Download the executable from the release section and just run it. The .exe is obviously for windows, the binary without an extension is for linux.
You can also download the source and run main.py directly with python.
Info for running on python
- Python Version: 3.13+
- Dependencies:
- pillow
- numpy
- Optional Dependencies:
- imagequant (high quality quantization, improves the final color quality of medium images after importing)
- tkinterdnd2 (Drag & Drop)
- Compile Command:
pyinstaller --onefile --hidden-import='PIL._tkinter_finder' --collect-all imagequant --noupx --noconsole main.py
The program looks for your wizardry 8 game directory in it's current directory, up one directory and the default steam install locations on linux and windows.
- Create your portraits, save them as standard 24-bit PNGs
- Drag and drop or use the change portraits file dialog to import the images, preferably all in one go.
- Medium portrait animation frames can be imported one at a time, if one medium size image is imported, it will overwrite the currently selected frame.
- Press save and that's it.
Portraits come in 3 sizes
- Large: 180x144
- Medium: 90x72
- Small: 45x36
More detailed usage guide: https://steamcommunity.com/sharedfiles/filedetails/?id=3641128848
SLFEX is an SLF file parser, primarily geared towards reading SLF files and displaying info about it's contents, as well as extracting those contents. It's untested on windows.
It's only partially complete, it can swap out the contents of most TGA files and to a limited degree STI files as well (STI16 fully supported, STI8 only properly supported if all images are the same size), it can display the contents of all those files properly though which can be a boon for modding when you are looking for a specific texture you want to replace. The utility isn't 100% complete, it relies on the other classes to function so run it from the same directory as you would main.py.

