Agent Skillsdatavane/tis › text-2-image

text-2-image

GitHub

基于阿里云 qwen-image-2.0 API 的文生图与图生图工具,支持纯文本描述或参考图片生成图像,自动处理参数解析、图片编码及结果保存。

.claude/skills/text-2-image/SKILL.md datavane/tis

Trigger Scenarios

用户需要根据文字描述生成图片 用户需要基于参考图片进行风格转换或修改

Install

npx skills add datavane/tis --skill text-2-image -g -y
More Options

Non-standard path

npx skills add https://github.com/datavane/tis/tree/master/.claude/skills/text-2-image -g -y

Use without installing

npx skills use datavane/tis@text-2-image

指定 Agent (Claude Code)

npx skills add datavane/tis --skill text-2-image -a claude-code -g -y

安装 repo 全部 skill

npx skills add datavane/tis --all -g -y

预览 repo 内 skill

npx skills add datavane/tis --list

SKILL.md

Frontmatter
{
    "name": "text-2-image",
    "license": "MIT",
    "metadata": {
        "author": "mozhenghua",
        "version": "1.1"
    },
    "description": "基于阿里云 qwen-image-2.0 API 生成图片。支持纯文本描述生成图片,或基于参考图片进行图片生成。自动下载并保存生成的图片到当前目录。"
}

阿里云文生图工具

此命令基于阿里云 Token Plan 的 qwen-image-2.0 模型,支持两种方式生成图片:

  1. 纯文本生成:根据文字描述生成图片
  2. 图生图:基于参考图片和文字描述生成新图片

使用方法

纯文本生成

/text-2-image <图片描述>

示例:

/text-2-image 一只可爱的橙色小猫坐在窗台上看风景
/text-2-image 未来科技感的城市夜景,霓虹灯闪烁

图生图(基于参考图片)

/text-2-image image:/path/to/image.png <图片描述>

示例:

/text-2-image image:/Users/mozhenghua/photo.jpg 将这张照片转换为水彩画风格
/text-2-image image:./reference.png 保持构图,改成卡通风格

任务说明

调用阿里云 Token Plan 文生图 API,支持:

  1. 纯文本描述生成图片
  2. 基于参考图片和文字描述生成新图片(图生图)

生成的图片自动下载保存到当前目录。

输入参数

用户需求接收格式:$ARGUMENTS

从用户输入中提取以下参数:

  • image(可选):参考图片路径,格式为 image:/path/to/image.png
  • prompt(必需):图片描述文字
  • model(可选):使用的模型,默认 qwen-image-2.0
  • size(可选):图片尺寸,默认 1024*1024

支持的尺寸选项:

  • 1024*1024(正方形,默认)
  • 720*1280(竖版)
  • 1280*720(横版)

执行步骤

1. 参数提取与验证

$ARGUMENTS 中提取参数:

  • 检查是否包含 image:/path/to/file 格式的参考图片路径
  • 如果用户指定了 model:xxxsize:xxx,则解析相应参数
  • prompt 为剩余的所有文字内容

示例解析:

  • 输入:一只小猫 → image=null, prompt="一只小猫", model="qwen-image-2.0", size="1024*1024"
  • 输入:size:720*1280 一只小猫 → image=null, prompt="一只小猫", size="720*1280"
  • 输入:image:/tmp/cat.jpg 改成水彩风格 → image="/tmp/cat.jpg", prompt="改成水彩风格"

2. 处理参考图片(如果提供)

如果用户提供了参考图片路径:

# 检查文件是否存在
if [ ! -f "/path/to/image.png" ]; then
  echo "错误:图片文件不存在"
  exit 1
fi

# 使用 base64 编码图片
image_base64=$(base64 -i "/path/to/image.png")

重要说明

  • 必须检查文件是否存在
  • 使用 base64 命令对图片进行编码
  • macOS 使用 base64 -i <file>,Linux 使用 base64 -w 0 <file>

3. 调用阿里云 API

3.1 纯文本生成(无参考图片)

使用 Bash 工具执行 curl 命令调用 API:

curl -s -X POST "https://llm-s8qpdvjob13kiwj5.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
  -H "Authorization: Bearer $QWEN_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model>",
    "input": {
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "text": "<prompt>"
            }
          ]
        }
      ]
    },
    "parameters": {
      "size": "<size>"
    }
  }'

3.2 图生图(有参考图片)

当提供参考图片时,content 数组需要同时包含图片和文本:

curl -s -X POST "https://llm-s8qpdvjob13kiwj5.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
  -H "Authorization: Bearer $QWEN_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model>",
    "input": {
      "messages": [
        {
          "role": "user",
          "content": [
            {"image": "<base64_encoded_image>"},
            {
              "text": "<prompt>"
            }
          ]
        }
      ]
    },
    "parameters": {
      "size": "<size>"
    }
  }'

