APIリファレンス

AituboのAPIドキュメント

概要

このドキュメントでは、Web上と同じ結果を達成するためにコードを使用する方法について説明します。ドキュメントの後には、相対アドレスAPIのみが表示されます。メインドメイン名を組み合わせる必要があります。 https://api.aitubo.ai.

たとえば、ジョブを作成する場合は、以下を呼び出す必要があります。 https://api.aitubo.ai/api/job/create

このドキュメントは2つのセクションに分かれており、1つ目は例、2つ目は特定のAPIです。

このセクションでは、ジョブの作成方法とジョブの取得方法について説明します。ジョブを作成するためのAPIは、3つのコア機能を提供します。 Text2Image, Image2Image, and ControlNet(ControlNetは、追加の条件を追加することにより、拡散モデルを制御するためのニューラルネットワーク構造です。)

3つの機能のいずれを使用する場合でも、最初にサポートされているモデルのリストを取得する必要があります。次に、ジョブを作成するときに、 id モデル情報のフィールド

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

結果は次のようになります。

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

次に、次のような応答が得られます。

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

ポーリングによってタスク作成のステータスを確認できます。各写真は完了までに約2秒かかるため、クエリの頻度を制御してください。最後に、次のようになります。

{
  "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を使用するには、 画像をアップロード APIを呼び出して画像のOSS相対アドレスを取得するか、絶対アドレスを持つ画像を与えることができます。

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と同様に、ポーリングによってタスク作成のステータスを確認できます。

3. ControlNet

ControlNet機能を使用する前に、まず/job/model/list APIを呼び出して、対応する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"
            },
            ...
    }
}

