ryzenai-psfrgan / onnx_inference.py
hongw.qin
upload models
d1faacc
import sys
from pathlib import Path
sys.path.insert(0, Path(__file__).parent.as_posix())
import cv2
from onnx_runner import OnnxRunner
def main(args):
onnx_path = Path(args.onnx)
input_path = Path(args.input)
out_dir = Path(args.out_dir)
assert onnx_path.suffix == ".onnx"
if input_path.is_file():
input_images_path = [input_path]
else:
input_images_path = sorted(
[
p
for p in input_path.rglob("*")
if p.suffix.lower() in (".png", ".jpg", ".jpeg")
]
)
out_dir.mkdir(exist_ok=True, parents=True)
onnx_runner = OnnxRunner(onnx_path, args.latent)
for input_img_path in input_images_path:
input_img_path: Path
input_bgr = cv2.imread(input_img_path.as_posix(), cv2.IMREAD_COLOR)
assert input_bgr is not None
out_bgr = onnx_runner.run(input_bgr)
out_path = out_dir / f"{input_img_path.stem}.png"
cv2.imwrite(out_path.as_posix(), out_bgr)
print(f"saved {out_path}")
if __name__ == "__main__":
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument("--onnx", type=str, required=True)
parser.add_argument("--input", type=str, required=True)
parser.add_argument("--out-dir", type=str, required=True)
parser.add_argument("--latent", type=str, default=None)
main(parser.parse_args())