File size: 1,056 Bytes
3d4392e
 
0d218b1
3d4392e
6215321
 
3d4392e
6215321
3d4392e
 
 
 
 
 
 
6215321
 
 
 
 
 
3d4392e
 
 
 
 
6215321
 
 
 
3d4392e
 
 
 
6215321
 
 
09a7c47
 
 
6215321
3d4392e
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
"use client"

import { ClapProject, ClapSegment } from "@aitube/clap"
import { generateImage } from "./generateImage"
import { LayerElement } from "../../core/types"
import { useStore } from "@/app/state/useStore"

export async function resolve(segment: ClapSegment, clap: ClapProject): Promise<LayerElement> {

  const { prompt } = segment

  let assetUrl = ""
  try {
    // console.log(`resolveImage: generating video for: ${prompt}`)

    assetUrl = await generateImage({
      prompt,
      width: clap.meta.width,
      height: clap.meta.height,
      token: useStore.getState().jwtToken,
    })

    // console.log(`resolveImage: generated ${assetUrl}`)

  } catch (err) {
    console.error(`resolveImage failed (${err})`)
    return {
      id: segment.id,
      element: <></>
    }
  }

  // note: the latent-image class is not used for styling, but to grab the component
  // from JS when we need to segment etc
  return {
    id: segment.id,
    element: <img
      className="latent-image object-cover h-full"
      src={assetUrl}
    />
  }
}