models

ByteDance Seed: Seedream 5.0 Flash

Markdown · JSON

ByteDance Seed: Seedream 5.0 Flash

Seedream 5.0 Flash สร้างและแก้ไขภาพจากข้อความกับภาพอ้างอิง พร้อมการเปลี่ยนด้วยแนวทางเชิงพื้นที่ ข้อความภาพหลายภาษา และการแยกชั้น ByteDance Seed วาง Flash สำหรับสร้างเร็วขึ้น โดยแยกจากรุ่น Pro ที่เน้นคุณภาพ

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

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

รุ่นสร้างภาพที่เร็วกว่า

Seedream 5.0 Flash เป็นโมเดลสร้างและแก้ภาพของ ByteDance Seed สำหรับเวิร์กโฟลว์ที่ให้ความสำคัญกับความเร็ว คู่มือ Pro/Flash ผู้ผลิตอธิบายทั้งข้อความสู่ภาพและภาพสู่ภาพอ้างอิงเดี่ยวหรือหลายภาพ แยกการสร้างเร็วกว่าของ Flash จากลำดับความสำคัญคุณภาพภาพสูงกว่าของ Pro โดยไม่กำหนดเวลาตอบตายตัวสำหรับทุกบรีฟ

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

สร้างจากบรีฟและภาพอ้างอิง

ระบุภาพที่ตั้งใจ ตัวแบบหลัก องค์ประกอบ และแนวภาพ แล้วกำหนดสิ่งที่แต่ละภาพอ้างอิงควบคุม สำหรับภาพผลิตภัณฑ์ แยกภาพกำหนดวัตถุจากภาพให้ชุดสีหรือวัสดุพื้นผิว “คงเส้นรูปวัตถุกับมุมมองจากภาพแรก ใช้ภาพที่สองเฉพาะชุดสีพื้นหลังหม่น” ให้ภาพอ้างอิงมีบทบาทต่างกัน

ผู้ผลิตแนะนำพรอมป์ต์กระชับไม่เกิน 300 อักขระจีนหรือ 600 คำอังกฤษ นั่นเป็นแนวทางเตรียม ไม่ใช่ขีดจำกัดตายตัวสำหรับข้อความอินพุตที่ระบุ เรียงข้อกำหนดสำคัญที่มีผลต่อภาพไว้ก่อน รวมถ้อยคำตรงที่ต้องปรากฏ อัตราส่วนต้องการ และรายละเอียดต้องไม่เปลี่ยน ตรวจภาพเสร็จกับรายการนั้นแทนพึ่งเพียงลักษณะโดยรวม

แก้ไขด้วยแนวทางเชิงพื้นที่

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

คู่มือแก้พิกัดผู้ผลิตใช้แท็ก <point> และ <bbox> กับพิกัด normalized 0–999 เทียบภาพเข้าที่ระบุ จุดมี x กับ y กล่องมีพิกัดซ้ายบนกับขวาล่าง ระบุหมายเลขภาพและวัตถุเป้าหมาย โดยเฉพาะเมื่อกล่องมีหลายตัวแบบ สำหรับแก้ข้ามภาพ ให้แยกวัตถุที่จะนำจากภาพหนึ่งกับบริเวณปลายทางในอีกภาพ

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

แยกองค์ประกอบเป็นชั้นแก้ไขได้

การแยกชั้นเป็นโหมดแยก รับภาพเดียวพอดีและคืนภาพฐานพร้อมสูงสุด 16 ชั้นอิสระ แต่ละชั้นเป็น PNG มี alpha พรอมป์ต์ระบุองค์ประกอบที่จะแยกได้ เช่น ชื่อ ตัวแบบหลัก และของตกแต่ง หากไม่มีพรอมป์ต์แยกชั้น โมเดลระบุองค์ประกอบหลักอัตโนมัติ

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

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

องค์ประกอบหลายภาษา

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

ไฟล์อ้างอิงและข้อกำหนดผล

การสร้างภาพรับภาพอ้างอิงสูงสุด 10 ภาพเป็น JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC หรือ HEIF แต่ละภาพสูงสุด 30 MB ทั้งสองด้านมากกว่า 14 พิกเซล รวม 196–36,000,000 พิกเซล และอัตราส่วน 1:16 ถึง 16:1 ส่วนแยกชั้นต้องใช้ JPEG หรือ PNG หนึ่งภาพ 262,144–36,000,000 พิกเซล สูงสุด 30 MB ภายในช่วงอัตราส่วนเดียวกัน

การสร้างมีระดับผล 1K, 1.5K และ 2K โดยเริ่มต้น 2K หรือขนาดระบุที่รวม 921,600–4,624,220 พิกเซลและอัตราส่วน 1:16 ถึง 16:1 ข้อจำกัดทั้งสองใช้กับขนาดกำหนดเอง ผลชั้นใช้ 1K, 1.5K, 2K หรือ auto โดยค่าเริ่มต้น auto ภาพฐานและแต่ละชั้นคงอัตราส่วนต้นฉบับของตน

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

Ailoot Ultra · รูปภาพ POST /v1/images/generations bytedance-seed/seedream-5-0-flash

bytedance-seed/seedream-5-0-flash

ByteDance Seed /bytedance-seed/seedream-5-0-flash

เริ่มต้น

สร้างภาพที่เสร็จสมบูรณ์หนึ่งภาพจากบรีฟที่เป็นข้อความ

  • สร้างภาพนิ่งของสินค้า
  • สำรวจแนวคิดด้านภาพ
  • สร้างภาพประกอบของฉาก
