# พารามิเตอร์

โมเดลแต่ละรุ่นยังคงใช้ชื่อพารามิเตอร์ดั้งเดิมของตนเอง และหน้าโมเดลแต่ละหน้าจะแสดงชื่อเหล่านั้น นอกจากนี้ API ยังรองรับ
**ชื่อมาตรฐาน** สำหรับพารามิเตอร์ที่มีความหมายเหมือนกันในทุกโมเดล ทำให้โค้ดที่เขียนสำหรับโมเดลหนึ่งสามารถใช้กับโมเดลถัดไปได้โดยแก้ไขน้อยลง

## ชื่อมาตรฐาน

| ชื่อมาตรฐาน | ความหมาย | ชื่อดั้งเดิมที่ใช้โดยทั่วไป |
|---|---|---|
| `image` | รูปภาพอินพุตหรือเฟรมแรก | `image_url`, `start_image_url`, `first_frame_url`, `first_image_url`, `source_image_url` |
| `end_image` | รูปภาพเฟรมสุดท้าย | `end_image_url`, `last_frame_url`, `tail_image_url` |
| `images` | รายการรูปภาพอ้างอิง | `image_urls`, `reference_image_urls` |
| `video` | วิดีโออินพุต | `video_url` |
| `videos` | รายการวิดีโออ้างอิง | `video_urls` |
| `audio` | เสียงอินพุต | `audio_url` |
| `audios` | รายการคลิปเสียงอ้างอิง | `audio_urls` |
| `mask` | รูปภาพมาสก์ | `mask_url` |
| `num_outputs` | จำนวนผลลัพธ์ที่ต้องการสร้าง | `num_images` |
| `generate_audio` | สร้างเสียงไปพร้อมกับวิดีโอ | `generate_audio_switch`, `enable_audio` |

ฟิลด์ดั้งเดิมใดที่ชื่อมาตรฐานแต่ละชื่อจะจับคู่ด้วยในโมเดลปัจจุบันแต่ละรุ่น:

| ชื่อมาตรฐาน | ฟิลด์เนทีฟ (โมเดลที่ใช้ฟิลด์นี้) |
|---|---|
| `audio` | `audio_url` (โมเดล: 126) |
| `audios` | `audio_urls` (โมเดล: 7), `reference_audio_urls` (โมเดล: 1) |
| `end_image` | `end_image_url` (โมเดล: 76), `last_frame_url` (โมเดล: 12), `tail_image_url` (โมเดล: 1) |
| `generate_audio` | `generate_audio_switch` (โมเดล: 16), `audio` (โมเดล: 3) |
| `image` | `image_url` (โมเดล: 529), `start_image_url` (โมเดล: 20), `first_frame_url` (โมเดล: 12), `first_image_url` (โมเดล: 7), `source_image_url` (โมเดล: 2) |
| `images` | `image_urls` (โมเดล: 148), `reference_image_urls` (โมเดล: 31) |
| `mask` | `mask_url` (โมเดล: 46) |
| `num_outputs` | `num_images` (โมเดล: 337) |
| `video` | `video_url` (โมเดล: 197) |
| `videos` | `video_urls` (โมเดล: 13), `reference_video_urls` (โมเดล: 1) |

กฎ:

- ส่งชื่อมาตรฐานหรือชื่อดั้งเดิมอย่างใดอย่างหนึ่ง หากส่งทั้งสองชื่อด้วยค่าที่แตกต่างกัน คำขอจะล้มเหลวด้วย
  `422 invalid_input` โดยระบุชื่อมาตรฐาน
- พารามิเตอร์ที่ไม่ใช่ทั้งชื่อดั้งเดิมหรือชื่อมาตรฐานของโมเดลจะถูกปฏิเสธด้วย `422 invalid_input`
  ("Unknown parameter") พร้อมชื่อที่ถูกต้องใกล้เคียงที่สุดเป็นคำแนะนำ ระบบจะไม่ยอมรับการพิมพ์ผิดโดยไม่แจ้งเตือน
- หน้าโมเดลแต่ละหน้าจะแสดงชื่อทั้งสองแบบไว้เคียงข้างกัน

## การแปลงชนิดข้อมูล

ค่าจะถูกแปลงเป็นชนิดข้อมูลที่โมเดลคาดหวัง ดังนั้นค่าต่อไปนี้จึงใช้ได้ทั้งหมด:

| ค่าที่ส่ง | สิ่งที่โมเดลคาดหวัง | ผลลัพธ์ |
|---|---|---|
| `5`, `"5"`, `"5s"` | `duration` เป็นสตริง เช่น `"5"` | `"5"` |
| `"8"` | จำนวนเต็ม | `8` |
| `"1080P"`, `"4K"` | `resolution` เช่น `"1080p"`, `"4k"` | รูปแบบการเขียนที่อนุญาตแบบตรงตัว |
| `"true"`, `"false"`, `1`, `0` | ค่าบูลีน | `true`, `false` |
| `"https://…/a.jpg"` | รายการ URL | `["https://…/a.jpg"]` |
| `42` | สตริง | `"42"` |

ระบบจะจับคู่ค่าที่อนุญาตแบบตรงตัวก่อน จากนั้นจึงไม่คำนึงถึงตัวพิมพ์เล็กใหญ่ และสุดท้ายจึงจับคู่เป็นตัวเลข (`5` ตรงกับค่าในรูปแบบ `"5"`, `"5s"` และ
`"5 s"`)

## ค่าเริ่มต้น

พารามิเตอร์ที่คุณไม่ระบุจะใช้ค่าเริ่มต้นของโมเดล ซึ่งแสดงอยู่ในตารางพารามิเตอร์ของโมเดล ราคาจะถูกคำนวณด้วยค่าเริ่มต้นเดียวกัน
(เช่น โมเดลวิดีโอที่ `generate_audio` มีค่าเริ่มต้นเป็น `true` จะคิดราคารวมเสียง เว้นแต่คุณจะส่ง `"generate_audio": false`)

## พารามิเตอร์ไฟล์

พารามิเตอร์รูปภาพ วิดีโอ และเสียงรองรับ URL สาธารณะ, URI `data:` ขนาดไม่เกิน 10 MB หรือ `file_url` ของไฟล์ที่อัปโหลด
ดู [ไฟล์](https://doitong.com/developers/docs/files)