ข้อมูลอ้างอิง API

เอกสารประกอบ API ของ Aitubo

ภาพรวม

เอกสารนี้อธิบายวิธีการใช้โค้ดเพื่อให้ได้ผลลัพธ์เช่นเดียวกับบนเว็บ หลังจากเอกสารจะให้เฉพาะ API ที่อยู่สัมพัทธ์ คุณต้องรวมเข้ากับชื่อโดเมนหลัก: https://api.aitubo.ai.

ตัวอย่างเช่น หากคุณต้องการสร้างงาน คุณต้องเรียก https://api.aitubo.ai/api/job/create

เอกสารแบ่งออกเป็นสองส่วน ส่วนแรกสำหรับตัวอย่างและส่วนที่สองสำหรับ API เฉพาะ

ตัวอย่าง

ส่วนนี้อธิบายวิธีการสร้างงานและรับงาน API ของเราสำหรับการสร้างงานมีสามฟังก์ชันหลัก: Text2Image, Image2Image, and ControlNet(ControlNet เป็นโครงสร้างเครือข่ายประสาทเพื่อควบคุมแบบจำลองการแพร่กระจายโดยการเพิ่มเงื่อนไขพิเศษ)

ไม่ว่าคุณจะใช้คุณสมบัติใดในสามอย่าง ก่อนอื่นคุณต้องได้รับรายการรุ่นที่เราสนับสนุน จากนั้นเมื่อคุณสร้างงาน คุณต้องส่ง id ฟิลด์ของข้อมูลรุ่น

curl --request GET \
  --url 'https://api.aitubo.ai/api/model/list?type=platform' \
  --header 'Authorization: Bearer ced695cfd83811eda5e286850d1dc848'

ผลลัพธ์เป็นเช่นนี้:

{
    "code": 0,
    "data": {
        "domain": "https://file.aitubo.ai/",
        "total": 10,
        "models": [
            {
                "id": "6426f9c60ca4651b98b91a6d",
                "name": "ConceptCanvas",
                "username": "Aitubo",
                "desc": "A model that creates concept scenes with a European thick paint or CG style.",
                "cover": "assets/model/6426f9c60ca4651b98b91a6d/cover.jpg",
                "isFavourite": false,
                "controlNet": false
            },
            {
                "id": "642b977d2f2842537c09fe41",
                "name": "DreamShaper",
                "username": "Aitubo",
                "desc": "A model that can generate multiple styles of scenes, characters, and game assets.",
                "cover": "assets/model/642b977d2f2842537c09fe41/cover.jpg",
                "isFavourite": false,
                "controlNet": true
            },
            ...
        ]
    }
}

1. Text2Image

curl --request POST \
  --url https://api.aitubo.ai/api/job/create \
  --header 'Authorization: Bearer ced695cfd83811eda5e286850d1dc848' \
  --header 'content-type: application/json' \
  --data '{
    "prompt": "A cat sleeps on the plane",
    "modelId": "642b977d2f2842537c09fe41"
}

จากนั้น คุณจะได้รับการตอบสนองเช่นนี้:

{
  "code": 0,
  "data": {
    "consumedCredit": 40,
    "credit": 120,
    "id": "64351e4d567bcd86773dc841"
  }
}

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

{
  "code": 0,
  "data": {
    "id": "64351e4d567bcd86773dc841",
    "args": {
      "prompt": "A cat sleeps on the plane",
      "negativePrompt": "lowres, bad anatomy, cropped, worst quality, low quality",
      "strength": 0.8,
      "width": 512,
      "height": 512,
      "count": 4,
      "steps": 30,
      "modelId": "642b977d2f2842537c09fe41"
    },
    "result": {
      "info": "Warning: some images may contain NSFW content",
      "data": {
        "images": [
          "images/art/640076a4661aa1c0f81ba2d7/cgqhsljj5mf00080001g.png",
          "images/art/640076a4661aa1c0f81ba2d7/cgqhsljj5mf000800020.png",
          "images/art/640076a4661aa1c0f81ba2d7/cgqhsljj5mf00080002g.png",
          "images/art/640076a4661aa1c0f81ba2d7/cgqhsljj5mf000800030.png"
        ],
        "artIds": [
          "64351e56567bcd86773dc842",
          "64351e56567bcd86773dc843",
          "64351e56567bcd86773dc844",
          "64351e56567bcd86773dc845"
        ],
        "domain": "https://file.aitubo.ai/"
      }
    },
    "status": 2,
    "createAt": "2023-04-11T08:46:05.55Z"
  }
}

