Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
File size: 2,281 Bytes
30c1ba0 955ce73 096584a eff8217 096584a 39166f8 096584a b785e1d 096584a cd6d879 096584a 39166f8 096584a bdccaf0 096584a 39166f8 096584a 39166f8 096584a 39166f8 096584a bdccaf0 30c1ba0 bdccaf0 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 56 57 58 59 60 61 62 63 64 65 |
import { generateImageLCMAsBase64 } from "../providers/image-generation/generateImageLCMGradio.mts"
import { generateImageSDXLAsBase64 } from "../providers/image-generation/generateImageSDXLGradio.mts"
import { generateImageSDXL360AsBase64 } from "../providers/image-generation/generateImageSDXL360.mts"
import { RenderedScene, RenderRequest } from "../types.mts"
export async function renderImage(
request: RenderRequest,
response: RenderedScene,
): Promise<RenderedScene> {
const isSpherical = request.projection === 'spherical'
const generateImageAsBase64 = isSpherical
? generateImageSDXL360AsBase64
: request.turbo
? generateImageLCMAsBase64
: 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))
// we try at least 3 different servers
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) {
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, due to`, err)
response.error = `failed to render scene: ${err}`
response.status = "error"
response.assetUrl = ""
}
}
}
return response
}
|