次に、/job/create APIを呼び出します。

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 フィールド(モデルが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. 画像をアップロード

基本情報

パス: /api/job/upload-image

メソッド: POST

リクエストパラメータ

ヘッダー

名前必須
Content-Typemultipart/form-dataはい
AuthorizationBearer {YOUR KEY}はいBearer 37f333a2d5f811edb248acde48001122

本文

名前必須
imageファイルはい

応答データ

名前タイプ必須デフォルト注記その他
codeintegerはいcode=0 -> 成功
infostringいいえエラー情報
dataobjectいいえ
├─pathstringいいえAliYun OSSの画像パス

2. ジョブの作成

基本情報

パス: /api/job/create

メソッド: POST

リクエストパラメータ

ヘッダー

名前必須
Content-Typeapplication/jsonはい
AuthorizationBearer {YOUR KEY}はいBearer 37f333a2d5f811edb248acde48001122

本文

名前タイプ必須デフォルト注記その他
imagePathstringいいえアップロードされた画像のパス(url/ossの両方)
maskImagestringいいえAIエディターはこのフィールドを渡す必要があります
modelIdstringいいえcontrolModelがnullの場合、このフィールドを埋める必要があります
promptstringはいプロンプト
negativePromptstringいいえネガティブプロンプト
controlModelstringいいえcanny / scribble / openpose / mlsd / hed / seg / depth / normal
controlStrengthnumberいいえ1[0, 2]
controlFilterstringいいえcontrol画像のプリプロセッサ、例:openpose / openpose_full / openpose_hand / openpose_face / openpose_faceonly
strengthnumberいいえ0.8[0.1, 1]
widthintegerいいえ512
heightintegerいいえ512
stepsintegerいいえ3010 <= value <= 50
guidanceScaleintegerいいえ7.50 < value <= 20
countintegerいいえ4生成された画像の数

応答データ

名前タイプ必須デフォルト注記その他
codenumberはい0 -> 成功;1000 -> クレジットが足りません
infostringいいえエラー情報
dataobjectはい
├─idstringはいジョブID
├─creditintegerはいユーザーの総クレジット
├─consumedCreditintegerはいジョブの消費クレジット

3. ジョブの取得

基本情報

パス: /api/job/get

メソッド: GET

リクエストパラメータ

クエリ

名前必須注記
idはい642ba091592245d79a645b39ジョブID

Response Data

名前Type必須Default注記Others
codeintegerはい0 -> 成功
infostringいいえエラー情報
dataobjectはい
├─idstringはいジョブID
├─createAtstringはいジョブの作成時間
├─statusintegerはいジョブのステータス。0 -> 準備完了ではありません。1 -> 処理中; 2 -> 成功; 3 -> 失敗
├─resultobjectいいえ
├─├─infostringいいえ
├─├─dataobjectいいえ
├─├─├─imagesstring []いいえ画像の相対パス(ドメインフィールドと連結する必要があります)item Type:string
├─├─├─artIdsstring []いいえ画像に対応するartIDitem Type:string
├─├─├─domainstringいいえoss url、画像の相対パスを連結する必要があります
├─argsobjectいいえ
├─├─promptstringいいえ
├─├─negativePromptstringいいえ
├─├─modelstringいいえ
├─├─strengthintegerいいえ
├─├─widthintegerいいえ
├─├─heightintegerいいえ

4. ControlNetモデルのリスト

基本情報

パス: /api/job/models

メソッド: GET

応答データ

名前タイプ必須デフォルト注記その他
codeintegerはい0 -> 成功
infostringいいえエラー情報
dataobjectはい
├domainstringはい画像のossドメイン名、下のアイコンフィールドを連結する必要があります
├modelsobject []はいitem Type:object
idstringはいモデルID。ジョブの作成時にcontrolModelパラメータの値はこのIDです
namestringはい英語名
cnamestringはい中国語名
iconstringはいサンプル画像。ossの相対パス、ドメインを連結する必要があります

5. 履歴ジョブのリスト

基本情報

パス: /api/job/list

メソッド: GET

リクエストパラメータ

ヘッダー

名前必須注記
Content-Typeapplication/jsonはい
AuthorizationBearer {YOUR KEY}はいBearer 37f333a2d5f811edb248acde48001122

Query

名前必須注記
pageIndexはい1から開始
pageSizeはい

応答データ

名前タイプ必須デフォルト注記その他
codeintegerはい0 -> 成功
infostringいいえエラー情報
dataobjectはい
├─jobsobject []はいジョブ配列item Type:object
├─├─idstringはいジョブID
├─├─createdAtstringはい
├─├─argsobjectはい
├─├─├─promptstringはい
├─├─├─negativePromptstringはい
├─├─├─strengthintegerはい
├─├─├─widthintegerはい
├─├─├─heightintegerはい
├─├─├─countintegerはい
├─├─├─stepsintegerはい
├─├─artsobject []はい生成された画像の配列item Type:object
├─├─├─idstringはい生成された画像のID
├─├─├─imagesobject []はいさまざまな画像の配列item Type:object
├─├─├─├─specstringはいバリアントタイプ。o -> origin; 2x/3x/4x -> 2/3/4スケール画像
├─├─├─├─pathstringはい画像パス。連結するドメイン
├─├─├─├─sizeintegerはい画像サイズ。単位:バイト
├─domainstringはいoss画像ドメイン

6. モデルのリスト

基本情報

パス: /api/model/list

メソッド: GET

リクエストパラメータ

ヘッダー

名前必須注記
AuthorizationBearer {YOUR KEY}はいBearer 37f333a2d5f811edb248acde48001122

クエリ

名前必須注記
pageIndexはい1から開始
pageSizeはい
typeいいえplatform/community

応答データ

名前タイプ必須デフォルト注記その他
codeintegerはい0 -> 成功
infostringいいえエラー情報
dataobjectはい
├─domainstringはいossドメイン
├─totalintegerはいページング用にフィルタリングされたモデルの総数
├─modelsobject []はいitem Type:object
├─├─idstringはいモデルID
├─├─namestringはいモデル名
├─├─usernamestringはいmodel’s author name
├─├─descstringはいモデルの説明
├─├─coverstringはいモデルカバー
├─├─isFavouritebooleanはいユーザーがモデルをお気に入りに入れているかどうか
├─├─controlNetbooleanはいモデルがControlNetをサポートしているかどうか

7. 超解像

基本情報

パス: /api/job/upscale

メソッド: POST

リクエストパラメータ

ヘッダー

名前必須注記
Content-Typeapplication/jsonはい
AuthorizationBearer {YOUR KEY}はいBearer 37f333a2d5f811edb248acde48001122

本文

名前タイプ必須デフォルト注記その他
modelstringいいえアップスケールモデル名
RealESRGAN _x4plus / RealESRGAN_x4plus_anime_6B
imagePathstringはい画像パス。連結するドメイン
upscaleFactorintegerはい2 <= factor <= 4
beautybooleanいいえ顔のエンハンスメントを有効にするかどうか
artIdstringはいスーパーポイント画像artIDが必要です

応答データ

名前タイプ必須デフォルト注記その他
codenumberはい0 -> 成功;1000 -> クレジットが足りません
infostringいいえエラー情報
dataobjectはい
├─idstringいいえアップスケールジョブID
├─creditintegerはいユーザーの総クレジット
├─consumedCreditintegerはいジョブの消費クレジット

8. 画像セグメンテーション

基本情報

パス: /api/art/segment

メソッド: POST

リクエストパラメータ

ヘッダー

名前必須注記
Content-Typeapplication/jsonはい
AuthorizationBearer {YOUR KEY}はいBearer 37f333a2d5f811edb248acde48001122

本文

名前タイプ必須デフォルト注記その他
imagestringはい画像パス。絶対/相対パス

応答データ

名前タイプ必須デフォルト注記その他
codenumberはい0 -> 成功
infostringいいえエラー情報
dataobjectはい
├─imagestringはいセグメンテーション後の画像のURL

9. GetUserInfo

基本情報

パス: /api/user/profile

メソッド: GET

リクエストパラメータ

ヘッダー

名前必須注記
Content-Typeapplication/jsonはい
AuthorizationBearer {YOUR KEY}はいBearer 37f333a2d5f811edb248acde48001122

応答データ

名前タイプ必須デフォルト注記その他
codenumberはい0 -> 成功
infostringいいえエラー情報
dataobjectはい
├─namestringはい
├─emailstringはい
├─avatarstringはい
├─phonestringはい
├─creditintegerはいユーザーの総クレジット
├─displayNSFWbooleanはい
├─discordbooleanはい

10. ヘッドショットの作成

10.1 テンプレートのリスト

基本情報

パス: api/transform/list

メソッド: GET

応答データ

名前タイプ必須デフォルト注記その他
codenumberはい0 -> 成功
infostringいいえエラー情報
dataobjectはい
├─domainstringはい画像のossドメイン名、下のアイコンフィールドを連結する必要があります
├─tagsstring[]はいテンプレートタグ
├─transformobjectはい
├─├─tagobject[]はい
├─├─├─idstringはい
├─├─├─namestringはい
├─├─├─imagestringはい元の画像
├─├─├─artstringはい結果の画像
├─├─├─costnumberはいクレジット消費
├─├─├─probooleanはいプロであるかどうか
├─├─├─tagstringはいタグ

10.2 ヘッドショットの作成

基本情報

パス: api/transform/create-headshot

メソッド: POST

ヘッダー

名前必須注記
Content-Typeapplication/jsonはい
AuthorizationBearer {YOUR KEY}はいBearer 37f333a2d5f811edb248acde48001122

本文

名前タイプ必須デフォルト注記その他
imagePathstringはい呼び出し時に返される画像パス upload-image api
transformIdstringはい
widthintegerいいえ
heightintegerいいえ
keepHairbooleanいいえfalse
keepPosebooleanいいえtrue

応答データ

名前タイプ必須デフォルト注記その他
codenumberはい0 -> 成功;1000 -> クレジットが足りません
infostringいいえエラー情報
dataobjectはい
├─idstringはいジョブID
├─creditintegerはいユーザーの総クレジット
├─consumedCreditintegerはいジョブの消費クレジット

商用サービス-toB/API

[email protected]