因心手绘 · 水墨国风概念稿
> 计费:本技能为 Pay Skill 按次调用,采用支付宝 AI 按量付费(A402 / HTTP 402)协议,单次调用 ¥0.50。
> 闭环:probe(钱包授权与本地台账查询) → 402 账单下发(Payment-Needed) → pay(用户支付) → 携带 Payment-Proof 重试 → 验付调用 → complete(履约确认) → ack(履约回执);订单 orders.json 持久化与幂等。
> 支付依赖包:@alipay/agent-payment / @alipay/alipay-aipay / alipay-pay-for-402-service / alipay-authenticate-wallet。完整条款见文末「付费改造 · 支付宝 AI 按量付费(Pay Skill)」。
输入一张照片或素材(人、景、物、关系场景均可),交付上方完整原图、下方米白宣纸感手绘的 1800×2400 PNG,以及两张独立手稿(墨线稿、枯笔稿)。仅交付这三张 PNG。默认高度抽象、接近大师自由涂写的未完成草稿,笔意松弛、留白充足。每组画痕必须对应输入中的构成关系。
先读 用户认可的风格标尺,按墨线或枯笔类型以其文字基准校准(运行环境附带标尺图时一并查看);这两张选稿比"第一版"的版本称呼更准确地界定目标画风。照片/素材提供构成起点,不以轮廓相似度作为首要验收标准。
先分析再画
- 用
view_image查看输入。拼图未指定目标时询问使用哪个区域,不能把草图当作照片。支持 Pillow 可读静态图;透明图以米白承底并说明;不默取动画第一帧。无主体或主体不清时要求明确输入。 - 提取主要体量及重心、1—3 个构成动作、虚实/留白关系、2—4 个辨识锚点。仅依据可见信息,删除多数纹饰、材质缝、反光、车辆和琐碎装饰;不推断隐藏结构或真实设计过程。
- 读 风格路由,选择一种主表达方法,分别生成墨线稿和枯笔稿;墨线按用户认可的两张样稿校准;枯笔按风格标尺的文字特征校准:宽厚侧锋、飞白颗粒、黑白留空和宽窄连续变化(运行环境附带标尺图时一并查看),详见风格标尺。两种画材均保留自由构想,不要求照片轮廓相似。
- 读 参考图目录 中相关条目;运行环境附带
references/images/参考图时,用view_image查看对应图片(通常 1—2 张),无图时以条目文字描述校准。输入决定内容,参考只提供笔意和抽象方法。作品事实见 来源,未知归属保持未知。
内容和媒介
- 分别生成单一墨线稿和单一枯笔稿,每稿的主稿、小图、辅助线画材一致。画痕只黑及自然灰阶(淡墨),米白纸底除外。禁用彩色、水彩、马克笔、毛笔渲染晕染与跨画材底稿。
- 主稿约占手绘内容 70%,延续照片大致视角,允许形变、断线、回环与试探复线,锚点保留动作与张力即可;可夸张比例、压缩体量、局部移位、省略边界,不要求与照片轮廓一一对应。不把输入替换为无关对象。
- 固定两幅小图:体量/对象分组;主要构成动作或虚实/留白关系。两图有不同用途,不是主稿缩小复制,不虚构内部平剖面。
- 默认无文字、签名、日期、标题、水印、边框、器材摆拍。密集描纹、自动边缘滤镜、满幅素描、无关装饰曲线均不合格。
生成与拼版
- 使用 Python 3 + Pillow。运行
python scripts/compose.py layout --photo INPUT获取下区尺寸;脚本路径相对于本 skill 目录。 - 按 生成模板 分别填写两种画材的提示词,分析与提示词仅用于内部工作。内置
image_gen(本环境即 ImageGen)只生成下方手绘区,宽高比接近布局结果;照片为内容输入,参考为笔意输入,明确编号与角色。调用前已经查看全部引用图。不能把照片上区一起交给 AI 重绘。内置工具不可用则报告阻碍,未经用户指定不改用 CLI/API。 view_image检查原始手绘,每张首次后最多两轮定向修正。混合媒介不能靠灰度化冒充通过。保留原始生成文件,使用工具实际返回路径;无可读路径时先解决文件可用性,不虚构路径或输出参数。- 本流程已获用户授权使用程序缩放、纸底规范化与拼版。运行
python scripts/compose.py compose --photo INPUT --sketch RAW_SKETCH --output-dir WORK --name MEDIUM。下区规范为黑灰画痕叠加#F5F1E8米白,不改变线条几何;明显彩色/混合画材必须先重生。照片仅还原 EXIF 方向并等比例缩放,不裁切、拉伸或调色。透明照片承米白并说明。自动版本化,不覆盖输入。 - 保留已确认的原图保护版式:3:4 画布默认 1800×2400,原图从左上角完整等比例通栏铺满宽度,顶部及左右无边框,不裁切、不调色。照片高度按其比例计算,下区才是米白,直接衔接无间隔。下区完整容纳草图不拉伸。极高照片导致下区不足15%时依脚本提示向用户明确版式选择。
- 运行
python scripts/compose.py verify --manifest WORK/MEDIUM-vN.json,验证尺寸、缩放照片像素完全一致、源文件哈希、下区与纸色单色范围。技术验证不证明画材或概念质量,必须再次查看最终成图。 - 两稿分别在交付目录外的临时 WORK 目录运行拼版与验证。按构成表达和画面适配选择更合适的一稿用于最终拼合。只将选中拼合图与两种规范化独立下区复制到新的版本交付目录,分别命名"成图.png""墨线稿.png""枯笔稿.png";所选独立稿与拼合下区像素一致。目录严格只有三张图片,不交付提示词、记录、JSON、原始图或额外预览。旧稿不覆盖、不删除。失败项诚实标明。
- 最终回复给三张图片的绝对路径链接和一句简短说明即可。双稿交付不改变第一版的风格、参考路由、主稿与两小图关系。
验证 skill
运行 skill-creator 的 quick_validate.py;脚本回归运行 python scripts/test_compose.py。视觉验收必须真实调用生成工具:原图完整,单一媒介,1 主稿+2 小图,动作来自照片,足够疏松自由,无伪造签名。样图保留工作区,不装进个人 skill。
付费改造 · 支付宝 AI 按量付费(Pay Skill)
- 计费模式:按量计费 ¥0.50/次(每次执行核心能力独立下发 402 账单;同一请求幂等,不重复计费)
- 支付协议:支付宝 A2M / HTTP 402(Payment Required)按量付费协议承载按次扣费
- 计费一致性:本节定价与上架页「完善计费」配置保持一致(¥0.50/次)
支付依赖包
- 支付宝官方支付技能:
alipay-aipay-product-intro/alipay-authenticate-wallet
(check-wallet / apply-wallet / bind-wallet / close-wallet)/alipay-pay-for-402-service/alipay-payment-feedback - 官方 CLI:
@alipay/agent-payment@1.0.0(提供alipay-bot)。安装前置:① 说明用途并取得用户同意;
②npm view @alipay/agent-payment@1.0.0 dist.integrity校验完整性,不匹配即终止;③ 只允许锁定@1.0.0,禁@latest。
付费执行流程(先验付,后服务)
- probe 前置探测:
alipay-bot -- check-wallet查钱包授权;查本地台账orders.json有无同一请求已验付订单 - 402账单下发:返回
402 Payment Required+Payment-Needed头(Base64URL 账单);原样透传,不篡改不裁剪 - 用户支付(pay):
alipay-bot -- 402-buyer-pay -f '<402响应文件>';CLI 完整输出只输出一次,
链接与二维码路径逐字符保留,不截断、不写持久化日志、不走非用户指定渠道 - 携带凭证重试:用户确认支付后带
Payment-Proof重试
(alipay-bot 402-query-payment-status -t '<token>' -r '<resource>') - 验付调用:以支付宝验付/支付状态查询结果为唯一凭据;禁止伪造支付状态、交易号,禁止跳过验付直接交付
- 履约确认(complete / ack):交付完成后发履约回执,闭环
- 订单持久化与幂等:台账
orders.json存订单号/金额/状态/时间戳;写入强制 fsync,启动做完整性校验;
同一Payment-Proof直接命中已验付订单(幂等),不重复下发账单或重复计费;链接约 5 分钟时效,过期重下发
收费范围
- 需要付费:图像分析与水墨手绘生成、compose.py 拼版与校验、交付「成图/墨线稿/枯笔稿」三张 PNG
- 无需付费:阅读 SKILL.md 说明、风格标尺浏览、简单问候闲聊
安全与异常处理
- 安全红线:不篡改
Payment-Needed;不伪造Payment-Proof与交易号;不跳过 probe → 402 → pay → 验付 → ack 任一步 - 异常:网关不可达→稍后重试;账单过期→重新获取;支付失败→输出原因并终止;用户取消→终止本次调用;
其他异常→调alipay-payment-feedback