mcpField
G
glm-image-gen

glm-image-gen

github.com/zai-org创意与媒体47566 次安装28 周前更新
代码仓库

关于 glm-image-gen

glm-image-gen 是一款技能,通过智谱 GLM-Image API 根据提示词生成图片。它可设置模型、尺寸、质量和水印选项,也支持将生成的图片保存到本地。

主要功能

  1. 01根据提示词生成图片
  2. 02可选模型和图片尺寸
  3. 03支持高清或标准质量
  4. 04控制水印选项
  5. 05将生成结果保存到本地
  6. 06内容过滤

适用场景

  1. 01根据文字描述制作插画
  2. 02生成概念图或人像
  3. 03按指定宽高比生成图片
  4. 04保存生成图片以供后续使用

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zai-org/glm-skills --skill glm-image-gen

安装后在 Claude Code 中输入/glm-image-gen确认已加载。

附带文件scripts/glm_image_cli.py

详细介绍

GLM-Image Generation Skill / GLM-Image 图片生成技能

使用智谱 GLM-Image API,根据文本提示词生成高质量图片。

When to Use / 使用场景

  • 根据文字描述生成图片
  • 创作 AI 艺术、插画或概念图
  • 用户提到“生图”“文生图”“AI 绘画”“generate image”“text-to-image”或“create image”
  • 用户提供提示词并想看到可视化效果

Key Features / 核心特性

  • 高质量生成:HD 模式可生成更精细、更完善的图片(约 20 秒)
  • 多种宽高比:支持正方形、竖版和横版格式
  • GLM-Image 模型:最新模型,理解能力和质量均有提升
  • 擅长生成:科普插画、高质量人像、社交媒体图文、商业海报
  • 水印控制:可启用或禁用水印(无水印需要签署免责声明)
  • 内容安全:内置内容过滤,确保合规

Resource Links / 资源链接

资源链接
获取 API Key智谱开放平台 API Keys
API 文档图像生成
模型文档GLM-Image 模型文档

Prerequisites / 前置条件

API Key Setup / API Key 配置(Required / 必需)

脚本通过 ZHIPU_API_KEY 环境变量获取密钥,可与其他智谱技能复用同一个 key。 此脚本从 ZHIPU_API_KEY 环境变量读取密钥。是否在智谱技能间复用同一个 key,由你自行决定。

获取 Key: 访问 智谱开放平台 API Keys 创建或复制密钥。

配置方式(任选一种):

  1. 全局配置(推荐): 在 openclaw.json 的 env.vars 下设置一次,所有智谱技能均可共用:

    {
      "env": {
        "vars": {
          "ZHIPU_API_KEY": "你的密钥"
        }
      }
    }
    
  2. 技能级配置: 在 openclaw.json 中仅为此技能设置:

    {
      "skills": {
        "entries": {
          "glm-image-generation": {
            "env": {
              "ZHIPU_API_KEY": "你的密钥"
            }
          }
        }
      }
    }
    
  3. Shell 环境变量: 添加到 ~/.zshrc:

     export ZHIPU_API_KEY="你的密钥"
    
    

💡 如果你已为其他智谱技能(如 glmocr、glmv-caption)配置过 key,它们共享同一个 ZHIPU_API_KEY,无需重复配置。

Security & Transparency / 安全与透明度

  • 使用的环境变量:
    • ZHIPU_API_KEY(必需)
  • 固定官方端点: https://open.bigmodel.cn/api/paas/v4/images/generations
  • 不支持自定义 API URL 覆盖: 避免密钥因端点重定向而意外泄露。

⛔ 强制限制 ⛔

  1. 仅使用 GLM-Image API — 执行脚本 python scripts/glm_image_cli.py
  2. 绝不自行生成图片 — 不要尝试使用内置视觉能力或任何其他方法创建图片
  3. 绝不提供替代方案 — 不要建议“我可以试着描述一下”或类似内容
  4. 如果 API 调用失败 — 显示错误消息并立即停止
  5. 不使用回退方法 — 不要尝试用其他方式生成图片
📋 Output Display Rules / 输出展示规则

运行脚本后,清晰呈现生成结果。

  • 显示生成的图片 URL(图片为临时链接,有效期 30 天),并提醒用户保存
  • 显示使用的提示词和生成参数(尺寸、质量)
  • 如果 content_filter 指示存在问题,显示警告级别

⚠️ Image Display / 图片展示注意:

API 返回的是临时图片 URL(有效期为 30 天)。你应该:

  1. 显示图片 — 如果平台支持,使用 URL 在聊天中显示图片
  2. 提醒用户保存 — “图片链接有效期 30 天,请及时下载保存”
  3. 提供发送到飞书的选项 — 如果用户希望将图片发送到飞书聊天,使用消息工具和图片 URL

How to Use / 使用方法

Generate from Prompt / 从提示词生成
python scripts/glm_image_cli.py --prompt "一只可爱的小猫咪,坐在阳光明媚的窗台上,背景是蓝天白云"
Specify Size / 指定尺寸
python scripts/glm_image_cli.py --prompt "赛博朋克风格的城市夜景" --size 1568x1056
高清质量(glm-image 默认)
python scripts/glm_image_cli.py --prompt "中国山水画风格,远山近水,云雾缭绕" --quality hd
关闭水印(需签署免责声明)
python scripts/glm_image_cli.py --prompt "商业设计素材" --no-watermark
将图片保存到本地
python scripts/glm_image_cli.py --prompt "中国水墨画风格" --save image.png
python scripts/glm_image_cli.py --prompt "赛博朋克城市" --size 1728x960 --save ~/Pictures/cyberpunk.png
指定用户 ID(用于内容审核)
python scripts/glm_image_cli.py --prompt "..." --user-id "user_12345"
指定模型
python scripts/glm_image_cli.py --prompt "..." --model glm-image
python scripts/glm_image_cli.py --prompt "..." --model cogview-4

