Skip to content

CuiMuxuan/Moonshine-Image

Repository files navigation

Moonshine-Image

Moonshine 图像/视频处理客户端

项目简介

这个项目是以 IOPaint 为基础的二次开发项目,目前能够实现更灵活地批量为图片/视频去除物体(或者水印、文字等)。

技术栈

功能实现状态

  • ✅ 批量图像蒙版编辑
  • ✅ 批量图像处理
  • ✅ 启动配置的灵活处理
  • ✅ 通过前端UI启动后端程序
  • ✅ 视频处理
  • 🔄 OCR文字识别并将蒙版提交给去除页面
  • 📝 整合图片修复模型(如微软的Bringing-Old-Photos-Back-to-Life项目)
  • 📝 图片文件的查看与编辑功能(裁剪、旋转、大小重置、颜色调节等)
  • 📝 截图后保存或者处理功能

注:✅ 已实现 | 🔄 正在实现 | 📝 计划实现

目前项目没有独立的后端,后续开发过程中若有必要会建立独立的后端程序(目前可以在前端UI页面中半自动地配置后端。v1.0.0以上版本发布的windows软件包可以一键启动,不再需要考虑配置环境和模型)。

快速使用

方法一:获取本项目v0.0.2发行版本的zip文件并解压缩,双击 bat 一键启动脚本。

方法二:获取本项目v0.1.0发行版本的zip文件并解压缩。打开exe软件后,于右上角,先调整全局配置,再点击后端管理,逐步配置环境并启动后端。

方法三(推荐):获取本项目v1.0.0及以上发行版本的zip文件并解压缩。打开exe软件后,于右上角点击后端管理,按照提示等待软件自动配置环境,点击启动。

软件包清单

全局配置的后端设置仅于使用后端管理功能时有效

开发本项目的准备

由于本仓库只存在iopaint-change用以记录与iopaint项目的变动文件,所以开发前你应该获取一个iopaint项目作为后端服务。

方式一:手动配置后端服务

  1. 将 IOPaint 项目拉取或下载到本地:

    git clone https://github.com/Sanster/IOPaint.git
  2. 配置后端环境: 首先要有 Python 环境,推荐 3.10 版本的环境(开发环境为3.11.5)。 安装依赖:

    pip install -r requirements.txt

    注意,如果需要使用 CUDA,请下载 CUDA 版本的 torch。

  3. 初次启动后端项目会自动下载模型文件,若下载失败则需要手动下载 big-lama 模型并将其放置于 'path\to\%当前用户名%\.cache\torch\hub\checkpoints' 路径下。 示例:作者用户名为CuiMuxuan,模型文件放置路径为'C:\Users\CuiMuxuan\.cache\torch\hub\checkpoints' v1.0.0版本后也可以将模型文件放置于项目根目录models路径下(手动创建并放置模型 )

  4. 将本项目 iopaint-change 目录下的文件替换掉 IOPaint 项目 iopaint 目录下的同名文件。(本项目重构了大量api,不与iopaint兼容,且v1.0.0版本不与低版本兼容)

  5. 在 IOPaint 目录下使用以下命令开启后端程序:

    python main.py start --model=lama --device=cuda --port=8080

方式二:使用后端管理功能配置后端服务

  1. 启动具有后端功能的软件

    • 方式1:从发行版本中获取v0.1.0及以上版本的软件=>双击exe文件启动软件。
    • 方式2:git本项目和IOPaint项目=>将本项目 iopaint-change 目录下的文件替换掉 IOPaint 项目 iopaint 目录下的同名文件=>配置node环境=>以electron开发模式启动
  2. 点击右上角的后端管理按钮,配置后端服务环境。

软件压缩包中的后端项目路径为resources\backend\IOPaint

软件压缩包中的python环境存在于resources\runtime\win-x64\env

软件压缩包中的模型文件存在于resources\models

  1. 根据后端管理页面的提示,开启后端服务。

后端管理

自动配置环境的功能仅在v0.1.0及以上版本的软件中有效 此页面考虑到一些用户的电脑配置,可能会自动配置失败。若失败,则需要手动配置。 项目中存在linux系统和macOS系统适配处理的代码,但作者仅对windows系统做过测试。

v1.0.0版本后的发行版内置离线运行时,程序能在离线的情况下成功运行(不要将其装在受保护目录,或者当 U 盘/安全策略/杀软阻止修改 resources/runtime/...时,会导致conda-unpack 失败,进而造成离线运行时启动失败)。

环境检测步骤考虑以下几种情况:

  1. 无python环境,无conda环境
    • 处理:点击'安装python按钮',自动从python.org下载python3.11.5安装包并安装python环境。
  2. 无python环境,有conda环境
    • 处理:检查是否存在名为moonshine-image的虚拟环境,若有则激活,若没有则自动创建该环境并激活。(该处理功能未测试,若正常可用或存在问题,请予我反馈)
  3. 有任何可用python环境
    • 处理:显示python版本
  • python环境检测完成后,检测是否存在IOPaint项目(检查路径可于全局配置中配置)
    • 处理:若不存在则显示未检测到后端项目,需要自行获取一个后端项目。

