Referensi API

Dokumentasi API Aitubo

Ikhtisar

Dokumen ini menjelaskan cara menggunakan kode untuk mencapai hasil yang sama seperti di web. Setelah dokumen hanya akan memberikan API alamat relatif, Anda perlu menggabungkannya dengan nama domain utama: https://api.aitubo.ai.

Misalnya, jika Anda ingin membuat pekerjaan, Anda perlu memanggil https://api.aitubo.ai/api/job/create

Dokumen ini dibagi menjadi dua bagian, yang pertama untuk contoh dan yang kedua untuk API tertentu.

Contoh

Bagian ini menjelaskan cara membuat pekerjaan dan mendapatkan pekerjaan. API kami untuk membuat pekerjaan menyediakan tiga fungsi inti: Text2Image, Image2Image, and ControlNet(ControlNet adalah struktur jaringan saraf untuk mengontrol model difusi dengan menambahkan kondisi tambahan).

Terlepas dari fitur mana dari tiga fitur yang Anda gunakan, pertama-tama Anda harus mendapatkan daftar model yang kami dukung, dan kemudian ketika Anda membuat pekerjaan, Anda perlu memasukkan id bidang informasi model

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

Hasilnya seperti ini:

{
    "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"
}

Kemudian, Anda akan mendapatkan respons seperti ini:

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

Anda dapat memeriksa status pembuatan tugas dengan melakukan polling. Setiap foto membutuhkan waktu sekitar 2 detik untuk selesai, jadi harap kendalikan frekuensi kueri Anda. Akhirnya, Anda akan mendapatkan seperti ini:

{
  "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

Untuk menggunakan Image2Image, Anda dapat memanggil kami Unggah Gambar API untuk mendapatkan alamat relatif OSS gambar, atau Anda dapat memberikan gambar dengan alamat absolut.

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
}'

Anda dapat memeriksa status pembuatan tugas dengan melakukan polling seperti Text2Image.

3. ControlNet

Sebelum menggunakan fungsi ControlNet, Anda harus terlebih dahulu memanggil API /job/model/list untuk mendapatkan kategori ControlNet yang sesuai:

{
    "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"
            },
            ...
    }
}

Kemudian panggil 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"
}'

Anda juga dapat menyampaikan modelId bidang(Pastikan model mendukung 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"
}'

API

1. Unggah Gambar

Info Dasar

Jalur: /api/job/upload-image

Metode: POST

Parameter Permintaan

Header

NamaNilaiWajibContoh
Content-Typemultipart/form-dataya
AuthorizationBearer {YOUR KEY}yaBearer 37f333a2d5f811edb248acde48001122

Tubuh

NamaNilaiWajib
imagefileya

Data Respons

NamaTipeWajibDefaultCatatanLainnya
codeintegeryacode=0 -> berhasil
infostringtidakinfo kesalahan
dataobjecttidak
├─pathstringtidakjalur gambar AliYun OSS

2. Buat Pekerjaan

Info Dasar

Jalur: /api/job/create

Metode: POST

Parameter Permintaan

Header

NamaNilaiWajibContoh
Content-Typeapplication/jsonya
AuthorizationBearer {YOUR KEY}yaBearer 37f333a2d5f811edb248acde48001122

Tubuh

NamaTipeWajibDefaultCatatanLainnya
imagePathstringtidakjalur gambar yang diunggah (url/oss)
maskImagestringtidakEditor AI harus menyampaikan bidang ini
modelIdstringtidakjika controlModel null, bidang ini harus diisi
promptstringyaprompt
negativePromptstringtidakprompt negatif
controlModelstringtidakcanny / scribble / openpose / mlsd / hed / seg / depth / normal
controlStrengthnumbertidak1[0, 2]
controlFilterstringtidakpreprecessor of control image, for example: openpose / openpose_full / openpose_hand / openpose_face / openpose_faceonly
strengthnumbertidak0.8[0.1, 1]
widthintegertidak512
heightintegertidak512
stepsintegertidak3010 <= value <= 50
guidanceScaleintegertidak7.50 < value <= 20
countintegertidak4jumlah gambar yang dihasilkan

Data Respons

NamaTipeWajibDefaultCatatanLainnya
codenumberya0 -> berhasil;1000 -> tidak cukup kredit
infostringtidakinfo kesalahan
dataobjectya
├─idstringyaID pekerjaan
├─creditintegeryatotal kredit pengguna
├─consumedCreditintegeryakredit pekerjaan yang dikonsumsi