อินพุตที่รองรับ
ข้อความ
ผลลัพธ์
รูปภาพ

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

Ailoot Ultra · รูปภาพ POST /v1/images/generations
ขาเข้า
text
ขาออก
image
รูปแบบเอาต์พุต
ไฟล์ภาพ
จำนวนเอาต์พุต
1 เอาต์พุต
ฟิลด์ประเภทข้อกำหนดค่าและข้อจำกัดค่าเริ่มต้น
ฟิลด์modelประเภทstringข้อกำหนดจำเป็นค่าและข้อจำกัด
bytedance-seed/seedream-5-0-flash
ค่าเริ่มต้น—
ฟิลด์promptประเภทstringข้อกำหนดจำเป็นค่าและข้อจำกัด
ความยาวขั้นต่ำ: 1
เงื่อนไข: พรอมป์ต์ UTF8 ที่ไม่ว่าง ไม่แต่งขีดจำกัดอักขระที่ใช้กับทุกโมเดลของผู้ผลิต
ค่าเริ่มต้น—
ฟิลด์nประเภทintegerข้อกำหนดไม่บังคับค่าและข้อจำกัด
1
ค่าเริ่มต้น1
ฟิลด์response_formatประเภทstringข้อกำหนดไม่บังคับค่าและข้อจำกัด
url, b64_json
ค่าเริ่มต้น—
ฟิลด์streamประเภทbooleanข้อกำหนดไม่บังคับค่าและข้อจำกัด
false
ค่าเริ่มต้นfalse
ชุดผสมของสื่ออินพุต

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

พารามิเตอร์และวงจรการทำงานของเมธอด
พารามิเตอร์ข้อกำหนด
พารามิเตอร์content_typeข้อกำหนดapplication/json
พารามิเตอร์requiredข้อกำหนดmodel, prompt
พารามิเตอร์material_typesข้อกำหนดtext
พารามิเตอร์optionalข้อกำหนดn, response_format, stream
พารามิเตอร์nข้อกำหนด1
พารามิเตอร์streamข้อกำหนดfalse
พารามิเตอร์response_formatข้อกำหนดurl, b64_json
พารามิเตอร์reference_imagesข้อกำหนดfalse
พารามิเตอร์editข้อกำหนดfalse
พารามิเตอร์output_format_optionalข้อกำหนด
พารามิเตอร์resolution_controlข้อกำหนดnull
พารามิเตอร์aspect_ratio_controlข้อกำหนดnull
พารามิเตอร์other_fieldsข้อกำหนดปฏิเสธ ยกเว้นการกำหนดเส้นทางภายในของผู้ให้บริการที่ตรงตามรายการตรึงไว้

วงจรการทำงาน: 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}

สร้างภาพหนึ่งภาพจากพรอมป์ต์

บันทึกข้อมูลทุกรายการ url/b64_json เป็นรูปแบบเข้ารหัสผลลัพธ์

ราคา

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

การตั้งค่าเงื่อนไขคิดค่าบริการค่าบริการ
การตั้งค่าภาพขาออกเงื่อนไขคิดค่าบริการไม่ได้ประกาศรูปแบบราคาย่อยค่าบริการ
ขาออก · ภาพขาออก $0.036 ต่อภาพ
การตั้งค่าภาพขาเข้าเงื่อนไขคิดค่าบริการไม่ได้ประกาศรูปแบบราคาย่อยค่าบริการ
ขาเข้า · ภาพขาเข้า $0 ต่อภาพ

รายการที่เทียบเท่ากันอธิบายยอดเรียกเก็บเดียวกัน ไม่ได้เพิ่มค่าธรรมเนียมครั้งที่สอง

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

Ailoot Ultra · รูปภาพ

curlPython SDKNode.js SDK
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=json.loads('{"model": "bytedance-seed/seedream-5-0-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"}')

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
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': 'bytedance-seed/seedream-5-0-flash', 'prompt': 'A lighthouse on a cliff, watercolor', 'n': 1, 'response_format': 'b64_json'}
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])
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": "bytedance-seed/seedream-5-0-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"};
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

บันทึกข้อมูลทุกรายการ ถอดรหัส b64_json แต่ละรายการ หรือดึงข้อมูลจาก URL ที่ลงนามแล้วและส่งกลับมาทุกรายการ เลือกนามสกุลไฟล์จาก MIME/ไบต์จริง

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

หากผลลัพธ์การสร้างหรือแก้ไขภาพต้องได้รับการตรวจสอบ ให้เก็บ 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 bytedance-seed/seedream-5-0-flash

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

ใช้พาธเมธอดที่แสดงด้านบน

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

bytedance-seed/seedream-5-0-flash

FAQ · ByteDance Seed: Seedream 5.0 Flash
มีอินพุตและผลลัพธ์ใดบ้าง?

POST /v1/images/generations · bytedance-seed/seedream-5-0-flash: text → image

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

POST /v1/images/generations · bytedance-seed/seedream-5-0-flash: model, prompt, n, response_format, stream

รายละเอียดเพิ่มเติม

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

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

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

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

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

สมาชิก
เลือกแพ็กเกจมีส่วนลดสำหรับคำขอประจำ
โค้ดลดสูงสุด 50%
ใส่โค้ดขณะซื้อ ราคาคำนวณใหม่ตามโปรโมชั่นที่ใช้
รายจ่ายในประวัติ
เก็บโมเดล โทเคน และยอดสำหรับทุกคำขอ

เลือกสมาชิก · ดูราคาโมเดล

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

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

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

ขอใบอนุญาตขายต่อ · ข้อเสนอและสัญญาอนุญาต