Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
File size: 1,774 Bytes
096584a b785e1d 096584a cd6d879 096584a |
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 |
import { RenderedScene, RenderRequest } from "../types.mts"
import { generateImageSDXLAsBase64 } from "../utils/generateImageSDXL.mts"
import { generateImageSDXL360AsBase64 } from "../utils/generateImageSDXL360.mts"
export async function renderImage(
request: RenderRequest,
response: RenderedScene,
): Promise<RenderedScene> {
const isSpherical = request.projection === 'spherical'
const generateImageAsBase64 = isSpherical
? generateImageSDXL360AsBase64
: generateImageSDXLAsBase64
console.log(`going to generate an image using ${request.projection || "default (cartesian)"} projection`)
const params = {
positivePrompt: request.prompt,
negativePrompt: request.negativePrompt,
seed: request.seed,
nbSteps: request.nbSteps,
width: request.width,
height: request.height
}
console.log(`calling generateImageAsBase64 with: `, JSON.stringify(params, null, 2))
// first we generate a quick low quality version
try {
response.assetUrl = await generateImageAsBase64(params)
console.log("successful generation!", response.assetUrl.slice(0, 30))
if (!response.assetUrl?.length) {
throw new Error(`the generated image is empty`)
}
} catch (err) {
console.error(`failed to render.. but let's try again!`)
try {
response.assetUrl = await generateImageAsBase64(params)
console.log("successful generation!", response.assetUrl.slice(0, 30))
if (!response.assetUrl?.length) {
throw new Error(`the generated image is empty`)
}
} catch (err) {
console.error(`failed to generate the image, although ${err}`)
response.error = `failed to render scene: ${err}`
response.status = "error"
response.assetUrl = ""
}
}
return response
}
|