环境配置步骤

  1. 检查环境中的依赖包是否存在
  2. 若不存在则自动pip从镜像源下载python依赖包

服务管理步骤

  1. 确认后端服务启动参数(参数初始化于全局配置中)
  2. 点击‘启动服务’按钮,启动后端服务。

开发环境

使用完整功能请完成开发本项目的准备,若仅需要改动前端交互页面则不需要。

  1. 克隆本仓库:
git clone https://github.com/CuiMuxuan/Moonshine-Image.git
  1. 安装依赖:
yarn
# or
npm install
  1. 启动开发模式(建议使用electron模式,本地文件的修改和终端的调用需要以electron模式进行):
quasar dev
# or
npm run dev
# 或启动 Electron 版本
quasar dev -m electron
# or
npm run dev -- -m electron
  1. 构建
# 打包 Web 版本
quasar build
# or
npm run build
# 打包 Windows 桌面应用
quasar build -m electron -T win32
# or
npm run build -- -m electron

使用指南

以下内容为软件的使用说明

图片处理

图片处理

  • 快速使用
    • 添加图像:点击底部工具栏中的"选择文件"按钮添加图像
    • 编辑蒙版:使用绘制工具创建或编辑图像蒙版
    • 选择处理模型:在运行设置顶部选择处理模型
    • 选择作用范围:作用范围会控制运行和下载功能生效的文件
  • 批量处理
    • 方式1:选中多个文件=>作用范围选择仅选中文件
    • 方式2:作用范围选择文件夹=>设置图片文件夹、蒙版文件夹
  • 进行处理
    • 点击"运行"按钮=>根据运行设置开始处理图像
    • 运行过程中可以通过后端管理页面的终端查看处理进度
  • 保存结果
    • 点击"下载"按钮=>根据运行设置保存处理结果
    • 默认保存路径自动初始化全局配置中的图片路径
    • 运行设置右侧栏可以指定保存路径,其值优先级高于默认路径
  • 后端管理
    • 检查并配置后端服务环境,支持管理后端服务(开启、停止、设置启动参数、重启)。

视频处理

视频处理

  • 快速使用
    • 添加视频:点击左侧资源栏顶部的上传按钮导入视频
    • 创建蒙版:在“蒙版与导出”页签中点击“新建蒙版”,选择需要编辑的蒙版
    • 绘制蒙版:在主预览区开启绘制后,使用画笔、矩形或橡皮工具编辑蒙版
    • 调整时间范围:通过时间轴或右侧“蒙版范围编辑”设置蒙版的开始时间与结束时间
  • 关键帧编辑
    • 在当前时间点添加关键帧,用于控制蒙版的位置、缩放与时间变化
    • 可在右侧“关键帧编辑”中精确修改关键帧时间、坐标和缩放
    • 支持为蒙版设置关键帧插值方式,并在时间轴中直观查看蒙版区间与关键帧
  • 进行处理
    • 选择导出帧率后,点击“运行处理”开始按批次处理视频
    • 处理过程中会显示全局进度、阶段说明与预计剩余时间
    • 若后端服务已启动,可通过后端管理页面查看更详细的处理输出
  • 结果管理
    • 处理完成后可直接打开输出目录
    • 支持将最新处理结果替换为当前视频源文件,继续下一轮编辑
    • 支持在当前会话内回退到历史记录中的原始视频或替换后视频

全局配置

全局配置

  • 通用配置
    • 可为图片处理页、视频处理页中的常用动作配置快捷键
    • 支持录制快捷键、恢复单项默认值,以及一键恢复全部默认配置
  • 后端配置
    • 配置后端端口、启动方式、后端项目路径、模型目录与默认模型
    • 相关设置主要在使用后端管理功能时生效
  • 文件管理
    • 配置下载 / 导出路径、临时文件路径
    • 配置图片输出文件夹名与视频输出文件夹名
  • 外观主题
    • 调整主题品牌色
    • 调整绘制工具按钮大小
    • 分别设置图片处理与视频处理的默认画笔颜色、大小和透明度
  • 高级配置
    • 图片处理:配置历史记录上限、图片警告大小、状态保存上限、图片处理方式,以及输出文件命名方式
    • 视频处理:配置固定批次帧数、拆帧存储格式、最大导出帧数、历史记录上限、批次重试次数、失败现场保留数量与代理预览最大边长

视频演示

点击查看图片处理视频演示

许可证

本项目采用 GNU General Public License v3.0 许可证开源。

About

一个使用lama模型进行图像处理和视频处理的客户端,在iopaint项目基础上,实现批量调整蒙版以批量处理图片、逐帧调整蒙版以处理视频。

Topics

Resources

License

Stars

Watchers

Forks

Packages