3. Dapatkan Pekerjaan

Info Dasar

Jalur: /api/job/get

Metode: GET

Parameter Permintaan

Kueri

NamaWajibContohCatatan
idya642ba091592245d79a645b39ID pekerjaan

Response Data

NamaTypeWajibDefaultCatatanOthers
codeintegerya0 -> berhasil
infostringtidakinfo kesalahan
dataobjectya
├─idstringyaID pekerjaan
├─createAtstringyawaktu pembuatan pekerjaan
├─statusintegeryastatus pekerjaan. 0 -> belum siap; 1 -> memproses; 2 -> berhasil; 3 -> gagal
├─resultobjecttidak
├─├─infostringtidak
├─├─dataobjecttidak
├─├─├─imagesstring []tidakJalur relatif gambar yang dihasilkan (perlu digabungkan dengan bidang domain)item Type:string
├─├─├─artIdsstring []tidakGambar yang sesuai dengan artIDitem Type:string
├─├─├─domainstringtidakoss url, Anda perlu menggabungkan jalur relatif gambar
├─argsobjecttidak
├─├─promptstringtidak
├─├─negativePromptstringtidak
├─├─modelstringtidak
├─├─strengthintegertidak
├─├─widthintegertidak
├─├─heightintegertidak

4. Daftar Model ControlNet

Info Dasar

Jalur: /api/job/models

Metode: GET

Data Respons

NamaTipeWajibDefaultCatatanLainnya
codeintegerya0 -> berhasil
infostringtidakinfo kesalahan
dataobjectya
├domainstringyanama domain oss gambar, perlu menggabungkan bidang ikon di bawah ini
├modelsobject []yaitem Type:object
idstringyaid model, Nilai parameter controlModel adalah ID ini saat membuat pekerjaan
namestringyaNama Inggris
cnamestringyaNama Cina
iconstringyacontoh gambar. jalur relatif oss, Anda perlu menggabungkan domain

5. Daftar Pekerjaan Histroy

Info Dasar

Jalur: /api/job/list

Metode: GET

Parameter Permintaan

Header

NamaNilaiWajibContohCatatan
Content-Typeapplication/jsonya
AuthorizationBearer {YOUR KEY}yaBearer 37f333a2d5f811edb248acde48001122

Query

NamaWajibContohCatatan
pageIndexyamulai dari 1
pageSizeya

Data Respons

NamaTipeWajibDefaultCatatanLainnya
codeintegerya0 -> berhasil
infostringtidakinfo kesalahan
dataobjectya
├─jobsobject []yaarray pekerjaanitem Type:object
├─├─idstringyaID pekerjaan
├─├─createdAtstringya
├─├─argsobjectya
├─├─├─promptstringya
├─├─├─negativePromptstringya
├─├─├─strengthintegerya
├─├─├─widthintegerya
├─├─├─heightintegerya
├─├─├─countintegerya
├─├─├─stepsintegerya
├─├─artsobject []yaarray gambar yang dihasilkanitem Type:object
├─├─├─idstringyaid gambar yang dihasilkan
├─├─├─imagesobject []yaarray gambar variasiitem Type:object
├─├─├─├─specstringyatipe varian. o -> asal; 2x/3x/4x -> gambar skala 2/3/4
├─├─├─├─pathstringyajalur gambar. domain yang akan digabungkan
├─├─├─├─sizeintegeryaukuran gambar. satuan: Byte
├─domainstringyadomain gambar oss

6. Daftar Model

Info Dasar

Jalur: /api/model/list

Metode: GET

Parameter Permintaan

Header

NamaNilaiWajibContohCatatan
AuthorizationBearer {YOUR KEY}yaBearer 37f333a2d5f811edb248acde48001122

Kueri

NamaWajibContohCatatan
pageIndexyamulai dari 1
pageSizeya
typetidakplatform/community

Data Respons

NamaTipeWajibDefaultCatatanLainnya
codeintegerya0 -> berhasil
infostringtidakinfo kesalahan
dataobjectya
├─domainstringyadomain oss
├─totalintegeryajumlah total model yang difilter untuk penomoran halaman
├─modelsobject []yaitem Type:object
├─├─idstringyaID model
├─├─namestringyanama model
├─├─usernamestringyamodel’s author name
├─├─descstringyadeskripsi model
├─├─coverstringyasampul model
├─├─isFavouritebooleanyaapakah pengguna menyukai model
├─├─controlNetbooleanyaapakah model mendukung ControlNet

