Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
import { NextResponse, NextRequest } from "next/server" | |
import { getValidNumber, serializeClap } from "@aitube/clap" | |
import { throwIfInvalidToken } from "@/app/api/v1/auth/throwIfInvalidToken" | |
import { create } from "." | |
// a helper to generate Clap stories from a few sentences | |
// this is mostly used by external apps such as the Stories Factory | |
export async function POST(req: NextRequest) { | |
await throwIfInvalidToken(req.headers.get("Authorization")) | |
const request = await req.json() as { | |
prompt: string | |
width: number | |
height: number | |
turbo: boolean | |
// can add more stuff for the V2 of Stories Factory | |
} | |
// console.log("[api/v1/create] request:", request) | |
const clap = await create({ | |
prompt: `${request?.prompt || ""}`.trim(), | |
width: getValidNumber(request?.width, 256, 8192, 1024), | |
height: getValidNumber(request?.height, 256, 8192, 576), | |
turbo: request?.turbo ? true : false, | |
}) | |
// TODO replace by Clap file streaming | |
return new NextResponse(await serializeClap(clap), { | |
status: 200, | |
headers: new Headers({ "content-type": "application/x-gzip" }), | |
}) | |
} | |