DIRECTOR STUDIO

คู่มือการใช้งานฉบับสมบูรณ์ · User Manual v2.5

🌐 Multi-tenant 🔒 Fernet AES-128 ⚡ 3-Stage Pipeline 🎬 Veo 3.1 🧠 LLM 📋 Background Jobs 🔌 WebSocket 🧪 48 Tests

📑 สารบัญ

  1. แนะนำ Director Studio
  2. เริ่มต้นใช้งาน (Quick Start)
  3. ส่วนประกอบหน้าจอ (UI Tour)
  4. 📁 การจัดการโปรเจกต์
  5. 📚 Templates Library
  6. 🎬 การสร้าง Episode
  7. 🎨 Stage 0: Generate Image (NEW v2.5)
  8. 📝 Stage 1: Generate Script
  9. 🎬 Stage 2: Generate Veo Prompts
  10. 🎥 Stage 3: Generate Video
  11. ⚙ ตั้งค่า (API Keys + Quota)
  12. 📋 Background Jobs
  13. 📊 Analytics
  14. 🔗 Public Share
  15. 📤 Export
  16. 🛡 Admin Panel
  17. 🔐 Security & Privacy
  18. 📡 API Reference
  19. ❌ Troubleshooting
  20. 💬 FAQ

01.แนะนำ Director Studio

Director Studio คือเว็บแอป multi-tenant สำหรับสร้างซีรีส์สยองขวัญไทย "คืนซ่อนวิญญาณ" (The Night of Hidden Souls) ด้วย AI ใช้ 3-Stage Pipeline ที่ผสาน LLM (เขียนบท) เข้ากับ Veo 3.1 (สร้างวิดีโอ) ทำงานแบบ background jobs — ปิด browser ได้

🎯 จุดเด่น

🌐 Live URLs

02.เริ่มต้นใช้งาน (Quick Start)

🔑 ขั้นตอนที่ 1: เตรียม API Keys (ทำครั้งเดียว)

  1. ไป genaipro.io → login → AvatarManage AccountAPI KeyCreate API Key → copy JWT (ใช้กับ Stage 3 วิดีโอ)
  2. ไป api.minimax.io → login → API Keys → copy key (ขึ้นต้น sk-cp-...) (ใช้กับ Stage 1 + 2)

📝 ขั้นตอนที่ 2: สมัคร + ตั้งค่า

  1. เปิด https://directorstudio.sj88ai.com/
  2. กดแท็บ "สมัครสมาชิก" → กรอกอีเมล + รหัสผ่าน (≥ 6 ตัว) → กด "สมัคร"
  3. คนแรกจะกลายเป็น admin อัตโนมัติ
  4. ไปแท็บ "⚙ ตั้งค่า"
  5. วาง LLM API Key ในช่องแรก → 💾 บันทึก
  6. วาง Veo JWT ในช่องที่สอง → 💾 บันทึก
  7. กด "🧪 ทดสอบ" → จะเห็น quota แสดงที่ด้านบน
💡 Tip: Quota จะแสดงอัตโนมัติเมื่อเปิดหน้า Settings ทุกครั้ง (ไม่ต้องกด Test เอง) — ระบบกรองเฉพาะแพ็กเกจที่ยังไม่หมดอายุ

🎬 ขั้นตอนที่ 3: สร้าง Episode แรก

  1. แท็บ "📁 โปรเจกต์" → กด "+ โปรเจกต์ใหม่"
  2. เลือก Template (เช่น "Horror Village") หรือเริ่มจาก Blank
  3. ตั้งชื่อ → กด "สร้าง"
  4. ในโปรเจกต์ → กด "✨ Generate Script (AI)"
  5. ใส่ idea 1-2 ประโยค → กด "✨ Generate Script" → รอ ~30 วินาที
  6. AI เขียนบทเป็น JSON → กด "💾 บันทึกเป็น EP1"
  7. เปิด EP1 → แท็บ "🎬 Veo" → กด "🎬 Stage 2: Generate Veo Prompts" → รอ ~30 วิ
  8. AI แปลง script → Veo YAML → กด "🎥 Generate Video" ที่ scene ที่ต้องการ
  9. รอ 60-120 วิ → ได้ MP4 พร้อมเล่น
💡 Pro tip: ปิด browser ได้เลย! งานทำในพื้นหลัง เปิดมาใหม่ดูที่แท็บ 📋 Jobs ได้

03.ส่วนประกอบหน้าจอ (UI Tour)

🖥 Top Navigation

