Files
hao-ai-lab-FastVideo/apps/fastvideo_studio/src/lib/defaultOptions.ts
T
2026-06-30 15:06:40 -07:00

101 lines
2.3 KiB
TypeScript

// SPDX-License-Identifier: Apache-2.0
export interface DefaultOptions {
apiServerBaseUrl: string;
defaultModelId: string;
defaultModelIdT2v: string;
defaultModelIdI2v: string;
defaultModelIdT2i: string;
numInferenceSteps: number;
numFrames: number;
height: number;
width: number;
guidanceScale: number;
guidanceRescale: number;
fps: number;
seed: number;
numGpus: number;
ditCpuOffload: boolean;
textEncoderCpuOffload: boolean;
vaeCpuOffload: boolean;
imageEncoderCpuOffload: boolean;
useFsdpInference: boolean;
enableTorchCompile: boolean;
vsaSparsity: number;
tpSize: number;
spSize: number;
autoStartJob: boolean;
datasetUploadPath: string;
}
export const DEFAULT_OPTIONS: DefaultOptions = {
apiServerBaseUrl: "",
defaultModelId: "",
defaultModelIdT2v: "",
defaultModelIdI2v: "",
defaultModelIdT2i: "",
numInferenceSteps: 50,
numFrames: 81,
height: 480,
width: 832,
guidanceScale: 5.0,
guidanceRescale: 0,
fps: 24,
seed: 1024,
numGpus: 1,
ditCpuOffload: false,
textEncoderCpuOffload: false,
vaeCpuOffload: false,
imageEncoderCpuOffload: false,
useFsdpInference: false,
enableTorchCompile: false,
vsaSparsity: 0,
tpSize: -1,
spSize: -1,
autoStartJob: false,
datasetUploadPath: "",
};
const STORAGE_KEY = "fastvideo-default-options";
export type WorkloadType = "t2v" | "i2v" | "t2i";
export function getDefaultModelForWorkload(
options: DefaultOptions,
workloadType: WorkloadType,
): string {
switch (workloadType) {
case "t2v":
return options.defaultModelIdT2v || options.defaultModelId || "";
case "i2v":
return options.defaultModelIdI2v || "";
case "t2i":
return options.defaultModelIdT2i || "";
default:
return options.defaultModelId || "";
}
}
export function loadDefaultOptions(): DefaultOptions {
if (typeof window === "undefined") {
return DEFAULT_OPTIONS;
}
try {
const stored = localStorage.getItem(STORAGE_KEY);
if (!stored) return DEFAULT_OPTIONS;
const parsed = JSON.parse(stored) as Partial<DefaultOptions>;
return { ...DEFAULT_OPTIONS, ...parsed };
} catch {
return DEFAULT_OPTIONS;
}
}
export function saveDefaultOptions(options: DefaultOptions): void {
if (typeof window === "undefined") return;
try {
localStorage.setItem(STORAGE_KEY, JSON.stringify(options));
} catch {
// Ignore storage errors
}
}