Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CLI/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Project command-line integrations."""
1 change: 1 addition & 0 deletions CLI/macos/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""macOS-specific integrations."""
65 changes: 65 additions & 0 deletions CLI/macos/drawthings/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Draw Things gRPCServerCLI

这是 Infinite-Canvas 的 Draw Things gRPCServerCLI 独立依赖说明,仅适用于 macOS Apple Silicon(M 芯片)。Draw Things gRPCServerCLI 需要由用户单独启动,Infinite-Canvas 只负责连接已运行的服务。

Draw Things gRPCServerCLI 借助了
https://github.com/drawthingsai/draw-things-comfyui.git 这个comfyui插件代码的能力。

当前版本已将 Draw Things gRPC 所需的协议文件和客户端代码放在本目录中,不再运行时调用或依赖 `draw-things-comfyui` 插件,也不需要启动 ComfyUI。只需在画布所使用的 Python 环境中安装下面列出的 Python 依赖。
## 安装gPRCServerCLI
以下是drawthings作者编译好的gPRCServerCLI执行文件下载地址
https://github.com/drawthingsai/draw-things-community/releases
参考drawthings作者GitHub仓库中的安装方法安装:
```
Self-host gRPCServerCLI from Packaged Binaries

We provide pre-built self-hosted gRPCServerCLI binaries through this repository. Latest version should be available at Releases.

These pre-built binaries provide a quick way to host Draw Things gRPC Server on your Mac or Linux systems without download the Draw Things app. Draw Things app then can connect to these self-hosted servers through Server-Offload feature within your network.

macOS

On macOS, simply download the gRPCServerCLI-macOS on your macOS systems. You can put it under /usr/local/bin or anywhere you feel comfortable, and launch it with:

gRPCServerCLI-macOS /the-path-to-host-the-models
If you have Draw Things app installed, you can simply refer the model path by doing:

gRPCServerCLI-macOS ~/Library/Containers/com.liuliu.draw-things/Data/Documents/Models
```

## 安装依赖

请在 Infinite-Canvas 项目根目录执行。建议使用 conda 或 Miniforge 创建的独立环境,不要把这些依赖追加到项目根目录的 `requirements.txt`。

```bash
python -m pip install -r CLI/macos/drawthings/requirements-Dt-gRPC.txt
```

也可以明确使用当前环境的 Python:

```bash
/Users/hanqingren/miniforge3/bin/python -m pip install -r CLI/macos/drawthings/requirements-Dt-gRPC.txt
```

## 启动服务

### 方法1(推荐)
直接启动gPRCServerCLI(drawthings的模型路径没改动的话直接执行以下命令)不用开启drawthings本身
```
gRPCServerCLI ~/Library/Containers/com.liuliu.draw-things/Data/Documents/Models --model-browser
```
默认连接地址为 `127.0.0.1:7859`,TLS 默认开启
注:(如果启动服务时使用了自定义主机或端口,请在 Infinite-Canvas 的 Draw Things gRPC 设置中填写对应的 `主机:端口`。)
### 方法2
先在 Draw Things 中启动 gRPCServerCLI。

## 大雄画布中的API设置

在 Infinite-Canvas 的 API 设置中添加 Draw Things gRPCServerCLI provider 后,再选择实际连接到 gRPCServerCLI 的本地路径和端口号。
模型列表由后端实时读取,不在画布节点中固定保存模型名称。

该连接目前用于图片生成、单图图生图和 Hint 多图编辑,不提供聊天模型能力。Hint 最多支持四张图片,每张图片可在画布节点中独立设置控制类型。