แถบเมนูด้านบนประกอบด้วย 7 แท็บ:

แท็บคำอธิบาย
📁 โปรเจกต์รายการโปรเจกต์ทั้งหมด
⚙ ตั้งค่าAPI Keys + Quota
📊 Analyticsสถิติการใช้งาน
📋 Jobs NBackground jobs (badge แสดงงานที่กำลังทำ)
🛡 Adminเฉพาะ admin เท่านั้น
📖 คู่มือเปิด tab ใหม่ → ไป /docs
⎋ Logoutออกจากระบบ

📸 Screenshots

1. หน้า Login

หน้า Login - เข้าสู่ระบบหรือสมัครสมาชิกหน้า Login - เข้าสู่ระบบหรือสมัครสมาชิก

2. หน้าสมัครสมาชิก

หน้าสมัครสมาชิก - กรอก email + password + display nameหน้าสมัครสมาชิก - กรอก email + password + display name

3. หน้าโปรเจกต์ (หลัง login)

หน้าโปรเจกต์หลัง login - รายการโปรเจกต์ทั้งหมดหน้าโปรเจกต์หลัง login - รายการโปรเจกต์ทั้งหมด

แสดงรายการโปรเจกต์ + ปุ่มสร้างใหม่

04.📁 การจัดการโปรเจกต์

สร้างโปรเจกต์ใหม่

  1. คลิก "+ โปรเจกต์ใหม่"
  2. เลือก Template (หรือ "📄 เริ่มจากศูนย์")
  3. ตั้งชื่อโปรเจกต์ (ถ้าเลือก template จะใส่ชื่อให้อัตโนมัติ)
  4. เลือกประเภท: Episode (ซีรีส์) หรือ Short (หนังสั้น)
  5. คลิก "สร้าง"

Modal เลือก Template

Modal สร้างโปรเจกต์ใหม่ - เลือก Template ได้ 5 แบบModal สร้างโปรเจกต์ใหม่ - เลือก Template ได้ 5 แบบ

Modal แสดง 5 templates ให้เลือก

Template ถูกเลือก

เลือก Template Horror Village แล้ว - สีเหลือง border + ชื่อ auto-fillเลือก Template Horror Village แล้ว - สีเหลือง border + ชื่อ auto-fill

⚙ Project Settings (ปุ่ม ⚙)

Project Settings - rename, share link, export, deleteProject Settings - rename, share link, export, delete

Project Settings มี 4 ฟีเจอร์:

05.📚 Templates Library

5 preset templates พร้อม seed episodes + characters:

TemplateEpisodesCharactersStyle
🏚️ หมู่บ้านร้าง (Horror Village)3nam, jay, ghost, yai_kaewThai horror, dark village, isolated
🏫 โรงเรียนสยอง (Haunted School)1nam, jay, ghostSchool setting, ghostly students
🏢 อพาร์ตเมนต์ผี (Ghost Apartment)1nam, jay, ghostUrban setting, modern apartment
⛩️ ศาลป่า (Forest Shrine)1nam, jay, ghost, yai_kaewForest, ancient shrine, spiritual
📄 เริ่มจากศูนย์ (Blank)0Empty project

06.🎬 การสร้าง Episode

หน้าโปรเจกต์ + Episodes

หน้าโปรเจกต์ - แสดงรายการ episodes และปุ่มจัดการหน้าโปรเจกต์ - แสดงรายการ episodes และปุ่มจัดการ

รายการ Episodes + ปุ่มดำเนินการ

Episode Modal — แท็บ Script

Episode modal - แท็บ Script แสดง scenes + dialogue + moodEpisode modal - แท็บ Script แสดง scenes + dialogue + mood

แสดง scenes + dialogue + emotional_beat + mood

Episode Modal — แท็บ Veo

Episode modal - แท็บ Veo Prompts พร้อม VO + audio + cameraEpisode modal - แท็บ Veo Prompts พร้อม VO + audio + camera

แสดง Veo prompts + VO + audio cue + camera

Episode Modal — แท็บ Videos

Episode modal - แท็บ VideosEpisode modal - แท็บ Videos

07.📝 Stage 1: Generate Script (LLM)

1เขียนบทจาก idea ด้วย AI

ผลลัพธ์: JSON script (Thai horror) พร้อม scenes, dialogue, emotional_beat

📥 Input

  • Idea / Logline (1-2 ประโยค)
  • Episode number (auto-detected)
  • จำนวน scenes (1-10)
  • Style (default: "Thai horror, dark, atmospheric, character-driven")
  • Previous episodes (auto-included for continuity)

