File size: 1,120 Bytes
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
import { RenderedScene, RenderRequest } from "../types.mts"
import { generateVideo } from "./generateVideo.mts"

export async function renderVideo(
  request: RenderRequest,
  response: RenderedScene
): Promise<RenderedScene> {

  const params = {
    seed: request.seed,
    nbFrames: request.nbFrames,
    nbSteps: request.nbSteps,
  }

  try {
    response.assetUrl = await generateVideo(request.prompt, params)
    // console.log("successfull generation")

    if (!response.assetUrl?.length) {
      throw new Error(`url for the generated video is empty`)
    }
  } catch (err) {
    console.error(`failed to render the video scene.. but let's try again!`)

    try {
      response.assetUrl = await generateVideo(request.prompt, params)
      // console.log("successfull generation")

      if (!response.assetUrl?.length) {
        throw new Error(`url for the generated video is empty`)
      }
      
    } catch (err) {
      console.error(`it failed the video for second time ${err}`)
      response.error = `failed to render video scene: ${err}`
      response.status = "error"
    }
  }

  return response
}