iApp Image Generation
The first Thai-made AI image generation model, by the iApp Technology team! ภาษาไทย แม่นเฉียบ พลาดน้อยมาก
iApp Image Generation is the first Thai image generation model, fine-tuned in-house by the iApp Technology team for the Thai language. It creates images from a description written in Thai or English and renders the Thai or English text you specify exactly as written — every character, vowel and tone mark — in one of 19 Thai typefaces. It is built for material where wrong Thai spelling is not acceptable: posters, shop signs, greeting cards, product labels, presentation slides, banners and social-media graphics. General image generation models render Thai script as look-alike strokes; this model treats your text as typography and places it into the generated scene. In the launch gallery run on 2 September 2026, 33 of 34 prompts (97%) came out with the Thai text exactly as written.
Live Demo
Describe the image in Thai or English, enter the Thai or English text that must appear, choose a typeface and a size. Or pick one of the 25 examples below.
Request as cURL
curl -X POST 'https://api.iapp.co.th/v3/store/image-generation/iapp-image-generation/generate' \
-H 'apikey: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"prompt":"โปสเตอร์โปรโมชั่นร้านกาแฟสไตล์มินิมอล โทนสีน้ำตาลครีม มีแก้วกาแฟลาเต้อาร์ตอยู่ตรงกลาง แสงอบอุ่น","text":["กาแฟสด ลด 50%"],"font":"kanit-bold","size":"768x1280"}'Examples: 25 generated images
All 25 images below were generated by iApp Image Generation on 2 September 2026 from the request shown on each card, without any editing. Click an image to open it at full size, or use the button to load its request into the live demo.

























