컨텐츠로 건너뛰기

생성 작업 만들기

이 문서를 읽으면 SDK를 사용하지 않고도 작업을 만들고 생성하는 방법을 배우게 됩니다.

GraphQL 이해하기

저희 API는 GraphQL로 구성되어 있습니다. GraphQL은 API를 위한 쿼리 언어이자 기존 데이터로 이러한 쿼리를 처리하기 위한 런타임이며, 데이터와 상호작용하는 더 효율적이고 개발자 친화적인 방법을 제공합니다.

GraphQL을 사용하면 정말 신경 써야 할 부분에만 집중할 수 있습니다.

API 엔드포인트

API 엔드포인트는 https://api.pixai.art/graphql입니다. GraphQL 쿼리를 사용하여 이 엔드포인트로 POST 요청을 보낼 수 있습니다.

또한 구독을 위해 WebSocket을 지원합니다. 작업 업데이트를 실시간으로 구독할 수 있습니다. 그리고 WebSocket 엔드포인트는wss://gw.pixai.art/graphql.

생성 작업 만들기

Mutation.createGenerationTask mutation에 액세스하여 매개변수를 전달해야 합니다. 전달해야 하는 유일한 매개변수는 “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
}
}
}

이렇게 하면 거의 실시간으로 완성을 인식할 수 있습니다.

다음 단계

작업이 완료된 후 다음 문서를 참고하여 생성된 이미지를 다운로드할 수 있습니다.