Skip to content

造福Mac用户的功能——为无限画布增加 Draw Things gRPCServerCLI 支持 - #181

Open
Rayen21 wants to merge 20 commits into
hero8152:mainfrom
Rayen21:main
Open

造福Mac用户的功能——为无限画布增加 Draw Things gRPCServerCLI 支持#181
Rayen21 wants to merge 20 commits into
hero8152:mainfrom
Rayen21:main

Conversation

@Rayen21

@Rayen21 Rayen21 commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

为无限画布增加 Draw Things gRPCServerCLI 支持,并修复异步节点刷新和日志中删除记录的问题。

让 Mac 用户直接在无限画布中不开启 Draw Things 软件而使用它的能力,同时保留现有的 ComfyUI 和其他 API 平台支持。

Draw Things 简介

Draw Things 是一款面向 Apple 平台的本地 AI 生图软件,支持 macOS 等系统。

它主要使用 Apple Silicon、Metal 等 Mac 原生硬件加速能力在本地运行图像生成模型。Draw Things 同时提供了 gRPCServerCLI,使外部应用可以通过程序接口调用 Draw Things 的生图能力。

相较于在 macOS 上搭建和维护一套完整的 ComfyUI 环境,Draw Things 对部分 Mac 用户具有以下实际优势:

  • 不需要开启Draw Things App直接在画布中调用
  • 不需要单独维护完整的 Python、PyTorch 和 ComfyUI 环境。
  • 安装和运行过程更加简单,维护成本更低。
  • 更符合 Mac 原生应用的使用习惯。
  • 能够更直接地利用 Apple Silicon 和本地 Mac 硬件。
  • 用户不需要离开 Draw Things 的本地应用生态,就可以使用已有模型和生图设置。

ComfyUI 仍然保留并继续支持。本 PR 只是为无限画布增加 Draw Things 作为另一个可选的本地生图后端,并不是替代 ComfyUI。

gRPCServerCLI 功能

  • 在 API 设置界面增加 Draw Things 平台。
  • 增加 grpc API 协议类型。
  • 增加 Draw Things gRPCServerCLI 地址配置。
  • 支持从正在运行的 Draw Things 服务中读取模型列表。
  • 增加 Draw Things gRPC 图像生成调用。
  • 增加 Draw Things 使用说明和依赖安装文件。
  • 支持文生图。
  • 支持不具备编辑能力的模型进行单图图生图。
  • 支持 Klein、Qwen image-edit 等编辑模型接收参考图或 hint 图。
  • 根据模型能力限制输入图数量,并向用户返回明确错误。
  • 支持画布 seed 传递和随机 seed。
  • 支持批量生图。
  • 支持分辨率和图生图强度传递。
  • 支持采样器、步数、引导值、seed 模式等 Draw Things 相关参数。
  • 支持读取画布本地图片和已有生成内容作为输入。
  • ../CLI/macos/drawthingsk 文件夹中有介绍安装gRPCServerCLI
  • 0730增加gRPCServerCLI的lora功能
image image image

智能画布节点刷新修复

本 PR 同时修复了智能画布中的异步节点刷新问题。

之前,当一个生图节点仍在运行时,如果用户选中了画布中的其他节点,前一个节点完成后,当前选中的节点可能会被错误地刷新为前一个运行节点的参数,包括:

  • API 平台
  • 模型
  • Seed
  • 生图设置
  • 其他运行参数

本次修改:

  • 在异步生图开始时保存实际运行节点及其参数快照。
  • 生图完成后,只恢复实际运行节点的状态。
  • 防止其他选中节点被错误覆盖。
  • 限制 seed 和生成元数据只回写到正确的运行节点。
  • 保留当前选中节点自己的提示词和参数。
  • 改进自引用生成图片时的缓存指纹判断。

兼容性

  • 不改变现有 ComfyUI 工作流。
  • 不影响已有 API 平台。
  • Draw Things 只有在用户选择对应平台后才会启用。
  • 不要求修改原有 macOS 启动脚本。

概要

本 PR 恢复无限画布生成日志中的删除功能。

日志面板重新支持以下操作:

  • 删除单条生成日志记录。
  • 删除日志记录以及对应的生成内容。
  • 删除生成内容时,自动重置仍然引用该内容的结果节点。
  • 当生成文件不再被其他节点或日志引用时,清理对应的生成文件和预览缓存。

实现内容

  • 恢复普通画布日志面板中的删除操作。

  • 恢复智能画布日志面板中的删除操作。

  • 增加后端接口:

    POST /api/canvases/{canvas_id}/logs/delete

  • 使用 base_updated_at 进行画布版本冲突检查。

  • 只删除没有被其他内容引用的生成文件。

  • 对仍被其他节点或日志引用的文件进行保护。

  • 删除完成后广播画布更新,使其他已打开的画布视图能够同步刷新。

修改动机

随着画布使用时间增加,生成日志和图片文件会持续累积。恢复日志删除功能可以帮助用户管理画布历史,并清理不再使用的生成内容。

本 PR 只恢复日志管理能力,不改变现有的生图流程。

@Rayen21 Rayen21 closed this Aug 3, 2026
@Rayen21 Rayen21 reopened this Aug 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant