ai-tube / src /app /api /generators /clap /generateClap.ts
jbilcke-hf's picture
jbilcke-hf HF staff
let's use @aitube/clap inside AiTube
0d218b1
raw
history blame
1.16 kB
"use server"
import { LatentScenes } from "./types"
import { addLatentScenesToClap } from "./addLatentScenesToClap"
import { getLatentScenes } from "./getLatentScenes"
import { ClapProject, getEmptyClap, newClap, serializeClap } from "@aitube/clap"
/**
* Generate a Clap file from scratch using a prompt
*/
export async function generateClap({
prompt = "",
debug = false
}: {
prompt?: string
debug?: boolean
} = {
prompt: "",
debug: false,
}): Promise<Blob> {
const empty: Blob = await getEmptyClap()
if (!prompt?.length) {
return empty
}
let clap: ClapProject = newClap({
meta: {
title: "Latent content", // TODO "
description: "",
licence: "non commercial",
orientation: "landscape",
width: 1024,
height: 576,
defaultVideoModel: "SDXL",
extraPositivePrompt: [],
screenplay: "",
isLoop: true,
isInteractive: true,
}
})
const scenes: LatentScenes = await getLatentScenes({
prompt,
debug,
})
clap = await addLatentScenesToClap({
clap,
scenes,
debug,
})
const archive: Blob = await serializeClap(clap)
return archive
}