Modal Generate Script

Generate Script modal - ใส่ idea + เลือก episodeGenerate Script modal - ใส่ idea + เลือก episode

📤 Output (ตัวอย่าง)

{
  "episode_title": "ตอนที่ 1: บ้านร้าง",
  "episode_title_en": "EP1 — The Empty House",
  "episode_logline": "น้ำกลับมายังหมู่บ้านเกิด...",
  "characters_in_ep": ["nam", "ghost", "yai_kaew"],
  "scenes": [
    {
      "id": "S01_01",
      "title": "ทางเข้าหมู่บ้าน",
      "location": "ถนนลูกรังหน้าหมู่บ้าน",
      "time_marker": "18:47 — พลบค่ำ",
      "characters": ["nam"],
      "action": "close-up รองเท้าหนังสีดำ...",
      "dialogue": [{"speaker": "น้ำ", "line": "ยี่สิบปีแล้ว..."}],
      "emotional_beat": "หวาดหวั่นผสมเหงา"
    }
  ]
}

🔄 Flow

  1. คลิก ✨ Generate Script (AI)
  2. ใส่ idea → คลิก ✨ Generate Script
  3. รอ ~30 วินาที (ทำงานใน background)
  4. ดู progress ได้ที่แท็บ Jobs
  5. เมื่อเสร็จ → คลิก 💾 บันทึกเป็น EP1
⚠️ ใช้เวลา: ~30 วินาที/ครั้ง (LLM call)
💰 Cost: ~0.1 credits (LLM token)

08.🎬 Stage 2: Generate Veo Prompts (LLM)

2แปลง script → Veo YAML

ผลลัพธ์: Veo YAML พร้อม timeline, prompts, audio cues

📥 Input

  • Script JSON (จาก Stage 1)
  • Characters available (default: ["nam", "jay", "ghost"])

📤 Output (ตัวอย่าง)

{
  "variant": "VARIANT_EP1_BAANRAAN",
  "video_config": {
    "duration": "8s",
    "aspect": "9:16",
    "fps": 30,
    "look": "Cinematic Thai horror, desaturated teal-orange grade"
  },
  "timeline": [
    {
      "id": "S01_01",
      "t": "0.0-8.0",
      "reference_image": ["nam_ref"],
      "prompt": "SCENE: ทางเข้า (Village Entrance)\n\n- [nam_ref] walks slowly...\n- dialogue: \"กลับมาแล้ว\"\n- audio: distant crickets, soft wind",
      "camera": {"move": "slow dolly in", "lens": "35mm"},
      "vo": "กลับมาแล้ว",
      "audio_cue": "distant crickets, soft wind, footsteps on gravel"
    }
  ],
  "negative": ["blood", "weapons", "no dialogue", "no audio"]
}

🔄 Flow

  1. เปิด Episode (ต้องมี script ก่อน)
  2. คลิก 🎬 Stage 2: Generate Veo Prompts
  3. รอ ~30 วินาที
  4. เมื่อเสร็จ → สลับไปแท็บ "🎬 Veo" อัตโนมัติ
  5. ดู prompts + audio + camera ครบ

09.🎥 Stage 3: Generate Video (Veo 3.1)

3สร้าง MP4 จาก Veo prompt

ผลลัพธ์: MP4 (8s, 9:16, 1080p) พร้อมเล่น

📥 Input

  • 1 prompt จาก timeline (แต่ละ scene = 1 clip)
  • Reference images (อัตโนมัติจาก reference_image field)

📤 Output

  • video_url: https://files.genaipro.io/video_xxx.mp4
  • task_id (internal) + veo_task_id (genaipro)
  • status: queued → running → completed

⏱️ ระยะเวลา

  • Submit: ~2-5 วินาที
  • Processing: 60-120 วินาที
  • รวม: ~1-2 นาที/clip
❌ ถ้า failed:
  • PUBLIC_ERROR_AUDIO_FILTERED — prompt ไม่มี audio cue (backend auto-injects)
  • PUBLIC_ERROR_DANGER_FILTER — มี "blood", "weapons", "knives" (auto-replace)
  • error code: 1010 — Cloudflare block (User-Agent fix แล้ว)
  • JWT banned — ไป genaipro.io เอา key ใหม่

08🎨 Stage 0: Generate Image (v2.5+)

สร้างภาพ reference ตัวละคร / scene จาก prompt โดยใช้ GTMage-2 (Google Gemini 2.5 Flash Image) ผ่าน genaipro.io — ไม่ต้องอัปโหลด ref เอง เหมาะกับโปรเจกต์ใหม่ที่ยังไม่มี character image

