AI图像与视频生成

基于 Azure OpenAI 的 gpt-image-1 和 Sora 模型,实现图像生成和视频生成能力。

概述

团队在 Azure Foundry 上部署了 gpt-image-1.5(后实际可用的是 gpt-image-1)模型,用于 AI 图像生成。Dora-kids 基于提供的参考代码,创建了 azure-image-gen skill,封装了 Azure OpenAI 画图 API 的调用逻辑。

该技能最初用于为 Mattermost 平台上的多个 Bot 批量生成个性化头像。后来发现 skill 中配置的模型名称 gpt-image-1.5 与 Azure 实际部署的 gpt-image-1 不匹配,导致 skill 报错。目前图像生成通过直接调用 API(curl 请求)来实现,绕过了损坏的 skill。

关键点

  • 部署位置: resley-sweden-ext Azure Foundry
  • 模型: gpt-image-1(Azure 端实际可用的模型名称)
  • Skill 路径: skills/azure-image-gen/
  • Skill 状态: 已标记为 broken,因模型名称配置错误(写死了 gpt-image-1.5
  • 替代方案: 直接通过 curl/HTTP 请求调用 Azure API
  • 主要用途: 生成 Bot 头像、卡通图像

技术细节

参考代码(Python SDK 调用方式)

import base64
from openai import OpenAI
 
endpoint = "https://resley-sweden-ext.openai.azure.com/openai/v1/"
deployment_name = "gpt-image-1.5"
api_key = "<your-api-key>"
 
client = OpenAI(base_url=endpoint, api_key=api_key)
 
img = client.images.generate(
    model=deployment_name,
    prompt="A cute baby polar bear",
    n=1,
    size="1024x1024",
)
 
image_bytes = base64.b64decode(img.data[0].b64_json)
with open("output.png", "wb") as f:
    f.write(image_bytes)

直接 API 调用方式

POST https://resley-sweden.openai.azure.com/openai/deployments/gpt-image-1/images/generations...

注意:Azure 的认证方式使用 api-key header,而不是 Bearer token。

已知问题

  • Skill 内写死模型名 gpt-image-1.5,但 Azure 只有 gpt-image-1
  • 建议修复:将代码中的 1.5 改成 1 即可恢复 Skill 功能

时间线

  • 2026-03-17: 在 resley-sweden-ext 上部署 gpt-image-1.5 模型
  • 2026-03-17: 创建 azure-image-gen skill,生成 Quokka 和 Axolotl 头像
  • 2026-03-17: 批量为 6 个 Bot 生成个性化头像(channelbot、webbot、gatewaybot 等)
  • 2026-03-22: 发现 skill 因模型名不匹配已 broken,标记为 Legacy

相关页面

Azure Sora 视频生成(sora-video 技能)

概述

giraffe Bot 创建了 sora-video 自定义技能,用于将静态图片(涂鸦/画作)通过 Azure Sora 模型转化为短视频动画。该功能已集成到薯条世界的「魔法画室」模块。

部署信息

属性
Endpointhttps://resley-sweden-ext.cognitiveservices.azure.com/
模型部署名sora-2
API 路径/openai/v1/videos
SDKOpenAI Python SDK client.videos.create()
技能路径~/.openclaw/skills/sora-video/

支持的风格

风格描述
🖍️ 涂鸦风保持白板原画风格动画
🌟 破次元壁2D 平面弹出变 3D
🚀 太空冒险画中角色飞向星空
🌧️ 雨天场景雨中行驶,车轮溅起水花
🎬 定格动画黏土动画手工感
✏️ 涂鸦大战更多元素从白板冒出

踩坑记录

  1. 音频采样率: Sora 输出 96kHz 音频,大部分播放器不支持 → 用 ffmpeg 转码到 44.1kHz
  2. 纵横比扭曲: 横版原图被强行拉成竖版 720×1280 → 必须按原图比例选择输出尺寸
  3. faststart: MP4 需要 -movflags +faststart 才能流式播放
  4. 内容审核: Azure Sora 对真实儿童照片会触发 moderation_blocked,只能使用涂鸦/画作
  5. API 格式变更: 旧版 multipart form upload 方式已不兼容,需使用 OpenAI SDK client.videos.create(input_reference=file)
  6. 生成时间: 约 1-2 分钟,需异步轮询状态