下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/showapi--person-landmark-check-in-photo-showapi.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @showapi/person-landmark-check-in-photo-showapi。- 上传人物照片,输入打卡地点(如"
- 巴黎埃菲尔铁塔"
- )和姿势要求,通过打卡意图深度解析、生图提示词融合优化、AI写实生图及状态轮询四个步骤,生成自然逼真的景点打卡照片
- 适用于旅行打卡照合成、云旅游晒图、社交平台内容创作、个人写真制作等场景
阅读全文 (展开查看完整说明)
概述
人物景点打卡照生成
任务目标
- 上传一张人物照片,指定打卡地点与姿势要求,一键生成写实风格的景点打卡照片
- 具备打卡意图深度解析、生图提示词融合优化、AI写实生图、生成状态轮询四大能力
- 触发场景:旅行打卡照创作、无法亲临景点合影、社交平台晒图、个人写真/头像制作
能力组成
能力流程描述
该技能由 4 个步骤串联组成,数据逐级自动流转,用户仅需在入口提供素材与需求:
- 景点打卡意图深度解析(step_1_intent_analyzer):接收用户输入的打卡地点提示词(location_prompt)与姿势要求(pose_requirements),输出结构化意图(structured_intent)、场景类型分类(scene_type_classification)、融合成功标准(fusion_success_criteria)与扩展姿势建议(extended_pose_suggestions);
- 生图提示词融合优化(step_2_scene_prompt_generate):基于步骤1的解析结果,融合地点、姿势与场景类型,生成包含环境、人物、光影、风格描述的优化生图提示词(optimized_prompt),并产出反向提示词(negative_prompt),用于排除卡通、模糊、变形等非写实元素;
- 提交打卡照生成任务(step_3_generate_check_in_photo):将优化后的提示词、人物参考图(refer_image)与照片比例(ratio)一并提交给生图模型,创建生图任务;
- 轮询打卡照生成状态(step_4_poll_photo_status):每 8 秒轮询一次生图任务状态(最长 600 秒),直至任务状态为 SUCCEEDED,最终输出生成的打卡照片URL(check_in_photo_url)。
人机协作节点:用户只需提供人物照片(Base64 或 URL)、打卡地点描述,以及可选的姿势要求与照片比例;解析、优化、生图、轮询全部由技能自动完成,无需人工干预。
技能能力组成流程图
flowchart TD
A["用户输入<br/>refer_image 人物照片(必填)<br/>location_prompt 打卡地点(必填)<br/>pose_requirements 姿势要求(选填)<br/>ratio 照片比例(选填,默认3:4)"] --> B["步骤1:景点打卡意图深度解析<br/>输出结构化意图/场景分类/成功标准/扩展姿势"]
B --> C["步骤2:生图提示词融合优化<br/>输出 optimized_prompt / negative_prompt"]
C --> D["步骤3:提交打卡照生成任务<br/>提示词 + 人物参考图 + 照片比例"]
D --> E["步骤4:轮询打卡照生成状态<br/>间隔8秒,最长600秒"]
E --> F{"task_status 是否为 SUCCEEDED"}
F -->|否| E
F -->|是| G["最终输出<br/>check_in_photo_url 打卡照片URL<br/>optimized_prompt 优化提示词<br/>negative_prompt 反向提示词"]API 信息
- 接口名称:人物景点打卡照生成(工作流ID:6a30bb8e3c51f28612002ad4)
- 任务执行接口:
POST https://route.showapi.com/flow/execute/6a30bb8e3c51f28612002ad4?appKey={appKey}&mode=async(请求体为 JSON) - 任务查询接口:
GET https://route.showapi.com/flow/task/query/{task_id}?appKey={appKey} - 鉴权方式:所有请求 URL 查询参数携带
appKey={你的AppKey}
入参
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| refer_image | string | 是 | – | 人物照片(传入标准 Base64 编码字符串或普通 URL),将直接作为参考图传给生图模型 |
| location_prompt | string | 是 | – | 打卡地点提示词,如景点名称或具体描述 |
| pose_requirements | string | 否 | "" | 对人物姿势等的其他要求,如挥手微笑、背影眺望等 |
| ratio | string | 否 | 3:4 | 生成照片的比例,可选值:1:1、3:4、4:3、16:9、9:16 |
出参
| 参数名 | 类型 | 说明 |
|---|---|---|
| check_in_photo_url | string(url) | 最终生成的景点打卡照片访问地址 |
| optimized_prompt | string | 融合优化后的生图提示词,包含环境、人物、光影、风格描述 |
| negative_prompt | string | 反向提示词,用于排除卡通、模糊、变形等非写实元素 |
异常说明
- AppKey 缺失或无效:返回鉴权错误,请按「前置准备」通过手机验证获取有效 AppKey;
- refer_image 为空或格式错误:任务提交失败,请检查照片 Base64 字符串/URL 的有效性;
- 轮询超时:生成任务最长轮询 600 秒,若超时未完成建议稍后重新查询;
- HTTP/网络异常:脚本将抛出包含状态码或失败原因的异常信息,可按提示重试。
前置准备
- 凭证:配置 ShowAPI AppKey,凭证名称:showapi_appkey
- 鉴权配置:
本 Skill 调用需要 AppKey 鉴权。所有 API 请求的 URL 查询参数中需携带 appKey={你的AppKey}。
如何获取 AppKey
如果你还没有 AppKey,请按以下步骤通过手机验证获取:
- 请用户提供手机号(中国大陆手机号)
- 调用发送验证码接口:
“` POST https://www.showapi.com/auth/agent_sendCode Content-Type: application/x-www-form-urlencoded
phone={手机号} “ 成功响应:{"flag":true,"remark":"发送成功"}`
- 请用户查看手机收到的6位验证码并告诉你
- 调用验证接口获取 AppKey:
“` POST https://www.showapi.com/auth/agent_verify Content-Type: application/x-www-form-urlencoded
phone={手机号}&code={验证码} “ 成功响应:{"flag":true,"app_key":"你的AppKey"}`
- 将获取到的 app_key 保存,后续所有 API 调用 URL 中携带
appKey={app_key}参数
注意事项
- 验证码5分钟有效,每分钟只能发送1次
- 如果手机号已注册过易源数据平台账户,会直接返回该账户的 AppKey,不会重复注册
- AppKey 获取后请妥善保存,避免重复验证
- 模拟体验:无 appKey 时,系统自动触发模拟调用,直接返回完整结果,快速预览生成效果
- 依赖:仅使用 Python 标准库,无需安装第三方包
操作步骤
模拟体验流程(无 appKey)
- 自动触发模拟调用
系统检测到未配置 appKey 时,自动向 https://www.showapi.com/_nuxt3/api/2405-105 发送 POST 请求(body: {"flow_id":"6a30bb8e3c51f28612002ad4"}),直接获取完整模拟生成结果。此过程为一次性返回,不执行 execute_task.py 和 query_task.py。
- 可视化预览
将返回的 JSON 结果以 HTML 形式可视化展示,重点呈现生成的打卡照片内容。
- 引导真实调用
提示用户当前为无 appKey 的模拟运行结果。如需真实调用,请通过手机验证获取 AppKey(步骤见「前置准备-鉴权配置」),并在后续所有 API 调用 URL 中携带 appKey={app_key} 参数。
标准流程(有 appKey,强制异步执行)
- 收集用户需求
收集人物照片(标准 Base64 编码字符串或图片 URL,必填)、打卡地点提示词(必填,如"巴黎埃菲尔铁塔"),并确认姿势要求(选填)与照片比例(选填,默认 3:4)。
- 异步提交生成任务
调用脚本异步执行打卡照生成任务,仅返回唯一 task_id,不阻塞等待。调用示例:
python scripts/execute_task.py --refer-image "https://xxx/人物照片.jpg" --location "巴黎埃菲尔铁塔" --pose "背影眺望铁塔,微笑回眸" --ratio 3:4 --async也可使用
--refer-image-file /path/to/photo.jpg直接传入本地照片,脚本会自动转为标准 Base64 编码。
- 轮询查询任务结果(必选)
使用 task_id 循环查询任务状态,每一轮轮询后,即时将当前返回的核心资料同步反馈给用户,直至获取完整结果。调用示例:
python scripts/query_task.py --task-id "返回的task_id值"- 等待结果完成
必须轮询直到完成(生成任务状态为 SUCCEEDED)。
- 结果解析与落地应用
提取打卡照片URL(check_in_photo_url)、优化提示词(optimized_prompt)与反向提示词,保存或下载照片用于分享、复现或二次调整。
- 生成html页面
生成一个简单的html页面来融合返回的主要信息,特别是打卡照片的展示。
使用示例
示例1:巴黎埃菲尔铁塔打卡照
- 输入:人物照片 + 打卡地点"巴黎埃菲尔铁塔" + 姿势"背影眺望铁塔"
- 流程:异步提交任务 → 获取task_id → 轮询查询(每轮反馈进度/数据)
- 产出:一张站在埃菲尔铁塔前的写实打卡照片 + 优化提示词
- 配置要点:ratio=3:4(适合手机壁纸/社交平台竖图)
示例2:国内地标打卡
- 输入:人物照片 + 打卡地点"北京故宫太和殿前广场" + 姿势"挥手微笑"
- 流程:异步提交任务 → 获取task_id → 轮询查询(每轮反馈进度/数据)
- 产出:融合故宫场景的逼真打卡照
- 配置要点:地点描述越具体(含景点名称+具体位置),场景融合效果越好
示例3:旅行写真批量制作
- 输入:同一张人物照片,分别打卡多个景点(如"三亚天涯海角""大理洱海")
- 流程:多个任务异步提交 → 分别获取task_id → 逐一轮询查询
- 产出:一组不同景点背景的旅行写真
- 配置要点:可变换姿势要求与比例(1:1、16:9 等)丰富成片风格
生成效果示例
描述
技能运行完成后返回三类核心信息:
- check_in_photo_url:最终生成的景点打卡照片访问地址,人物与景点自然融合、写实逼真,可直接下载或分享;
- optimized_prompt:融合优化后的生图提示词,包含环境、人物、光影、风格等完整描述,可用于复现或二次调整;
- negative_prompt:反向提示词,用于排除卡通、模糊、变形等非写实元素,保证成片质量。
可视化呈现时优先展示生成的打卡照片(图片),再辅以提示词文本说明。
输出案例
说明:若输出结果包含图片,优先插入对应图片资源,之后再输出 JSON / Markdown 格式的文本内容。
接口返回数据实际形态示例:
{
"showapi_res_body": {
"task_status": "SUCCEEDED",
"check_in_photo_url": "https://showapi-pub.oss-cn-hangzhou.aliyuncs.com/xxx/check_in_photo_xxx.png",
"optimized_prompt": "写实风格照片,一位年轻女性站在巴黎埃菲尔铁塔前的观景平台,背影眺望铁塔,傍晚金色阳光洒落,塞纳河波光粼粼,自然光效,细节丰富,真实摄影质感",
"negative_prompt": "卡通、动漫、插画、绘画、模糊、变形、多余肢体、低画质、水印"
},
"showapi_res_code": 0,
"showapi_fee_num": 1
}资源索引
- [scripts/execute_task.py](scripts/execute_task.py):异步提交景点打卡照生成任务(真实调用时使用)
- [scripts/query_task.py](scripts/query_task.py):轮询查询异步任务结果(真实调用时使用)
响应数据结构
1. 异步任务提交响应
{
"showapi_res_body": {
"task_id": "唯一任务ID",
"status": "pending",
"msg": "任务已提交,正在异步处理中"
},
"showapi_res_code": 0,
"showapi_fee_num": 1
}2. 任务查询响应(单轮轮询返回数据,需实时同步给用户)
{
"showapi_res_body": {
"task_id": "唯一任务ID",
"task_status": "SUCCEEDED",
"check_in_photo_url": "最终生成的景点打卡照片URL",
"optimized_prompt": "融合优化后的生图提示词,包含环境、人物、光影、风格描述",
"negative_prompt": "反向提示词,排除卡通、模糊、变形等非写实元素"
},
"showapi_res_code": 0,
"showapi_fee_num": 1
}注意事项
- refer_image(人物照片)与 location_prompt(打卡地点)为必填项;人物照片支持标准 Base64 编码字符串或图片 URL。
- pose_requirements(姿势要求)与 ratio(照片比例)为选填项;比例可选 1:1、3:4、4:3、16:9、9:16,默认 3:4。
- 所有任务强制异步执行,提交后仅返回 task_id,需通过 query_task.py 轮询获取结果(生成过程含模型推理,耗时较长,请耐心等待轮询完成)。
- 轮询查询过程中,每次获取接口返回数据后,立即将主要内容反馈给用户。
- 生成照片的写实程度受人物参考图质量影响,建议上传清晰、光线良好的人像照片。
- 打卡地点描述越具体(如"巴黎埃菲尔铁塔下方的战神广场"),场景融合效果越好。
- 模拟运行说明:无 appKey 时系统自动触发模拟调用,一次性返回完整 JSON 结果,不经过 execute_task.py 和 query_task.py,结果仅作效果预览,非真实生成内容。如需真实调用,请通过手机验证获取 AppKey 并配置。
- 单次调用预估费用 0.24(含模型推理价格),实际以平台计费为准。