コンテンツにスキップ

生成タスクの作成

このドキュメントを読むことで、SDKを使用せずにタスクを作成・生成する方法を学ぶことができます。

GraphQLを理解しよう

PixAIプラットフォームのAPIはGraphQLで構成されています。GraphQLはAPIのためのクエリ言語であり、既存のデータを使ってクエリを実行するためのランタイムです。

WGraphQLを使えば、特別に気にする必要がある部分だけに集中することができる。

APIエンドポイント

TAPIエンドポイントはhttps://api.pixai.art/graphql。このエンドポイントにGraphQLクエリでPOSTリクエストを送信できます。

また、サブスクリプション用にWebSocketを対応しています。リアルタイムでタスクの更新をサブスクリプトすることができます。WebSocketのエンドポイントはwss://gw.pixai.art/graphql.

生成タスクの作成

生成タスクを作成するには、Mutation.createGenerationTaskミューテーションにアクセスしてパラメータを渡す必要があります。指定するパラメータは”parameters”だけ。このパラメータで対応するフィールドの数が多く、頻繁に変更されるため、GraphQLの型を定義していません。代わりにJSONオブジェクトを使います。詳細なパラメータリストについては、ドキュメントのタスクパラメーターを参照してください。

mutation createGenerationTask($parameters: JSONObject!) {
createGenerationTask(parameters: $parameters) {
id
}
}

ほとんどのパラメータは必須ではありません。単に prompts パラメータを埋めるだけで、すぐに始められます。

{
"parameters": {
"prompts": "1girl"
}
}

タスクの完了を待つ

生成タスクを作成したら、Query.taskを通してGraphQLからタスクを呼び出すことができます。

query getTaskById($id: String!) {
task(id: $id) {
id
status
outputs
}
}

Taskオブジェクトのstatusフィールドはタスクのステータスである。outputsフィールドはタスクの出力結果である。statusフィールドを確認することで、タスクが完了したかどうかを判断することができる。タスクが完了した場合、statusフィールドはcompletedになります。次にoutputsフィールドにアクセスして、タスクの出力結果を得られます。最も単純な方法は、タスクのステータスをポーリングして生成が完了するのを待つことである。

しかし、WebSocketに基づくGraphQLサブスクリプションを使用することもできます。

subscription subscribeMyTaskUpdated {
personalEvents {
taskUpdated {
id
outputs
status
}
}
}

こうすることで、ほぼリアルタイムでタスク完了を知ることができます。

次のステップ

タスクが完了したら、次のドキュメントを参照して、生成された画像をダウンロードすることができます。