2. Image2Image

หากต้องการใช้ Image2Image คุณสามารถเรียก อัปโหลดรูปภาพ API ของเราเพื่อรับที่อยู่สัมพัทธ์ OSS ของรูปภาพ หรือคุณสามารถให้รูปภาพที่มีที่อยู่สัมบูรณ์ได้

curl --request POST \
  --url https://api.aitubo.ai/api/job/create \
  --header 'Authorization: Bearer ced695cfd83811eda5e286850d1dc848' \
  --header 'content-type: application/json' \
  --data '{
    "imagePath": "images/tmp/cgqi1jntuq4000800040.png",
    "modelId": "642b977d2f2842537c09fe41",
    "prompt": "scene",
    "guidanceScale": 0.7
}'

คุณสามารถตรวจสอบสถานะการสร้างงานได้โดยการสำรวจเช่นเดียวกับ Text2Image

3. ControlNet

ก่อนใช้ฟังก์ชัน ControlNet คุณต้องเรียก API /job/model/list เพื่อรับหมวดหมู่ ControlNet ที่เกี่ยวข้อง:

{
    "code": 0,
    "data": {
        "domain": "https://file.aitubo.ai/",
        "models": [
            {
                "id": "canny",
                "name": "canny",
                "icon": "assets/template/control_canny.jpg"
            },
            {
                "id": "scribble",
                "name": "scribble",
                "icon": "assets/template/control_scribble.jpg"
            },
            ...
    }
}

จากนั้นเรียก API /job/create:

curl --request POST \
  --url https://api.aitubo.ai/api/job/create \
  --header 'Authorization: Bearer ced695cfd83811eda5e286850d1dc848' \
  --header 'content-type: application/json' \
  --data '{    "imagePath": "https://ichef.bbci.co.uk/news/976/cpsprodpb/17638/production/_124800859_gettyimages-817514614.jpg.webp",
    "controlModel": "canny",
    "prompt": "a little dog"
}'

คุณยังสามารถส่ง modelId ฟิลด์(ตรวจสอบให้แน่ใจว่ารุ่นรองรับ ControlNet):

curl --request POST \
  --url https://api.aitubo.ai/api/job/create \
  --header 'Authorization: Bearer ced695cfd83811eda5e286850d1dc848' \
  --header 'content-type: application/json' \
  --data '{
    "imagePath": "https://ichef.bbci.co.uk/news/976/cpsprodpb/17638/production/_124800859_gettyimages-817514614.jpg.webp",
    "controlModel": "canny",
    "prompt": "a little dog",
    "modelId": "642b977d2f2842537c09fe41"
}'

APIS

1. อัปโหลดรูปภาพ

ข้อมูลพื้นฐาน

เส้นทาง: /api/job/upload-image

วิธีการ: POST

พารามิเตอร์คำขอ

ส่วนหัว

ชื่อค่าจำเป็นตัวอย่าง
Content-Typemultipart/form-dataใช่
AuthorizationBearer {YOUR KEY}ใช่Bearer 37f333a2d5f811edb248acde48001122

เนื้อหา

ชื่อค่าจำเป็น
imageไฟล์ใช่

ข้อมูลการตอบสนอง

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
codeintegerใช่code=0 -> สำเร็จ
infostringไม่ข้อมูลข้อผิดพลาด
dataobjectไม่
├─pathstringไม่เส้นทางรูปภาพของ AliYun OSS

2. สร้างงาน

ข้อมูลพื้นฐาน

เส้นทาง: /api/job/create

วิธีการ: POST

พารามิเตอร์คำขอ

ส่วนหัว

ชื่อค่าจำเป็นตัวอย่าง
Content-Typeapplication/jsonใช่
AuthorizationBearer {YOUR KEY}ใช่Bearer 37f333a2d5f811edb248acde48001122