ใช้งาน

  1. เปิด Episode → กด 🎨 Stage 0: Generate Image
  2. พิมพ์ prompt (ภาษาอังกฤษได้ผลดีที่สุด)
  3. เลือก aspect ratio (1:1, 16:9, 9:16, 3:2, ฯลฯ)
  4. กด Generate → job เข้า background queue
  5. รอ 1-3 นาที → ภาพออกมา + บันทึกในโปรเจกต์อัตโนมัติ

Aspect ratios ที่รองรับ

Ratioใช้กับ
1:1Character portrait, profile pic
16:9Cinematic scene, environment
9:16Vertical (mobile, poster)
3:2 / 2:3Photo standard
4:3 / 3:4Landscape / portrait

Prompt Tips

ตัวอย่าง

Prompt: "A mysterious Thai village elder woman in traditional indigo shirt, holding an old lantern, dark misty forest background, cinematic horror, photorealistic"
Aspect: 16:9
Result: ~2-3 นาที
💡 Pro tip: ใช้ Stage 0 + Stage 2 รวมกัน: generate character image → เอา URL เป็น reference → Stage 2 (Veo) จะใช้ character นั้นได้

API

POST /api/images/generate
{
  "project_id": "...",
  "prompt": "...",
  "aspect_ratio": "16:9",  // or 1:1, 9:16, 3:2, 2:3, 4:3, 3:4
  "n": 1,                  // 1-4
  "sync": false            // true = wait for completion
}

Powered by GTMage-2 · uses your Veo JWT (same one as Stage 2/3)

10.⚙ ตั้งค่า (API Keys + Quota)

หน้า Settings

Settings - Veo JWT + LLM Key + Quota auto-displaySettings - Veo JWT + LLM Key + Quota auto-display

Veo JWT (genaipro.io)

  1. ไป genaipro.io → login → Avatar → API Key → Create
  2. Copy JWT (ขึ้นต้น eyJ...)
  3. วางในช่อง "🔑 Veo API Key" → กด 💾 บันทึก
  4. กด 🧪 ทดสอบ เพื่อดู quota

LLM API Key

  1. ไป api.minimax.io → login → API Keys
  2. Copy key (ขึ้นต้น sk-cp-...)
  3. วางในช่อง → กด 💾 บันทึก

Quota Display (auto)

เมื่อบันทึก JWT แล้ว quota จะแสดงอัตโนมัติ:

💡 ระบบกรองเฉพาะแพ็กเกจที่ยังไม่หมดอายุ — แพ็กเกจเก่าที่ expired แล้วจะไม่นับ

11.📋 Background Jobs

หน้า Jobs

Jobs tab - background jobs list + cancel buttonJobs tab - background jobs list + cancel button

ฟีเจอร์

WebSocket Live Updates

ระบบใช้ WebSocket (/api/ws?token=...) ส่ง update แบบ real-time เมื่อ job state เปลี่ยน:

💡 ปิด browser ได้! Job ทำงานใน background — เปิดมาใหม่ดูที่แท็บ Jobs

12.📊 Analytics

หน้า Analytics

Analytics - สถิติการใช้งาน + 7-day activity chartAnalytics - สถิติการใช้งาน + 7-day activity chart

สถิติที่แสดง

Statคำอธิบาย
📁 Projectsจำนวนโปรเจกต์ทั้งหมด
🎬 Episodesจำนวน episodes รวมทุกโปรเจกต์
🧠 LLM Jobsจำนวน LLM jobs (script_gen + veo_gen)
🎥 Veo Videosจำนวน videos ที่ submit
💎 Credits used (est.)Veo=1cr, LLM=0.1cr (ประมาณ)
✅ Veo success rate% ที่สำเร็จ
📊 Job statusescompleted/failed/running/queued
📈 Activity (7d)Chart แสดง activity 7 วัน

13.🔗 Public Share

หน้า Public Share

Public share page - เปิดได้โดยไม่ต้อง loginPublic share page - เปิดได้โดยไม่ต้อง login

หน้านี้เปิดได้โดยไม่ต้อง login

วิธีสร้าง Share Link

  1. เปิดโปรเจกต์ → คลิก ⚙ Project Settings
  2. ดู "🔗 Share" section → URL จะแสดงอัตโนมัติ
  3. คลิก 📋 Copy → URL ถูกคัดลอก
  4. แชร์ URL นี้ให้ใครก็ได้ — เปิดดูได้ทันที (read-only, ไม่ต้อง login)