7. Resolusi Super

Info Dasar

Jalur: /api/job/upscale

Metode: POST

Parameter Permintaan

Header

NamaNilaiWajibContohCatatan
Content-Typeapplication/jsonya
AuthorizationBearer {YOUR KEY}yaBearer 37f333a2d5f811edb248acde48001122

Tubuh

NamaTipeWajibDefaultCatatanLainnya
modelstringtidaknama model peningkatan skala
RealESRGAN _x4plus / RealESRGAN_x4plus_anime_6B
imagePathstringyajalur gambar. domain yang akan digabungkan
upscaleFactorintegerya2 <= faktor <= 4
beautybooleantidakapakah akan mengaktifkan peningkatan wajah
artIdstringyaPerlu artID gambar titik super

Data Respons

NamaTipeWajibDefaultCatatanLainnya
codenumberya0 -> berhasil;1000 -> tidak cukup kredit
infostringtidakinfo kesalahan
dataobjectya
├─idstringtidakid pekerjaan peningkatan skala
├─creditintegeryatotal kredit pengguna
├─consumedCreditintegeryakredit pekerjaan yang dikonsumsi

8. Segmentasi Gambar

Info Dasar

Jalur: /api/art/segment

Metode: POST

Parameter Permintaan

Header

NamaNilaiWajibContohCatatan
Content-Typeapplication/jsonya
AuthorizationBearer {YOUR KEY}yaBearer 37f333a2d5f811edb248acde48001122

Tubuh

NamaTipeWajibDefaultCatatanLainnya
imagestringyajalur gambar. jalur absolut/relatif

Data Respons

NamaTipeWajibDefaultCatatanLainnya
codenumberya0 -> berhasil
infostringtidakinfo kesalahan
dataobjectya
├─imagestringyaURL gambar setelah segmentasi

9. DapatkanInfoPengguna

Info Dasar

Jalur: /api/user/profile

Metode: GET

Parameter Permintaan

Header

NamaNilaiWajibContohCatatan
Content-Typeapplication/jsonya
AuthorizationBearer {YOUR KEY}yaBearer 37f333a2d5f811edb248acde48001122

Data Respons

NamaTipeWajibDefaultCatatanLainnya
codenumberya0 -> berhasil
infostringtidakinfo kesalahan
dataobjectya
├─namestringya
├─emailstringya
├─avatarstringya
├─phonestringya
├─creditintegeryatotal kredit pengguna
├─displayNSFWbooleanya
├─discordbooleanya

10. Buat Headshot

10.1 Daftar Templat

Info Dasar

Jalur: api/transform/list

Metode: GET

Data Respons

NamaTipeWajibDefaultCatatanLainnya
codenumberya0 -> berhasil
infostringtidakinfo kesalahan
dataobjectya
├─domainstringyanama domain oss gambar, perlu menggabungkan bidang ikon di bawah ini
├─tagsstring[]yatag templat
├─transformobjectya
├─├─tagobject[]ya
├─├─├─idstringya
├─├─├─namestringya
├─├─├─imagestringyagambar asli
├─├─├─artstringyagambar hasil
├─├─├─costnumberyakonsumsi kredit
├─├─├─probooleanyaadalah pro
├─├─├─tagstringyatag

10.2 Buat Headshot

Info Dasar

Jalur: api/transform/create-headshot

Metode: POST

Header

NamaNilaiWajibContohCatatan
Content-Typeapplication/jsonya
AuthorizationBearer {YOUR KEY}yaBearer 37f333a2d5f811edb248acde48001122

Tubuh

NamaTipeWajibDefaultCatatanLainnya
imagePathstringyajalur gambar yang dikembalikan saat dipanggil api unggah-gambar
transformIdstringya
widthintegertidak
heightintegertidak
keepHairbooleantidakfalse
keepPosebooleantidaktrue

Data Respons

NamaTipeWajibDefaultCatatanLainnya
codenumberya0 -> berhasil;1000 -> tidak cukup kredit
infostringtidakinfo kesalahan
dataobjectya
├─idstringyaID pekerjaan
├─creditintegeryatotal kredit pengguna
├─consumedCreditintegeryakredit pekerjaan yang dikonsumsi

Layanan Komersial-toB/API

[email protected]