diff --git a/src/components/AppSidebar.vue b/src/components/AppSidebar.vue index 1af1384..5fce16d 100644 --- a/src/components/AppSidebar.vue +++ b/src/components/AppSidebar.vue @@ -73,6 +73,7 @@ const navItems = computed(() => { { path: '/', icon: '🏠', tooltip: 'Home' }, { path: '/projects', icon: '📂', tooltip: 'Projects' }, { path: '/flexible', icon: '🖌️', tooltip: 'Flexible Generation' }, + { path: '/video', icon: '🎬', tooltip: 'Video Generation' }, { path: '/albums', icon: '🖼️', tooltip: 'Library' }, { path: '/characters', icon: '👥', tooltip: 'Characters' }, { path: '/image-to-prompt', icon: '✨', tooltip: 'Image to Prompt' } diff --git a/src/router/index.js b/src/router/index.js index 5f21804..70934af 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -57,6 +57,11 @@ const router = createRouter({ name: 'flexible', component: () => import('../views/FlexibleGenerationView.vue') }, + { + path: '/video', + name: 'video', + component: () => import('../views/VideoGenerationView.vue') + }, { path: '/albums', name: 'albums', diff --git a/src/services/aiService.js b/src/services/aiService.js index 2a6ead9..56c9311 100644 --- a/src/services/aiService.js +++ b/src/services/aiService.js @@ -66,5 +66,18 @@ export const aiService = { linked_assets: linkedAssets }) return response.data + }, + + // Run video generation task + async runVideoGeneration(payload) { + const response = await api.post('/generations/video/_run', payload) + return response.data + }, + + // Get video generations history + async getVideoGenerations(limit, offset) { + const params = { limit, offset, gen_type: 'Video' } + const response = await api.get('/generations', { params }) + return response.data } } diff --git a/src/views/VideoGenerationView.vue b/src/views/VideoGenerationView.vue new file mode 100644 index 0000000..54fdf77 --- /dev/null +++ b/src/views/VideoGenerationView.vue @@ -0,0 +1,982 @@ + + +