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.
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
},
...
]
}
}
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"
}
}
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.
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"
}'
Jalur: /api/job/upload-image
Metode: POST
Header
Nama | Nilai | Wajib | Contoh |
---|---|---|---|
Content-Type | multipart/form-data | ya | |
Authorization | Bearer {YOUR KEY} | ya | Bearer 37f333a2d5f811edb248acde48001122 |
Tubuh
Nama | Nilai | Wajib |
---|---|---|
image | file | ya |
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
code | integer | ya | code=0 -> berhasil | ||
info | string | tidak | info kesalahan | ||
data | object | tidak | |||
├─path | string | tidak | jalur gambar AliYun OSS |
Jalur: /api/job/create
Metode: POST
Header
Nama | Nilai | Wajib | Contoh |
---|---|---|---|
Content-Type | application/json | ya | |
Authorization | Bearer {YOUR KEY} | ya | Bearer 37f333a2d5f811edb248acde48001122 |
Tubuh
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
imagePath | string | tidak | jalur gambar yang diunggah (url/oss) | ||
maskImage | string | tidak | Editor AI harus menyampaikan bidang ini | ||
modelId | string | tidak | jika controlModel null, bidang ini harus diisi | ||
prompt | string | ya | prompt | ||
negativePrompt | string | tidak | prompt negatif | ||
controlModel | string | tidak | canny / scribble / openpose / mlsd / hed / seg / depth / normal | ||
controlStrength | number | tidak | 1 | [0, 2] | |
controlFilter | string | tidak | preprecessor of control image, for example: openpose / openpose_full / openpose_hand / openpose_face / openpose_faceonly | ||
strength | number | tidak | 0.8 | [0.1, 1] | |
width | integer | tidak | 512 | ||
height | integer | tidak | 512 | ||
steps | integer | tidak | 30 | 10 <= value <= 50 | |
guidanceScale | integer | tidak | 7.5 | 0 < value <= 20 | |
count | integer | tidak | 4 | jumlah gambar yang dihasilkan |
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
code | number | ya | 0 -> berhasil;1000 -> tidak cukup kredit | ||
info | string | tidak | info kesalahan | ||
data | object | ya | |||
├─id | string | ya | ID pekerjaan | ||
├─credit | integer | ya | total kredit pengguna | ||
├─consumedCredit | integer | ya | kredit pekerjaan yang dikonsumsi |
Jalur: /api/job/get
Metode: GET
Kueri
Nama | Wajib | Contoh | Catatan |
---|---|---|---|
id | ya | 642ba091592245d79a645b39 | ID pekerjaan |
Nama | Type | Wajib | Default | Catatan | Others |
---|---|---|---|---|---|
code | integer | ya | 0 -> berhasil | ||
info | string | tidak | info kesalahan | ||
data | object | ya | |||
├─id | string | ya | ID pekerjaan | ||
├─createAt | string | ya | waktu pembuatan pekerjaan | ||
├─status | integer | ya | status pekerjaan. 0 -> belum siap; 1 -> memproses; 2 -> berhasil; 3 -> gagal | ||
├─result | object | tidak | |||
├─├─info | string | tidak | |||
├─├─data | object | tidak | |||
├─├─├─images | string [] | tidak | Jalur relatif gambar yang dihasilkan (perlu digabungkan dengan bidang domain) | item Type:string | |
├─├─├─artIds | string [] | tidak | Gambar yang sesuai dengan artID | item Type:string | |
├─├─├─domain | string | tidak | oss url, Anda perlu menggabungkan jalur relatif gambar | ||
├─args | object | tidak | |||
├─├─prompt | string | tidak | |||
├─├─negativePrompt | string | tidak | |||
├─├─model | string | tidak | |||
├─├─strength | integer | tidak | |||
├─├─width | integer | tidak | |||
├─├─height | integer | tidak |
Jalur: /api/job/models
Metode: GET
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
code | integer | ya | 0 -> berhasil | ||
info | string | tidak | info kesalahan | ||
data | object | ya | |||
├domain | string | ya | nama domain oss gambar, perlu menggabungkan bidang ikon di bawah ini | ||
├models | object [] | ya | item Type:object | ||
id | string | ya | id model, Nilai parameter controlModel adalah ID ini saat membuat pekerjaan | ||
name | string | ya | Nama Inggris | ||
cname | string | ya | Nama Cina | ||
icon | string | ya | contoh gambar. jalur relatif oss, Anda perlu menggabungkan domain |
Jalur: /api/job/list
Metode: GET
Header
Nama | Nilai | Wajib | Contoh | Catatan |
---|---|---|---|---|
Content-Type | application/json | ya | ||
Authorization | Bearer {YOUR KEY} | ya | Bearer 37f333a2d5f811edb248acde48001122 |
Query
Nama | Wajib | Contoh | Catatan |
---|---|---|---|
pageIndex | ya | mulai dari 1 | |
pageSize | ya |
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
code | integer | ya | 0 -> berhasil | ||
info | string | tidak | info kesalahan | ||
data | object | ya | |||
├─jobs | object [] | ya | array pekerjaan | item Type:object | |
├─├─id | string | ya | ID pekerjaan | ||
├─├─createdAt | string | ya | |||
├─├─args | object | ya | |||
├─├─├─prompt | string | ya | |||
├─├─├─negativePrompt | string | ya | |||
├─├─├─strength | integer | ya | |||
├─├─├─width | integer | ya | |||
├─├─├─height | integer | ya | |||
├─├─├─count | integer | ya | |||
├─├─├─steps | integer | ya | |||
├─├─arts | object [] | ya | array gambar yang dihasilkan | item Type:object | |
├─├─├─id | string | ya | id gambar yang dihasilkan | ||
├─├─├─images | object [] | ya | array gambar variasi | item Type:object | |
├─├─├─├─spec | string | ya | tipe varian. o -> asal; 2x/3x/4x -> gambar skala 2/3/4 | ||
├─├─├─├─path | string | ya | jalur gambar. domain yang akan digabungkan | ||
├─├─├─├─size | integer | ya | ukuran gambar. satuan: Byte | ||
├─domain | string | ya | domain gambar oss |
Jalur: /api/model/list
Metode: GET
Header
Nama | Nilai | Wajib | Contoh | Catatan |
---|---|---|---|---|
Authorization | Bearer {YOUR KEY} | ya | Bearer 37f333a2d5f811edb248acde48001122 |
Kueri
Nama | Wajib | Contoh | Catatan |
---|---|---|---|
pageIndex | ya | mulai dari 1 | |
pageSize | ya | ||
type | tidak | platform/community |
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
code | integer | ya | 0 -> berhasil | ||
info | string | tidak | info kesalahan | ||
data | object | ya | |||
├─domain | string | ya | domain oss | ||
├─total | integer | ya | jumlah total model yang difilter untuk penomoran halaman | ||
├─models | object [] | ya | item Type:object | ||
├─├─id | string | ya | ID model | ||
├─├─name | string | ya | nama model | ||
├─├─username | string | ya | model’s author name | ||
├─├─desc | string | ya | deskripsi model | ||
├─├─cover | string | ya | sampul model | ||
├─├─isFavourite | boolean | ya | apakah pengguna menyukai model | ||
├─├─controlNet | boolean | ya | apakah model mendukung ControlNet |
Jalur: /api/job/upscale
Metode: POST
Header
Nama | Nilai | Wajib | Contoh | Catatan |
---|---|---|---|---|
Content-Type | application/json | ya | ||
Authorization | Bearer {YOUR KEY} | ya | Bearer 37f333a2d5f811edb248acde48001122 |
Tubuh
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
model | string | tidak | nama model peningkatan skala | ||
RealESRGAN _x4plus / RealESRGAN_x4plus_anime_6B | |||||
imagePath | string | ya | jalur gambar. domain yang akan digabungkan | ||
upscaleFactor | integer | ya | 2 <= faktor <= 4 | ||
beauty | boolean | tidak | apakah akan mengaktifkan peningkatan wajah | ||
artId | string | ya | Perlu artID gambar titik super |
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
code | number | ya | 0 -> berhasil;1000 -> tidak cukup kredit | ||
info | string | tidak | info kesalahan | ||
data | object | ya | |||
├─id | string | tidak | id pekerjaan peningkatan skala | ||
├─credit | integer | ya | total kredit pengguna | ||
├─consumedCredit | integer | ya | kredit pekerjaan yang dikonsumsi |
Jalur: /api/art/segment
Metode: POST
Header
Nama | Nilai | Wajib | Contoh | Catatan |
---|---|---|---|---|
Content-Type | application/json | ya | ||
Authorization | Bearer {YOUR KEY} | ya | Bearer 37f333a2d5f811edb248acde48001122 |
Tubuh
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
image | string | ya | jalur gambar. jalur absolut/relatif |
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
code | number | ya | 0 -> berhasil | ||
info | string | tidak | info kesalahan | ||
data | object | ya | |||
├─image | string | ya | URL gambar setelah segmentasi |
Jalur: /api/user/profile
Metode: GET
Header
Nama | Nilai | Wajib | Contoh | Catatan |
---|---|---|---|---|
Content-Type | application/json | ya | ||
Authorization | Bearer {YOUR KEY} | ya | Bearer 37f333a2d5f811edb248acde48001122 |
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
code | number | ya | 0 -> berhasil | ||
info | string | tidak | info kesalahan | ||
data | object | ya | |||
├─name | string | ya | |||
string | ya | ||||
├─avatar | string | ya | |||
├─phone | string | ya | |||
├─credit | integer | ya | total kredit pengguna | ||
├─displayNSFW | boolean | ya | |||
├─discord | boolean | ya |
Jalur: api/transform/list
Metode: GET
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
code | number | ya | 0 -> berhasil | ||
info | string | tidak | info kesalahan | ||
data | object | ya | |||
├─domain | string | ya | nama domain oss gambar, perlu menggabungkan bidang ikon di bawah ini | ||
├─tags | string[] | ya | tag templat | ||
├─transform | object | ya | |||
├─├─tag | object[] | ya | |||
├─├─├─id | string | ya | |||
├─├─├─name | string | ya | |||
├─├─├─image | string | ya | gambar asli | ||
├─├─├─art | string | ya | gambar hasil | ||
├─├─├─cost | number | ya | konsumsi kredit | ||
├─├─├─pro | boolean | ya | adalah pro | ||
├─├─├─tag | string | ya | tag |
Jalur: api/transform/create-headshot
Metode: POST
Header
Nama | Nilai | Wajib | Contoh | Catatan |
---|---|---|---|---|
Content-Type | application/json | ya | ||
Authorization | Bearer {YOUR KEY} | ya | Bearer 37f333a2d5f811edb248acde48001122 |
Tubuh
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
imagePath | string | ya | jalur gambar yang dikembalikan saat dipanggil api unggah-gambar | ||
transformId | string | ya | |||
width | integer | tidak | |||
height | integer | tidak | |||
keepHair | boolean | tidak | false | ||
keepPose | boolean | tidak | true |
Nama | Tipe | Wajib | Default | Catatan | Lainnya |
---|---|---|---|---|---|
code | number | ya | 0 -> berhasil;1000 -> tidak cukup kredit | ||
info | string | tidak | info kesalahan | ||
data | object | ya | |||
├─id | string | ya | ID pekerjaan | ||
├─credit | integer | ya | total kredit pengguna | ||
├─consumedCredit | integer | ya | kredit pekerjaan yang dikonsumsi |