API Referenz

API-Dokumentation von Aitubo

Übersicht

Dieses Dokument beschreibt, wie Sie den Code verwenden, um die gleichen Ergebnisse wie im Web zu erzielen. Nach dem Dokument werden nur relative Adressen der API angegeben, die Sie mit dem Hauptdomänennamen zusammensetzen müssen: https://api.aitubo.ai.

Wenn Sie beispielsweise einen Job erstellen möchten, müssen Sie aufrufen https://api.aitubo.ai/api/job/create

Das Dokument ist in zwei Abschnitte unterteilt, der erste für Beispiele und der zweite für spezifische APIs.

Beispiele

Dieser Abschnitt beschreibt, wie Sie einen Job erstellen und einen Job erhalten. Unsere API zum Erstellen von Jobs bietet drei Kernfunktionen: Text2Image, Image2Image, and ControlNet(ControlNet ist eine neuronale Netzwerkstruktur zur Steuerung von Diffusionsmodellen durch Hinzufügen zusätzlicher Bedingungen).

Unabhängig davon, welche der drei Funktionen Sie verwenden, müssen Sie zuerst eine Liste der von uns unterstützten Modelle abrufen. Wenn Sie dann den Job erstellen, müssen Sie Folgendes übergeben: id Feld der Modellinformationen

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

Das Ergebnis ist in etwa so:

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

Dann erhalten Sie eine Antwort wie diese:

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

Sie können den Status der Job-Erstellung durch Abfragen überprüfen. Jedes Foto dauert etwa 2 Sekunden, bis es fertig ist. Bitte kontrollieren Sie daher Ihre Abfragehäufigkeit. Schließlich erhalten Sie Folgendes:

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

Um Image2Image zu verwenden, können Sie unsere Bild hochladen API aufrufen, um die relative OSS-Adresse eines Bildes zu erhalten, oder Sie können ein Bild mit einer absoluten Adresse angeben.

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

Sie können den Status der Job-Erstellung durch Abfragen überprüfen, genau wie bei Text2Image.

3. ControlNet

Bevor Sie die ControlNet-Funktion verwenden, müssen Sie zuerst die API /job/model/list aufrufen, um die entsprechenden ControlNet-Kategorien abzurufen:

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

Rufen Sie dann die API /job/create auf:

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

Sie können auch übergeben modelId Feld(Stellen Sie sicher, dass das Modell ControlNet unterstützt):

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. Bild hochladen

Grundlegende Informationen

Pfad: /api/job/upload-image

Methode: POST

Anfrageparameter

Header

NameWertErforderlichBeispiel
Content-Typemultipart/form-dataja
AuthorizationBearer {YOUR KEY}jaBearer 37f333a2d5f811edb248acde48001122

Körper

NameWertErforderlich
imageDateija

Antwortdaten

NameTypErforderlichStandardHinweisAndere
codeintegerjacode=0 -> Erfolg
infostringneinFehlerinformationen
dataobjectnein
├─pathstringneinBildpfad von AliYun OSS

2. Job erstellen

Grundlegende Informationen

Pfad: /api/job/create

Methode: POST

Anfrageparameter

Header

NameWertErforderlichBeispiel
Content-Typeapplication/jsonja
AuthorizationBearer {YOUR KEY}jaBearer 37f333a2d5f811edb248acde48001122

Körper

NameTypErforderlichStandardHinweisAndere
imagePathstringneinPfad des hochgeladenen Bildes (URL/OSS)
maskImagestringneinAI-Editor sollte dieses Feld übergeben
modelIdstringneinWenn controlModel null ist, sollte dieses Feld ausgefüllt werden
promptstringjaEingabeaufforderung
negativePromptstringneinNegativer Prompt
controlModelstringneincanny / scribble / openpose / mlsd / hed / seg / depth / normal
controlStrengthnumbernein1[0, 2]
controlFilterstringneinVorverarbeiter des Steuerbilds, z. B.: openpose / openpose_full / openpose_hand / openpose_face / openpose_faceonly
strengthnumbernein0.8[0.1, 1]
widthintegernein512
heightintegernein512
stepsintegernein3010 <= Wert <= 50
guidanceScaleintegernein7.50 < Wert <= 20
countintegernein4Anzahl der generierten Bilder

Antwortdaten

NameTypErforderlichStandardHinweisAndere
codenumberja0 -> Erfolg;1000 -> nicht genügend Guthaben
infostringneinFehlerinformationen
dataobjectja
├─idstringjaJob-ID
├─creditintegerjaGesamtguthaben des Benutzers
├─consumedCreditintegerjaVerbrauchtes Guthaben des Jobs

