使用IOPaint实现图片擦除路人

IOPaint 是一个免费的开源的 inpainting/outpainting 工具,由最先进的 AI 模型提供支持。

IOPaint 中使用各种模型来修改图像:

  • 擦除:删除任何不需要的物体、缺陷、水印、人物。
  • 修复:对图像的特定部分进行修改、添加新对象或替换图片上的任何内容。
  • 外画:在图像周围生成新像素以使其更大。

IOPaint 提供了一个方便的 webui,使用最新的 AI 模型来编辑图像。

安装IOPaint

pip install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu118
pip install iopaint

启动IOPaint

iopaint start --model=lama --device=cpu --port=8080

启动后,可以通过访问 http://localhost:8080 来开始使用 IOPaint。

所有模型将在启动时自动下载。如果要更改下载目录,可以添加 --model-dir 参数。

iopaint start --model=lama --device=cuda --port=8080 --model-dir=D:\models
  • --model:模型,支持lama,mat,migan,ldm,zits,fcf,manga
  • --device:设备类型,支持cuda,cpu,mps
  • --model-dir:模型下载路径 

批处理

iopaint run --model=lama --device=cpu --image=/path/to/image_folder --mask=/path/to/mask_folder --output=output_dir
  • --image:包含输入图像的文件夹。
  • --mask:包含相应蒙版图像的文件夹,所有图像都将使用此蒙版进行处理。

开发

项目源码

Sanster/IOPaint:由 SOTA AI 模型提供支持的图像修复工具。从您的照片中删除任何不需要的物体、缺陷、人物,或擦除和替换(由稳定扩散提供动力)图片上的任何内容。 (github.com)icon-default.png?t=N7T8https://github.com/Sanster/IOPaint

后端

安装后端依赖

pip install -r requirements.txt

启动后端服务

python3 main.py --model lama --port 8080
 前端

安装 nodejs,然后安装前端依赖项。

git clone https://github.com/Sanster/IOPaint.git
cd IOPaint/web_app
npm install

在web_app目录下创建一个.env.local文件,并填写后端 IP 和端口。

VITE_BACKEND=http://127.0.0.1:8080

启动前端开发环境

npm run dev

然后可以访问http://localhost:5173/

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在JavaFX中实现画板擦除功能可以通过以下步骤来实现: 首先,创建一个JavaFX的画板对象来支持绘图和擦除功能。画板可以通过Canvas类来创建。 然后,设置画板的大小和背景颜色,以及添加到JavaFX的场景中显示出来。 接着,定义一个变量来表示是否正在绘制(即鼠标按下时)或者擦除(即按住Ctrl键时鼠标按下)。根据这个变量来确定鼠标拖动时是绘制还是擦除的操作。 接下来,注册鼠标按下、拖动和释放事件的处理程序。当鼠标按下时,根据是否按住Ctrl键来设置绘制还是擦除的模式,并记录下鼠标的位置。当鼠标拖动时,根据模式来绘制或擦除画板上的图形。当鼠标释放时,结束绘制或擦除操作。 最后,将画板添加到JavaFX的窗口中,并显示出来。 通过以上步骤,就可以在JavaFX中实现画板擦除功能。用户可以根据需要选择绘制还是擦除模式,并通过鼠标拖动来实现在画板上进行绘制或擦除操作。 ### 回答2: JavaFX实现画板擦除功能可以通过以下步骤实现: 1. 创建一个JavaFX的画板应用程序。 2. 在画板上使用JavaFX的绘图工具来绘制图形和文字。 3. 实现擦除功能的关键是使用GraphicsContext类的clearRect方法。该方法接受四个参数:起始点的x坐标、y坐标,以及矩形的宽度和高度。调用这个方法可以清除指定区域的图形。 4. 当用户点击画板上的“擦除”按钮时,设置一个标志来指示擦除模式已启用。 5. 在鼠标按下事件处理程序中,检查擦除模式是否已启用。如果是,则将擦除标志设置为真,并使用clearRect方法擦除鼠标所在的位置。 6. 在鼠标拖动事件处理程序中,如果擦除标志为真,则使用clearRect方法擦除鼠标所在的位置。 7. 在鼠标释放事件处理程序中,将擦除标志设置为假,擦除操作完成。 8. 实现其他必要的功能,如画笔颜色、粗细的调整等。 通过以上步骤,就可以实现JavaFX画板擦除功能。当用户使用鼠标进行绘画操作时,可以通过点击擦除按钮来切换到擦除模式,在该模式下使用鼠标进行擦除操作。这样就可以实现画板擦除功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值