|
#!/usr/bin/env python
|
|
|
|
import http.client
|
|
import argparse
|
|
|
|
import base64
|
|
import json
|
|
import http.client
|
|
import pathlib
|
|
|
|
DEFAULT_URL = "https://static.molodetz.nl/rp.vision.cgi"
|
|
|
|
|
|
def post_image(image_path: str, prompt: str = "", url: str = DEFAULT_URL):
|
|
image_path = str(pathlib.Path(image_path).resolve().absolute())
|
|
if not url:
|
|
url = DEFAULT_URL
|
|
url_parts = url.split("/")
|
|
host = url_parts[2]
|
|
path = "/" + "/".join(url_parts[3:])
|
|
|
|
with open(image_path, "rb") as file:
|
|
image_data = file.read()
|
|
base64_data = base64.b64encode(image_data).decode("utf-8")
|
|
|
|
payload = {"data": base64_data, "path": image_path, "prompt": prompt}
|
|
body = json.dumps(payload).encode("utf-8")
|
|
|
|
headers = {
|
|
"Content-Type": "application/json",
|
|
"Content-Length": str(len(body)),
|
|
"User-Agent": "Python http.client",
|
|
}
|
|
|
|
conn = http.client.HTTPSConnection(host)
|
|
conn.request("POST", path, body, headers)
|
|
resp = conn.getresponse()
|
|
data = resp.read()
|
|
print("Status:", resp.status, resp.reason)
|
|
print(data.decode())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser()
|
|
|
|
parser.add_argument("image_path")
|
|
parser.add_argument("--prompt", default="")
|
|
parser.add_argument("--url", default=DEFAULT_URL)
|
|
args = parser.parse_args()
|
|
post_image(args.url, args.image_path, args.prompt)
|