3. Job abrufen

Grundlegende Informationen

Pfad: /api/job/get

Methode: GET

Anfrageparameter

Abfrage

NameErforderlichBeispielHinweis
idja642ba091592245d79a645b39Job-ID

Response Data

NameTypeErforderlichDefaultHinweisOthers
codeintegerja0 -> Erfolg
infostringneinFehlerinformationen
dataobjectja
├─idstringjaJob-ID
├─createAtstringjaErstellungszeit des Jobs
├─statusintegerjaStatus des Jobs. 0 -> nicht bereit; 1 -> Verarbeitung; 2 -> Erfolg; 3 -> Fehler
├─resultobjectnein
├─├─infostringnein
├─├─dataobjectnein
├─├─├─imagesstring []neinDer resultierende relative Pfad des Bildes (muss mit dem Domänenfeld verkettet werden)item Type:string
├─├─├─artIdsstring []neinBild entsprechende ArtIDitem Type:string
├─├─├─domainstringneinoss-URL, Sie müssen den relativen Pfad des Bildes verketten
├─argsobjectnein
├─├─promptstringnein
├─├─negativePromptstringnein
├─├─modelstringnein
├─├─strengthintegernein
├─├─widthintegernein
├─├─heightintegernein

4. ControlNet-Modell auflisten

Grundlegende Informationen

Pfad: /api/job/models

Methode: GET

Antwortdaten

NameTypErforderlichStandardHinweisAndere
codeintegerja0 -> Erfolg
infostringneinFehlerinformationen
dataobjectja
├domainstringjaImage-OSS-Domänenname, muss mit dem unten stehenden Icon-Feld verkettet werden
├modelsobject []jaitem Type:object
idstringjaModell-ID, der controlModel-Parameterwert ist diese ID beim Erstellen eines Jobs
namestringjaEnglischer Name
cnamestringjaChinesischer Name
iconstringjaBeispielbild. Relativer OSS-Pfad, Sie müssen Domänen verketten

5. Job-Verlauf auflisten

Grundlegende Informationen

Pfad: /api/job/list

Methode: GET

Anfrageparameter

Header

NameWertErforderlichBeispielHinweis
Content-Typeapplication/jsonja
AuthorizationBearer {YOUR KEY}jaBearer 37f333a2d5f811edb248acde48001122

Query

NameErforderlichBeispielHinweis
pageIndexjaBeginnend bei 1
pageSizeja

Antwortdaten

NameTypErforderlichStandardHinweisAndere
codeintegerja0 -> Erfolg
infostringneinFehlerinformationen
dataobjectja
├─jobsobject []jaJob-Arrayitem Type:object
├─├─idstringjaJob-ID
├─├─createdAtstringja
├─├─argsobjectja
├─├─├─promptstringja
├─├─├─negativePromptstringja
├─├─├─strengthintegerja
├─├─├─widthintegerja
├─├─├─heightintegerja
├─├─├─countintegerja
├─├─├─stepsintegerja
├─├─artsobject []jaDas generierte Array von Bildernitem Type:object
├─├─├─idstringjaDie ID des generierten Bildes
├─├─├─imagesobject []jaVielfalt der Bilderitem Type:object
├─├─├─├─specstringjaVarianten-Typ. o -> Ursprung; 2x/3x/4x -> 2/3/4 Skalierungsbild
├─├─├─├─pathstringjaBildpfad. Domäne, die verkettet werden soll
├─├─├─├─sizeintegerjaBildgröße. Einheit: Byte
├─domainstringjaOSS-Image-Domäne

6. Modell auflisten

Grundlegende Informationen

Pfad: /api/model/list

Methode: GET

Anfrageparameter

Header

NameWertErforderlichBeispielHinweis
AuthorizationBearer {YOUR KEY}jaBearer 37f333a2d5f811edb248acde48001122

Abfrage

NameErforderlichBeispielHinweis
pageIndexjaBeginnend bei 1
pageSizeja
typeneinplatform/community

Antwortdaten

NameTypErforderlichStandardHinweisAndere
codeintegerja0 -> Erfolg
infostringneinFehlerinformationen
dataobjectja
├─domainstringjaOSS-Domäne
├─totalintegerjaDie Gesamtzahl der für die Paginierung gefilterten Modelle
├─modelsobject []jaitem Type:object
├─├─idstringjaModell-ID
├─├─namestringjaModellname
├─├─usernamestringjamodel’s author name
├─├─descstringjaModellbeschreibung
├─├─coverstringjaModell-Cover
├─├─isFavouritebooleanjaOb der Benutzer das Modell favorisiert
├─├─controlNetbooleanjaOb das Modell ControlNet unterstützt

