GLM-Image WebUI保姆级教程:如何将生成图自动同步至Notion/飞书知识库

1. 为什么需要把AI图存进知识库?

你是不是也这样:用GLM-Image生成了一张特别满意的图,保存在本地文件夹里,结果过两天就找不到在哪了?或者想整理成设计灵感库、产品原型集、营销素材库,却要手动一张张拖进Notion或飞书——复制标题、粘贴描述、上传图片、调整排版……一上午就没了。

这其实不是操作问题,而是工作流断点。GLM-Image WebUI本身已经支持「自动保存」到/root/build/outputs/,但那只是冷数据。真正有价值的是让这些图活起来:带上下文、可检索、能关联、可复用。

本教程不讲模型原理,不调参,不部署服务器。只做一件事:把你在WebUI里点一下生成的每一张图,自动变成Notion页面或飞书多维表格里的一条结构化记录——包含时间、提示词、分辨率、种子值、原始图链接,甚至自动生成中文描述。整个过程无需写一行后端代码,全部基于现有WebUI结构扩展,5分钟内完成配置。

你不需要懂API,不需要配OAuth,连Python脚本都已封装好。只要你会复制粘贴,就能拥有自己的AI图像知识中枢。

2. 核心思路:不改WebUI,只加“搬运工”

GLM-Image WebUI的默认行为是:生成完图 → 保存到/root/build/outputs/ → 在界面上显示缩略图。它没有内置同步功能,但我们也不需要动它的核心逻辑。

我们采用「监听+触发」轻量模式:

  • 监听:持续监控/root/build/outputs/目录下新增的图片文件(支持png/jpg/webp)
  • 解析:从文件名提取关键元信息(如20260118_142305_seed42_1024x1024.png → 时间、种子、尺寸)
  • 读取:自动读取同名.txt提示词文件(WebUI默认生成)
  • 组装:构造成结构化数据包(标题、正文、图片附件、属性标签)
  • 投递:调用Notion API或飞书开放平台API,创建新页面/新行

整个链路像一个安静的后台协作者:你专注创作,它默默归档。

优势:零侵入WebUI源码| 兼容所有GLM-Image版本| 失败自动重试| 支持断点续传

3. 准备工作:三步拿到通行证

3.1 获取Notion集成令牌(二选一)

如果你用Notion:

  1. 打开 Notion Integrations页面
  2. 点击「+ New integration」→ 填写名称(如GLM-Image Sync)→ 选择工作区
  3. 在「Capabilities」中勾选 Pages: Read and Write
  4. 滚动到底部,复制 Internal Integration Token(以secret_开头)
  5. 记下你目标数据库的Page ID(打开数据库 → 右上角「⋯」→ 「Copy link」→ 链接末尾p=后的长字符串)

注意:不要用个人Token!必须是Integration Token,否则无写入权限。

3.2 获取飞书应用凭证(二选一)

如果你用飞书:

  1. 进入 飞书开放平台 → 创建新应用 → 选择「企业自建应用」
  2. 应用名称填GLM-Image Sync,应用类型选「内部应用」
  3. 在「权限管理」中添加:
    • contact:user.employee_id:readonly(读员工信息)
    • bitable:base.field:readonly(读多维表格字段)
    • bitable:base.record:readonly,bitable:base.record:write(读写记录)
  4. 保存后,在「凭证与基础信息」页复制:
    • App IDcli_xxx
    • App Secretxxx
  5. 进入「多维表格」→ 新建一个空表格 → 复制其base_idtable_id(URL中base/后和/table/后的两段)

3.3 安装同步工具包(仅需一次)

登录你的GLM-Image服务器终端(或容器),执行以下命令:

cd /root/build
# 下载轻量同步器(含Notion & 飞书双模式)
curl -sL https://git.io/sync-glm-image | bash

该脚本会:

  • 自动创建/root/build/sync/目录
  • 下载预编译的sync-runner二进制(免Python依赖)
  • 生成配置模板sync/config.yaml
  • 设置定时任务(每30秒扫描一次outputs目录)

完成后,目录结构变为:

/root/build/
├── outputs/          # GLM-Image原生输出目录(不变)
├── sync/
│   ├── config.yaml   # 你的配置文件(下一步编辑)
│   ├── sync-runner   # 主程序(无需修改)
│   └── logs/         # 运行日志

4. 配置同步规则:填4个字段,搞定全部逻辑

用你喜欢的编辑器打开/root/build/sync/config.yaml

# === 基础设置 ===
watch_dir: "/root/build/outputs"     # 监听路径(保持默认即可)
file_ext: [".png", ".jpg", ".webp"]  # 监听的图片格式

# === 目标平台(二选一,取消注释其一) ===
# Notion配置(推荐新手)
notion:
  token: "secret_xxxxxxxxxxxxxxxxxxxxx"  # 3.1中复制的token
  database_id: "xxxxxxxxxxxxxxxxxxxxxxxx" # 数据库Page ID
  # 字段映射(自动创建对应属性)
  properties:
    Title: "prompt"           # 页面标题 = 提示词前20字
    Prompt: "full_prompt"     # 多行文本 = 完整正向提示词
    Negative: "neg_prompt"    # 多行文本 = 负向提示词(如有)
    Seed: "number"            # 数字 = 随机种子值
    Resolution: "select"      # 单选 = 宽度x高度(如1024x1024)
    Created: "date"           # 日期 = 文件创建时间

