image-gen-router ให้ Claude Code สร้างรูปผ่าน ChatGPT กับ Google ไม่ต้องใช้ API key
Skill ฟรีที่ให้ Claude Code สั่ง Codex CLI หรือ Antigravity CLI สร้างรูปในเครื่องเรา ใช้บัญชี ChatGPT หรือ Google ที่ล็อกอินไว้ สรุปสิ่งที่ต้องมี วิธีติดตั้ง วิธีสั่ง และโควตาที่ต้องรู้

ใครใช้ Claude Code แล้วอยากได้รูปปกหรือไอคอนสักรูป น่าจะเจอทางตันเดียวกันครับ Claude อ่านรูปได้ วาดเป็น SVG หรือ HTML ได้ แต่สร้างรูปจริงๆ เองไม่ได้ ทางออกปกติคือไปใช้ API สร้างรูป ซึ่งต้องมี key ใหม่และจ่ายเป็นรูป ทั้งที่เราอาจจ่าย ChatGPT หรือ Google อยู่แล้ว
image-gen-router คือ Skill ที่ผมทำขึ้นมาแก้เรื่องนี้ มันให้ Claude สั่ง Codex CLI หรือ Antigravity CLI ในเครื่องเราแทน ใช้บัญชีที่ล็อกอินไว้ ไม่ต้องมี API key บทความนี้พาติดตั้งจนสั่งรูปแรกได้ และบอกตรงๆ ว่ามันกินโควตาตรงไหนบ้าง
ตอนเตรียมบทความนี้ลองรันขั้นตอนติดตั้ง Skill จริงในโฟลเดอร์ทดสอบ แต่ไม่ได้สั่งสร้างรูปใหม่ เวลาที่อ้างในบทความเป็นตัวเลขที่ผมวัดไว้เมื่อวันที่ 4 พ.ย. 2026 ครับ
image-gen-router คืออะไร
ลองนึกว่า Claude เป็นผู้จัดการโปรเจกต์ ส่วน Codex กับ Antigravity เป็นช่างภาพสองคนที่เรามีสัญญาอยู่แล้ว เราคุยกับผู้จัดการคนเดิม บอกว่าอยากได้รูปอะไร ผู้จัดการไปสั่งช่างให้ แล้วเอารูปมาวางในที่ที่เราบอก
โค้ดอยู่ใน repo ii23-skills ใช้สัญญาอนุญาต MIT ทำมาสำหรับ Claude Code และ agent อื่นที่รองรับ Skills
| ฝั่ง GPT | ฝั่ง Gemini | |
|---|---|---|
| ตัวที่รัน | Codex CLI (codex exec กับ $imagegen) | Antigravity CLI (agy -p แบบ headless) |
| บัญชีที่ใช้ | ChatGPT | |
| ตัวสร้างรูป | gpt-image-2 | เครื่องมือสร้างรูปในตัวของ agy |
| เวลาที่ผมวัด (รูปสี่เหลี่ยม 1 รูป) | 27–35 วินาที | 50–60 วินาที |
| เวอร์ชันตอนวัด | Codex CLI 0.166 | Antigravity CLI 1.5.0 |
| นับโควตาจาก | Codex usage limits | โควตา Antigravity |

สิ่งที่ต้องมี
- Claude Code หรือ agent ที่รองรับ Skills
- Python 3.9 ขึ้นไป ไม่ต้องลง library เพิ่ม
- Codex CLI หรือ Antigravity CLI อย่างน้อย 1 ตัว ลงแค่ฝั่งที่จะใช้ก็พอ
- ล็อกอินตัวนั้นไว้ในเครื่อง ฝั่ง GPT ใช้บัญชี ChatGPT ส่วน README ของ Codex แนะนำแพ็กเกจ Plus, Pro, Business, Edu หรือ Enterprise ฝั่ง Gemini ล็อกอินผ่าน
agyด้วยบัญชี Google

