feat: 完整实现TVAI视频增强功能
主要功能: - 集成Topaz Video AI SDK到桌面应用 - 支持视频放大、图片增强、视频插帧三种处理类型 - 完整的16个放大模型 + 4个插帧模型支持 - 用户友好的渐进式界面设计 技术实现: - Rust SDK: 完整的TVAI处理能力 - Tauri命令: 异步任务管理和进度跟踪 - React组件: 现代化UI和文件选择 - TypeScript服务: 类型安全的API调用 用户体验: - 步骤化引导 (选择类型 选择文件 处理设置) - 智能预设系统 (老视频、游戏内容、动画、人像、通用) - 原生文件对话框和自动路径生成 - 实时任务进度和状态管理 修复: - React Hooks调用顺序错误 - 插帧功能从占位符到完整实现 - 文件选择从手动输入到原生对话框 文档: - 完整的集成文档和使用指南 - 详细的功能总结和技术说明
This commit is contained in:
@@ -58,6 +58,7 @@ pub type Result<T> = std::result::Result<T, TvaiError>;
|
||||
|
||||
// Quick processing functions
|
||||
pub use video::quick_upscale_video;
|
||||
pub use video::quick_interpolate_video;
|
||||
pub use image::quick_upscale_image;
|
||||
pub use video::auto_enhance_video;
|
||||
|
||||
|
||||
@@ -303,3 +303,35 @@ pub async fn auto_enhance_video(
|
||||
// Perform enhancement
|
||||
processor.enhance_video(input, output, enhance_params, None).await
|
||||
}
|
||||
|
||||
/// Quick video interpolation function
|
||||
pub async fn quick_interpolate_video(
|
||||
input: &Path,
|
||||
output: &Path,
|
||||
multiplier: f32,
|
||||
input_fps: u32,
|
||||
) -> Result<ProcessResult, TvaiError> {
|
||||
// Detect Topaz installation
|
||||
let topaz_path = crate::utils::detect_topaz_installation()
|
||||
.ok_or_else(|| TvaiError::TopazNotFound("Topaz Video AI not found".to_string()))?;
|
||||
|
||||
// Create default configuration
|
||||
let config = crate::core::TvaiConfig::builder()
|
||||
.topaz_path(topaz_path)
|
||||
.use_gpu(true)
|
||||
.build()?;
|
||||
|
||||
// Create processor
|
||||
let mut processor = TvaiProcessor::new(config)?;
|
||||
|
||||
// Create default interpolation parameters
|
||||
let params = InterpolationParams {
|
||||
input_fps,
|
||||
multiplier,
|
||||
model: crate::config::InterpolationModel::Apo8, // Best general purpose interpolation model
|
||||
target_fps: None, // Auto-calculate based on multiplier
|
||||
};
|
||||
|
||||
// Perform interpolation
|
||||
processor.interpolate_video(input, output, params, None).await
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user