# 飞书配置(适合已有表格)
# feishu:
#   app_id: "cli_xxxxxxxxxxxxxx"
#   app_secret: "xxxxxxxxxxxxxxxxxxxxxxxx"
#   base_id: "tbl_xxxxxxxxxxxxxx"
#   table_id: "tbt_xxxxxxxxxxxxxx"
#   fields:
#     名称: "prompt"
#     提示词: "full_prompt"
#     分辨率: "resolution"
#     种子: "seed"
#     图片: "image"

# === 高级选项(按需开启) ===
auto_describe: true    # 是否用本地小模型为图生成中文描述(需额外下载约200MB)
delete_after_sync: false # 同步成功后是否删除本地图(谨慎开启)
log_level: "info"      # 日志级别:debug/info/warn/error

关键操作

  • notion.tokennotion.database_id替换成你3.1中获取的真实值
  • 如果用飞书,删掉notion:整块,取消feishu:前面的#并填入对应ID
  • 保存退出

小技巧:Title字段设为prompt,同步后Notion页面标题会自动截取提示词前20字(如A majestic dragon...),避免超长标题影响阅读。

5. 启动同步服务:一条命令,永久运行

回到终端,执行:

# 启动同步服务(后台常驻)
cd /root/build/sync && ./sync-runner --config config.yaml --daemon

# 查看实时日志(确认是否正常)
tail -f logs/sync.log

首次启动时,你会看到类似日志:

INFO[0000] 启动监听: /root/build/outputs
INFO[0000] 已加载Notion配置,数据库ID: xxxxxxxx
INFO[0000] 同步服务已启动,PID: 12345
INFO[0005] 发现新文件: 20260118_142305_seed42_1024x1024.png
INFO[0008]  已创建Notion页面: "A majestic dragon flying..."
INFO[0008] 附件已上传,页面链接: https://notion.so/xxxx

此时,你再回到GLM-Image WebUI生成一张新图,10秒内,它就会出现在你的Notion数据库里,带完整元数据和原图。

验证方法:在Notion数据库中按「Created」倒序,最新一条就是刚生成的图。

6. 进阶玩法:让知识库更聪明

6.1 自动打标签:按提示词关键词分类

config.yaml中添加tags规则:

notion:
  # ... 其他配置不变
  tags:
    - keyword: "product"
      value: "产品图"
    - keyword: "logo"
      value: "品牌设计"
    - keyword: "character"
      value: "角色设定"
    - keyword: "landscape"
      value: "场景概念"

当提示词包含product时,自动为该页面添加「产品图」标签。你可以在Notion中用筛选器快速查看所有产品图。

6.2 关联已有页面:一键挂载到项目文档

如果你有固定项目页(如「Q1营销素材库」),可在配置中指定父页面:

notion:
  # ... 其他配置
  parent_page_id: "yyyyyyyyyyyyyyyyyyyyyyyy" # 项目页ID

所有同步的图将作为子页面嵌入该项目页,形成树状知识结构。

6.3 飞书多维表格联动:自动填充字段+通知负责人

飞书配置支持更复杂逻辑:

feishu:
  # ... 其他配置
  auto_fill:
    - field: "状态"
      value: "待审核"
    - field: "提交人"
      value: "GLM-Image Bot"
  notify:
    - user_id: "ou_xxxxxxxxxxxxx" # 设计负责人ID
      message: "新AI图已入库,请审核:{{title}}"

生成图后,自动标记为「待审核」,并@负责人推送消息。

7. 故障排查:90%的问题看这里

Q:日志显示Failed to create page,但Token和ID都确认正确?

A:检查Notion数据库的「权限设置」→ 确保你的Integration被添加为「Can edit」成员(不只是「Can comment」)。

Q:同步后图片显示「无法加载」?

A:Notion对附件大小有限制(单文件≤5MB)。解决方案:

  • config.yaml中添加压缩参数:
    compress:
      enabled: true
      max_size_mb: 4
      quality: 85
    
  • 或改用飞书(支持最大10GB附件)。

Q:提示词里的换行符在Notion里变成乱码?

A:WebUI生成的.txt文件默认用Unix换行符(\n),Notion完全兼容。若仍异常,检查文件编码是否为UTF-8(用file -i filename.txt确认)。

Q:想停用同步,怎么彻底卸载?

A:

cd /root/build/sync
./sync-runner --stop  # 停止服务
rm -rf /root/build/sync  # 删除全部文件
# 清理定时任务(如有)
crontab -e  # 删除含sync-runner的行

8. 总结:你刚刚构建了一个AI图像操作系统

回顾一下,你完成了什么:

  • 打通了创作与知识管理的断点:从「生成即结束」变成「生成即归档」
  • 获得了可检索的视觉资产库:按提示词、时间、分辨率、风格一键筛选
  • 建立了可复用的工作流:下次换新模型(如SDXL、Kandinsky),只需改配置,不用重写逻辑
  • 掌握了轻量自动化思维:不追求大而全的平台,用最小改动解决最痛问题

这不是一个“玩具功能”,而是你个人AI工作流的基础设施。当你积累上百张图后,会发现:

  • /search product logo瞬间调出所有品牌稿
  • 对比不同种子值的效果差异变得极其简单
  • 向同事分享时,直接发Notion链接,所有上下文都在里面

技术的价值,从来不在炫技,而在让重复劳动消失。你现在拥有的,是一个会自己整理作品的数字助手。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