ai-tube / src /app /api /generators /clap /generateClap.ts
jbilcke-hf's picture
jbilcke-hf HF staff
Modifying AiTube to support Stories Factory use cases
6215321
raw
history blame
No virus
1.21 kB
"use server"
import { serializeClap } from "@/lib/clap/serializeClap"
import { newClap } from "@/lib/clap/newClap"
import { getEmptyClap } from "@/lib/clap/emptyClap"
import { LatentScenes } from "./types"
import { addLatentScenesToClap } from "./addLatentScenesToClap"
import { getLatentScenes } from "./getLatentScenes"
/**
* 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 = await getEmptyClap()
if (!prompt?.length) {
return empty
}
let clap = 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 = await serializeClap(clap)
return archive
}