From 6ac1c1d6ea0359069cf8d4c6e73ea20c0dad54e2 Mon Sep 17 00:00:00 2001 From: Michael Behr Date: Tue, 13 Jan 2026 19:59:17 -0500 Subject: [PATCH] fix(openai-image-gen): use correct file extension for output format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When --output-format is specified for GPT models, save files with the correct extension (.webp, .jpeg, or .png) instead of always using .png. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- skills/openai-image-gen/scripts/gen.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/skills/openai-image-gen/scripts/gen.py b/skills/openai-image-gen/scripts/gen.py index b8dd0b4c0..d09c33bbc 100644 --- a/skills/openai-image-gen/scripts/gen.py +++ b/skills/openai-image-gen/scripts/gen.py @@ -193,6 +193,12 @@ def main() -> int: prompts = [args.prompt] * count if args.prompt else pick_prompts(count) + # Determine file extension based on output format + if args.model.startswith("gpt-image") and args.output_format: + file_ext = args.output_format + else: + file_ext = "png" + items: list[dict] = [] for idx, prompt in enumerate(prompts, start=1): print(f"[{idx}/{len(prompts)}] {prompt}") @@ -209,9 +215,9 @@ def main() -> int: b64 = res.get("data", [{}])[0].get("b64_json") if not b64: raise RuntimeError(f"Unexpected response: {json.dumps(res)[:400]}") - png = base64.b64decode(b64) - filename = f"{idx:03d}-{slugify(prompt)[:40]}.png" - (out_dir / filename).write_bytes(png) + image_bytes = base64.b64decode(b64) + filename = f"{idx:03d}-{slugify(prompt)[:40]}.{file_ext}" + (out_dir / filename).write_bytes(image_bytes) items.append({"prompt": prompt, "file": filename}) (out_dir / "prompts.json").write_text(json.dumps(items, indent=2), encoding="utf-8")