Quick Start
You need an API key from the iApp AI Portal. Send a JSON body with the apikey header:
curl -X POST https://api.iapp.co.th/v3/store/image-generation/iapp-image-generation/generate \
-H "apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "การ์ดอวยพรวันเกิดสีพาสเทล มีเค้กและลูกโป่ง ลายเส้นน่ารักแบบภาพประกอบ",
"text": "สุขสันต์วันเกิด",
"font": "kanit-bold",
"size": "1024x1024"
}'
{
"status": "success",
"id": "20260902-054442-f26467",
"width": 1024,
"height": 1024,
"font": "kanit-bold",
"text": ["สุขสันต์วันเกิด"],
"mime_type": "image/png",
"image_base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zU...",
"time": { "translate": 3.1, "generate": 8.6, "total": 11.8 },
"iapp": { "images": 1, "version": "1.0.0-20260902" }
}
Code examples for Python and JavaScript are in the Technical Reference.
Endpoints and Pricing
| Endpoint | Description | Price |
|---|---|---|
POST /v3/store/image-generation/iapp-image-generation/generate | Generate one image | 3 IC per image — 1.5 IC during the preview |
GET /v3/store/image-generation/iapp-image-generation/fonts | List the available Thai typefaces | Free |
Only successful responses are charged. The preview price applies to every account for the duration of the preview release; the list price will apply after the preview ends, announced at least 14 days in advance.
Performance
Measured on the production service, 2 September 2026, one image per request.
| Metric | Value |
|---|---|
| Median generation time (1024 × 1024) | 10 s per image (observed range 8–14 s) |
| Serving capacity | about 17 images per minute, about 1,000 per hour, on 4 GPUs; requests beyond that wait in a first-come queue |
| Sizes | 1024 × 1024, 1280 × 768, 768 × 1280, 1536 × 1024, 1024 × 1536 |
| Text | Up to 4 lines, up to 120 characters per line; 19 Thai typefaces |
| Prompt | Thai or English, up to 1,500 characters |
| Rate limits (per API key) | 2 per second, 30 per minute, 600 per hour |
Requests are processed one at a time per GPU; during the preview the service runs on a single GPU, so response time grows with concurrent load.
Thai Text Accuracy
The text you pass in text is typeset with the selected typeface and used as a reference for the image model, so its spelling is deterministic: in the internal acceptance set of 11 prompts covering signs, posters, slides, labels and clothing (2 September 2026), all 11 images rendered the requested Thai text letter-perfect, verified with iApp Thai OCR. In the launch gallery run of 34 prompts on the same day, 33 images (97%) rendered the requested text exactly; the 25 examples above are taken from that run without retouching. Without this mechanism, the same model renders Thai text correctly in 49% of prompts on our 80-prompt Thai text benchmark, which is why the service applies it to every request that includes text.
Two limits apply:
- The letters keep the shape of the selected typeface; decorative effects such as neon glow or chalk texture are applied by the model only partially.
- Thai text that appears in
promptbut not intextis not guaranteed. Put every string that must appear in the image intotext.
Data Security and Compliance
- The service is GDPR and PDPA compliant.
- Prompts and text are used only to generate the requested image.
- Generated images are returned inline in the response and are deleted from the service within 24 hours.
- The model runs on iApp-operated GPU infrastructure; no prompt or image is sent to a third-party image-generation provider.
Technical Reference
Request
POST /v3/store/image-generation/iapp-image-generation/generate accepts application/json with the apikey header.
| Field | Type | Required | Description |
|---|---|---|---|
prompt | string | Yes | The scene to generate, in Thai or English (max 1,500 characters). Text quoted in double quotes inside the prompt is also rendered exactly. |
text | string or array | No | Thai text that must appear in the image. One line per array item, or one string with line breaks (max 4 lines). |
font | string | No | Typeface id from the table below. Default kanit-bold. |
size | string | No | 1024x1024 (default), 1280x768, 768x1280, 1536x1024, 1024x1536. |
style | string | No | Optional style hint appended to the prompt, e.g. photorealistic, flat vector, watercolor. |
seed | integer | No | Fixes the random seed for reproducible output. |
text_scale | number | No | Width of the text block as a fraction of the image, 0.2–0.9. Default 0.55. |
Every successful response carries the header iapp-input-images: 1.
Response
{
"status": "success",
"id": "20260902-071417-3b2093",
"width": 768,
"height": 1280,
"font": "kanit-bold",
"text": ["กาแฟสด ลด 50%"],
"seed": null,
"mime_type": "image/png",
"image_base64": "...",
"time": { "translate": 3.2, "generate": 10.0, "total": 13.4 },
"iapp": { "images": 1, "version": "1.0.0-20260902" }
}
Typefaces
GET /v3/store/image-generation/iapp-image-generation/fonts returns this list. All typefaces are published under the SIL Open Font License.
| id | Typeface | Character |
|---|---|---|
kanit-bold | Kanit Bold (default) | Modern, bold |
kanit | Kanit | Modern |
prompt-bold | Prompt Bold | Modern, bold |
prompt | Prompt | Modern |
sarabun-bold | Sarabun Bold | Formal, documents |
sarabun | Sarabun | Formal, documents |
mitr | Mitr | Rounded, friendly |
chakrapetch-bold | Chakra Petch Bold | Technical, geometric |
athiti-bold | Athiti Bold | Compact |
k2d-bold | K2D Bold | Display |
notosans | Noto Sans Thai | Neutral sans-serif |
pridi | Pridi | Serif |
taviraj | Taviraj | Serif |
notoserif | Noto Serif Thai | Serif |
itim | Itim | Playful |
mali | Mali | Handwriting |
sriracha | Sriracha | Handwriting |
charm | Charm | Cursive handwriting |
srisakdi | Srisakdi | Decorative |
Errors
| HTTP status | Meaning |
|---|---|
| 400 | Invalid size, font or field value; the message names the field |
| 401 | Missing or invalid apikey |
| 402 | Insufficient credits |
| 429 | Rate limit exceeded for this API key |
| 503 | The model is starting; retry after 60 seconds |
Code Examples
- cURL
- Python
- JavaScript
curl -X POST https://api.iapp.co.th/v3/store/image-generation/iapp-image-generation/generate \
-H "apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt": "ป้ายไฟนีออนเรืองแสงยามค่ำคืนบนถนนข้าวสาร", "text": "ยินดีต้อนรับสู่ประเทศไทย", "font": "prompt-bold", "size": "1280x768"}' \
| python3 -c "import sys, json, base64; r = json.load(sys.stdin); open('image.png', 'wb').write(base64.b64decode(r['image_base64'])); print(r['time'])"
import base64
import requests
url = "https://api.iapp.co.th/v3/store/image-generation/iapp-image-generation/generate"
payload = {
"prompt": "ป้ายไฟนีออนเรืองแสงยามค่ำคืนบนถนนข้าวสาร โบเก้ไฟถนน ภาพแนวภาพยนตร์",
"text": ["ยินดีต้อนรับสู่ประเทศไทย"],
"font": "prompt-bold",
"size": "1280x768",
}
response = requests.post(url, headers={"apikey": "YOUR_API_KEY"}, json=payload, timeout=180)
response.raise_for_status()
result = response.json()
with open("welcome.png", "wb") as f:
f.write(base64.b64decode(result["image_base64"]))
print(result["time"])
const response = await fetch("https://api.iapp.co.th/v3/store/image-generation/iapp-image-generation/generate", {
method: "POST",
headers: { "apikey": "YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
prompt: "ป้ายไฟนีออนเรืองแสงยามค่ำคืนบนถนนข้าวสาร โบเก้ไฟถนน ภาพแนวภาพยนตร์",
text: ["ยินดีต้อนรับสู่ประเทศไทย"],
font: "prompt-bold",
size: "1280x768",
}),
});
const result = await response.json();
const img = document.createElement("img");
img.src = `data:${result.mime_type};base64,${result.image_base64}`;
document.body.appendChild(img);
Changelog
| Version | Date | Change |
|---|---|---|
| v1.0.0-20260902 | 2 Sep 2026 | Preview release: Thai and English prompts, exact Thai text rendering with 19 typefaces, five output sizes. Preview price 1.5 IC per image. |