URL format

https://directorstudio.sj88ai.com/share/{project_id}
⚠️ Privacy: Share page แสดงข้อมูลสาธารณะ — ไม่มี secrets, ไม่มี user controls

14.📤 Export

Episode Export (per episode)

เปิด Episode → ปุ่ม "📝 Export .md" หรือ "📋 Export .json"

Markdown format

# ตอนที่ 1: คืนแรก

*EP1 — The First Night*

> น้ำกลับมาที่หมู่บ้านเกิดหลังจาก 20 ปี...

**Characters:** nam, jay, ghost

## Scenes

### Scene 1: ทางเข้าหมู่บ้าน
*หมู่บ้านเกิด — เย็น พลบค่ำ*

**Characters:** nam

**Action:**
close-up รองเท้า...

**Dialogue:**
- **น้ำ:** "ยี่สิบปีแล้ว..."

*Mood: ความเหงา*

## 🎬 Veo Prompts (3)

### Clip 1 (t=0.0-8.0)
**Refs:** nam_ref

```text
SCENE: ทางเข้า...
```

Project Export (ทั้งโปรเจกต์)

เปิด Project Settings → "📤 Export""⬇ Download JSON"

15.🛡 Admin Panel

หน้า Admin

Admin panel - users list + system statsAdmin panel - users list + system stats

ผู้ใช้แรก = Admin อัตโนมัติ

คนแรกที่สมัครจะกลายเป็น admin อัตโนมัติ คนต่อ ๆ ไปเป็น user

Admin เห็นอะไร

Admin ไม่เห็นอะไร

🔒 Secrets ที่ admin ไม่เห็น:
  • ❌ Veo JWT value
  • ❌ LLM API key
  • ❌ password hash
  • ❌ เนื้อหา script / Veo prompt
  • ❌ ไฟล์ project

Admin actions

16.🔐 Security & Privacy

🔐 Encryption

ComponentEncryptionLocation
User passwordsbcryptusers.password_hash
JWT auth tokenHS256 (30-day TTL)localStorage (frontend)
Veo JWTFernet AES-128settings.veo_jwt_enc
LLM API KeyFernet AES-128settings.llm_api_key_enc
Fernet keyFernet key (auto-gen)/opt/director-studio/data/.fernet_key
JWT signingHS256 secret (auto-gen)/opt/director-studio/data/.secret_key

🛡 Threat Model

🚨 Best Practices

17.📡 API Reference

Base URL: https://directorstudio.sj88ai.com/api

Auth: Authorization: Bearer <token> (header)

🔓 Public

MethodPathDescription
GET/healthHealth check
POST/auth/signupCreate user (first → admin)
POST/auth/loginGet JWT
GET/public/project/{pid}Public project (read-only)

🔒 Authenticated

MethodPathDescription
GET/auth/meCurrent user
GET/PUT/DELETE/settings/veo-jwtVeo JWT CRUD
GET/settings/veo-jwt/testAuth check + quota
PUT/DELETE/settings/llm-api-keyLLM key CRUD
POST/llm/generate-scriptStage 1: idea → script (sync)
POST/llm/generate-veoStage 2: script → Veo YAML (sync)
GET/POST/PUT/DELETE/projects[/{id}]Per-user projects
POST/veo/submitStage 3: start Veo task (sync)
GET/veo/poll/{id}Poll Veo status
POST/jobsSubmit background job (returns job_id)
GET/jobs/{id}Get job status
GET/jobsList jobs (?status=)
DELETE/jobs/{id}Cancel job
GET/analytics/mePersonal stats

👑 Admin only

MethodPathDescription
GET/admin/usersList all users
GET/admin/users/{id}User details (no secrets)
GET/admin/statsSystem stats
DELETE/admin/users/{id}Delete user

🔌 WebSocket

wss://directorstudio.sj88ai.com/api/ws?token=<jwt>

// Receives:
// {type: "snapshot", jobs: [...]}
// {type: "update", job_id, status, progress, message, result, error}

📝 Example: Login + Submit Job

# 1. Login
curl -X POST https://directorstudio.sj88ai.com/api/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"email":"admin@sj88ai.com","password":"admin1234"}'
# → {"access_token": "eyJ...", "user": {...}}

# 2. Submit background job
curl -X POST https://directorstudio.sj88ai.com/api/jobs \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "script_gen",
    "input": {
      "prompt": "น้ำกลับมาที่หมู่บ้านเกิด",
      "episode_number": 1,
      "num_scenes": 5
    }
  }'