ติดตั้งยังไง
ขั้นที่ 1 — ลง Skill
npx skills add andrewii23/ii23-skills --skill image-gen-router -a claude-code -g -y
อธิบายสั้นๆ
--skill image-gen-routerเลือกเฉพาะตัวนี้ ไม่ลงตัวอื่นใน repo มาด้วย-a claude-codeลงให้ Claude Code-gลงแบบ global ไฟล์จะไปอยู่ที่~/.claude/skills/image-gen-routerตัวนี้สำคัญครับ เพราะคำสั่งในSKILL.mdชี้ไปที่ path นี้ ถ้าไม่ใส่-gไฟล์จะไปอยู่ใน.claude/skills/ของโปรเจกต์แทน-yตอบ yes ให้เลย ไม่ต้องกดเลือกทีละข้อ
ถ้าไม่อยากใช้ npx skills ก๊อปไฟล์เองก็ได้
git clone https://github.com/andrewii23/ii23-skills
mkdir -p ~/.claude/skills
cp -R ii23-skills/skills/image-gen-router ~/.claude/skills/
ตอนเตรียมบทความนี้ลองรันทั้งสองแบบในโฟลเดอร์ทดสอบ (skills CLI 1.7.6) ไฟล์ไปอยู่ตรงที่บอกไว้ทั้งคู่ ลงเสร็จให้เปิด session ใหม่ เพื่อให้ Claude Code เห็น Skill ตัวนี้
ขั้นที่ 2 — ลงตัวสร้างรูป
ทำแค่ฝั่งที่จะใช้ก็พอครับ
ฝั่ง GPT: ลง Codex CLI แล้วพิมพ์ codex จากนั้นเลือก Sign in with ChatGPT
npm install -g @openai/codex
codex
ล็อกอินเสร็จให้ออกจาก Codex แล้วเช็ค 2 อย่าง บรรทัดแรกต้องบอกว่าล็อกอินแล้ว บรรทัดที่สองต้องเห็น image_generation เป็น true
codex login status
codex features list | grep image_generation
ฝั่ง Gemini: ลง Antigravity CLI แล้วเปิด agy แบบปกติหนึ่งครั้งเพื่อล็อกอิน คำสั่งนี้ใช้กับ macOS และ Linux ส่วน Windows ดูได้ในหน้าเริ่มต้นของ Antigravity CLI
curl -fsSL https://antigravity.google/cli/install.sh | bash
agy --version
agy
ล็อกอินครั้งเดียวพอ ตอน Skill เรียกแบบ headless มันจะใช้ข้อมูลล็อกอินที่เก็บไว้ต่อ
ขั้นที่ 3 — สั่งรูปแรก
พิมพ์ใน Claude Code ตามปกติ แล้วบอกฝั่งที่อยากใช้ไปเลย หรือจะพิมพ์ /image-gen-router นำหน้าก็ได้
ใช้ gpt ทำไอคอน server แบบ flat vector พื้นหลังขาว บันทึกที่ ~/Desktop/server.png
เช็คว่าทำงานถูกไหมจาก 3 ข้อนี้
- บอกชื่อฝั่งไปแล้ว มันสร้างเลยโดยไม่ถามอะไร
- ไม่บอกชื่อฝั่ง มันถามก่อนสร้าง ไม่ใช่สร้างแล้วค่อยถาม
- บรรทัดสุดท้ายเป็น
IMAGE: <path>และมีไฟล์รูปอยู่ตรงนั้นจริง
ถ้าอยากลองนอก Claude Code ก็เรียกสคริปต์ตรงๆ ได้ เปลี่ยน gen_gpt.py เป็น gen_gemini.py เมื่อจะใช้ฝั่ง Google
python3 ~/.claude/skills/image-gen-router/scripts/gen_gpt.py "isometric 3D illustration of a coffee shop, warm pastel palette, soft shadows, 16:9" --out ~/Desktop/coffee.png
เลือกฝั่งไหน สั่งยังไง
Skill นี้ตัดสินใจแค่เรื่องเดียว คือจะใช้ฝั่งไหน ส่วนเนื้อหา สไตล์ สัดส่วน และโทนสี ส่งจาก prompt ของเราไปตรงๆ
| เราพิมพ์ว่า | มันทำอะไร |
|---|---|
| GPT, OpenAI, ChatGPT, codex | ใช้ฝั่ง GPT ทันที |
| Gemini, Google, agy, Antigravity, nano banana | ใช้ฝั่ง Gemini ทันที |
| ไม่พูดถึงเลย | ถามก่อนว่าจะใช้ฝั่งไหน โดยไม่บอกว่าฝั่งไหนดีกว่า |
ผมให้มันถามแทนการเลือกเอง เพราะสองฝั่งให้รูปต่างกันชัดเจน ถ้าตั้งค่าเริ่มต้นไว้ Skill ก็จะตัดสินหน้าตารูปแทนเราไปเงียบๆ พอรู้ฝั่งแล้วมันจะไม่ถามซ้ำในคำขอเดียวกันครับ

ตัวอย่าง prompt ที่เอาไปแก้ใช้ได้
- ไอคอน — "ใช้ gpt ทำไอคอนรูปเมฆแบบ flat vector"
- รูปประกอบบทความ — "ใช้ gemini ทำภาพร้านกาแฟสไตล์สีน้ำ 16:9 บันทึกที่ ~/Desktop/cafe.jpg"
- ยังไม่รู้จะใช้ฝั่งไหน — "ทำรูปภูเขาตอนพระอาทิตย์ตก" แล้วรอมันถาม
- prompt ยาวมาก — ให้ Claude เขียน prompt ลงไฟล์ แล้วส่งผ่าน
--prompt-fileจะได้ไม่ต้องกังวลเรื่องเครื่องหมายคำพูดใน Terminal
ยิ่งบอกละเอียดยิ่งดีครับ ใส่วัสดุ แสง โทนสี การจัดวาง และสัดส่วนภาพไปด้วย
ข้างในมันทำอะไร
Skill มี 2 สคริปต์ คือ gen_gpt.py กับ gen_gemini.py ทั้งคู่รับ option เหมือนกัน คือ --out, --prompt-file และ --timeout และพิมพ์ IMAGE: <path> เป็นบรรทัดสุดท้ายเหมือนกัน

