Source: https://ailoot.ai/models/th/recraft-recraft-v4/
Canonical: https://ailoot.ai/models/th/recraft-recraft-v4/
Language: th

# Recraft: Recraft V4

[Markdown](https://ailoot.ai/models/th/recraft-recraft-v4/index.md) · [JSON](https://ailoot.ai/models/th/recraft-recraft-v4/facts.json)

## [Recraft: Recraft V4](https://ailoot.ai/models/th/recraft-recraft-v4/)

Recraft V4 สร้างภาพราสเตอร์ 1K โดยเน้นองค์ประกอบ ความสัมพันธ์สี และทิศทางสร้างสรรค์ละเอียด ครอบคลุมภาพประกอบ ฉากถ่ายสมจริง และแนวคิดออกแบบกราฟิก มีข้อมูลเข้าสไตล์ตามต้องการและเวิร์กโฟลว์ image-to-image แยก

- [**Ailoot Ultra · รูปภาพ** `POST /v1/images/generations` `recraft/recraft-v4`](https://ailoot.ai/models/th/recraft-recraft-v4/#method-0)

เกี่ยวกับโมเดล

คำอธิบายนี้ครอบคลุมความสามารถของโมเดล อินพุต เอาต์พุต และตัวเลือกที่ใช้ได้ใน Ailoot แสดงด้านล่างตามเมธอดที่เลือก

Recraft V4 เป็นโมเดลราสเตอร์มาตรฐานในรุ่น V4 ของ Recraft ผู้ผลิตเน้นวิจารณญาณการออกแบบ ได้แก่ องค์ประกอบสมดุล ความสัมพันธ์สีสอดคล้อง และรายละเอียดที่สนับสนุนเจตนาของภาพ ทำงานกับภาพประกอบมีสไตล์ ฉากถ่าย และแนวคิดออกแบบกราฟิกได้ ใช้เมื่อบรีฟต้องการภาพที่รวมการเลือกสุนทรียะกับความแม่นยำตามพรอมป์ต์ ทั้งการสำรวจอารมณ์จากทิศทางสั้นหรือระบุเลย์เอาต์ตั้งใจอย่างละเอียด

รหัสโมเดลที่แน่นอนคือ recraftv4 เอกสารผู้ผลิตระบุผลราสเตอร์ 1K เป็น WebP แบบไม่สูญเสียข้อมูลหรือ PNG จัตุรัส 1024 × 1024 พิกเซล, 16:9 คือ 1344 × 768 และ 2:3 คือ 832 × 1280 อัตราส่วนอื่นที่รองรับมีขนาดของตน V4 Pro เป็นรุ่นราสเตอร์ 2K แยก ขณะที่ V4 Vector กับ Pro Vector ให้ SVG แก้ไขได้ เลือกรุ่น V4 ที่เจาะจงให้ตรงชิ้นงานที่ตั้งใจ แทนรวมคุณสมบัติผลต่างกันเหล่านี้

คู่มือผู้ผลิตแยกพรอมป์ต์ตีความสั้นจากทิศทางสร้างสรรค์มีโครงสร้าง วลีสั้นเปิดโอกาสให้สำรวจรูปทรง อารมณ์ และกรอบภาพ บรีฟมีโครงสร้างระบุตัวแบบ สถานที่ ท่า วัสดุ องค์ประกอบรอง แสง และลำดับภาพได้ สำหรับภาพประกอบเล่าเรื่อง บรรยายคนขี่จักรยานข้ามสะพานเล็ก รูปทรงลดทอนเด่น สีอุ่นหม่น และการเคลื่อนซ้ายไปขวาชัด การเลือกเนื้อหาและองค์ประกอบเช่นนี้นำไปทำได้มากกว่ารายการคำคุณศัพท์สไตล์ไม่เกี่ยวข้องยาว ๆ

ขอบเขต V4 รวมภาพประกอบ ภาพมีมิติ และภาพสมจริง คู่มือแนะนำบรรยายตรรกะการวาดสำหรับภาพประกอบ และวัสดุ แสง กล้อง และความลึกสำหรับภาพดู 3D อย่างหลังยังเป็นภาพราสเตอร์แทน mesh แก้ไขได้ สำหรับแนวคิดโปสเตอร์หรือบรรจุภัณฑ์ ระบุคำหลัก ตำแหน่ง และความสัมพันธ์ระหว่างภาพกับตัวพิมพ์ ผู้ผลิตเน้นข้อความสั้นและกลางอ่านได้ ให้ตรวจถ้อยคำกับการจัดจริงในภาพที่ส่งคืนก่อนใช้

การสร้างรองรับพรอมป์ต์สูงสุด 10,000 อักขระ seed สุ่ม ผลหนึ่งถึงหกภาพ สีที่ต้องการและสีพื้นหลังที่ต้องการ สามารถใช้สไตล์กำหนดเองที่เข้ากันได้หรือภาพอ้างอิงเป็นตัวเลือกเพื่อชี้นำแนวทางภาพผ่านการจับคู่แบบ flexible หรือ precise ได้ เลือกภาพอ้างอิงสะอาดหรือชุดที่เป็นโลกภาพเดียว แล้วให้พรอมป์ต์บรรยายตัวแบบกับฉากใหม่ ไม่รับประกันสีจากภาพอ้างอิงสู่ผลตรง จึงระบุชุดสีที่ต้องการชัดและเทียบผล สำหรับการสร้างแบบอ้างอิงสไตล์ ใช้ภาพ PNG, JPG หรือ WebP หนึ่งถึงสิบภาพ รวมไม่เกิน 64 MB และแต่ละภาพต่ำกว่า 20 MB แต่ละภาพต้องมีด้านสั้นอย่างน้อย 256 พิกเซล ด้านยาวไม่เกิน 4,096 พิกเซล และความละเอียดไม่เกิน 16 เมกะพิกเซล ใช้ภาพอ้างอิงเหล่านี้หรือสไตล์ที่บันทึกซึ่งเข้ากันได้อย่างใดอย่างหนึ่ง แทนใช้ทั้งสอง

image-to-image ตามเอกสารรวมภาพเดิมกับพรอมป์ต์ โดย strength ตั้งแต่ 0 ถึง 1 กำหนดว่าผลใหม่ออกห่างต้นฉบับเท่าใด การทำงานนั้นไม่รับตัวควบคุมสไตล์ V4 เอกสารสร้างปัจจุบันยังไม่รวมชื่อสไตล์ที่คัดสรร negative\_prompt, text\_layout, artistic\_level และ no\_text เตรียมคำบรรยายเชิงบวกของผลที่ต้องการและประเมินชิ้นงานในองค์ประกอบเป้าหมาย V4 มาตรฐานให้การตีความออกแบบราสเตอร์ที่ตรงประเด็น พร้อมรุ่น รูปแบบ และขนาดผลเฉพาะ สำหรับ image-to-image ให้ส่ง PNG, JPG, WebP หรือ SVG ต่ำกว่า 20 MB ไม่เกิน 16 เมกะพิกเซล โดยทั้งสองด้านอยู่ระหว่าง 256 ถึง 4,096 พิกเซล

**Ailoot Ultra · รูปภาพ** `POST /v1/images/generations` `recraft/recraft-v4`

[`recraft/recraft-v4`](https://ailoot.ai/models/th/#m=recraft%2Frecraft-v4&route=Ultra&caller=recraft%2Frecraft-v4&fmt=images)

Recraft /`recraft/recraft-v4`

### เริ่มต้น

Recraft V4 สร้างภาพราสเตอร์ 1K โดยเน้นองค์ประกอบ ความสัมพันธ์สี และทิศทางสร้างสรรค์ละเอียด ครอบคลุมภาพประกอบ ฉากถ่ายสมจริง และแนวคิดออกแบบกราฟิก มีข้อมูลเข้าสไตล์ตามต้องการและเวิร์กโฟลว์ image-to-image แยก

อินพุตที่รองรับ

ข้อความ · รูปภาพ

ผลลัพธ์

รูปภาพ

### ใช้งานได้ใน Ailoot · อินพุตและเมธอด

**Ailoot Ultra · รูปภาพ** `POST /v1/images/generations`

ขาเข้า

`text`, `image`

ขาออก

`image`

รูปแบบเอาต์พุต

ไฟล์ภาพ

| ฟิลด์ | ประเภท | ข้อกำหนด | ค่าและข้อจำกัด | ค่าเริ่มต้น |
| --- | --- | --- | --- | --- |
| ฟิลด์`model` | ประเภท`string` | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด recraft/recraft-v4 | ค่าเริ่มต้น— |
| ฟิลด์`prompt` | ประเภท`string` | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด ความยาวขั้นต่ำ: 1 | ค่าเริ่มต้น— |
| ฟิลด์`n` | ประเภท`integer` | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขั้นต่ำ: 1 สูงสุด: 6 | ค่าเริ่มต้น— |
| ฟิลด์`aspect_ratio` | ประเภท`string` | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด 1:1, 4:3, 3:4, 16:9, 9:16, auto | ค่าเริ่มต้น— |
| ฟิลด์`input_references` | ประเภท`array` | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด จำนวนรายการขั้นต่ำ: 0 จำนวนรายการสูงสุด: 1 | ค่าเริ่มต้น— |

ชุดผสมของสื่ออินพุต

**สร้างภาพจากข้อความ** · จำเป็น: prompt

**reference\_guided\_image** · จำเป็น: prompt, actual image reference

พารามิเตอร์และวงจรการทำงานของเมธอด

| พารามิเตอร์ | ข้อกำหนด |
| --- | --- |
| พารามิเตอร์`content_type` | ข้อกำหนดapplication/json |
| พารามิเตอร์`required` | ข้อกำหนดmodel, prompt |
| พารามิเตอร์`material_types` | ข้อกำหนดtext, image |
| พารามิเตอร์`optional_controls` | ข้อกำหนดn, aspect\_ratio, input\_references |
| พารามิเตอร์`n` | ข้อกำหนด{"minimum":1,"maximum":6} |
| พารามิเตอร์`reference_images` | ข้อกำหนด{"minimum":0,"maximum":1,"source":"เนื้อหาจริงที่ลูกค้าให้มา"} |
| พารามิเตอร์`provider_specific_options` | ข้อกำหนดใช้เฉพาะ style/controls/text\_layout ในรายการอนุญาตของเอนด์พอยต์ที่บันทึกไว้ตรงตามที่กำหนด ห้ามเดารูปแบบข้อมูล |

ชื่ออื่นของเมธอด: `/v1/images`

วงจรการทำงาน: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · ค่า task\_id ที่ส่งกลับมาจริง หรือระเบียนในคลังสื่อ

`GET /v1/media/assets/{asset_id}/content`

`GET /v1/media/assets`

`GET /v1/media/assets/{asset_id}`

ตัวอย่างที่ใช้เฉพาะพรอมป์ต์คงโครงสร้าง ImageGenerationRequest ทางการไว้

เก็บภาพทุกภาพที่ส่งกลับและการตอบกลับทั้งหมด จำนวนผลลัพธ์ยึดตามจำนวนจริง ไม่ใช่ค่า n ที่ขอ

### ราคา

##### วิธีคำนวณค่าบริการสุดท้าย

อัตราที่แสดงใช้ประมาณการค่าใช้จ่ายก่อนการสร้างผลลัพธ์ ยอดเรียกเก็บสุดท้ายคำนวณจากค่าใช้จ่ายที่บันทึกไว้สำหรับการสร้างผลลัพธ์ครั้งเดิม ระยะเวลาของผลลัพธ์ที่วัดได้และปริมาณที่คาดการณ์ไว้ไม่ใช่ปริมาณสุดท้ายที่ใช้คิดค่าบริการ

ข้อมูลอัตราราคาไม่ได้เพิ่มตัวเลือกคำขอ พารามิเตอร์ที่รองรับระบุไว้สำหรับเมธอดที่เลือก

โหมดรวดเร็ว

ไม่ได้ระบุ เมื่อเลือกโหมดรวดเร็ว

โหมดยืดหยุ่น

ไม่ได้ระบุ เมื่อเลือกโหมด flex

ระดับการใช้เหตุผลสูงสุด

ไม่ได้ระบุ เมื่อใช้การปรับตามค่าเริ่มต้น (default) สำหรับระดับการใช้เหตุผลสูงสุด

#### อัตราประมาณการเพื่อเปรียบเทียบ

#### ราคาตามการตั้งค่า

เทียบค่าบริการแต่ละรายการกับเงื่อนไขที่แสดง เลือกใช้อัตราเดียวสำหรับแต่ละชุดการตั้งค่าที่เป็นตัวเลือกทดแทนกัน

| การตั้งค่า | ตารางอัตราค่าบริการ | ปริมาณคาดการณ์ | หน่วยคิดค่าบริการ | ค่าบริการ |
| --- | --- | --- | --- | --- |
| การตั้งค่าอัตราค่าบริการโทเคนพื้นฐาน | ตารางอัตราค่าบริการอัตราพื้นฐาน | ปริมาณคาดการณ์— | หน่วยคิดค่าบริการ— | ค่าบริการ ขาเข้า · โทเค็นอินพุต · ประมาณการเพื่อเปรียบเทียบเท่านั้น **—** / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต · ประมาณการเพื่อเปรียบเทียบเท่านั้น **—** / 1K โทเค็น ขาเข้า · การอ่านแคช · ประมาณการเพื่อเปรียบเทียบเท่านั้น **—** / 1K โทเค็น ขาเข้า · การเขียนแคช · ประมาณการเพื่อเปรียบเทียบเท่านั้น **—** / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง · ประมาณการเพื่อเปรียบเทียบเท่านั้น **—** / 1K โทเค็น |
| การตั้งค่าUltra | ตารางอัตราค่าบริการ— | ปริมาณคาดการณ์— | หน่วยคิดค่าบริการต่อภาพเอาต์พุต | ค่าบริการ ขาออก · ภาพขาออก · ประมาณการเพื่อเปรียบเทียบเท่านั้น **$0.08** ต่อภาพเอาต์พุต |
| การตั้งค่าต้นทุนการสร้างโดยประมาณ | ตารางอัตราค่าบริการ— | ปริมาณคาดการณ์ค่าประมาณสำหรับการสร้างหนึ่งครั้ง | หน่วยคิดค่าบริการ— | ค่าบริการ ขาออก · ค่าใช้จ่ายในการสร้างโดยประมาณ · ประมาณการเพื่อเปรียบเทียบเท่านั้น **$0.08** ประมาณการก่อนสร้าง ค่าประมาณนี้ไม่ใช่ค่าใช้จ่ายเพิ่มเติมหรืออัตราคงที่สำหรับการสร้างผลลัพธ์ที่เสร็จสมบูรณ์แล้ว |

Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย [วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →](https://ailoot.ai/docs/th/billing/reserve/)

#### รายละเอียดอัตราอ้างอิง

ตารางอัตราอ้างอิงระดับโมเดลไม่เปลี่ยนเมธอดที่เลือก ยอดประมาณการ หรือค่าบริการ การคิดค่าบริการจริงใช้อัตราของเมธอด Ailoot ที่เลือก

การตั้งค่าราคาภาพ

#### ราคาตามการตั้งค่า

| การตั้งค่า | เงื่อนไขคิดค่าบริการ | ค่าบริการ |
| --- | --- | --- |
| การตั้งค่าภาพขาออก | เงื่อนไขคิดค่าบริการไม่ได้ประกาศรูปแบบราคาย่อย | ค่าบริการ ขาออก · ภาพขาออก **$0.08** ต่อภาพ รายการที่เทียบเท่ากันอธิบายยอดเรียกเก็บเดียวกัน ไม่ได้เพิ่มค่าธรรมเนียมครั้งที่สอง |

### ตัวอย่างคำขอ

#### Ailoot Ultra · รูปภาพ

curlPython SDKNode.js SDK

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'recraft/recraft-v4', 'prompt': 'a red panda astronaut floating in space, studio lighting'}

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
```

```python
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")

request={'model': 'recraft/recraft-v4', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
```

```js
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "recraft/recraft-v4", "prompt": "a red panda astronaut floating in space, studio lighting"};
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
  const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
  if(!encoded && uri.startsWith("data:image/")) {
    const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
    encoded=uri.slice(comma+1);
  }
  if(encoded) {
    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
    raw=Buffer.from(encoded,"base64");
  } else if(uri) {
    const u=new URL(uri,"https://api.ailoot.ai");
    if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
    const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
    const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
    if(!response.ok) throw new Error("Image content download failed: "+response.status);
    raw=Buffer.from(await response.arrayBuffer());
  } else throw new Error("Image has neither bytes nor URL");
  if(!raw.length) throw new Error("Empty image result");
  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
  writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");
```

### รับและบันทึกผลลัพธ์

#### Ailoot Ultra · รูปภาพ

ดาวน์โหลดภาพที่ส่งกลับมาทุกภาพ หรือบันทึกเนื้อหา Base64 ของภาพนั้น

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### เก็บผลลัพธ์ที่เสร็จสมบูรณ์ทั้งหมด

บันทึกภาพที่สร้างเสร็จทุกภาพ โดยดึงภาพจากทุก URL ที่ส่งกลับมา หรือถอดรหัสเนื้อหา Base64

เก็บข้อมูลทุกรายการและการใช้งานทั้งหมด จัดเก็บภาพจริงที่ส่งกลับทุกภาพให้เป็นของคุณ ห้ามแต่ง URL หรือ ID

##### เมื่อต้องตรวจสอบการตอบกลับต้นฉบับ

หากผลลัพธ์การสร้างหรือแก้ไขภาพต้องได้รับการตรวจสอบ ให้เก็บ operation\_id/X-Client-Request-ID เดิมและข้อมูลผลลัพธ์ที่ส่งกลับมาไว้ กู้คืนผลลัพธ์ที่มีอยู่และเป็นของตนเองผ่านคลังสื่อโดยใช้ค่า task\_id หรือ asset\_id จริง ห้ามส่งคำขอสร้าง/แก้ไขซ้ำ หรือสร้าง URL สำหรับตรวจสอบสถานะเป็นระยะจาก operation\_id

ฟิลด์การตอบกลับ

| ฟิลด์ | ประเภท |
| --- | --- |
| ฟิลด์`created` | ประเภทinteger |
| ฟิลด์`data[].url` | ประเภทstring |
| ฟิลด์`data[].b64_json` | ประเภทbase64 string |
| ฟิลด์`usage` | ประเภทobject |

ข้อผิดพลาดและขั้นตอนถัดไป

| การตอบกลับ | เงื่อนไข | ขั้นตอนถัดไป |
| --- | --- | --- |
| การตอบกลับ400 · `invalid_request_error` | เงื่อนไขฟิลด์จำเป็น รูปแบบการแทนข้อมูล หรือค่าพารามิเตอร์ไม่ถูกต้อง | ขั้นตอนถัดไปแก้ฟิลด์ที่ระบุก่อนส่งคำขอสร้างครั้งใหม่ |
| การตอบกลับ`server_error` | เงื่อนไขการตอบกลับที่ได้รับระบุว่าต้องตรวจสอบการดำเนินการหรือผลลัพธ์ | ขั้นตอนถัดไปเก็บ ID การดำเนินการ/งานที่ส่งกลับมาแต่เดิม ส่วนหัวของคำขอ และการตอบกลับไว้ แล้วอ่านข้อมูลการดำเนินการเดิมนั้นต่อด้วยวิธีที่รองรับ ห้ามส่งคำขอสร้างซ้ำ |

### ชื่ออื่น

#### ชื่ออื่นของโมเดล

**Ailoot Ultra** [`recraft/recraft-v4`](https://ailoot.ai/models/th/#m=recraft%2Frecraft-v4&route=Ultra&caller=recraft%2Frecraft-v4&fmt=images)

#### ชื่อพาธเมธอดอื่น

`/v1/images`

#### ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล

[`recraft/recraft-v4`](https://ailoot.ai/models/th/#m=recraft%2Frecraft-v4&route=Ultra&caller=recraft%2Frecraft-v4&fmt=images)

FAQ · Recraft: Recraft V4

มีอินพุตและผลลัพธ์ใดบ้าง?

`POST /v1/images/generations` · `recraft/recraft-v4`: `text`, `image` → `image`

คำขอใช้ฟิลด์ใดบ้าง?

`POST /v1/images/generations` · `recraft/recraft-v4`: `model`, `prompt`, `n`, `aspect_ratio`, `input_references`

มีข้อจำกัดใดบ้าง?

`POST /v1/images/generations` · `recraft/recraft-v4`: `n.minimum`: `1`; `n.maximum`: `6`

เชื่อม Ailoot กับ Claude Code, OpenCode, Hermes หรือแอปของคุณ

## บริษัทและพอร์ตโฟลิโอโครงการของบริษัท

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.

## ซื้อโทเคนพร้อมส่วนลด

ส่วนลดสมาชิกสำหรับงานประจำ โค้ดโปรโมชั่นลดซื้อโทเคนสูงสุด 50%

สมาชิก

เลือกแพ็กเกจมีส่วนลดสำหรับคำขอประจำ

โค้ดลดสูงสุด 50%

ใส่โค้ดขณะซื้อ ราคาคำนวณใหม่ตามโปรโมชั่นที่ใช้

รายจ่ายในประวัติ

เก็บโมเดล โทเคน และยอดสำหรับทุกคำขอ

[เลือกสมาชิก](https://ailoot.ai/docs/th/billing/subscriptions/) · [ดูราคาโมเดล](https://ailoot.ai/models/th/)

## เชื่อม API กับผลิตภัณฑ์ ที่คุณขาย

SaaS แอป และบอต ตามข้อเสนอและสัญญาอนุญาต Ailoot หากขายต่อให้ขอใบอนุญาตรีเซลเลอร์

แอปเชิงพาณิชย์

ใส่การสร้างข้อความ ภาพ วิดีโอ และเสียงในฟีเจอร์เสียเงินของบริการคุณ

ใบอนุญาตรีเซลเลอร์

ส่งคำอธิบายโครงการและรูปแบบการเข้าถึง ขอเงื่อนไขใช้และขายต่อเป็นลายลักษณ์อักษร

เอกสารบนเว็บไซต์

อ่านข้อเสนอ สัญญาอนุญาต และนโยบายประมวลผลข้อมูลก่อนเชื่อมได้

[ขอใบอนุญาตขายต่อ](mailto:support@ailoot.ai) · [ข้อเสนอและสัญญาอนุญาต](https://ailoot.ai/legal/offer?lang=th)

## Ailoot · บริษัทและพอร์ตโฟลิโอโครงการของบริษัท





Ailoot อาศัยประสบการณ์การดำเนินงานที่สั่งสม ฐานลูกค้าขนาดใหญ่ บริการที่เสถียร และการติดตาม KPI อย่างต่อเนื่อง





บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.





Ailoot นำประสบการณ์การดำเนินงานนี้มาใช้เพื่อให้เข้าถึงฟังก์ชัน AI ผ่าน API ในผลิตภัณฑ์ของลูกค้า เอเจนต์ แอปพลิเคชัน และระบบอัตโนมัติ
