kie-ai
kie-ai — Grok Imagine ผ่าน Kie.ai API
Gen image/video ผ่าน Kie.ai REST API — proxy สำหรับ Grok Imagine models
Path Shortcuts
OUT = D:/ClaudeMediaGen/output-fal # ใช้ร่วมกับ fal output
BASE = https://api.kie.ai/api/v1/jobs
Environment Variables
| Var | ที่อยู่ | วิธีอ่าน |
|---|---|---|
KIE_API_KEY |
Windows User Env | os.environ["KIE_API_KEY"] (set via setx หรือ [Environment]::SetEnvironmentVariable) |
Model Selection
| Model ID | Type | Best For | Output |
|---|---|---|---|
grok-imagine/text-to-image |
text2img | Aesthetic/cinematic images, Thai prompt ได้ดี | 3 รูป/request |
grok-imagine/image-to-image |
img2img | แก้ไข/ปรับ style จากรูปต้นแบบ | TBD |
grok-imagine/image-to-video |
img2vid | สร้างวีดีโอจากรูปนิ่ง | TBD |
grok-imagine/upscale |
upscale | เพิ่ม resolution วีดีโอ | TBD |
veo3_fast |
video | Video fast, รองรับ i2v (REFERENCE_2_VIDEO) | video + audio |
veo3_quality |
video | Video quality สูงสุด | video + audio |
veo3_lite |
video | Video ประหยัดสุด | video + audio |
หมายเหตุ: text-to-image + veo3_fast ทดสอบแล้ว ใช้งานได้จริง / model อื่นๆ มีใน docs แต่ยังไม่ได้ทดสอบ Veo3 ใช้คนละ endpoint — ดู section "Veo3 Video Generation" และ "API Endpoints Summary" ด้านล่าง
Aspect Ratios
| Value | ใช้เมื่อ |
|---|---|
2:3 |
Portrait (default สำหรับรูปคน) |
3:2 |
Landscape |
1:1 |
Square |
16:9 |
Wide cinematic |
9:16 |
Story/Reels format |
API Flow — 3 ขั้นตอน
1. Create Task
POST {BASE}/createTask
Authorization: Bearer <KIE_API_KEY>
Content-Type: application/json
Body:
{
"model": "grok-imagine/text-to-image",
"input": {
"prompt": "...",
"aspect_ratio": "2:3"
}
}
Response: { "code": 200, "data": { "taskId": "..." } }
- ตรวจ
code == 200ก่อน ถ้าไม่ใช่ = error - เก็บ
taskIdไว้ poll
2. Poll Task Status
GET {BASE}/recordInfo?taskId=<taskId>
Authorization: Bearer <KIE_API_KEY>
Task States:
| State | ความหมาย | Action |
|---|---|---|
waiting |
อยู่ในคิว | รอต่อ |
queuing |
อยู่ในคิว | รอต่อ |
generating |
กำลัง gen | รอต่อ |
success |
เสร็จแล้ว | ดึง URL |
fail |
ล้มเหลว | อ่าน failMsg + failCode |
Poll strategy: ทุก 5 วินาที, timeout 5 นาที (60 รอบ)
เมื่อ success:
data.resultJsonเป็น JSON string → ต้อง parse อีกรอบ- ภายในมี
resultUrls: [url1, url2, url3]— ได้ 3 รูปต่อ 1 request
3. Download Images
สำคัญ: URL ต้องใส่ headers พิเศษ ไม่งั้นจะโดน block
Headers สำหรับ download:
User-Agent: Mozilla/5.0
Referer: https://kie.ai/
Naming convention:
kie_grok_{taskId_last8}_{index}.jpg
Output directory: D:/ClaudeMediaGen/output-fal/
Prompt Rules
Grok prompt syntax rules have moved to the shared model-card. See grok-image.md for:
- Hybrid prompt strategy (English + Thai)
- Forbidden words
- Subject short / Scene long rule
- ห้ามบอก body size
Implementation Guide
สร้าง gen script ใน Python
- อ่าน API key จาก
os.environ["KIE_API_KEY"](Windows User Env — set ครั้งเดียวทั่วเครื่อง) - Create task → POST
/createTask→ เก็บtaskId - Poll → GET
/recordInfo?taskId=→ วน loop ทุก 5s จนได้successหรือfail - Parse result →
data.resultJsonเป็น string →json.loads()→resultUrls - Download → ใส่
User-Agent+Refererheaders → save เป็น.jpg - สร้าง .txt คู่ → save prompt text ข้างรูปทุกครั้ง (เพื่อ traceability)
Batch Generation
- ส่ง request หลายตัวพร้อมกันได้ (ไม่มี rate limit ที่ทดสอบเจอ)
- แต่ละ request ได้ 3 รูป → 10 requests = 30 รูป
- ใช้
run_in_background: trueสำหรับ parallel gen ใน Claude Code
Error Handling
code != 200จาก createTask → แสดง error ทั้ง responsestate == "fail"→ อ่านdata.failMsg+data.failCode- Network error ขณะ poll → retry ได้เลย ไม่ต้อง re-create task
- Download fail → retry พร้อม headers
Cost
- ยังไม่มีข้อมูล cost per request จาก Kie.ai — ใช้ preview ก่อน batch เสมอ
Rules
- Preview ก่อน batch — gen 1 request ก่อน (ได้ 3 รูป) ดู quality ก่อน gen เพิ่ม
- ห้าม Read รูปที่ gen เสร็จ — เปลือง context มาก แจ้งแค่ path ไฟล์พอ
- .txt คู่เสมอ — save prompt text คู่กับรูปทุกครั้ง
- ห้าม Read output file ของ background task — สั่ง gen แล้วจบเลย
File Upload API (ทดสอบแล้ว)
ใช้ upload ไฟล์ (เช่น รูปสำหรับ image-to-video) ก่อนส่ง gen
POST https://kieai.redpandaai.co/api/file-stream-upload
Authorization: Bearer <KIE_API_KEY>
Content-Type: multipart/form-data
Parameters:
file: (binary)
uploadPath: (string)
fileName: (string)
Response:
{
"success": true,
"data": {
"downloadUrl": "https://tempfile.redpandaai.co/..."
}
}
หมายเหตุ:
- ใช้ curl multipart เท่านั้น (base64 upload ได้ 403)
- ไฟล์ถูกลบอัตโนมัติหลัง 3 วัน
- ต้อง upload ก่อนใช้ image-to-video (Veo3 REFERENCE_2_VIDEO)
Veo3 Video Generation (ทดสอบแล้ว)
Veo3 ใช้คนละ endpoint กับ Market API (Grok Imagine) — ทั้ง generate และ poll
Create Task
POST https://api.kie.ai/api/v1/veo/generate
Authorization: Bearer <KIE_API_KEY>
Content-Type: application/json
Body:
{
"prompt": "...",
"imageUrls": ["https://uploaded-url"],
"model": "veo3_fast",
"generationType": "REFERENCE_2_VIDEO",
"aspect_ratio": "9:16"
}
| Parameter | ค่า | หมายเหตุ |
|---|---|---|
model |
veo3_fast, veo3_quality, veo3_lite |
fast รองรับ i2v |
generationType |
TEXT_2_VIDEO, REFERENCE_2_VIDEO |
REFERENCE_2_VIDEO ใช้ได้เฉพาะ veo3_fast |
aspect_ratio |
16:9, 9:16, Auto |
— |
imageUrls |
array of URLs | ต้อง upload ก่อนผ่าน file-stream-upload |
Optional: enableTranslation, enableFallback, watermark, callBackUrl, seeds
Poll Status
GET https://api.kie.ai/api/v1/veo/record-info?taskId=<taskId>
Authorization: Bearer <KIE_API_KEY>
| Field | ค่า | ความหมาย |
|---|---|---|
successFlag |
0 |
กำลัง generate |
successFlag |
1 |
สำเร็จ |
successFlag |
2 |
ล้มเหลว |
successFlag |
3 |
ล้มเหลว |
- Video URL อยู่ใน
data.response.resultUrls[] - มี audio (
hasAudioList: [true]) - ใช้เวลาประมาณ 60-120 วินาที
Veo3 Flow: Upload → Generate → Poll
1. Upload image → POST file-stream-upload → ได้ downloadUrl
2. Generate → POST /veo/generate (ใส่ downloadUrl ใน imageUrls) → ได้ taskId
3. Poll → GET /veo/record-info?taskId= → วน loop จน successFlag != 0
4. Download → ดึง video จาก resultUrls[]
API Endpoints Summary
| Feature | Market API (Grok Imagine) | Veo3 API |
|---|---|---|
| Create task | POST /api/v1/jobs/createTask |
POST /api/v1/veo/generate |
| Poll status | GET /api/v1/jobs/recordInfo |
GET /api/v1/veo/record-info |
| File upload | POST kieai.redpandaai.co/api/file-stream-upload |
(same) |
| Base URL | https://api.kie.ai |
https://api.kie.ai |
Related Skills
/art-engine- upstream: model selection and prompt syntax translation/fal-ai- alternative execution path for Grok (same model, different API - fal.ai direct vs Kie.ai proxy)/art-director- upstream: creative brief crafting/sira-image-prefer- taste DNA for prompt preferences