
Image Gen
在 Agent 沙盒中生成并保存图片。当用户要求生成图片、海报、插画、文生图,或指定 Qwen-Image、其它兼容图片生成接口时使用此技能。
Install
npx skills add xerrors/Yuxi --skill image-gen -g -a claude-code -y- Repository
- xerrors/Yuxi7.6k
- Category
- AI and agents
- Updated
- 4d ago
- License
- MIT
- Context cost
- Lightabout 580 tokens
- Runs scripts
- No, instructions only
What it does
在 Agent 沙盒中生成并保存图片。当用户要求生成图片、海报、插画、文生图,或指定 Qwen-Image、其它兼容图片生成接口时使用此技能。
图片生成技能
当用户要求生成图片、海报、插画、文生图,或明确提到 Qwen-Image 时,使用此技能组织图片生成流程。
默认生成接口
默认使用 SiliconFlow 的 Qwen-Image 接口:
- Endpoint:
POST https://api.siliconflow.cn/v1/images/generations - Model:
Qwen/Qwen-Image - 默认参数:
negative_prompt:""num_inference_steps:20guidance_scale:7.5
调用外部接口时,必须在 Agent 沙盒执行环境中读取 SILICONFLOW_API_KEY。不要依赖后端进程环境变量。
操作流程
- 明确用户要生成的图片内容、风格、尺寸或约束;信息不足但不影响生成时,使用合理默认值,不要反复追问。
- 使用可用的执行工具在沙盒中运行脚本,调用图片生成接口,传入用户需求整理后的
prompt,并按需传入negative_prompt、num_inference_steps、guidance_scale。 - 从生成接口响应中读取图片地址,默认路径为
images[0].url。 - 在同一个沙盒脚本中用
Authorization: Bearer $SILICONFLOW_API_KEY下载该图片地址;如果接口直接返回 base64,则直接解码保存。 - 根据用户要求和项目结构,将最终图片保存到当前 Workdir 中合适的位置。
- 读取
chat-widgetsSkill,在最终回复的完整 widget 围栏中输出独立 Image,多张图片使用 ImageGroup;path 使用保存后的绝对虚拟路径,alt 描述图片内容,需要短语时用 caption 放在左下角。用户需要下载或保存文件时,同时调用present_artifacts登记路径。 - 最终回复简要说明图片已生成,不要把外部临时 URL 当作最终结果展示。
脚本示例
可根据用户需求调整 prompt 和保存位置。将示例中的 Workdir 占位路径替换为主 prompt 提供的当前绝对虚拟路径,并按用户要求选择文件位置:
import os
import requests
from pathlib import Path
api_key = os.environ["SILICONFLOW_API_KEY"]
prompt = "根据用户需求整理后的图片提示词"
response = requests.post(
"https://api.siliconflow.cn/v1/images/generations",
headers={"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"},
json={
"model": "Qwen/Qwen-Image",
"prompt": prompt,
"negative_prompt": "",
"num_inference_steps": 20,
"guidance_scale": 7.5,
},
timeout=120,
)
response.raise_for_status()
image_url = response.json()["images"][0]["url"]
image_response = requests.get(
image_url,
headers={"Authorization": f"Bearer {api_key}"},
timeout=120,
)
image_response.raise_for_status()
workdir = Path("/home/user/workspace/projects/<当前项目目录>")
output_path = workdir / "generated-image.png"
output_path.parent.mkdir(parents=True, exist_ok=True)
output_path.write_bytes(image_response.content)
print(output_path.as_posix())