重要说明

  • 图片必须在文本之前放入 content 数组
  • 图片使用 {"image": "base64编码的图片内容"} 格式
  • 使用环境变量 $QWEN_AUTH_TOKEN 作为阿里云 API 的 Bearer token
  • 确保该环境变量已正确设置
  • API 返回 JSON 格式响应

4. 解析响应并提取图片 URL

从 API 返回的 JSON 中提取图片 URL:

  • 路径:output.choices[0].message.content[0].image
  • 使用 jq 工具解析 JSON(如果可用)
  • 或使用 grep/sed 等工具提取

示例响应结构:

{
  "output": {
    "choices": [
      {
        "message": {
          "content": [
            {
              "image": "https://xxx.oss-cn-beijing.aliyuncs.com/xxx.png"
            }
          ]
        }
      }
    ]
  }
}

5. 下载图片

使用 curl 下载图片到当前目录:

curl -s -o "generated_$(date +%Y%m%d_%H%M%S).png" "<image_url>"

文件命名格式:generated_YYYYMMDD_HHMMSS.png

6. 向用户报告结果

输出信息应包含:

  • 生成成功的提示
  • 图片文件的完整路径
  • 使用的模型和尺寸参数
  • 是否使用了参考图片
  • 原始 prompt

示例输出(纯文本生成):

✓ 图片生成成功!

文件路径:/path/to/generated_20260626_143025.png
模型:qwen-image-2.0
尺寸:1024*1024
描述:一只可爱的橙色小猫坐在窗台上看风景

示例输出(图生图):

✓ 图片生成成功!

文件路径:/path/to/generated_20260626_143025.png
模型:qwen-image-2.0
尺寸:1024*1024
参考图片:/tmp/cat.jpg
描述:改成水彩风格

错误处理

处理以下可能的错误情况:

  1. 环境变量未设置

    • 检查 $QWEN_AUTH_TOKEN 是否存在
    • 提示用户设置该环境变量
  2. 参考图片文件不存在

    • 检查用户提供的图片路径是否有效
    • 提示用户检查文件路径
  3. 图片文件格式不支持

    • 支持的格式:PNG, JPG, JPEG, WebP
    • 提示用户使用支持的格式
  4. 图片文件过大

    • 建议图片大小不超过 10MB
    • 提示用户压缩图片后重试
  5. API 调用失败

    • 检查 HTTP 响应状态码
    • 解析错误信息并友好提示
  6. JSON 解析失败

    • 打印原始响应便于调试
    • 提示用户重试或检查参数
  7. 图片下载失败

    • 检查 URL 有效性
    • 提示网络连接问题

最佳实践

  1. Prompt 编写建议

    • 描述要具体明确
    • 包含主体、场景、风格等关键元素
    • 中英文均可,但中文效果更好
    • 使用参考图片时,prompt 应描述想要的变化或风格
  2. 参考图片选择

    • 图片质量越高,生成效果越好
    • 建议使用清晰、构图合理的图片
    • 图片大小建议在 1MB-10MB 之间
    • 支持格式:PNG, JPG, JPEG, WebP
  3. 尺寸选择

    • 正方形(1024*1024):适合头像、图标
    • 横版(1280*720):适合封面、横幅
    • 竖版(720*1280):适合手机壁纸、海报
  4. 文件管理

    • 图片自动以时间戳命名,避免覆盖
    • 建议定期整理生成的图片文件

技术要求

  • 必须使用 Bash 工具执行命令
  • 使用 curl -s 静默模式避免进度输出
  • JSON 数据使用单引号包裹,内部字符串使用双引号
  • 正确转义特殊字符
  • 使用 -o 参数保存文件,而不是重定向
  • 图片编码时注意 macOS 和 Linux 的 base64 命令差异

依赖项

  • curl:HTTP 请求工具(系统自带)
  • date:时间戳生成(系统自带)
  • base64:图片 Base64 编码(系统自带)
  • jq(可选):JSON 解析工具,如果可用则优先使用

注意事项

  • API 调用可能需要几秒到十几秒,请耐心等待
  • 生成的图片质量受 prompt 描述质量影响
  • 使用参考图片时,生成时间可能更长(需要上传和处理图片)
  • 每次调用都会产生 API 费用,请合理使用
  • 确保有足够的磁盘空间存储图片(通常 < 5MB)
  • 参考图片的 Base64 编码可能产生较大的 JSON 请求体

Version History

  • 95bcb21 Current 2026-09-08 17:31

Same Skill Collection

.claude/skills/create-multi-steps-plugin/SKILL.md
.claude/skills/create-plugin/SKILL.md
.claude/skills/gen-plugin-doc/SKILL.md
.claude/skills/gpt-image2/SKILL.md
tis-openclaw-plugin/src/main/resources/conf/SKILL.md

Metadata

Files
0
Version
95bcb21
Hash
76e1b8f7
Indexed
2026-09-08 17:31

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-09 01:16
浙ICP备14020137号-1 $mapa de visitantes$