Dokumentacja API

Dokumentacja API Aitubo

Przegląd

Ten dokument opisuje, jak używać kodu, aby osiągnąć te same wyniki, co w sieci. Po dokumencie podany zostanie tylko względny adres API, musisz połączyć się z główną nazwą domeny: https://api.aitubo.ai.

Na przykład, jeśli chcesz utworzyć zadanie, musisz wywołać https://api.aitubo.ai/api/job/create

Dokument podzielony jest na dwie sekcje, pierwsza dla przykładów, a druga dla konkretnych API.

Przykłady

Ta sekcja opisuje, jak utworzyć zadanie i uzyskać zadanie. Nasze API do tworzenia zadań zapewnia trzy podstawowe funkcje: Text2Image, Image2Image, and ControlNet(ControlNet to struktura sieci neuronowej do kontrolowania modeli dyfuzyjnych poprzez dodanie dodatkowych warunków).

Niezależnie od tego, której z trzech funkcji używasz, najpierw musisz uzyskać listę obsługiwanych przez nas modeli, a następnie podczas tworzenia zadania musisz przekazać id pole informacji o modelu

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

Wynik jest mniej więcej taki:

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

Następnie otrzymasz odpowiedź taką jak ta:

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

Możesz sprawdzić status tworzenia zadania przez ankietowanie. Każde zdjęcie zajmuje około 2 sekund, więc kontroluj częstotliwość zapytań. Na koniec otrzymasz coś takiego:

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

Aby użyć Image2Image, możesz wywołać nasze Prześlij obraz API, aby uzyskać względny adres OSS obrazu, lub możesz podać obraz z adresem bezwzględnym.

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

Możesz sprawdzić status tworzenia zadania przez ankietowanie, tak jak w Text2Image.

3. ControlNet

Przed użyciem funkcji ControlNet musisz najpierw wywołać API /job/model/list, aby uzyskać odpowiednie kategorie 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"
            },
            ...
    }
}

Następnie wywołaj 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"
}'