7. Super-Auflösung

Grundlegende Informationen

Pfad: /api/job/upscale

Methode: POST

Anfrageparameter

Header

NameWertErforderlichBeispielHinweis
Content-Typeapplication/jsonja
AuthorizationBearer {YOUR KEY}jaBearer 37f333a2d5f811edb248acde48001122

Körper

NameTypErforderlichStandardHinweisAndere
modelstringneinUpscale-Modellname
RealESRGAN _x4plus / RealESRGAN_x4plus_anime_6B
imagePathstringjaBildpfad. Domäne, die verkettet werden soll
upscaleFactorintegerja2 <= Faktor <= 4
beautybooleanneinOb die Gesichtserkennung aktiviert werden soll
artIdstringjaBenötigen Sie eine Super-Punkt-Bild-ArtID

Antwortdaten

NameTypErforderlichStandardHinweisAndere
codenumberja0 -> Erfolg;1000 -> nicht genügend Guthaben
infostringneinFehlerinformationen
dataobjectja
├─idstringneinUpscale-Job-ID
├─creditintegerjaGesamtguthaben des Benutzers
├─consumedCreditintegerjaVerbrauchtes Guthaben des Jobs

8. Bildsegmentierung

Grundlegende Informationen

Pfad: /api/art/segment

Methode: POST

Anfrageparameter

Header

NameWertErforderlichBeispielHinweis
Content-Typeapplication/jsonja
AuthorizationBearer {YOUR KEY}jaBearer 37f333a2d5f811edb248acde48001122

Körper

NameTypErforderlichStandardHinweisAndere
imagestringjaBildpfad. Absoluter/relativer Pfad

Antwortdaten

NameTypErforderlichStandardHinweisAndere
codenumberja0 -> Erfolg
infostringneinFehlerinformationen
dataobjectja
├─imagestringjaURL des Bildes nach der Segmentierung

9. Benutzerinformationen abrufen

Grundlegende Informationen

Pfad: /api/user/profile

Methode: GET

Anfrageparameter

Header

NameWertErforderlichBeispielHinweis
Content-Typeapplication/jsonja
AuthorizationBearer {YOUR KEY}jaBearer 37f333a2d5f811edb248acde48001122

Antwortdaten

NameTypErforderlichStandardHinweisAndere
codenumberja0 -> Erfolg
infostringneinFehlerinformationen
dataobjectja
├─namestringja
├─emailstringja
├─avatarstringja
├─phonestringja
├─creditintegerjaGesamtguthaben des Benutzers
├─displayNSFWbooleanja
├─discordbooleanja

10. Kopfschuss erstellen

10.1 Vorlagen auflisten

Grundlegende Informationen

Pfad: api/transform/list

Methode: GET

Antwortdaten

NameTypErforderlichStandardHinweisAndere
codenumberja0 -> Erfolg
infostringneinFehlerinformationen
dataobjectja
├─domainstringjaImage-OSS-Domänenname, muss mit dem unten stehenden Icon-Feld verkettet werden
├─tagsstring[]jaVorlagen-Tag
├─transformobjectja
├─├─tagobject[]ja
├─├─├─idstringja
├─├─├─namestringja
├─├─├─imagestringjaUrsprungsbild
├─├─├─artstringjaErgebnisbild
├─├─├─costnumberjaGuthaben verbrauchen
├─├─├─probooleanjaist Pro
├─├─├─tagstringjaTag

10.2 Kopfschuss erstellen

Grundlegende Informationen

Pfad: api/transform/create-headshot

Methode: POST

Header

NameWertErforderlichBeispielHinweis
Content-Typeapplication/jsonja
AuthorizationBearer {YOUR KEY}jaBearer 37f333a2d5f811edb248acde48001122

Körper

NameTypErforderlichStandardHinweisAndere
imagePathstringjaBildpfad, der bei Aufruf zurückgegeben wird Upload-Image-API
transformIdstringja
widthintegernein
heightintegernein
keepHairbooleanneinfalse
keepPosebooleanneintrue

Antwortdaten

NameTypErforderlichStandardHinweisAndere
codenumberja0 -> Erfolg;1000 -> nicht genügend Guthaben
infostringneinFehlerinformationen
dataobjectja
├─idstringjaJob-ID
├─creditintegerjaGesamtguthaben des Benutzers
├─consumedCreditintegerjaVerbrauchtes Guthaben des Jobs

Kommerzieller Service-toB/API

[email protected]