CLI 参数

python {baseDir}/scripts/glm_image_cli.py --prompt TEXT [--model MODEL] [--size SIZE] [--quality QUALITY] [--no-watermark] [--user-id ID] [--save FILE]
参数必填描述
--prompt, -p是所需图片的文本描述
--model, -m否模型:glm-image(默认)、cogview-4、cogview-3-flash
--size, -s否图片尺寸(默认:1280x1280)
--quality, -q否质量:hd(默认)或 standard
--no-watermark否关闭水印(需签署免责声明)
--user-id否终端用户 ID,用于内容审核(6-128 个字符)
--save否将生成的图片保存到本地文件

支持的尺寸

GLM-Image 推荐尺寸:

尺寸宽高比用途
1280x12801:1正方形(默认)
1568×10563:2横向
1056×15682:3纵向
1472×1088~4:3宽幅横向
1088×1472~3:4高幅纵向
1728×96016:9超宽幅横向
960×17289:16超高幅纵向

自定义尺寸:

  • 宽度和高度:1024px - 2048px
  • 宽度和高度均需为 32 的整数倍
  • 总像素数上限:2^22(4,194,304 px)

响应格式

官方 API 响应:

{
  "created": 123,
  "data": [
    {
      "url": "<string>"
    }
  ],
  "content_filter": [
    {
      "role": "assistant",
      "level": 1
    }
  ]
}

CLI 输出格式:

{
  "ok": true,
  "model": "glm-image",
  "image_url": "https://open.bigmodel.cn/.../generated_image.png",
  "prompt": "一只可爱的小猫咪,坐在阳光明媚的窗台上,背景是蓝天白云",
  "size": "1280x1280",
  "quality": "hd",
  "created": 1710835200,
  "content_filter": [
    {
      "role": "assistant",
      "level": 3
    }
  ],
  "saved_file": "/Users/xxx/image.png",
  "error": null
}

关键字段:

  • ok — 生成是否成功
  • model — 生成所用的模型
  • image_url — 从 data[0].url 提取的临时 URL(有效期为 30 天)
  • prompt — 使用的文本提示词
  • size — 生成图片的尺寸
  • quality — hd 或 standard
  • created — 请求创建时间的 Unix 时间戳
  • content_filter — 内容安全分析数组(可能为空)
    • role:检测到问题的位置(user/assistant/history)
    • level:严重程度 0-3(0 = 最严重,3 = 轻微)
  • saved_file — 保存到本地文件的绝对路径(如果使用了 --save)
  • error — 失败时的错误详情

内容安全

API 包含内容过滤功能。如果检测到问题,content_filter 将包含以下条目:

  • role:检测到问题的位置(user/assistant/history)
  • level:严重程度 0-3(0 = 最严重,3 = 轻微)

**如果检测到 level 0-1:**生成将失败,并向用户显示错误。 **如果检测到 level 2-3:**生成可能成功,但会提醒用户注意潜在问题。

错误处理

未配置 API key:

{
  "ok": false,
  "error": {
    "code": "MISSING_API_KEY",
    "message": "ZHIPU_API_KEY not configured. Get your API key at: https://bigmodel.cn/usercenter/proj-mgmt/apikeys"
  }
}

→ 向用户显示确切的错误信息,并指导其进行配置

身份验证失败(401/403):

{
  "ok": false,
  "error": {
    "code": "authentication_error",
    "message": "令牌已过期或验证不正确",
    "status": 401
  }
}

→ API key 无效或已过期 → 重新配置

速率限制(429):

{
  "ok": false,
  "error": {
    "code": "rate_limit_exceeded",
    "message": "API rate limit exceeded. Please try again later.",
    "status": 429
  }
}

→ 配额已用尽 → 告知用户等待或检查配额

违反内容过滤规则:

{
  "ok": false,
  "error": {
    "code": "content_filter_violation",
    "message": "Content safety check failed",
    "status": 400
  }
}

→ 说明提示词可能包含不当内容

尺寸无效:

{
  "ok": false,
  "error": {
    "code": "INVALID_SIZE",
    "message": "Invalid size: 512x512 for model glm-image. Must be multiple of 32, 1024-2048px, max 2^22 pixels"
  }
}

→ 指导用户使用支持列表中的有效尺寸

下载失败:

{
  "ok": false,
  "error": {
    "code": "DOWNLOAD_FAILED",
    "message": "Failed to download image to image.png"
  }
}

→ 检查文件路径权限和磁盘空间

网络错误:

{
  "ok": false,
  "error": {
    "code": "NETWORK_ERROR",
    "message": "Network error: [Errno 8] nodename nor servname provided, or not known"
  }
}

→ 检查互联网连接

Prompt Tips / 提示词技巧

Good prompts:

  • Specific details: "一只橘色的英国短毛猫,绿色眼睛,坐在木质窗台上"
  • Style keywords: "赛博朋克风格", "中国水墨画", "油画质感", "3D 渲染"
  • Lighting: "阳光明媚", "柔和的逆光", "电影感灯光"
  • Composition: "特写镜头", "广角视角", "俯视角度"

Avoid:

  • Vague descriptions: "好看的图片"
  • Contradictory elements: "白天和夜晚同时"
  • Too many subjects: Keep focus on 1-2 main elements

评论

支持 Markdown