# → {"ok": true, "job_id": "abc123", "status": "queued"}

# 3. Poll job
curl -H "Authorization: Bearer $TOKEN" \
  https://directorstudio.sj88ai.com/api/jobs/abc123
# → {"status": "completed", "result": {"script": {...}}}

18.❌ Troubleshooting

❌ "JWT is banned or expired"

สาเหตุ: genaipro.io ban JWT หลังใช้งาน 5-10 นาที

แก้: ไป genaipro.io → Avatar → API Key → Create API Key ใหม่ → ใส่ใน Settings

❌ "error code: 1010" (Cloudflare block)

สาเหตุ: genaipro.io block IP ของ server

แก้: Backend ใช้ User-Agent: Mozilla/5.0 แล้ว — ถ้ายังเจอ ลองเปลี่ยน key ใหม่

❌ "PUBLIC_ERROR_AUDIO_FILTERED"

สาเหตุ: Veo ปฏิเสธ prompt ที่ไม่มี audio cue

แก้: Backend auto-inject audio cues แล้ว — ถ้ายังเจอ แก้ prompt ให้ audio ชัด

❌ "PUBLIC_ERROR_DANGER_FILTER"

สาเหตุ: prompt มี "blood", "weapons", "knives"

แก้: Backend auto-replace แล้ว — ใช้ "red mist", "objects", "tools"

❌ "No LLM API key configured"

แก้: Settings → LLM API Key → วาง sk-cp-... → 💾

❌ "No Veo JWT configured"

แก้: Settings → Veo API Key → วาง eyJ... → 💾

❌ Login ไม่ได้ / token หมดอายุ

แก้: Token อายุ 30 วัน — login ใหม่ได้เลย

❌ Veo 404 (task not found)

สาเหตุ: poll เร็วเกินไป ก่อน genaipro จะ register

แก้: Backend return processing แทน error แล้ว — รอต่อ

❌ "At least 1 reference image is required"

สาเหตุ: /opt/director-studio/refs/ ไม่มีภาพ

แก้: cp /home/.../www/refs/* /opt/director-studio/refs/

19.💬 FAQ

Q: ต่างจาก Veo API ตรง ๆ ยังไง?

A: Director Studio เพิ่ม: LLM script generation, project organization, character management, Veo prompt optimization, queue system, history, analytics, multi-user. Veo API ตรง ๆ เป็นแค่ video generation

Q: ใช้ API ของผู้ให้บริการอื่นได้ไหม?

A: ตอนนี้รองรับแค่ genaipro.io (Veo) + MiniMax (LLM) — เพิ่ม provider อื่นได้ในอนาคต

Q: เก็บข้อมูลที่ไหน?

A: SQLite ที่ /opt/director-studio/data/studio.db (บน server)

Q: Backup ข้อมูลได้ไหม?

A: ได้ — cp /opt/director-studio/data/studio.db backup.db

Q: ทำ mobile app ได้ไหม?

A: UI responsive ใช้บนมือถือได้ (แต่ไม่มี dedicated app)

Q: มี API rate limit ไหม?

A: Veo JWT มีอายุ ~5-10 นาที (ต้อง refresh) — ไม่มี rate limit ที่ backend

Q: ทำ collaboration ร่วมกันได้ไหม?

A: ตอนนี้ทำได้ผ่าน Public Share link — multi-user edit ยังไม่มี

Q: Export script เป็น PDF ได้ไหม?

A: ตอนนี้ export เป็น .md หรือ .json — PDF ต้อง convert เอง (หรือ print to PDF)

Q: ใช้ token เดียวกันหลาย browser ได้ไหม?

A: ได้ — JWT stateless, แต่ session จะ sync เมื่อ refresh

Q: ทำไม quota หายไป?

A: genaipro.io แพ็กเกจหมดอายุ + ถูกใช้ไป — ระบบกรองเฉพาะที่ยังไม่หมดอายุ

Q: Script ไม่ออกมาเป็นภาษาไทย?

A: ใส่ idea เป็นภาษาไทย + เลือก style "Thai horror" — LLM จะเขียนเป็นไทย

Q: เพิ่ม character ใหม่ได้ไหม?

A: ตอนนี้ใช้ได้แค่ nam, jay, ghost, yai_kaew — Image Generation Stage 0 (กำลังพัฒนา) จะให้สร้าง character ใหม่ได้

← กลับหน้าแอป ลอง Public Share