pixelgen / generate.py
DJLougen's picture
PixelGen v1: hand-weighted pixel-art generator (1,257 params, 0 training steps)
687baa7 verified
Raw History Blame Contribute Delete
1.03 kB
"""Generate a sprite from a prompt.
python generate.py "red potion" --seed 3 --scale 8 --out sprite.png
"""
import argparse
import sys
from pathlib import Path
from pixelgen import weights
from pixelgen.model import PixelGen
def main(argv=None):
ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
ap.add_argument("prompt")
ap.add_argument("--seed", type=int, default=0)
ap.add_argument("--scale", type=int, default=8)
ap.add_argument("--out", default="sprite.png")
ap.add_argument("--weights", default=None, help="load a saved weights file instead of building")
args = ap.parse_args(argv)
model = weights.load(args.weights) if args.weights else PixelGen()
img = model.sprite(args.prompt, seed=args.seed, scale=args.scale)
out = Path(args.out)
out.parent.mkdir(parents=True, exist_ok=True)
img.save(out)
print(f"wrote {out} ({img.size[0]}x{img.size[1]})")
return 0
if __name__ == "__main__":
sys.exit(main())