<img width="1282" height="727" alt="image" src="https://github.com/user-attachments/assets/2424ae77-a8cf-4773-b7a3-45ff94e352d0" />
<img width="721" height="572" alt="image" src="https://github.com/user-attachments/assets/17d7d44d-e442-47d7-9ab3-5af508acf70d" />
1 change: 1 addition & 0 deletions CLI/macos/drawthings/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Draw Things gRPCServerCLI integration for Infinite-Canvas."""
35 changes: 35 additions & 0 deletions CLI/macos/drawthings/credentials.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import grpc

_cert = b'''-----BEGIN CERTIFICATE-----
MIIFHTCCAwWgAwIBAgIUWxJuoygy7Hsb9bcSfggNGLGZJW4wDQYJKoZIhvcNAQEL
BQAwHjEcMBoGA1UEAwwTRHJhdyBUaGluZ3MgUm9vdCBDQTAeFw0yNDEwMTUxNzI3
NTJaFw0zNDEwMTMxNzI3NTJaMB4xHDAaBgNVBAMME0RyYXcgVGhpbmdzIFJvb3Qg
Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDe/RKAuabH2pEadZj6
JRTOaEIMYXsAI7ZIG+LSAEkyK/QZAMdLq+wBq6uJDIEvTXMyyhNgkI3oUnS2PJqi
y9lzGAh1s2y6MDG17BFboyriW0y6BKd42amX/g9A40ZC1cBs2NI9e0zjy/vhHLw1
EHK1XDLsIYAZvqQLJR3zRslHTHN6BysNWNmO/s1myLHQzbjyg4+/JHqma5Xatz0W
I5Wi6zxu/G1IdWeO6tlWWBSArDbhru+rb2U9p9/jKGW7fOom7sH9oBpj7q+xcrr5
h2Aoam4xRqxc3SG7TRc1inEki86/FoWCARSqGo2t7q/brkwwGbeZsuwKhIuhWGzW
CJKp0NvD11HyCqsJsLMTx9PXzEsCDFsios+zI6zu1aIVomO5h8d59oxMGEvNozIc
gSHJI3pCiHmJt0o9xoRi0UGiB6PP3k4ZzxTV30wt0oMOzS8dgMdl1u0zpAc2aEGG
4cdWQaDP2UgZlNQyzGbGUC2Q2ln1ghTlEBAs23/yDZyEbtWj+Qo1Isk80CXISs8/
H4cdM9Xw/Rt5fGxSaNzHJZJ9gK8YFI0z7IDiQp9nWkMqyDhGjhT4ZR847Nz52gcK
zuqmSK6B7ksumilchQ8hq79VAAvZqQoyVIvLvkbb6pXZbH0qTK5yk0YQVJ49JU1L
XnB4Iu8IuDxTLmtW2WoCjUZaqQIDAQABo1MwUTAdBgNVHQ4EFgQUhmFk2qHWAU6/
3u6FyCnk2vaV0fswHwYDVR0jBBgwFoAUhmFk2qHWAU6/3u6FyCnk2vaV0fswDwYD
VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAdvryE1xbhpyDjtP+I95Z
tgmlkmIWTPoHL5WO20SWtWjryHTs0XGXkohqSFKBqYTOVTyRCTtUTF4nWoNfBhlz
aOExf64UgvYHO4NxcPNjUH2Yx/AKFWBeHx50jfjz/zTSqhAHv8rlYDt6rlLs1aFm
rNj3DObqmTfDoI8qkdLK8bekjhul6PusmezhW+qa/DMvDRy3moUugpXwzvyG5GRW
C3+nNbBdCdblUyiEgFu5htH6hSSu2IX5t/ryoKNjAAfUxMKcNFdYCnzWiHKOlrmp
wYL4YhVQZZYmis8ZIFOQ+BKVQHJcqE5bdrbNbCpurMNODEuDDB/VkbGHEVFVgB0n
x+ZtaGnfTeJJ6h7IIl+Gnpx0u9k+2pu78cEQ+6ZYKaGUoOKccxgipsSXWL75qHl9
7/scB3imqRq0Q7/jKP6mvcB3/5irQwVmczsFwELLP0LJdsCZMcQQQsSCGuskzcAJ
iiiGzRVTfYFUu2hJ5JIgewg+NEzMCwzR5yyWacBcrrDxQTymTNW9NWahHxvdZJHd
zRd4Y3HNLPikGg37mCYIPWtUxJCU7/lZleNSqlMBhDdbIZcAqaHOQlYJQSZaTMwK
kWF1y/C6TdCKWyXhAEV8zp/0q4b6vC1ynn/GfopROPXceLbGA+BLG9JEQ1AiGae3
ejQ40oILyZjEclMPGLYjqoQ=
-----END CERTIFICATE-----
'''

credentials = grpc.ssl_channel_credentials(_cert)
Loading