Możesz również przekazać modelId pole(Upewnij się, że model obsługuje 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. Prześlij obraz

Podstawowe informacje

Ścieżka: /api/job/upload-image

Metoda: POST

Parametry żądania

Nagłówki

NazwaWartośćWymaganePrzykład
Content-Typemultipart/form-datatak
AuthorizationBearer {YOUR KEY}takBearer 37f333a2d5f811edb248acde48001122

Treść

NazwaWartośćWymagane
imagepliktak

Dane odpowiedzi

NazwaTypWymaganeDomyślneUwagaInne
codeintegertakcode=0 -> sukces
infostringnieinformacje o błędzie
dataobjectnie
├─pathstringnieścieżka obrazu AliYun OSS

2. Utwórz zadanie

Podstawowe informacje

Ścieżka: /api/job/create

Metoda: POST

Parametry żądania

Nagłówki

NazwaWartośćWymaganePrzykład
Content-Typeapplication/jsontak
AuthorizationBearer {YOUR KEY}takBearer 37f333a2d5f811edb248acde48001122

Treść

NazwaTypWymaganeDomyślneUwagaInne
imagePathstringnieścieżka przesłanego obrazu (url/oss)
maskImagestringnieEdytor AI powinien przekazać to pole
modelIdstringniejeśli controlModel ma wartość null, to pole powinno być wypełnione
promptstringtakprompt
negativePromptstringnienegatywny prompt
controlModelstringniecanny / scribble / openpose / mlsd / hed / seg / depth / normal
controlStrengthnumbernie1[0, 2]
controlFilterstringniepreprecessor of control image, for example: openpose / openpose_full / openpose_hand / openpose_face / openpose_faceonly
strengthnumbernie0.8[0.1, 1]
widthintegernie512
heightintegernie512
stepsintegernie3010 <= value <= 50
guidanceScaleintegernie7.50 < value <= 20
countintegernie4wygenerowana liczba obrazów

Dane odpowiedzi

NazwaTypWymaganeDomyślneUwagaInne
codenumbertak0 -> sukces;1000 -> brak wystarczającego kredytu
infostringnieinformacje o błędzie
dataobjecttak
├─idstringtakID zadania
├─creditintegertakcałkowity kredyt użytkownika
├─consumedCreditintegertakzużyty kredyt zadania

3. Pobierz zadanie

Podstawowe informacje

Ścieżka: /api/job/get

Metoda: GET

Parametry żądania

Zapytanie

NazwaWymaganePrzykładUwaga
idtak642ba091592245d79a645b39ID zadania

Response Data

NazwaTypeWymaganeDefaultUwagaOthers
codeintegertak0 -> sukces
infostringnieinformacje o błędzie
dataobjecttak
├─idstringtakID zadania
├─createAtstringtakczas utworzenia zadania
├─statusintegertakstatus zadania. 0 -> nie gotowe; 1 -> przetwarzanie; 2 -> sukces; 3 -> niepowodzenie
├─resultobjectnie
├─├─infostringnie
├─├─dataobjectnie
├─├─├─imagesstring []nieWynikowa ścieżka względna obrazu (należy połączyć z polem domeny)item Type:string
├─├─├─artIdsstring []niePicture corresponding artIDitem Type:string
├─├─├─domainstringnieoss url, you need to concatenate the relative path of the picture
├─argsobjectnie
├─├─promptstringnie
├─├─negativePromptstringnie
├─├─modelstringnie
├─├─strengthintegernie
├─├─widthintegernie
├─├─heightintegernie

4. Lista modeli ControlNet

Podstawowe informacje

Ścieżka: /api/job/models

Metoda: GET

Dane odpowiedzi

NazwaTypWymaganeDomyślneUwagaInne
codeintegertak0 -> sukces
infostringnieinformacje o błędzie
dataobjecttak
├domainstringtaknazwa domeny oss obrazu, należy połączyć z poniższym polem ikony
├modelsobject []takitem Type:object
idstringtakid modelu, wartość parametru controlModel to ten ID podczas tworzenia zadania
namestringtakNazwa angielska
cnamestringtakNazwa chińska
iconstringtakprzykładowy obraz. względna ścieżka oss, musisz połączyć domeny

5. Lista zadań w historii

Podstawowe informacje

Ścieżka: /api/job/list

Metoda: GET

Parametry żądania

Nagłówki

NazwaWartośćWymaganePrzykładUwaga
Content-Typeapplication/jsontak
AuthorizationBearer {YOUR KEY}takBearer 37f333a2d5f811edb248acde48001122

Query

NazwaWymaganePrzykładUwaga
pageIndextakzacznij od 1
pageSizetak

Dane odpowiedzi

NazwaTypWymaganeDomyślneUwagaInne
codeintegertak0 -> sukces
infostringnieinformacje o błędzie
dataobjecttak
├─jobsobject []taktablica zadańitem Type:object
├─├─idstringtakID zadania
├─├─createdAtstringtak
├─├─argsobjecttak
├─├─├─promptstringtak
├─├─├─negativePromptstringtak
├─├─├─strengthintegertak
├─├─├─widthintegertak
├─├─├─heightintegertak
├─├─├─countintegertak
├─├─├─stepsintegertak
├─├─artsobject []takwygenerowana tablica obrazówitem Type:object
├─├─├─idstringtakid wygenerowanego obrazu
├─├─├─imagesobject []taktablica różnych obrazówitem Type:object
├─├─├─├─specstringtaktyp wariantu. o -> oryginał; 2x/3x/4x -> obraz w skali 2/3/4
├─├─├─├─pathstringtakścieżka obrazu. domena do połączenia
├─├─├─├─sizeintegertakrozmiar obrazu. jednostka: Bajt
├─domainstringtakdomena obrazu oss

6. Lista modeli

Podstawowe informacje

Ścieżka: /api/model/list

Metoda: GET

Parametry żądania

Nagłówki

NazwaWartośćWymaganePrzykładUwaga
AuthorizationBearer {YOUR KEY}takBearer 37f333a2d5f811edb248acde48001122

Zapytanie

NazwaWymaganePrzykładUwaga
pageIndextakzacznij od 1
pageSizetak
typenieplatform/community

Dane odpowiedzi

NazwaTypWymaganeDomyślneUwagaInne
codeintegertak0 -> sukces
infostringnieinformacje o błędzie
dataobjecttak
├─domainstringtakdomena oss
├─totalintegertakcałkowita liczba modeli filtrowanych do stronicowania
├─modelsobject []takitem Type:object
├─├─idstringtakID modelu
├─├─namestringtaknazwa modelu
├─├─usernamestringtakmodel’s author name
├─├─descstringtakopis modelu
├─├─coverstringtakokładka modelu
├─├─isFavouritebooleantakczy użytkownik lubi model
├─├─controlNetbooleantakczy model obsługuje ControlNet

7. Super Rozdzielczość

Podstawowe informacje

Ścieżka: /api/job/upscale

Metoda: POST

Parametry żądania

Nagłówki

NazwaWartośćWymaganePrzykładUwaga
Content-Typeapplication/jsontak
AuthorizationBearer {YOUR KEY}takBearer 37f333a2d5f811edb248acde48001122

Treść

NazwaTypWymaganeDomyślneUwagaInne
modelstringnienazwa modelu upscale
RealESRGAN _x4plus / RealESRGAN_x4plus_anime_6B
imagePathstringtakścieżka obrazu. domena do połączenia
upscaleFactorintegertak2 <= współczynnik <= 4
beautybooleannieczy włączyć ulepszanie twarzy
artIdstringtakPotrzebujesz artID zdjęcia super punktu

Dane odpowiedzi

NazwaTypWymaganeDomyślneUwagaInne
codenumbertak0 -> sukces;1000 -> brak wystarczającego kredytu
infostringnieinformacje o błędzie
dataobjecttak
├─idstringnieid zadania upscale
├─creditintegertakcałkowity kredyt użytkownika
├─consumedCreditintegertakzużyty kredyt zadania

8. Segmentacja obrazu

Podstawowe informacje

Ścieżka: /api/art/segment

Metoda: POST

Parametry żądania

Nagłówki

NazwaWartośćWymaganePrzykładUwaga
Content-Typeapplication/jsontak
AuthorizationBearer {YOUR KEY}takBearer 37f333a2d5f811edb248acde48001122

Treść

NazwaTypWymaganeDomyślneUwagaInne
imagestringtakścieżka obrazu. ścieżka bezwzględna/względna

Dane odpowiedzi

NazwaTypWymaganeDomyślneUwagaInne
codenumbertak0 -> sukces
infostringnieinformacje o błędzie
dataobjecttak
├─imagestringtakURL obrazu po segmentacji

9. GetUserInfo

Podstawowe informacje

Ścieżka: /api/user/profile

Metoda: GET

Parametry żądania

Nagłówki

NazwaWartośćWymaganePrzykładUwaga
Content-Typeapplication/jsontak
AuthorizationBearer {YOUR KEY}takBearer 37f333a2d5f811edb248acde48001122

Dane odpowiedzi

NazwaTypWymaganeDomyślneUwagaInne
codenumbertak0 -> sukces
infostringnieinformacje o błędzie
dataobjecttak
├─namestringtak
├─emailstringtak
├─avatarstringtak
├─phonestringtak
├─creditintegertakcałkowity kredyt użytkownika
├─displayNSFWbooleantak
├─discordbooleantak

10. Utwórz zdjęcie portretowe

10.1 Lista szablonów

Podstawowe informacje

Ścieżka: api/transform/list

Metoda: GET

Dane odpowiedzi

NazwaTypWymaganeDomyślneUwagaInne
codenumbertak0 -> sukces
infostringnieinformacje o błędzie
dataobjecttak
├─domainstringtaknazwa domeny oss obrazu, należy połączyć z poniższym polem ikony
├─tagsstring[]taktag szablonu
├─transformobjecttak
├─├─tagobject[]tak
├─├─├─idstringtak
├─├─├─namestringtak
├─├─├─imagestringtakoryginalny obraz
├─├─├─artstringtakobraz wynikowy
├─├─├─costnumbertakzużycie kredytu
├─├─├─probooleantakczy pro
├─├─├─tagstringtaktag

10.2 Utwórz zdjęcie portretowe

Podstawowe informacje

Ścieżka: api/transform/create-headshot

Metoda: POST

Nagłówki

NazwaWartośćWymaganePrzykładUwaga
Content-Typeapplication/jsontak
AuthorizationBearer {YOUR KEY}takBearer 37f333a2d5f811edb248acde48001122

Treść

NazwaTypWymaganeDomyślneUwagaInne
imagePathstringtakścieżka obrazu zwrócona po wywołaniu upload-image api
transformIdstringtak
widthintegernie
heightintegernie
keepHairbooleanniefalse
keepPosebooleannietrue

Dane odpowiedzi

NazwaTypWymaganeDomyślneUwagaInne
codenumbertak0 -> sukces;1000 -> brak wystarczającego kredytu
infostringnieinformacje o błędzie
dataobjecttak
├─idstringtakID zadania
├─creditintegertakcałkowity kredyt użytkownika
├─consumedCreditintegertakzużyty kredyt zadania

Usługa komercyjna-toB/API

[email protected]