Jasna GUI 批量视频修复完整指南:从队列、预设到模型激活的 8 个环节 Jasna GUI 批量视频修复完整指南从队列、预设到模型激活的 8 个环节【免费下载链接】jasnaVideo restoration tool项目地址: https://gitcode.com/GitHub_Trending/ja/jasna想在 GPU 上批量修复老视频Jasna 的 GUI 把这件事拆成了 8 个环节环境自检、队列管理、输出命名、预设方案、实时预览、图片精修、模型激活和日志速查。本指南按你实际操作的顺序讲清每个环节的行为边界并把每个结论落到源码常量与方法名上方便你对照排查。上机前环境要求与启动自检先说结论Jasna 对安装位置有两项硬要求违反任何一项都会拖慢启动或导致运行失败。本地磁盘拒绝网络盘。Windows 用 NTFSLinux 用 ext4、Btrfs、XFS 或 ZFS见docs/zh/gui.md的原文要求。路径必须纯 ASCII。安装目录不允许中文、日文或带重音的字母。实现上check_ascii_install_path直接对目录名执行encode(ascii)一旦抛UnicodeEncodeError就判定失败这个结果会出现在启动向导里。强烈建议 SSD。启动和加载模型都很慢是机械硬盘的真实代价_warn_if_installed_on_hard_disk在每次启动时调用install_on_hard_diskWindows 端查驱动是否有寻道开销Linux 端读/sys块设备的rotational标志Btrfs 的匿名设备会回退到挂载源设备确认是 HDD 后日志面板写入一条hard_disk_warning。首次启动会弹出FirstRunWizard窗口做安装检查检查在后台线程执行UI 每 100ms 轮询一次检查项判定标准失败后果ascii_path安装目录可编码为纯 ASCII阻塞按钮变“退出”ffprobe能找到ffprobe且 FFmpeg 主版本号为8check_ffprobe阻塞gpu检测到受支持 GPU 且架构、计算能力达标check_gpu阻塞cudaCUDA/ROCm 可用并报告版本与计算能力check_cuda阻塞driver驱动达到MIN_DRIVER_VERSIONLinux 580 / Windows 610阻塞sysmem仅 Windows共享内存回退策略属WARNING_ONLY_CHECKS只告警不阻塞amf仅 AMDAMD AMF 运行时库可加载check_amf阻塞Linux 需手动装一次 AMF 安装器⚠️ 两个容易踩的边界其一若 30 秒_CHECKS_TIMEOUT_SECONDS内检查没跑完——常见于驱动查询卡住或 torch 冷导入——向导会放弃等待展示部分结果evaluate_check_results会把未完成项读作失败而非通过其二只有存在必需项失败时底部按钮才变成“退出”仅有警告仍可按“开始使用”。检查全过后版本会记入set_system_check_passed_version之后从页眉点“系统检查”重跑例如更新驱动后只关闭对话框、不会退出程序。源码定位jasna/gui/wizard.py→FirstRunWizard、_CHECKS_TIMEOUT_SECONDSjasna/gui/system_checks.py→run_system_checks、evaluate_check_resultsjasna/os_utils.py→check_ascii_install_path、install_on_hard_disk、MIN_DRIVER_VERSIONjasna/gui/app.py→_warn_if_installed_on_hard_disk、_show_system_check。主流程批量任务从入队到跑完队列是 GUI 的主操作区处理顺序就是列表从上到下的顺序。入队点“添加文件”_on_add_files选视频或图片点旁边的文件夹图标_on_add_folder整目录入队folder_media_in_processing_order会按“图片在前、视频在后、按深度和路径排序”排好顺序也可以直接把文件拖到队列上enable_file_drop/_on_file_drop。同一路径重复添加会被忽略add_job。排序拖动队列项的把手换位。⚠️ 队列超过 20 项_PAGE_SIZE 20后出现翻页翻页只影响显示所有页面仍按原顺序处理拖动只能在同一页内完成。单项按钮剪刀打开区间编辑器_edit_segments图片项不显示此按钮播放在视频播放器中打开该视频并保持暂停_play_job三点或右键打开所在文件夹、复制路径、打开修复后的输出以及“重新加入队列”_requeue_job把已完成/失败/跳过的项放回队尾叉号移除该项。进度反馈update_job_status会把progress、fps、eta_seconds实时刷到对应行。▶ 开始按钮的可用条件_update_start_button_state队列非空且没有 LTX 模型在下载也没有修复预览占用 GPU三个条件缺一即置灰并给出对应提示。▶ 的两种语义若上次是■ 停止中断的was_stopped为真再按 ▶ 只续跑PENDING状态的项已完成的不重做若整队已跑完再按 ▶ 会用当前设置重新处理全部项目——所以改完设置后直接按 ▶ 即可不必重新加文件。■ 停止processor.py的_mark_stopped把当前项状态改回PENDING写了一半的输出文件留在磁盘上下次如何处理由文件冲突设置决定。收尾按钮“清除已完成”移除已完成/失败/跳过三类项_on_clear_completed“清空”移除全部_on_clear_queue。处理中关窗口会先询问“最小化继续”还是“停止并退出”_on_close_requested。源码定位jasna/gui/queue_panel.py→_on_add_files、_on_add_folder、_PAGE_SIZE、_requeue_job、update_job_statusjasna/gui/app.py→_update_start_button_state、_on_start、_on_close_requestedjasna/gui/processor.py→_mark_stopped。产物输出位置、文件名模板与冲突策略输出设置就在队列面板底部三个要素位置、模板、冲突策略。与输入相同_on_same_as_input结果保存在原文件旁边手动输入或浏览选择输出目录_on_browse_output会自动关闭它再点一次可重新打开。输出文件名模板占位符只有{original}代表输入文件名不含扩展名。media_files.py的folder_output_path执行output_pattern.replace({original}, input_path.stem)图片输出保留源扩展名视频输出取模板里的扩展名。GUI 默认模板是DEFAULT_OUTPUT_PATTERN {original}_restored.mp4输入my_video.mp4即得my_video_restored.mp4。冲突检测是实时的输出目录或模板一变_refresh_conflicts立即重算会把会覆盖其他文件的队列项高亮set_conflict入队时若输出路径已存在该项同样标记冲突。文件冲突策略位于“基本处理”部分三选一取值界面名称行为auto_rename默认自动重命名由unique_path改成名称 (N).extoverwrite覆盖界面额外显示 ⚠️ 提示“现有文件将被永久替换”skip跳过该项直接标记SKIPPED源码定位jasna/gui/models.py→DEFAULT_OUTPUT_PATTERN、AppSettings.file_conflictjasna/media/media_files.py→folder_output_path、unique_pathjasna/gui/settings_sections/basic.py→file_conflict下拉jasna/gui/processor.py→ 冲突分支处理。方案管理预设与按任务覆盖的例外预设 全部设置的快照。设置面板上方的工具条settings_panel.py的_build_preset_bar可把当前所有设置存为一个名字例如“1080p 快速”“4K 最佳质量”之后一键切换。底层是models.py的PresetManagercreate_preset/delete_preset管理增删get_last_selected/set_last_selected记录上次使用的预设——这就是“Jasna 重启后记住上次预设”的来源加载旧版预设数据时经_migrate_preset_dict迁移老配置照常可读手动改动任何设置会触发_mark_modified→_update_modified_indicator面板标出“已修改”状态提醒你当前已偏离所选预设出厂预设is_factory_preset与用户预设分开管理删除出厂预设会被拒绝。⚠️ 有两类设置不走预设、按视频保存在区间编辑器里配置的检测模型和检测阈值。队列项通过JobItem.try_set_video_options单独记录这两个值只在PENDING状态可写队列里其他视频各保各的。同一队列可以混放“高阈值粗检”和“低阈值精检”的视频互不干扰输出路径的冲突标记也是逐项独立的。源码定位jasna/gui/models.py→PresetManager、_migrate_preset_dict、JobItem.try_set_video_optionsjasna/gui/settings_panel.py→_build_preset_bar、_update_modified_indicator。眼见为实实时预览与静态图处理视频播放器让你边修边看全程不生成输出文件。页眉点“视频播放器”_open_video_player打开先选检测模型与阈值、按需选二次修复再“选择视频”按播放。键盘空格播放/暂停_space_pressed左/右方向键跳转 30 秒_seek_relative步长常量_SEEK_STEP_SECONDS 30.0。全屏时鼠标移到底部边缘唤出控制栏。改参数即重播更换模型、阈值或二次修复后从当前位置重建管线重新播放。二次修复档位由available_player_secondary_restorations决定仅 NVIDIA 卡可见rtx-super-res且本地已下载模型时才有unet-4x。实时性指标状态栏显示“已提前修复好的秒数”。它反复归零说明当前设置下 GPU 修复速度追不上播放速度音频会等更多画面准备好。背后是raw_player.py的时间戳帧缓冲BUFFER_SECONDS 3.0后台最多领先 3 秒画面、PREROLL_SECONDS 1.5预滚 1.5 秒才真正开声缓冲溢出时_would_overflow_locked会丢弃旧帧保新帧。两个硬性约束播放器总是用 BasicVSR不用 LTX⚠️ 队列或修复预览任一在运行时不能打开——_open_video_player开头即检查_preview_gpu_busy或is_running()页眉按钮同步置灰_update_video_player_button_state。静态图片走另一条路交互式处理图片位于“图像修复静态图片”部分。选图后打开左右对比视图逐张浏览_previous_image/_next_image_clicked、换种子重渲_change_seed、在原图/遮罩/结果间切换_mask生成遮罩视图、_set_view切模式只保存你满意的_save_current。渲染在后台线程按单帧进行_worker_loop/_render换种子只是同一帧上的一次前向推理比每次重跑整个任务快得多。源码定位jasna/gui/video_player.py→_SEEK_STEP_SECONDS、available_player_secondary_restorationsjasna/gui/raw_player.py→BUFFER_SECONDS、PREROLL_SECONDS、_would_overflow_lockedjasna/gui/interactive_image_restore.py→_change_seed、_set_view、_save_current。模型激活在线与手动两条路支持者模型UNet 4x、SD 1.5、LTX需要激活后才能用。页眉点“激活 Jasna”打开对话框所有阻塞操作都在后台线程跑activation_worker.py不卡 UI。已激活的机器再打开窗口会联网查询已用设备名额例如显示2 / 3查询失败可重开窗口重试修复功能本身仍可离线使用。路径一在线激活默认。输入许可证码点“在线激活”start_online_activation。⚠️ 在线激活只上传许可证码和机器密钥两项之后 Jasna 完全离线使用。路径二手动激活适合无网电脑或在线激活失败复制机器密钥start_machine_key内部调用machine_key(cloud_workspaceFalse)基于本机硬件生成在任意联网设备打开激活页面或点“打开激活页面”输入机器密钥和许可证码也可把两者发给你获取许可证码的地方把拿到的激活密钥粘回 Jasna点“激活”start_activation。名额与硬件变更规则一个许可证码可用3 台电脑或云工作区同一台机器再次激活不占新名额释放名额只有所有者能做更换主板Windows或重装 Linux 算新电脑占一个名额重装 Windows、换显卡/硬盘/内存不算重新激活即可激活密钥只包含许可证码里对应的模型持 Jasna 0.10 旧邮箱密钥的旧密钥已作废需向原购买处申请新许可证码。密钥被拒绝怎么排查先核对机器密钥是否配对再确认完整复制了激活密钥⚠️ 以JW1-开头的密钥是云端 CLI 专用start_activation里直接抛license_cloud_cli_only错误粘进 GUI 必被拒为旧版 Jasna 生成的密钥需回购买处换新。购买入口许可证码只能通过官方渠道获取。中文界面下激活对话框和首次启动向导的页脚会出现闲鱼按钮shows_xianyu_seller按当前语言决定点击显示卖家二维码用闲鱼 App 扫码进卖家主页界面顶部的闲鱼按钮同样可用。源码定位jasna/gui/activation_worker.py→start_machine_key、start_activation、start_online_activation、start_device_countjasna/gui/components.py→shows_xianyu_seller、XianyuButtonjasna/gui/app.py→_open_license_dialog、_refresh_license_chip。速查关键常量、日志与系统状态常量 / 行为值出处队列每页大小_PAGE_SIZE20jasna/gui/queue_panel.py日志环形缓冲_MAX_LOG_ENTRIES5000 行超出自动丢最旧jasna/gui/log_panel.py播放器缓冲上限BUFFER_SECONDS3.0 秒jasna/gui/raw_player.py播放器预滚PREROLL_SECONDS1.5 秒jasna/gui/raw_player.py方向键跳转步长_SEEK_STEP_SECONDS30 秒jasna/gui/video_player.py自检等待上限_CHECKS_TIMEOUT_SECONDS30 秒jasna/gui/wizard.py系统状态采样间隔1.5 秒_start_system_stats_pollerjasna/gui/app.py驱动最低版本MIN_DRIVER_VERSIONLinux 580 / Windows 610jasna/os_utils.py默认输出模板DEFAULT_OUTPUT_PATTERN{original}_restored.mp4jasna/gui/models.py日常看日志与状态底部工具条的日志按钮展开 LogPanel可按 debug / info / warning / error 过滤导出保存最后 5000 行export_log_entries_txt写为.txt反馈问题请附上它。处理期间底部工具条显示 GPU、显存、内存与 CPU 占用数据来自system_stats.py的read_system_statsNVIDIA 解析nvidia-smiCSV、AMD 读 sysfs。界面语言首启跟随系统可在页眉更改_on_language_changed触发_refresh_ui_text立即刷新文字完整切换需重启内置 zh、en、ja、ko、th 五套语言包。故障排查速查Q1启动向导某项打红叉按钮变成“退出”怎么办只有必需项失败才会这样。ffprobe失败多半是 FFmpeg 主版本不是 8driver失败对照MIN_DRIVER_VERSIONamf失败AMD需要按docs/zh/gui.md的说明装一次 AMF 运行库再重启。修好后从页眉重跑系统检查即可。Q2向导一直转圈最后部分项目直接算失败30 秒超时兜底_CHECKS_TIMEOUT_SECONDS到期后展示已有结果未完成项按失败处理。通常是冷启动 torch 导入或驱动查询慢重开一次一般能通过。Q3输出文件没覆盖多了一个(1)后缀的文件这是auto_rename的默认行为unique_path自动改名想覆盖需把文件冲突改成“覆盖”想静默跳过则选“跳过”。入队或改模板时高亮的队列项就是在提前告知这种覆盖。Q4按 ▶ 没反应按钮是灰的三个条件查一遍队列为空、LTX 模型正在下载、修复预览占用 GPU_update_start_button_state会附带对应提示文案。播放器打开时同样占用 GPU。Q5播放器状态栏的“已就绪秒数”反复归零当前设置下 GPU 修复速度低于实时音频会在等画面。降低分辨率或取消二次修复让修复线程能维持 1.5 秒PREROLL_SECONDS以上的提前量。Q6激活密钥粘贴后被拒按顺序排查机器密钥是否配对、激活密钥是否完整复制、密钥是否以JW1-开头云端 CLI 专用GUI 不认。旧版 Jasna 生成的密钥一律回购买处换新。一条主线串起全部环节队列驱动批量任务预设保存全局方案检测项按视频覆盖播放器与预览共享 GPU 互斥调度激活解锁支持者模型。想深挖某个行为直接进jasna/gui/与jasna/os_utils.py按文中“源码定位”给的函数名搜一下即可。【免费下载链接】jasnaVideo restoration tool项目地址: https://gitcode.com/GitHub_Trending/ja/jasna创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考