Generate high-quality images from text prompts using the ZhiPu GLM-Image API.
ResourceLinkGet API Key智谱开放平台 API KeysAPI DocsImage Generation / 图像生成Model DocsGLM-Image 模型文档
脚本通过 ZHIPU_API_KEY 环境变量获取密钥,可与其他智谱技能复用同一个 key。
This script reads the key from the ZHIPU_API_KEY environment variable. Reusing the same key across Zhipu skills is optional.
Get Key / 获取 Key: Visit 智谱开放平台 API Keys to create or copy your key.
Setup options / 配置方式(任选一种):
Global config (recommended) / 全局配置(推荐): Set once in openclaw.json under env.vars, all Zhipu skills will share it:
json
{
"env": {
"vars": {
"ZHIPU_API_KEY": "你的密钥"
}
}
}
Skill-level config / Skill 级别配置: Set for this skill only in openclaw.json:
json
{
"skills": {
"entries": {
"glm-image-generation": {
"env": {
"ZHIPU_API_KEY": "你的密钥"
}
}
}
}
}
Shell environment variable / Shell 环境变量: Add to ~/.zshrc:
bash
export ZHIPU_API_KEY="你的密钥"
💡 如果你已为其他智谱 skill(如
glmocr、glmv-caption)配置过 key,它们共享同一个ZHIPU_API_KEY,无需重复配置。
ZHIPU_API_KEY (required / 必需)https://open.bigmodel.cn/api/paas/v4/images/generations⛔ MANDATORY RESTRICTIONS / 强制限制 ⛔
python scripts/glm_image_cli.pyAfter running the script, present the generation result clearly.
⚠️ Image Display / 图片展示注意:
The API returns a temporary image URL (valid for 30 days). You should:
bash
python scripts/glm_image_cli.py --prompt "一只可爱的小猫咪,坐在阳光明媚的窗台上,背景是蓝天白云"
bash
python scripts/glm_image_cli.py --prompt "赛博朋克风格的城市夜景" --size 1568x1056
bash
python scripts/glm_image_cli.py --prompt "中国山水画风格,远山近水,云雾缭绕" --quality hd
bash
python scripts/glm_image_cli.py --prompt "商业设计素材" --no-watermark
bash
python scripts/glm_image_cli.py --prompt "中国水墨画风格" --save image.png
python scripts/glm_image_cli.py --prompt "赛博朋克城市" --size 1728x960 --save ~/Pictures/cyberpunk.png
bash
python scripts/glm_image_cli.py --prompt "..." --user-id "user_12345"
bash
python scripts/glm_image_cli.py --prompt "..." --model glm-image
python scripts/glm_image_cli.py --prompt "..." --model cogview-4
text
python {baseDir}/scripts/glm_image_cli.py --prompt TEXT [--model MODEL] [--size SIZE] [--quality QUALITY] [--no-watermark] [--user-id ID] [--save FILE]
ParameterRequiredDescription--prompt, -pYesText description of the desired image / 图片的文本描述--model, -mNoModel: glm-image (default), cogview-4, cogview-3-flash / 模型--size, -sNoImage size (default: 1280x1280) / 图片尺寸--quality, -qNoQuality: hd (default) or standard / 质量--no-watermarkNoDisable watermark (requires signed disclaimer) / 关闭水印--user-idNoEnd-user ID for content moderation (6-128 chars) / 终端用户 ID--saveNoSave generated image to local file / 保存生成的图片到本地文件
GLM-Image recommended sizes:
SizeAspect RatioUse Case1280x12801:1Square (default)1568×10563:2Landscape / 横向1056×15682:3Portrait / 纵向1472×10884:3Wide landscape1088×14723:4Tall portrait1728×96016:9Ultra-wide landscape960×17289:16Ultra-tall portrait
Custom sizes / 自定义尺寸:
Official API Response:
json
{
"created": 123,
"data": [
{
"url": "<string>"
}
],
"content_filter": [
{
"role": "assistant",
"level": 1
}
]
}
CLI Output Format:
json
{
"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
}
Key fields:
ok — whether generation succeeded
model — model used for generation
image_url — extracted from data[0].url, temporary URL (valid 30 days)
prompt — the text prompt used
size — generated image dimensions
quality — hd or standard
created — Unix timestamp when request was created
content_filter — content safety analysis array (may be empty)
role: where the issue was detected (user/assistant/history)level: severity 0-3 (0 = most severe, 3 = minor)saved_file — absolute path to saved local file (if --save was used)
error — error details on failure
The API includes content filtering. If issues are detected, content_filter will contain entries with:
role: where the issue was detected (user/assistant/history)level: severity 0-3 (0 = most severe, 3 = minor)If level 0-1 detected: Generation will fail, show error to user. If level 2-3 detected: Generation may succeed, but warn user about potential issues.
API key not configured:
json
{
"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"
}
}
→ Show exact error to user, guide them to configure
Authentication failed (401/403):
json
{
"ok": false,
"error": {
"code": "authentication_error",
"message": "令牌已过期或验证不正确",
"status": 401
}
}
→ API key invalid/expired → reconfigure
Rate limit (429):
json
{
"ok": false,
"error": {
"code": "rate_limit_exceeded",
"message": "API rate limit exceeded. Please try again later.",
"status": 429
}
}
→ Quota exhausted → inform user to wait or check quota
Content filter violation:
json
{
"ok": false,
"error": {
"code": "content_filter_violation",
"message": "Content safety check failed",
"status": 400
}
}
→ Explain that the prompt may contain inappropriate content
Invalid size:
json
{
"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"
}
}
→ Guide user to use valid size from the supported list
Download failed:
json
{
"ok": false,
"error": {
"code": "DOWNLOAD_FAILED",
"message": "Failed to download image to image.png"
}
}
→ Check file path permissions and disk space
Network error:
json
{
"ok": false,
"error": {
"code": "NETWORK_ERROR",
"message": "Network error: [Errno 8] nodename nor servname provided, or not known"
}
}
→ Check internet connection
Good prompts:
Avoid: