#!/usr/bin/env python3
import requests, json, base64, sys

API_KEY = "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"
prompt = sys.argv[1]
outfile = sys.argv[2]
size = sys.argv[3] if len(sys.argv) > 3 else "1024x1024"

r = requests.post(
    "https://api.openai.com/v1/images/generations",
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json={"model": "gpt-image-2", "prompt": prompt, "n": 1, "size": size, "output_format": "png"},
    timeout=120
)
data = r.json()
if "data" in data and data["data"]:
    item = data["data"][0]
    if "b64_json" in item:
        img = base64.b64decode(item["b64_json"])
        with open(outfile, "wb") as f:
            f.write(img)
        print(f"OK {len(img)} bytes -> {outfile}")
    elif "url" in item:
        import urllib.request
        urllib.request.urlretrieve(item["url"], outfile)
        print(f"OK downloaded -> {outfile}")
    else:
        print(f"ERROR: {json.dumps(data)[:200]}")
else:
    print(f"ERROR: {json.dumps(data)[:200]}")
