comfyui_image_embeddings
use comfyui to image embeddings
Nodes (8)
Unstick that base64 blob and turn it back into a real image
Stop guessing the character tag. Let a database write your prompt.
Path, URL, or whole folder
Real OCR in the graph, no API key, no sending your images anywhere
When your image needs to ride a string instead of a wire
Fingerprint every image in the batch so you can spot duplicates and drift
ComfyUI won't let you touch the numbers. This node does.
The 'size not divisible by 8' fix you didn't know you needed
ComfyUI-Image-Embeddings
项目简介
本项目为 ComfyUI 提供一组实用的自定义节点,主要功能包括:
- CustomImageLoader:支持从本地路径或 URL 加载单张或批量图像,自动处理透明通道并返回
IMAGE、MASK与文件名。 - Image2Base64:将
IMAGE张量转为 Base64 编码的 JSON 字符串,便于在外部系统中传输图像数据。 - VisionOutputEmbedding2JSON:将 ComfyUI 的 CLIP Vision 输出(
CLIP_VISION_OUTPUT)转换为可读的 JSON,支持后续分析或存储。 - ImageHash:基于
imagehash库计算图像的哈希值(64 位有符号整数),返回STRINGJSON。 - Base64ImageLoader:从 Base64 编码字符串恢复图像,返回
IMAGE、MASK与文件名。
这些节点可直接在 ComfyUI 工作流中使用,帮助你在图像预处理、特征导出以及数据序列化等场景下提升开发效率。
安装
# 1. 克隆仓库(或使用 ComfyUI-Manager 安装)
git clone https://github.com/baijunty/comfyui_image_embeddings.git
# 2. 进入目录并进行可编辑安装
cd comfyui_image_embeddings
pip install -e .[dev] # 包含开发依赖
# 3. 安装 pre-commit(可选)
pre-commit install
提示:如果你使用 ComfyUI‑Manager,只需在管理器中搜索
image_embeddings并安装。
节点使用说明
1. CustomImageLoader
| 参数 | 类型 | 说明 |
|------|------|------|
| image_path_or_url | STRING | 支持本地相对/绝对路径、URL,或指向目录的路径。目录时会一次性加载该目录下所有图片。 |
返回值:
IMAGE:图像张量([B, H, W, C])MASK:对应的遮罩张量STRING:文件名(或 URL 中的文件名)
示例:
# 加载单张图片
loader = CustomImageLoader()
image, mask, name = loader.load_image("images/example.png")
# 加载目录
images, masks, names = loader.load_image("images/")
2. Image2Base64
| 参数 | 类型 | 说明 |
|------|------|------|
| images | IMAGE | 输入图像张量 |
| names | STRING | 对应文件名(可列表) |
返回:
STRING:包含{filename: base64}键值对的 JSON 字符串
示例:
base64_str = Image2Base64().image_to_base64(images, names)[0]
3. VisionOutputEmbedding2JSON
| 参数 | 类型 | 说明 |
|------|------|------|
| vision_output | CLIP_VISION_OUTPUT | 来自 CLIP Vision 节点的输出 |
| name | STRING | 用作 JSON 键名 |
返回:
STRING:{"<name>": [embedding...]}的 JSON 字符串
4. ImageHash
| 参数 | 类型 | 说明 |
|------|------|------|
| images | IMAGE | 输入图像张量 |
| names | STRING | 文件名(可列表) |
返回:
STRING:{"<filename>": <hash>}的 JSON 字符串
5. Base64ImageLoader
| 参数 | 类型 | 说明 |
|------|------|------|
| base64_string | STRING | 单张图像的 Base64 编码 |
| name | STRING | 文件名(仅用于返回) |
返回:
IMAGE、MASK、STRING(文件名)
开发与测试
# 运行单元测试
pytest -q
# 代码检查(ruff)
ruff check .
项目已配置 GitHub Actions,会在每次 push 时运行测试与代码格式检查。
贡献
欢迎提交 Pull Request,或在 Discord(https://discord.com/invite/comfyorg)讨论新功能。若要发布到 ComfyUI Registry,请参考 pyproject.toml 中的 tool.comfy 配置,并在 Registry 创建 API Token。
本项目基于 cookiecutter-comfy-extension 模板创建,旨在提供即插即用的图像处理节点。祝你玩得开心!