เนื้อหา

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
imagePathstringไม่เส้นทางของรูปภาพที่อัปโหลด (url/oss ทั้งคู่)
maskImagestringไม่AI Editor ควรส่งฟิลด์นี้
modelIdstringไม่หาก controlModel เป็น null ควรกรอกฟิลด์นี้
promptstringใช่พร้อมท์
negativePromptstringไม่พร้อมท์เชิงลบ
controlModelstringไม่canny / scribble / openpose / mlsd / hed / seg / depth / normal
controlStrengthnumberไม่1[0, 2]
controlFilterstringไม่preprecessor of control image, for example: openpose / openpose_full / openpose_hand / openpose_face / openpose_faceonly
strengthnumberไม่0.8[0.1, 1]
widthintegerไม่512
heightintegerไม่512
stepsintegerไม่3010 <= value <= 50
guidanceScaleintegerไม่7.50 < value <= 20
countintegerไม่4จำนวนรูปภาพที่สร้างขึ้น

ข้อมูลการตอบสนอง

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
codenumberใช่0 -> สำเร็จ;1000 -> เครดิตไม่เพียงพอ
infostringไม่ข้อมูลข้อผิดพลาด
dataobjectใช่
├─idstringใช่ID งาน
├─creditintegerใช่เครดิตรวมของผู้ใช้
├─consumedCreditintegerใช่เครดิตที่ใช้ไปของงาน

3. รับงาน

ข้อมูลพื้นฐาน

เส้นทาง: /api/job/get

วิธีการ: GET

พารามิเตอร์คำขอ

แบบสอบถาม

ชื่อจำเป็นตัวอย่างหมายเหตุ
idใช่642ba091592245d79a645b39ID งาน

Response Data

ชื่อTypeจำเป็นDefaultหมายเหตุOthers
codeintegerใช่0 -> สำเร็จ
infostringไม่ข้อมูลข้อผิดพลาด
dataobjectใช่
├─idstringใช่ID งาน
├─createAtstringใช่เวลาที่สร้างขึ้นของงาน
├─statusintegerใช่สถานะของงาน 0 -> ไม่พร้อม; 1 -> กำลังดำเนินการ; 2 -> สำเร็จ; 3 -> ล้มเหลว
├─resultobjectไม่
├─├─infostringไม่
├─├─dataobjectไม่
├─├─├─imagesstring []ไม่เส้นทางสัมพัทธ์ของรูปภาพ (ต้องเชื่อมต่อกับฟิลด์โดเมน)item Type:string
├─├─├─artIdsstring []ไม่Picture corresponding artIDitem Type:string
├─├─├─domainstringไม่oss url, you need to concatenate the relative path of the picture
├─argsobjectไม่
├─├─promptstringไม่
├─├─negativePromptstringไม่
├─├─modelstringไม่
├─├─strengthintegerไม่
├─├─widthintegerไม่
├─├─heightintegerไม่

4. List ControlNet Model

ข้อมูลพื้นฐาน

เส้นทาง: /api/job/models

วิธีการ: GET

ข้อมูลการตอบสนอง

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
codeintegerใช่0 -> สำเร็จ
infostringไม่ข้อมูลข้อผิดพลาด
dataobjectใช่
├domainstringใช่ชื่อโดเมน oss ของรูปภาพ ต้องเชื่อมต่อกับฟิลด์ไอคอนด้านล่าง
├modelsobject []ใช่item Type:object
idstringใช่model id, The controlModel parameter value is this ID when creating a job
namestringใช่ชื่อภาษาอังกฤษ
cnamestringใช่ชื่อภาษาจีน
iconstringใช่รูปภาพตัวอย่าง เส้นทางสัมพัทธ์ oss คุณต้องเชื่อมต่อโดเมน

5. List Histroy Job

ข้อมูลพื้นฐาน

เส้นทาง: /api/job/list

วิธีการ: GET

พารามิเตอร์คำขอ

ส่วนหัว

ชื่อค่าจำเป็นตัวอย่างหมายเหตุ
Content-Typeapplication/jsonใช่
AuthorizationBearer {YOUR KEY}ใช่Bearer 37f333a2d5f811edb248acde48001122

Query

ชื่อจำเป็นตัวอย่างหมายเหตุ
pageIndexใช่เริ่มจาก 1
pageSizeใช่

ข้อมูลการตอบสนอง

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
codeintegerใช่0 -> สำเร็จ
infostringไม่ข้อมูลข้อผิดพลาด
dataobjectใช่
├─jobsobject []ใช่อาร์เรย์งานitem Type:object
├─├─idstringใช่ID งาน
├─├─createdAtstringใช่
├─├─argsobjectใช่
├─├─├─promptstringใช่
├─├─├─negativePromptstringใช่
├─├─├─strengthintegerใช่
├─├─├─widthintegerใช่
├─├─├─heightintegerใช่
├─├─├─countintegerใช่
├─├─├─stepsintegerใช่
├─├─artsobject []ใช่อาร์เรย์ของรูปภาพที่สร้างขึ้นitem Type:object
├─├─├─idstringใช่id ของรูปภาพที่สร้างขึ้น
├─├─├─imagesobject []ใช่อาร์เรย์รูปภาพหลากหลายitem Type:object
├─├─├─├─specstringใช่variant type. o -> origin; 2x/3x/4x -> 2/3/4 scale image
├─├─├─├─pathstringใช่เส้นทางรูปภาพ โดเมนที่จะเชื่อมต่อ
├─├─├─├─sizeintegerใช่ขนาดรูปภาพ หน่วย: ไบต์
├─domainstringใช่โดเมนรูปภาพ oss

6. List Model

ข้อมูลพื้นฐาน

เส้นทาง: /api/model/list

วิธีการ: GET

พารามิเตอร์คำขอ

ส่วนหัว

ชื่อค่าจำเป็นตัวอย่างหมายเหตุ
AuthorizationBearer {YOUR KEY}ใช่Bearer 37f333a2d5f811edb248acde48001122

แบบสอบถาม

ชื่อจำเป็นตัวอย่างหมายเหตุ
pageIndexใช่เริ่มจาก 1
pageSizeใช่
typeไม่platform/community

ข้อมูลการตอบสนอง

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
codeintegerใช่0 -> สำเร็จ
infostringไม่ข้อมูลข้อผิดพลาด
dataobjectใช่
├─domainstringใช่โดเมน oss
├─totalintegerใช่จำนวนรุ่นทั้งหมดที่กรองสำหรับการแบ่งหน้า
├─modelsobject []ใช่item Type:object
├─├─idstringใช่ID รุ่น
├─├─namestringใช่ชื่อรุ่น
├─├─usernamestringใช่model’s author name
├─├─descstringใช่คำอธิบายรุ่น
├─├─coverstringใช่ปกของรุ่น
├─├─isFavouritebooleanใช่ผู้ใช้ชื่นชอบรุ่นหรือไม่
├─├─controlNetbooleanใช่รุ่นรองรับ ControlNet หรือไม่

7. ความละเอียดสูง

ข้อมูลพื้นฐาน

เส้นทาง: /api/job/upscale

วิธีการ: POST

พารามิเตอร์คำขอ

ส่วนหัว

ชื่อค่าจำเป็นตัวอย่างหมายเหตุ
Content-Typeapplication/jsonใช่
AuthorizationBearer {YOUR KEY}ใช่Bearer 37f333a2d5f811edb248acde48001122

เนื้อหา

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
modelstringไม่ชื่อรุ่น upscale
RealESRGAN _x4plus / RealESRGAN_x4plus_anime_6B
imagePathstringใช่เส้นทางรูปภาพ โดเมนที่จะเชื่อมต่อ
upscaleFactorintegerใช่2 <= factor <= 4
beautybooleanไม่เปิดใช้งานการปรับปรุงใบหน้าหรือไม่
artIdstringใช่ต้องการ artID รูปภาพจุดสุดยอด

