Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
export type ClapSegmentCategory = | |
| "splat" | |
| "mesh" | |
| "depth" | |
| "event" | |
| "interface" | |
| "phenomenon" | |
| "video" | |
| "storyboard" | |
| "transition" | |
| "characters" | |
| "location" | |
| "time" | |
| "era" | |
| "lighting" | |
| "weather" | |
| "action" | |
| "music" | |
| "sound" | |
| "dialogue" | |
| "style" | |
| "camera" | |
| "generic" | |
export type ClapOutputType = | |
| "text" | |
| "animation" | |
| "interface" | |
| "event" | |
| "phenomenon" | |
| "transition" | |
| "image" | |
| "video" | |
| "audio" | |
// note: this is always called a "stream" | |
// as regardless of the format we are going to try | |
// to implement a streaming mechanism | |
export type ClapStreamType = | |
// content is static, same is sent to everyone | |
// note that this can be a video (eg.a mp4 movie) | |
// or something else completely (a webradio stream, a seq of gaussian splats) | |
| "static" | |
// content is generated on-the-fly and sent to ALL users | |
// (eg. a virtual influencer, a tv news cast) | |
| "live" | |
// content is generated on-the-fly and sent to ONE user | |
// it is also reactive (the user can interact with it) | |
// (eg. a point and click game, a tamagotchi experience) | |
| "interactive" | |
export type ClapSegmentStatus = | |
| "to_generate" | |
| "to_interpolate" | |
| "to_upscale" | |
| "completed" | |
| "error" | |
export type ClapAuthor = | |
| "auto" // the element was edited automatically using basic if/else logical rules | |
| "ai" // the element was edited using a large language model | |
| "human" // the element was edited by a human | |
export type ClapAssetSource = | |
| "REMOTE" // http:// or https:// | |
// note that "path" assets are potentially a security risk, they need to be treated with care | |
| "PATH" // a file path eg. /path or ./path/to/ or ../path/to/ | |
| "DATA" // a data URI, starting with data: | |
| "PROMPT" // by default, a plain text prompt | |
| "EMPTY" | |
export type ClapModelGender = | |
| "male" | |
| "female" | |
| "person" | |
| "object" | |
export type ClapModelAppearance = "serious" | "neutral" | "friendly" | "chill" | |
// this is used for accent, style.. | |
export type ClapModelRegion = | |
| "american" | |
| "british" | |
| "australian" | |
| "canadian" | |
| "indian" | |
| "french" | |
| "italian" | |
| "german" | |
| "chinese" | |
// note: this is all very subjective, so please use good judgment | |
// | |
// "deep" might indicate a deeper voice tone, thicker, rich in harmonics | |
// in this context, it is used to indicate voices that could | |
// be associated with African American (AADOS) characters | |
// | |
// "high" could be used for some other countries, eg. asia | |
export type ClapModelTimbre = "high" | "neutral" | "deep" | |
export type ClapVoiceVendor = "ElevenLabs" | "XTTS" | |
export type ClapVoice = { | |
name: string | |
gender: ClapModelGender | |
age: number | |
region: ClapModelRegion | |
timbre: ClapModelTimbre | |
appearance: ClapModelAppearance | |
voiceVendor: ClapVoiceVendor | |
voiceId: string | |
} | |
export type ClapHeader = { | |
format: "clap-0" | |
numberOfModels: number | |
numberOfScenes: number | |
numberOfSegments: number | |
} | |
export type ClapMeta = { | |
id: string | |
title: string | |
description: string | |
synopsis: string | |
licence: string | |
orientation: string | |
width: number | |
height: number | |
defaultVideoModel: string | |
extraPositivePrompt: string[] | |
screenplay: string | |
streamType: ClapStreamType | |
} | |
export type ClapSceneEvent = { | |
id: string | |
type: "description" | "dialogue" | "action" | |
character?: string | |
description: string | |
behavior: string | |
startAtLine: number | |
endAtLine: number | |
} | |
export type ClapScene = { | |
id: string | |
scene: string | |
line: string | |
rawLine: string | |
sequenceFullText: string | |
sequenceStartAtLine: number | |
sequenceEndAtLine: number | |
startAtLine: number | |
endAtLine: number | |
events: ClapSceneEvent[] | |
} | |
export type ClapSegment = { | |
id: string | |
track: number | |
startTimeInMs: number | |
endTimeInMs: number | |
category: ClapSegmentCategory | |
modelId: string | |
sceneId: string | |
prompt: string | |
label: string | |
outputType: ClapOutputType | |
renderId: string | |
status: ClapSegmentStatus | |
assetUrl: string | |
assetDurationInMs: number | |
createdBy: ClapAuthor | |
editedBy: ClapAuthor | |
outputGain: number | |
seed: number | |
} | |
export type ClapModel = { | |
id: string | |
category: ClapSegmentCategory | |
triggerName: string | |
label: string | |
description: string | |
author: string | |
thumbnailUrl: string | |
seed: number | |
assetSourceType: ClapAssetSource | |
assetUrl: string | |
// those are only used by certain types of models | |
age: number | |
gender: ClapModelGender | |
region: ClapModelRegion | |
appearance: ClapModelAppearance | |
voiceVendor: ClapVoiceVendor | |
voiceId: string | |
} | |
export type ClapProject = { | |
meta: ClapMeta | |
models: ClapModel[] | |
scenes: ClapScene[] | |
segments: ClapSegment[] | |
// let's keep room for other stuff (screenplay etc) | |
} | |