Christmas Logo
Riferimento API

Documentazione API di Aitubo

Panoramica

Questo documento descrive come utilizzare il codice per ottenere gli stessi risultati del web. Dopo il documento fornirà solo l'API dell'indirizzo relativo, è necessario assemblare il nome di dominio principale: https://api.aitubo.ai.

Ad esempio, se vuoi creare un lavoro, devi chiamare https://api.aitubo.ai/api/job/create

Il documento è diviso in due sezioni, la prima per esempi e la seconda per API specifiche.

Esempi

Questa sezione descrive come creare un lavoro e ottenerne uno. La nostra API per la creazione di lavori fornisce tre funzioni principali: Text2Image, Image2Image, and ControlNet(ControlNet è una struttura di rete neurale per controllare i modelli di diffusione aggiungendo condizioni extra).

Indipendentemente da quale delle tre funzionalità utilizzi, devi prima ottenere un elenco dei modelli che supportiamo, e poi quando crei il lavoro, devi passare il id campo delle informazioni sul modello

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

Il risultato è qualcosa di simile a questo:

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

Quindi, otterrai una risposta come questa:

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

Puoi controllare lo stato della creazione del task tramite polling. Ogni foto impiega circa 2 secondi per essere completata, quindi controlla la frequenza delle tue query. Infine, otterrai qualcosa di simile a questo:

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

Per utilizzare Image2Image, puoi chiamare il nostro Carica immagine API per ottenere l'indirizzo relativo OSS di un'immagine, oppure puoi fornire un'immagine con un indirizzo assoluto.

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

Puoi controllare lo stato della creazione del task tramite polling proprio come Text2Image.

3. ControlNet

Prima di utilizzare la funzione ControlNet, devi prima chiamare l'API /job/model/list per ottenere le corrispondenti categorie 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"
            },
            ...
    }
}

Quindi chiama l'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"
}'

Puoi anche passare modelId campo(Assicurati che il modello supporti 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. Carica immagine

Informazioni di base

Percorso: /api/job/upload-image

Metodo: POST

Parametri della richiesta

Intestazioni

NomeValoreObbligatorioEsempio
Content-Typemultipart/form-data
AuthorizationBearer {YOUR KEY}Bearer 37f333a2d5f811edb248acde48001122

Corpo

NomeValoreObbligatorio
imagefile

Dati di risposta

NomeTipoObbligatorioPredefinitoNotaAltri
codeintegercode=0 -> successo
infostringnoinformazioni sull'errore
dataobjectno
├─pathstringnopercorso dell'immagine di AliYun OSS

2. Crea lavoro

Informazioni di base

Percorso: /api/job/create

Metodo: POST

Parametri della richiesta

Intestazioni

NomeValoreObbligatorioEsempio
Content-Typeapplication/json
AuthorizationBearer {YOUR KEY}Bearer 37f333a2d5f811edb248acde48001122

Corpo

NomeTipoObbligatorioPredefinitoNotaAltri
imagePathstringnopercorso dell'immagine caricata (url/oss entrambi)
maskImagestringnoAI Editor dovrebbe passare questo campo
modelIdstringnose controlModel è nullo, questo campo dovrebbe essere compilato
promptstringprompt
negativePromptstringnoprompt negativo
controlModelstringnocanny / scribble / openpose / mlsd / hed / seg / depth / normal
controlStrengthnumberno1[0, 2]
controlFilterstringnopreprecessor dell'immagine di controllo, ad esempio: openpose / openpose_full / openpose_hand / openpose_face / openpose_faceonly
strengthnumberno0.8[0.1, 1]
widthintegerno512
heightintegerno512
stepsintegerno3010 <= value <= 50
guidanceScaleintegerno7.50 < value <= 20
countintegerno4conteggio immagini generate

Dati di risposta

NomeTipoObbligatorioPredefinitoNotaAltri
codenumber0 -> successo;1000 -> credito insufficiente
infostringnoinformazioni sull'errore
dataobject
├─idstringID lavoro
├─creditintegercredito totale dell'utente
├─consumedCreditintegercredito consumato del lavoro

3. Ottieni lavoro

Informazioni di base

Percorso: /api/job/get

Metodo: GET

Parametri della richiesta

Query

NomeObbligatorioEsempioNota
id642ba091592245d79a645b39ID lavoro

Response Data

NomeTypeObbligatorioDefaultNotaOthers
codeinteger0 -> successo
infostringnoinformazioni sull'errore
dataobject
├─idstringID lavoro
├─createAtstringora di creazione del lavoro
├─statusintegerstato del lavoro. 0 -> non pronto; 1 -> elaborazione; 2 -> successo; 3 -> fallimento
├─resultobjectno
├─├─infostringno
├─├─dataobjectno
├─├─├─imagesstring []noIl percorso relativo risultante dell'immagine (deve essere concatenato con il campo dominio)item Type:string
├─├─├─artIdsstring []noPicture corresponding artIDitem Type:string
├─├─├─domainstringnooss url, è necessario concatenare il percorso relativo dell'immagine
├─argsobjectno
├─├─promptstringno
├─├─negativePromptstringno
├─├─modelstringno
├─├─strengthintegerno
├─├─widthintegerno
├─├─heightintegerno

4. Elenca modello ControlNet

Informazioni di base

Percorso: /api/job/models

Metodo: GET

Dati di risposta

NomeTipoObbligatorioPredefinitoNotaAltri
codeinteger0 -> successo
infostringnoinformazioni sull'errore
dataobject
├domainstringnome di dominio oss dell'immagine, è necessario concatenare il campo icona sottostante
├modelsobject []item Type:object
idstringID modello, il valore del parametro controlModel è questo ID quando si crea un lavoro
namestringNome inglese
cnamestringNome cinese
iconstringimmagine di esempio. percorso relativo oss, è necessario concatenare i domini

5. Elenca lavoro cronologico

Informazioni di base

Percorso: /api/job/list

Metodo: GET

Parametri della richiesta

Intestazioni

NomeValoreObbligatorioEsempioNota
Content-Typeapplication/json
AuthorizationBearer {YOUR KEY}Bearer 37f333a2d5f811edb248acde48001122

Query

NomeObbligatorioEsempioNota
pageIndexinizia da 1
pageSize

Dati di risposta

NomeTipoObbligatorioPredefinitoNotaAltri
codeinteger0 -> successo
infostringnoinformazioni sull'errore
dataobject
├─jobsobject []array di lavoriitem Type:object
├─├─idstringID lavoro
├─├─createdAtstring
├─├─argsobject
├─├─├─promptstring
├─├─├─negativePromptstring
├─├─├─strengthinteger
├─├─├─widthinteger
├─├─├─heightinteger
├─├─├─countinteger
├─├─├─stepsinteger
├─├─artsobject []l'array di immagini generateitem Type:object
├─├─├─idstringl'id dell'immagine generata
├─├─├─imagesobject []array di immagini varieitem Type:object
├─├─├─├─specstringtipo di variante. o -> origine; 2x/3x/4x -> immagine in scala 2/3/4
├─├─├─├─pathstringpercorso dell'immagine. dominio da concatenare
├─├─├─├─sizeintegerdimensione dell'immagine. unità: Byte
├─domainstringdominio dell'immagine oss

6. Elenca modello

Informazioni di base

Percorso: /api/model/list

Metodo: GET

Parametri della richiesta

Intestazioni

NomeValoreObbligatorioEsempioNota
AuthorizationBearer {YOUR KEY}Bearer 37f333a2d5f811edb248acde48001122

Query

NomeObbligatorioEsempioNota
pageIndexinizia da 1
pageSize
typenoplatform/community

Dati di risposta

NomeTipoObbligatorioPredefinitoNotaAltri
codeinteger0 -> successo
infostringnoinformazioni sull'errore
dataobject
├─domainstringdominio oss
├─totalintegeril numero totale di modelli filtrati per l'impaginazione
├─modelsobject []item Type:object
├─├─idstringID modello
├─├─namestringnome del modello
├─├─usernamestringmodel’s author name
├─├─descstringdescrizione del modello
├─├─coverstringcopertina del modello
├─├─isFavouritebooleanse l'utente preferisce il modello
├─├─controlNetbooleanse il modello supporta ControlNet

7. Super Risoluzione

Informazioni di base

Percorso: /api/job/upscale

Metodo: POST

Parametri della richiesta

Intestazioni

NomeValoreObbligatorioEsempioNota
Content-Typeapplication/json
AuthorizationBearer {YOUR KEY}Bearer 37f333a2d5f811edb248acde48001122

Corpo

NomeTipoObbligatorioPredefinitoNotaAltri
modelstringnonome del modello upscale
RealESRGAN _x4plus / RealESRGAN_x4plus_anime_6B
imagePathstringpercorso dell'immagine. dominio da concatenare
upscaleFactorinteger2 <= fattore <= 4
beautybooleannose abilitare il miglioramento del volto
artIdstringNecessita di un artID di immagine super point

Dati di risposta

NomeTipoObbligatorioPredefinitoNotaAltri
codenumber0 -> successo;1000 -> credito insufficiente
infostringnoinformazioni sull'errore
dataobject
├─idstringnoupscale job id
├─creditintegercredito totale dell'utente
├─consumedCreditintegercredito consumato del lavoro

8. Segmentazione dell'immagine

Informazioni di base

Percorso: /api/art/segment

Metodo: POST

Parametri della richiesta

Intestazioni

NomeValoreObbligatorioEsempioNota
Content-Typeapplication/json
AuthorizationBearer {YOUR KEY}Bearer 37f333a2d5f811edb248acde48001122

Corpo

NomeTipoObbligatorioPredefinitoNotaAltri
imagestringpercorso dell'immagine. percorso assoluto/relativo

Dati di risposta

NomeTipoObbligatorioPredefinitoNotaAltri
codenumber0 -> successo
infostringnoinformazioni sull'errore
dataobject
├─imagestringURL dell'immagine dopo la segmentazione

9. GetUserInfo

Informazioni di base

Percorso: /api/user/profile

Metodo: GET

Parametri della richiesta

Intestazioni

NomeValoreObbligatorioEsempioNota
Content-Typeapplication/json
AuthorizationBearer {YOUR KEY}Bearer 37f333a2d5f811edb248acde48001122

Dati di risposta

NomeTipoObbligatorioPredefinitoNotaAltri
codenumber0 -> successo
infostringnoinformazioni sull'errore
dataobject
├─namestring
├─emailstring
├─avatarstring
├─phonestring
├─creditintegercredito totale dell'utente
├─displayNSFWboolean
├─discordboolean

10. Crea Headshot

10.1 Elenca modelli

Informazioni di base

Percorso: api/transform/list

Metodo: GET

Dati di risposta

NomeTipoObbligatorioPredefinitoNotaAltri
codenumber0 -> successo
infostringnoinformazioni sull'errore
dataobject
├─domainstringnome di dominio oss dell'immagine, è necessario concatenare il campo icona sottostante
├─tagsstring[]tag del modello
├─transformobject
├─├─tagobject[]
├─├─├─idstring
├─├─├─namestring
├─├─├─imagestringimmagine originale
├─├─├─artstringimmagine risultante
├─├─├─costnumberconsumo di credito
├─├─├─probooleanè pro
├─├─├─tagstringtag

10.2 Crea Headshot

Informazioni di base

Percorso: api/transform/create-headshot

Metodo: POST

Intestazioni

NomeValoreObbligatorioEsempioNota
Content-Typeapplication/json
AuthorizationBearer {YOUR KEY}Bearer 37f333a2d5f811edb248acde48001122

Corpo

NomeTipoObbligatorioPredefinitoNotaAltri
imagePathstringpercorso dell'immagine restituito quando chiamato upload-image api
transformIdstring
widthintegerno
heightintegerno
keepHairbooleannofalse
keepPosebooleannotrue

Dati di risposta

NomeTipoObbligatorioPredefinitoNotaAltri
codenumber0 -> successo;1000 -> credito insufficiente
infostringnoinformazioni sull'errore
dataobject
├─idstringID lavoro
├─creditintegercredito totale dell'utente
├─consumedCreditintegercredito consumato del lavoro

Servizio commerciale-toB/API

[email protected]