通过 ModelScope API 进行文生图、图生图、视觉理解和文本生成,遇到 429 限速自动轮换模型。
bash
pip install requests Pillow
编辑 ~/.openclaw/openclaw.json,在 skills.entries 下添加:
json
{
"skills": {
"entries": {
"ms-ai": {
"enabled": true,
"env": {
"MODELSCOPE_API_KEY": "ms-key1,ms-key2,ms-key3"
}
}
}
}
}
多个 Key 用逗号
,分隔。当一个 Key 的所有模型都失败时,自动切换到下一个 Key 重试全部模型。
💡 也可以使用环境变量
export MODELSCOPE_API_KEY=key1,key2,但推荐用 Skill 级别配置,更整洁且仅对该 Skill 生效。
⚠️ 本技能调用 ModelScope API 会消耗额度。如果用户没有明确说"使用ms-ai",必须先告知并确认后再执行。
功能脚本说明文生图generate.py文字描述 → 图片图生图generate.py --image上传图片 + 描述 → 修改后的图片视觉理解vision.py分析图片内容、OCR、场景识别文本生成text.py多模型对话/文本生成
bash
# 文生图(默认 1920x1080 横屏)
python3 <skill_dir>/scripts/generate.py --prompt "一只金色的猫" --output cat.jpg
# ⭐ 推荐:用 --aspect 指定场景(agent 首选方式)
python3 <skill_dir>/scripts/generate.py --prompt "PPT封面" --aspect ppt --output slide.png
python3 <skill_dir>/scripts/generate.py --prompt "抖音短视频" --aspect douyin --output video.png
python3 <skill_dir>/scripts/generate.py --prompt "竖版海报" --aspect poster --output poster.png
# 也可以直接传宽高比
python3 <skill_dir>/scripts/generate.py --prompt "风景画" --aspect 16:9 --output landscape.jpg
# 图生图
python3 <skill_dir>/scripts/generate.py --prompt "给狗戴上生日帽" --image dog.png --output result.jpg
# 精确指定像素尺寸(最高优先级)
python3 <skill_dir>/scripts/generate.py --prompt "自定义" --width 2560 --height 1440 --output custom.jpg
参数说明默认值--prompt描述文字(必填)—--output输出文件路径output.jpg``--model指定模型(别名或完整ID)自动轮换--image输入图片(图生图,可多次指定)—--aspect宽高比预设或场景名(推荐)—--width图片宽度1920--height图片高度1080--loraLoRA 模型 ID—
📐 优先级:
--aspect>--width/--height> 默认 1920×1080
生图前必须根据使用场景选择正确的 --aspect 参数:
场景--aspect 值尺寸说明PPT / 幻灯片ppt 或 16:91920×1080横屏演示横屏视频video-h 或 16:91920×1080YouTube、B站竖屏短视频video-v / douyin / 9:161080×1920抖音、快手、Reels文章/视频封面cover 或 16:91920×1080公众号、头条微信公众号weixin 或 16:91920×1080图文封面竖版海报poster 或 2:31200×1800活动海报、宣传社交媒体social 或 1:11024×1024微博、朋友圈头像avatar 或 1:11024×1024个人头像电影画幅cinema 或 21:92560×1080超宽屏摄影/印刷photo 或 3:21800×1200标准摄影A4 文档print-a4 或 3:41152×1536竖版文档iPad 横屏4:31536×1152传统比例
⚠️ Agent 调用规则:每次生图前,先判断使用场景,再传
--aspect。不确定时默认 16:9(横屏)。
bash
python3 <skill_dir>/scripts/vision.py --image photo.jpg --prompt "描述这张图片"
python3 <skill_dir>/scripts/vision.py --image screenshot.png --prompt "图片里有什么文字?"
参数说明默认值--prompt分析提示词(必填)—--image输入图片路径—--model指定模型自动轮换--stdin-b64从 stdin 读取 base64 图片—
--image和--stdin-b64二选一。涉及视觉理解任务时优先使用此脚本。
bash
python3 <skill_dir>/scripts/text.py --prompt "解释量子计算"
python3 <skill_dir>/scripts/text.py --prompt "写一首诗" --stream
python3 <skill_dir>/scripts/text.py --prompt "继续" --history history.json --output history.json
参数说明默认值--prompt用户输入(必填)—--model指定模型自动轮换--max-tokens最大输出 token 数4096--temperature温度(0-2)0.7--stream流式输出关闭--history历史消息 JSON 文件—
优先级模型 ID别名1FireRedTeam/FireRed-Image-Edit-1.1``firered2Qwen/Qwen-Image-2512``qwen3Qwen/Qwen-Image-Edit-2511``edit4Tongyi-MAI/Z-Image-Turbo``turbo
优先级模型 ID别名1moonshotai/Kimi-K2.5``kimi2ZhipuAI/GLM-5``glm3MiniMax/MiniMax-M2.5``minimax4Qwen/Qwen3.5-397B-A17B``qwen5XiaomiMiMo/MiMo-V2-Flash(仅text)mimo
策略: 先换 Key,每个 Key 试完所有模型,再换下一个 Key
总共最多尝试 n_keys × n_models 次。遇到 429 限速等待 10 秒后换下一个模型。
问题原因解决方案未设置 MODELSCOPE_API_KEY未配置 API Key在 skills.entries.ms-ai.env 中配置429 Too Many Requests频率限制脚本自动轮换,等待重试所有模型都失败额度用尽或全部限速等待后重试ImportError: requests缺少依赖pip install requests Pillow
--aspect 预设参数:支持宽高比(16:9, 9:16 等)和场景名(ppt, douyin, poster 等)common.py 共享模块,统一 Key + 模型双重轮换逻辑