API Referansı

Aitubo'nun API Dokümantasyonu

Genel Bakış

Bu belge, kodun web'dekiyle aynı sonuçları elde etmek için nasıl kullanılacağını açıklamaktadır. Belgeden sonra yalnızca göreli adres API'si verilecektir, ana etki alanı adını bir araya getirmeniz gerekir: https://api.aitubo.ai.

Örneğin, bir iş oluşturmak istiyorsanız, şunu çağırmanız gerekir: https://api.aitubo.ai/api/job/create

Belge iki bölüme ayrılmıştır, ilki örnekler, ikincisi ise belirli API'ler içindir.

Örnekler

Bu bölüm, bir işin nasıl oluşturulacağını ve bir işin nasıl elde edileceğini açıklamaktadır. İş oluşturmak için API'miz üç temel işlev sağlar: Text2Image, Image2Image, and ControlNet(ControlNet, ek koşullar ekleyerek difüzyon modellerini kontrol etmek için bir sinir ağı yapısıdır).

Hangi üç özellikten birini kullanırsanız kullanın, önce desteklediğimiz modellerin bir listesini almanız gerekir ve ardından işi oluşturduğunuzda, şunu geçirmeniz gerekir: id model bilgilerinin alanı

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

Sonuç buna benzer:

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

Ardından, buna benzer bir yanıt alacaksınız:

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

Anket yaparak görev oluşturma durumunu kontrol edebilirsiniz. Her fotoğrafın tamamlanması yaklaşık 2 saniye sürer, bu nedenle lütfen sorgu sıklığınızı kontrol edin. Son olarak, buna benzer bir şey elde edeceksiniz:

{
  "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'i kullanmak için, bizim Görsel Yükle bir görüntünün OSS göreli adresini almak için API'mizi çağırabilir veya mutlak bir adrese sahip bir görüntü verebilirsiniz.

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 gibi, görev oluşturma durumunu anket yaparak kontrol edebilirsiniz.

3. ControlNet

ControlNet işlevini kullanmadan önce, ilgili ControlNet kategorilerini elde etmek için önce /job/model/list API'sini çağırmalısınız:

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

Ardından /job/create API'sini çağırın:

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

Ayrıca şunu da geçebilirsiniz modelId alan(Modelin ControlNet'i desteklediğinden emin olun):

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. Görsel Yükle

Temel Bilgiler

Yol: /api/job/upload-image

Yöntem: POST

İstek Parametreleri

Başlıklar

AdDeğerGerekliÖrnek
Content-Typemultipart/form-dataevet
AuthorizationBearer {YOUR KEY}evetBearer 37f333a2d5f811edb248acde48001122

Gövde

AdDeğerGerekli
imagedosyaevet

Yanıt Verisi

AdTipGerekliVarsayılanNotDiğerleri
codeintegerevetcode=0 -> başarılı
infostringhayırhata bilgisi
dataobjecthayır
├─pathstringhayırAliYun OSS'nin görüntü yolu

2. İş Oluştur

Temel Bilgiler

Yol: /api/job/create

Yöntem: POST

İstek Parametreleri

Başlıklar

AdDeğerGerekliÖrnek
Content-Typeapplication/jsonevet
AuthorizationBearer {YOUR KEY}evetBearer 37f333a2d5f811edb248acde48001122

Gövde

AdTipGerekliVarsayılanNotDiğerleri
imagePathstringhayıryüklenen görüntünün yolu (url/oss her ikisi de)
maskImagestringhayırAI Editor bu alanı geçmeli
modelIdstringhayırcontrolModel null ise, bu alan doldurulmalıdır
promptstringevetistek
negativePromptstringhayırolumsuz istek
controlModelstringhayırcanny / scribble / openpose / mlsd / hed / seg / depth / normal
controlStrengthnumberhayır1[0, 2]
controlFilterstringhayırkontrol görüntüsünün ön işleyicisi, örneğin: openpose / openpose_full / openpose_hand / openpose_face / openpose_faceonly
strengthnumberhayır0.8[0.1, 1]
widthintegerhayır512
heightintegerhayır512
stepsintegerhayır3010 <= değer <= 50
guidanceScaleintegerhayır7.50 < değer <= 20
countintegerhayır4oluşturulan görüntü sayısı

Yanıt Verisi

AdTipGerekliVarsayılanNotDiğerleri
codenumberevet0 -> başarılı;1000 -> yeterli kredi yok
infostringhayırhata bilgisi
dataobjectevet
├─idstringevetiş ID'si
├─creditintegerevetkullanıcının toplam kredisi
├─consumedCreditintegerevetişin harcanan kredisi

3. İşi Al

Temel Bilgiler

Yol: /api/job/get

Yöntem: GET

İstek Parametreleri

Sorgu

AdGerekliÖrnekNot
idevet642ba091592245d79a645b39iş ID'si

Response Data

AdTypeGerekliDefaultNotOthers
codeintegerevet0 -> başarılı
infostringhayırhata bilgisi
dataobjectevet
├─idstringevetiş ID'si
├─createAtstringevetişin oluşturulma zamanı
├─statusintegerevetişin durumu. 0 -> hazır değil; 1 -> işleniyor; 2 -> başarılı; 3 -> başarısız
├─resultobjecthayır
├─├─infostringhayır
├─├─dataobjecthayır
├─├─├─imagesstring []hayırGörüntünün ortaya çıkan göreli yolu (etki alanı alanı ile birleştirilmesi gerekir)item Type:string
├─├─├─artIdsstring []hayırResmin karşılık gelen artID'siitem Type:string
├─├─├─domainstringhayıross url'si, resmin göreli yolunu birleştirmeniz gerekir
├─argsobjecthayır
├─├─promptstringhayır
├─├─negativePromptstringhayır
├─├─modelstringhayır
├─├─strengthintegerhayır
├─├─widthintegerhayır
├─├─heightintegerhayır

4. ControlNet Modelini Listele

Temel Bilgiler

Yol: /api/job/models

Yöntem: GET

Yanıt Verisi

AdTipGerekliVarsayılanNotDiğerleri
codeintegerevet0 -> başarılı
infostringhayırhata bilgisi
dataobjectevet
├domainstringevetgörüntü oss etki alanı adı, aşağıdaki simge alanını birleştirmeniz gerekir
├modelsobject []evetitem Type:object
idstringevetmodel kimliği, bir iş oluştururken controlModel parametre değeri bu ID'dir
namestringevetİngilizce adı
cnamestringevetÇince adı
iconstringevetörnek resim. oss göreli yolu, etki alanlarını birleştirmeniz gerekir

5. Geçmiş İşi Listele

Temel Bilgiler

Yol: /api/job/list

Yöntem: GET

İstek Parametreleri

Başlıklar

AdDeğerGerekliÖrnekNot
Content-Typeapplication/jsonevet
AuthorizationBearer {YOUR KEY}evetBearer 37f333a2d5f811edb248acde48001122

Query

AdGerekliÖrnekNot
pageIndexevet1'den başlayın
pageSizeevet

Yanıt Verisi

AdTipGerekliVarsayılanNotDiğerleri
codeintegerevet0 -> başarılı
infostringhayırhata bilgisi
dataobjectevet
├─jobsobject []evetiş dizisiitem Type:object
├─├─idstringevetiş ID'si
├─├─createdAtstringevet
├─├─argsobjectevet
├─├─├─promptstringevet
├─├─├─negativePromptstringevet
├─├─├─strengthintegerevet
├─├─├─widthintegerevet
├─├─├─heightintegerevet
├─├─├─countintegerevet
├─├─├─stepsintegerevet
├─├─artsobject []evetoluşturulan görüntü dizisiitem Type:object
├─├─├─idstringevetoluşturulan görüntünün kimliği
├─├─├─imagesobject []evetçeşitlilik resmi dizisiitem Type:object
├─├─├─├─specstringevetvaryant türü. o -> orijinal; 2x/3x/4x -> 2/3/4 ölçekli görüntü
├─├─├─├─pathstringevetgörüntü yolu. birleştirilecek etki alanı
├─├─├─├─sizeintegerevetgörüntü boyutu. birim: Bayt
├─domainstringevetoss görüntü etki alanı

6. Modeli Listele

Temel Bilgiler

Yol: /api/model/list

Yöntem: GET

İstek Parametreleri

Başlıklar

AdDeğerGerekliÖrnekNot
AuthorizationBearer {YOUR KEY}evetBearer 37f333a2d5f811edb248acde48001122

Sorgu

AdGerekliÖrnekNot
pageIndexevet1'den başlayın
pageSizeevet
typehayırplatform/community

Yanıt Verisi

AdTipGerekliVarsayılanNotDiğerleri
codeintegerevet0 -> başarılı
infostringhayırhata bilgisi
dataobjectevet
├─domainstringevetoss etki alanı
├─totalintegerevetsayfalandırma için filtrelenen toplam model sayısı
├─modelsobject []evetitem Type:object
├─├─idstringevetmodel ID'si
├─├─namestringevetmodel adı
├─├─usernamestringevetmodel’s author name
├─├─descstringevetmodel açıklaması
├─├─coverstringevetmodel kapağı
├─├─isFavouritebooleanevetkullanıcının modeli favorilere ekleyip eklemediği
├─├─controlNetbooleanevetmodelin ControlNet'i destekleyip desteklemediği

7. Süper Çözünürlük

Temel Bilgiler

Yol: /api/job/upscale

Yöntem: POST

İstek Parametreleri

Başlıklar

AdDeğerGerekliÖrnekNot
Content-Typeapplication/jsonevet
AuthorizationBearer {YOUR KEY}evetBearer 37f333a2d5f811edb248acde48001122

Gövde

AdTipGerekliVarsayılanNotDiğerleri
modelstringhayırölçeklendirme model adı
RealESRGAN _x4plus / RealESRGAN_x4plus_anime_6B
imagePathstringevetgörüntü yolu. birleştirilecek etki alanı
upscaleFactorintegerevet2 <= faktör <= 4
beautybooleanhayıryüz geliştirme özelliğinin etkinleştirilip etkinleştirilmeyeceği
artIdstringevetSüper nokta resmi artID'sine ihtiyacınız var

Yanıt Verisi

AdTipGerekliVarsayılanNotDiğerleri
codenumberevet0 -> başarılı;1000 -> yeterli kredi yok
infostringhayırhata bilgisi
dataobjectevet
├─idstringhayırölçeklendirme iş kimliği
├─creditintegerevetkullanıcının toplam kredisi
├─consumedCreditintegerevetişin harcanan kredisi

8. Görüntü Bölümlendirme

Temel Bilgiler

Yol: /api/art/segment

Yöntem: POST

İstek Parametreleri

Başlıklar

AdDeğerGerekliÖrnekNot
Content-Typeapplication/jsonevet
AuthorizationBearer {YOUR KEY}evetBearer 37f333a2d5f811edb248acde48001122

Gövde

AdTipGerekliVarsayılanNotDiğerleri
imagestringevetgörüntü yolu. mutlak/göreceli yol

Yanıt Verisi

AdTipGerekliVarsayılanNotDiğerleri
codenumberevet0 -> başarılı
infostringhayırhata bilgisi
dataobjectevet
├─imagestringevetBölümlendirmeden sonra görüntünün URL'si

9. Kullanıcı Bilgilerini Al

Temel Bilgiler

Yol: /api/user/profile

Yöntem: GET

İstek Parametreleri

Başlıklar

AdDeğerGerekliÖrnekNot
Content-Typeapplication/jsonevet
AuthorizationBearer {YOUR KEY}evetBearer 37f333a2d5f811edb248acde48001122

Yanıt Verisi

AdTipGerekliVarsayılanNotDiğerleri
codenumberevet0 -> başarılı
infostringhayırhata bilgisi
dataobjectevet
├─namestringevet
├─emailstringevet
├─avatarstringevet
├─phonestringevet
├─creditintegerevetkullanıcının toplam kredisi
├─displayNSFWbooleanevet
├─discordbooleanevet

10. Vesikalık Oluştur

10.1 Şablonları Listele

Temel Bilgiler

Yol: api/transform/list

Yöntem: GET

Yanıt Verisi

AdTipGerekliVarsayılanNotDiğerleri
codenumberevet0 -> başarılı
infostringhayırhata bilgisi
dataobjectevet
├─domainstringevetgörüntü oss etki alanı adı, aşağıdaki simge alanını birleştirmeniz gerekir
├─tagsstring[]evetşablon etiketi
├─transformobjectevet
├─├─tagobject[]evet
├─├─├─idstringevet
├─├─├─namestringevet
├─├─├─imagestringevetorijinal görüntü
├─├─├─artstringevetsonuç görüntüsü
├─├─├─costnumberevetkredi tüketimi
├─├─├─probooleanevetpro mu
├─├─├─tagstringevetetiket

10.2 Vesikalık Oluştur

Temel Bilgiler

Yol: api/transform/create-headshot

Yöntem: POST

Başlıklar

AdDeğerGerekliÖrnekNot
Content-Typeapplication/jsonevet
AuthorizationBearer {YOUR KEY}evetBearer 37f333a2d5f811edb248acde48001122

Gövde

AdTipGerekliVarsayılanNotDiğerleri
imagePathstringevetçağrıldığında döndürülen görüntü yolu görüntü yükleme api'si
transformIdstringevet
widthintegerhayır
heightintegerhayır
keepHairbooleanhayırfalse
keepPosebooleanhayırtrue

Yanıt Verisi

AdTipGerekliVarsayılanNotDiğerleri
codenumberevet0 -> başarılı;1000 -> yeterli kredi yok
infostringhayırhata bilgisi
dataobjectevet
├─idstringevetiş ID'si
├─creditintegerevetkullanıcının toplam kredisi
├─consumedCreditintegerevetişin harcanan kredisi

Ticari Hizmet-toB/API

[email protected]