Spaces:
Sleeping
Sleeping
File size: 1,453 Bytes
0d218b1 83defd6 4348dc5 83defd6 4348dc5 83defd6 db70195 83defd6 db70195 2eea766 83defd6 db70195 83defd6 db70195 83defd6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
import { generateSeed, getValidNumber } from "@aitube/clap"
import { newRender, getRender } from "@/app/api/providers/videochain/renderWithVideoChain"
import { sleep } from "@/lib/utils/sleep"
import { getNegativePrompt, getPositivePrompt } from "@/app/api/utils/imagePrompts"
export async function generateStoryboard({
prompt,
// negativePrompt,
width,
height,
seed,
turbo = false,
}: {
prompt: string
// negativePrompt?: string
width?: number
height?: number
seed?: number
turbo?: boolean
}): Promise<string> {
width = getValidNumber(width, 256, 8192, 512)
height = getValidNumber(height, 256, 8192, 288)
// console.log("calling await newRender")
prompt = getPositivePrompt(prompt)
const negativePrompt = getNegativePrompt()
let render = await newRender({
prompt,
negativePrompt,
nbFrames: 1,
nbFPS: 1,
nbSteps: turbo ? 8 : 25,
width,
height,
turbo,
shouldRenewCache: true,
seed: seed || generateSeed()
})
let attempts = 10
while (attempts-- > 0) {
if (render.status === "completed") {
return render.assetUrl
}
if (render.status === "error") {
console.error(render.error)
throw new Error(`failed to generate the image ${render.error}`)
}
await sleep(2000) // minimum wait time
// console.log("asking getRender")
render = await getRender(render.renderId)
}
throw new Error(`failed to generate the image`)
}
|