- Codex รันแบบ read-only สคริปต์ใช้
--sandbox read-onlyและไม่สั่งให้ Codex เขียนไฟล์ Codex เก็บรูปไว้ที่$CODEX_HOME/generated_images/<thread_id>/แล้วสคริปต์ก๊อปออกมาเอง agyรันโดยไม่ข้ามการขอสิทธิ์ ไม่มี--dangerously-skip-permissionsรูปอยู่ที่~/.gemini/antigravity-cli/brain/<conversation_id>/แล้วสคริปต์ก๊อปออกมาเหมือนกันagyไม่เอาโปรเจกต์เราเป็น workspace สคริปต์สั่งให้มันรันใน~/.cache/agy-imagegen/workspace- ตัดสินจากไฟล์จริง ในโหมด headless ของ
agyงานที่ขออนุมัติไม่ได้จะถูกข้ามแต่ยังจบด้วย exit 0 สคริปต์เลยดูว่ามีไฟล์รูปออกมาจริงไหม ไม่ได้เชื่อแค่ exit code - ถ้าไม่ใส่
--outไฟล์จะอยู่ที่เดิมของแต่ละตัว และสคริปต์บอก path ให้
งานแบบไหนไม่ใช่ของ Skill นี้
- แก้รูปที่มีอยู่แล้ว
- ลบพื้นหลัง
- กราฟิกที่จริงๆ แล้วทำด้วย HTML/CSS ได้
- อยากใช้ Midjourney, Stable Diffusion หรือ OpenAI Images API เพราะมันสั่งได้แค่ 2 CLI นี้
ถ้ารูปไม่ออก
สคริปต์บอกสาเหตุผ่าน exit code
| exit code | เกิดอะไรขึ้น | แก้ยังไง |
|---|---|---|
| 2 | ไม่เจอ CLI หรือยังไม่ล็อกอิน | เช็ค codex login status หรือเปิด agy แล้วล็อกอิน |
| 3 | CLI ทำงานแล้วแต่ไม่มีรูปออกมา หรือหมดเวลา | เช็คว่า image_generation เปิดอยู่ แล้วลองใหม่ 1 ครั้ง |
ตอนเตรียมบทความนี้ลองเรียก gen_gemini.py บนเครื่องที่ไม่มี agy ได้ exit 2 พร้อมข้อความนี้
agy CLI not found on PATH.
Antigravity CLI is required for the Gemini backend: https://antigravity.google/
ถ้าฝั่งที่เลือกสร้างรูปไม่ได้ Skill จะบอกเราตรงๆ แล้วให้เราตัดสินใจเองว่าจะลองอีกฝั่งไหม มันไม่แอบสลับฝั่ง และไม่แอบไปใช้ API ที่คิดเงินครับ
ข้อควรระวัง
เรื่องแรกที่ต้องรู้คือ ไม่ใช้ API key ไม่ได้แปลว่าไม่กินโควตาครับ ทุกรูปนับรวมใน plan ของเรา เอกสารของ OpenAI บอกว่ารูปจะใช้ Codex usage limits เร็วกว่างานปกติ 3–5 เท่าโดยเฉลี่ย ขึ้นกับคุณภาพและขนาดรูป ส่วน agy ใช้โควตา Antigravity และใช้ AI credits เฉพาะตอนที่เราเปิดไว้

- ทำรูปทีละเยอะๆ Skill นี้ออกแบบมาแบบหนึ่ง prompt ได้หนึ่งรูป เอกสารเดียวกันแนะนำให้ตั้ง
OPENAI_API_KEYสำหรับงานชุดใหญ่ ซึ่งคิดราคาแบบ API - เวลาที่ผมวัดเป็นกรณีเดียว คือรูปสี่เหลี่ยม 1 รูป ตอน cold start จะช้ากว่านี้ ค่า
--timeoutเริ่มต้นเลยตั้งไว้ 600 วินาที - อยากได้ PNG จากฝั่ง Gemini
agyเขียนเป็น JPEG สคริปต์แปลงให้ด้วยsipsของ macOS ถ้าไม่มีsipsไฟล์จะคงนามสกุลเดิม - Skill รันด้วยสิทธิ์ของ agent ตัวติดตั้งเองก็เตือนให้อ่านก่อนใช้ เปิดดู
SKILL.mdกับสองสคริปต์ใน repo ก่อนได้ครับ
สิ่งที่ได้ / ลองต่อ
- Claude Code สั่งสร้างรูปได้ ผ่านบัญชี ChatGPT หรือ Google ของเรา
- เลือกฝั่งเองทุกครั้ง หรือบอกชื่อไปใน prompt เพื่อข้ามคำถาม
- รู้ว่าแต่ละรูปกินโควตาตรงไหน
เริ่มจากฝั่งที่ล็อกอินไว้อยู่แล้วก่อนได้เลยครับ ถ้าอยากใช้ AI ทำงานแทนได้มากกว่าแชตถามตอบ ดูต่อได้ที่คอร์สทั้งหมด