import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Checkbox } from '@/components/ui/checkbox'; import { Slider } from '@/components/ui/slider'; import { useServerStore } from '@/stores/serverStore'; export function GenerationSettings() { const maxChunkChars = useServerStore((state) => state.maxChunkChars); const setMaxChunkChars = useServerStore((state) => state.setMaxChunkChars); const crossfadeMs = useServerStore((state) => state.crossfadeMs); const setCrossfadeMs = useServerStore((state) => state.setCrossfadeMs); const normalizeAudio = useServerStore((state) => state.normalizeAudio); const setNormalizeAudio = useServerStore((state) => state.setNormalizeAudio); const autoplayOnGenerate = useServerStore((state) => state.autoplayOnGenerate); const setAutoplayOnGenerate = useServerStore((state) => state.setAutoplayOnGenerate); return ( Generation Settings Controls for long text generation. These settings apply to all engines.
{maxChunkChars} chars
setMaxChunkChars(value)} min={100} max={5000} step={50} aria-label="Auto-chunking character limit" />

Long text is split into chunks at sentence boundaries before generating. Lower values can improve quality for long outputs.

{crossfadeMs === 0 ? 'Cut' : `${crossfadeMs}ms`}
setCrossfadeMs(value)} min={0} max={200} step={10} aria-label="Chunk crossfade duration" />

Blends audio between chunks to smooth transitions. Set to 0 for a hard cut.

Adjusts output volume to a consistent level across generations.

Automatically play audio when a generation completes.

); }