ข้อมูลการตอบสนอง

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
codenumberใช่0 -> สำเร็จ;1000 -> เครดิตไม่เพียงพอ
infostringไม่ข้อมูลข้อผิดพลาด
dataobjectใช่
├─idstringไม่upscale job id
├─creditintegerใช่เครดิตรวมของผู้ใช้
├─consumedCreditintegerใช่เครดิตที่ใช้ไปของงาน

8. การแบ่งส่วนรูปภาพ

ข้อมูลพื้นฐาน

เส้นทาง: /api/art/segment

วิธีการ: POST

พารามิเตอร์คำขอ

ส่วนหัว

ชื่อค่าจำเป็นตัวอย่างหมายเหตุ
Content-Typeapplication/jsonใช่
AuthorizationBearer {YOUR KEY}ใช่Bearer 37f333a2d5f811edb248acde48001122

เนื้อหา

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
imagestringใช่เส้นทางรูปภาพ เส้นทางสัมบูรณ์/สัมพัทธ์

ข้อมูลการตอบสนอง

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
codenumberใช่0 -> สำเร็จ
infostringไม่ข้อมูลข้อผิดพลาด
dataobjectใช่
├─imagestringใช่URL ของรูปภาพหลังจากการแบ่งส่วน

9. GetUserInfo

ข้อมูลพื้นฐาน

เส้นทาง: /api/user/profile

วิธีการ: GET

พารามิเตอร์คำขอ

ส่วนหัว

ชื่อค่าจำเป็นตัวอย่างหมายเหตุ
Content-Typeapplication/jsonใช่
AuthorizationBearer {YOUR KEY}ใช่Bearer 37f333a2d5f811edb248acde48001122

ข้อมูลการตอบสนอง

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
codenumberใช่0 -> สำเร็จ
infostringไม่ข้อมูลข้อผิดพลาด
dataobjectใช่
├─namestringใช่
├─emailstringใช่
├─avatarstringใช่
├─phonestringใช่
├─creditintegerใช่เครดิตรวมของผู้ใช้
├─displayNSFWbooleanใช่
├─discordbooleanใช่

10. สร้าง Headshot

10.1 List Templates

ข้อมูลพื้นฐาน

เส้นทาง: api/transform/list

วิธีการ: GET

ข้อมูลการตอบสนอง

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
codenumberใช่0 -> สำเร็จ
infostringไม่ข้อมูลข้อผิดพลาด
dataobjectใช่
├─domainstringใช่ชื่อโดเมน oss ของรูปภาพ ต้องเชื่อมต่อกับฟิลด์ไอคอนด้านล่าง
├─tagsstring[]ใช่แท็กเทมเพลต
├─transformobjectใช่
├─├─tagobject[]ใช่
├─├─├─idstringใช่
├─├─├─namestringใช่
├─├─├─imagestringใช่รูปภาพต้นฉบับ
├─├─├─artstringใช่รูปภาพผลลัพธ์
├─├─├─costnumberใช่ใช้เครดิต
├─├─├─probooleanใช่เป็นโปร
├─├─├─tagstringใช่แท็ก

10.2 สร้าง Headshot

ข้อมูลพื้นฐาน

เส้นทาง: api/transform/create-headshot

วิธีการ: POST

ส่วนหัว

ชื่อค่าจำเป็นตัวอย่างหมายเหตุ
Content-Typeapplication/jsonใช่
AuthorizationBearer {YOUR KEY}ใช่Bearer 37f333a2d5f811edb248acde48001122

เนื้อหา

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
imagePathstringใช่เส้นทางรูปภาพที่ส่งคืนเมื่อถูกเรียก upload-image api
transformIdstringใช่
widthintegerไม่
heightintegerไม่
keepHairbooleanไม่false
keepPosebooleanไม่true

ข้อมูลการตอบสนอง

ชื่อประเภทจำเป็นค่าเริ่มต้นหมายเหตุอื่นๆ
codenumberใช่0 -> สำเร็จ;1000 -> เครดิตไม่เพียงพอ
infostringไม่ข้อมูลข้อผิดพลาด
dataobjectใช่
├─idstringใช่ID งาน
├─creditintegerใช่เครดิตรวมของผู้ใช้
├─consumedCreditintegerใช่เครดิตที่ใช้ไปของงาน

Commercial Service-toB/API

[email protected]