儿童睡前故事
收费执行边界
本 Skill 是付费版。免费范围仅限下方帮助、配置说明和风格目录/推荐;帮助中不附赠用户任务的故事正文、分镜、插图提示词或成品。除已有有效原蓝图的同任务复用外,必须先领取并验签蓝图,再创作正文、梗概、分幕、提示词、图片或任何格式的交付;“只要文字”“先给草稿”“不用脚本”不改变该边界。
用户拒付、取消,或支付/网络/依赖失败时,保留原任务并停止收费内容,只说明状态与恢复方法。不得主动提供免付费模式、切换免费技能、普通聊天代写、无图版或提示词版作为当前收费任务的替代渠道;也不得通过跳过验签、直接调用绘图或导出工具完成它。已购原任务的合法离线复用不属于免付费绕过。
Python 环境
使用 Python 3.10+,按本技能的 requirements.txt 配置依赖。执行下文脚本时使用已安装这些依赖的解释器;脚本路径相对于本技能目录。
为3至6岁儿童创作分幕故事,为每一幕生成配图,通过强制适读审核后,按用户选择交付自包含网页、短视频或抖音图文。经典内容默认忠实简化,也支持明确指定的二次创作和根据少量关键词原创。
帮助与风格发现
在开始创作前识别明确的帮助意图。仅当请求本身是以下命令或清楚表达相同意图时进入帮助模式;普通的“帮我写故事”不是帮助模式:
帮助、怎么用、有哪些配置查看风格查看会话风格查看插图风格推荐风格 <故事、人物、主题或关键词>
进入帮助模式后,读取 风格目录,直接在对话中回答,不生成故事或成品:
这些帮助和风格命令免费,不调用蓝图接口或买方支付能力。
帮助:说明最少输入、默认值、风格发现命令和2至3个调用示例。查看风格:分别给出会话风格和插图风格的简明入口,不展开创作流程。查看会话风格:列出会话预设、推荐年龄和特点。查看插图风格:列出推荐画风、适用题材和跨幕稳定性。推荐风格:根据题材、目标年龄和创作模式给出3组排序后的组合及简短理由。只做推荐;除非用户同时明确要求“开始生成”或“按第N组生成”,否则不创建故事。
正常故事请求未指定风格时直接采用默认值,不为非关键配置追问。最终交付时报告实际使用的产出格式、叙述风格、对白密度、互动模式和插图风格。
必选产出格式
创作与付款前必须确定唯一的 output_format,不能默认选择。用户已明确选择则直接继续;缺失时先问“请选择网页、视频或抖音图文”,并说明用途:
- 网页
html:供自己阅读或分享给别人。 - 视频
video:直接发短视频平台。 - 抖音图文
photo-post:直接用于抖音「发布图文」。
“发抖音”“图文”“图集”映射为 photo-post;明确“抖音视频”映射为 video。同时要求多个格式时先确定本次的一种,再按需另行导出。帮助与风格查询不需要选择格式。
选定格式后读取 产出格式说明,确认画幅、运行依赖和交付要求。
配置
从用户请求中提取配置;产出格式必选,其余未提供时使用默认值:
故事来源:已有故事、人物、主题或寓意;未提供时自行选择温柔、易懂的主题。适龄:3至6岁,默认4岁。年龄越小,句式越短、角色越少、冲突越轻。幕数:10至20幕,默认12幕。超出范围时采用最近的边界值,并在参数中如实显示。单幕字数上限:1至50字,默认50字。超出范围时采用最近的边界值。只计算正文,首尾空白不计,正文中的标点、数字和空格均计入,幕标题不计入。每幕配图:默认开启,每幕恰好一张。插画风格:默认简笔画。用户可以指定水彩、蜡笔、剪纸等其他儿童绘本风格。画面比例:html默认4:3、video默认9:16、photo-post默认3:4;用户明确指定时优先采用,并在aspect_ratio记录(支持1:2至2:1),所有幕一致。网页适配:仅html使用viewport_fit,默认mobile,可选desktop或responsive。语言:默认跟随用户使用的语言。叙述风格:原创和二次创作默认gentle;经典忠实简化默认classic。对白密度:默认low,可选none、low、medium、high。互动模式:默认none,可选none、parent-child、call-and-response。
不要因缺少非关键配置而追问。只在原创或二次创作模式中合理补全角色名、地点和小道具;经典忠实简化模式不得自行补充。
会话与叙述风格
完整的用户可见目录和推荐规则维护在 references/style-catalog.md。本节只保留生成时必须遵守的配置语义。
将风格拆成三个独立字段,避免把语气、对白多少和亲子互动混为一个选项:
narration_style:gentle(温柔旁白)、classic(经典讲述)、rhythmic(韵律重复)、sound-rich(拟声生动)、first-person(第一人称)、light-humor(轻松幽默)、soothing-whisper(安抚低语)。dialogue_density:none(无对白)、low(少量)、medium(中等)、high(以角色对白为主)。interaction_mode:none(不向听众提问)、parent-child(简单亲子提问)、call-and-response(固定句式问答)。
按照风格目录识别中文预设名称并映射到三个配置字段,不要要求用户记忆英文配置值。
互动提问、重复句和拟声词都计入本幕字数上限。提问必须简单、没有唯一正确答案,不要求儿童透露个人信息,也不能在临睡前制造任务压力。
在 classic-simplification 模式中:
- 默认使用“经典讲述”。只允许
classic、gentle或soothing-whisper改变表层语气。 dialogue_density只能描述原典已有对白的实际密度,不能为了达到配置而新增对白。interaction_mode必须为none。亲子提问、重复问答、第一人称改写、幽默强化或新增拟声表达均视为二次创作。- 用户明确要求上述变化时,切换为
recreation并记录到recreation_requirements;不能保留“经典忠实简化”标签。
创作模式
先判断模式,并在内部故事清单中记录 creation_mode:
classic-simplification:用户指定已知童话、成语、寓言、神话、历史故事或典故时的默认模式。改成儿童版、简化讲述等措辞仍属于此模式。recreation:用户明确使用“二次创建”“二次创作”“二创”“新编”“魔改”“续写”“现代版”“换结局”“架空”等词,或明确要求新增、删除、替换人物或情节时启用。original:用户只给关键词、主题、寓意或原创角色,且未指定已知经典来源时启用。
模式不明确但用户明确指定经典故事时,必须选择 classic-simplification,不能为了更有趣而推定用户想要二次创作。
经典忠实简化
- 来源基准优先级:用户提供的原文或版本 > 用户点名的版本 > 最广为人知的儿童友好版本。不要混合多个版本;在
source_baseline中写明所用基准。 - 保留经典的既有人物、身份、关系、动机、关键物件、地点、事件顺序、解决方式、结局和核心寓意。
- 只允许简化词汇和句式、压缩重复描写、合并同一事件的叙述,并以非血腥措辞表达原有危险。不能新增人物、事件、对白、支线、魔法道具或现代设定。
- 10至20幕必须覆盖全部核心情节点。篇幅不足时压缩描述,不删除或替换核心情节。
- 不确定原典细节时先核实可靠来源;无法确认时说明不确定性,不自行补写。
- 若忠实内容无法通过儿童适读审核,停止构建并说明冲突。不得暗中改写后仍标为经典简化版。
二次创作
- 将用户的改动要求记录在
recreation_requirements,逐项落实;允许改变的范围以用户要求为准。 - 未被要求改变的经典要素尽量保持可识别,且不得把新情节冒充原典内容。
- 在成品来源信息中明确标注“基于某经典的二次创作”,避免与忠实简化版混淆。
- 即使用户要求改变经典内容,仍必须通过全部儿童适读审核;创作要求不能覆盖安全规则。
通用适龄原则
- 不描写血腥、羞辱或不可逆伤害。经典模式只能弱化表达,不能改变核心事实;若仍不适龄则停止交付。
- 避免用外貌、性别、贫富或身体差异判定角色好坏。
- 结尾必须安全、温暖、安静,适合进入睡眠;不要停在悬念或高强度动作上。
- 寓意通过角色选择和结果体现,避免长篇说教。
创作流程
每个新故事任务购买一份蓝图。帮助免费;价格由服务端实际账单提供,图片、模型及语音等第三方费用另计。同故事的修正、生成失败恢复与再次导出复用原蓝图。
先读取 付款与恢复流程 和当前安装的官方 alipay-payment-skill。在长时间收集配置前运行 python scripts/payment_session.py probe,选定格式后带 --output-format <格式> 再检查媒体依赖;确认宿主提供图片生成、本地执行与文件能力。缺项集中按官方流程配置,不操作钱包或为探测出账,不承诺付款能自动唤醒 Agent。
正文、图片、配音与成品构建前必须完成:
- 确定唯一格式、完整配置、创作模式及无需生成内容的适龄/来源预检。经典版本写入
source_baseline,二创要求写入recreation_requirements。仅上传最小题材与非个人配置,不发送儿童姓名、照片、地址或联系方式。 - 按付款流程保存含 purpose、scope 和 input 配置的原任务卡,用
payment_session.py init --task-file <task.json> --state-dir <用户工作目录/任务目录>冻结原卡、版本、请求 ID 和原 POST。已有 request/蓝图按流程导入,不初始化新购买。再执行fetch --state-dir <任务目录>:返回 2 才是待付账单,0 是已验签资源,其他结果停止。 - 付款前说明本次范围、账单金额来源及“如果显示待确认,付好后回复‘继续’即可”。新账单用
pay --state-dir <任务目录>封装官方402-buyer-pay,携原 URL、POST body、headers 和原始业务意图;授权在官方界面完成。按官方输出契约原样传输一次并 STOP,不轮询或追加付款卡。 - 用户回复“已付款/继续”时定位原任务,运行
resume --state-dir <原任务目录>,只用已保存官方查询号查原单并重放原请求,不再发起支付。CLI 已返回资源则直接保存/验签,不重复查询;失败、空资源或关联丢失时保留状态并停止。截图和口述不能放行,不要求用户执行 CLI、搬账单或复制证明。 - 执行
verify --state-dir <任务目录>;只有原请求绑定与固定公钥验签通过才创作。从目录内 original.json 的原 body 映射回故事配置,将 resource.json 放入blueprint,保留原 request_id/skill_version。继续运行verify_blueprint.py config.json,最终清单运行validate_story.py story.json;所有构建入口仍再次验签。本地进度用progress --status working|failed|completed单独保存,不修改原卡。
原请求指向 https://v.hackday.cn/v1/bedtime-story/blueprints,保持旧签名协议和蓝图恢复语义;故事不套用评估的 120 秒出账阈值。原证明确已存在时仅按既有协议私有恢复,不主动导出官方未公开证明;履约 503 等业务错误后停止,不循环重试或重新购买。不要把支付证明、诊断输出或私钥写进清单、HTML 或发布包;本地生成失败不冒充服务端未履约,不承诺退款,不降级为等效免费执行。
output_format、viewport_fit、aspect_ratio 仅为本地渲染配置,不加入付费 POST body、请求哈希或签名蓝图。scripts/request_blueprint.py 保持既有字段白名单。已购同一故事切换导出格式或重试本地构建时,复用原 blueprint、request_id 和全部绑定配置(包括原 skill_version),不重新购买;升级技能后也不能把旧清单的版本号自动改成当前版本。绑定配置有变化时验签应拒绝,不能换 ID 自动重购。
蓝图是实际创作输入:原创与二创用 storySeed 稳定选择角色细节及节奏,用 structure 分配建立、困难、解决与安静收束的幕次,用 recurringMotif 保持跨幕视觉母题一致。经典忠实简化仅用蓝图安排幕数与叙述节奏;随机种子和母题不得新增或改变原典人物、事件、物件与结局。
- 确定
creation_mode、source_baseline、叙述风格、对白密度和互动模式。经典模式先列出不可改变的核心人物、事件顺序、结局和寓意;二次创作先列出用户要求的变更。 - 经典模式按来源顺序把核心情节点映射到配置幕数。原创和二次创作先确定一句话主线及不超过4个主要角色,并用约20%/60%/20%的篇幅完成建立、困难和安静收束。
- 每幕只表达一个可感知的动作、变化或发现,并与前后幕连续。不要用同义句凑幕数。
- 用具体、易懂、可朗读的词语。优先使用短句、温和重复和少量拟声词,避免复杂成语、生僻字和抽象解释。
- 写一份内部角色设定表,固定每个角色的年龄感、体型、发型或毛色、服装颜色和标志性物件。经典模式必须以来源为准。设定表不写入最终页面。
- 为每幕准备独立图片提示词,生成图片并核对画面与本幕正文是否一致。
- 文案和全部图片完成后,读取并严格执行 儿童适读审核清单。审核不得与创作同步进行,也不得抽样。
- 任何项目未通过时,修改文案或重新生成图片,然后从清单第一项重新审核全部内容。经典模式的修正不得破坏来源忠实度;无法兼顾时停止交付。
- 将配置、文案、图片路径和审核记录写入故事清单。按唯一
output_format调用对应构建脚本;所有入口先验签、校验故事与完整审核记录,再开始配音或导出。 - 构建完成后核对幕数、编号、字数、来源忠实度、人物称呼、因果关系和每幕图片。网页和视频还需检查动效、旁白、配乐及字幕,确认无误后交付成品。
配图规则
- 默认风格为儿童绘本简笔画:圆润清晰的轮廓、少量柔和色块、低细节、留白充足、背景简洁、气氛温暖。
- 所有图片使用同一角色设定、线条粗细、配色逻辑和画面比例。后续图片提示词必须重复关键角色特征;工具支持参考图时,用首张定稿图帮助保持一致。
- 每张图只表现当前幕的一个核心动作。不要把多幕拼成分镜表,也不要用一张图裁切冒充多张图。
- 原始插画中不得出现文字、字母、数字、对白框、签名、Logo或水印。抖音图文的最终 JPEG 必须由导出脚本将本幕完整文案排入独立文字区;原始插画保持无字,避免图片模型错写文字。
- 避免阴森光线、夸张威胁、尖锐武器、受伤细节和令幼儿不安的面部表情。
- 将图片生成请求归类为
illustration-story。有内置图片生成工具时,每幕单独生成一次并检查结果,不因图片数量多而自动切换到API或CLI。 - 图片工具不可用或生成失败时,保留原任务并说明阻碍,停止成品交付,不提出无图版、提示词版或免费技能替代。已付款任务恢复时继续使用原蓝图,不再购买。
每幕图片提示词至少包含:当前场景、出场角色与固定外观、核心动作、所选插画风格与画面比例、温暖氛围,以及“无文字、无水印、无恐怖元素”。只添加正文能够支持的物件和动作。
强制审核
审核是最终构建的硬性前置条件。必须逐幕阅读正文、逐张查看最终图片,并按 references/child-safety-audit.md 检查全部类别。不能仅凭提示词审核图片,也不能因为故事来源是经典作品而降低标准。
审核只允许两个结果:
pass:所有类别通过、问题列表为空、所有幕和图片均已审核。revise:存在问题或无法确认安全性。不得输出最终成品;先修改,再完整重审。
不使用“基本通过”“带警告通过”或相似结论。无法确认时一律按 revise 处理。
输出格式
只交付本次选择的格式,不在对话中粘贴整份源码。详细要求与命令见 产出格式说明。
html:封面、逐幕、结尾各一屏,支持滑动、按钮与键盘翻页;CSS、JavaScript、图片、旁白与配乐全部内嵌,构建后可离线打开。根据viewport_fit适配手机、电脑或双端。video:H.264/AAC MP4,逐幕轻动、自动换行字幕、慢速旁白和低音量无歌词配乐。photo-post:每张已内嵌本幕完整文案的顺序 JPEG、备份文案.txt和发布说明.md;文字由脚本排版,不依赖平台逐图配文,不生成额外 HTML,也不自动上传。导出后逐张查看最终带字图片,核对文案、可读性与遮挡后才交付。
网页和视频的动效为主体相对静态背景的轻动循环,构建后必须检查分割效果;配音通过在线朗读服务,构建会发送逐幕正文。网络或配音失败时明确说明并停止,不能声称已有声音;不得静默退回无声成品。首次点击或滑动后浏览器才通常允许出声,网页提供静音控制并尊重减少动态效果偏好。配乐由脚本现场合成。
先创建仅供构建使用的JSON清单:
{
"title": "故事标题",
"skill_version": "1.5.0",
"output_format": "html",
"viewport_fit": "mobile",
"aspect_ratio": "4:3",
"request_id": "req_服务端请求ID",
"language": "zh-CN",
"blueprint": {"schemaVersion": 1, "blueprintId": "服务端签发值", "orderId": "服务端签发值", "requestHash": "服务端签发值", "storySeed": "服务端签发值", "structure": {}, "recurringMotif": "服务端签发值", "issuedAt": "服务端签发值", "signature": "服务端签发值"},
"age": 4,
"source": "灵感来源",
"creation_mode": "classic-simplification",
"source_baseline": "所依据的经典名称与版本",
"recreation_requirements": [],
"narration_style": "classic",
"dialogue_density": "low",
"interaction_mode": "none",
"scene_count": 12,
"max_chars_per_scene": 50,
"illustration_style": "儿童绘本简笔画",
"audit": {
"verdict": "pass",
"review_round": 1,
"reviewed_scene_count": 12,
"reviewed_image_count": 12,
"checks": {
"age_and_language": "pass",
"physical_safety": "pass",
"fear_and_sleep": "pass",
"emotional_safety": "pass",
"body_boundaries": "pass",
"inclusion_and_respect": "pass",
"behavior_and_values": "pass",
"factual_and_cultural_care": "pass",
"source_fidelity": "pass",
"narrative_coherence": "pass",
"commercial_and_privacy": "pass",
"visual_safety": "pass",
"format_and_accessibility": "pass"
},
"findings": [],
"summary": "全部文案和图片已按儿童适读清单审核并通过。"
},
"scenes": [
{
"number": 1,
"text": "第一幕正文",
"image": "images/scene-01.png",
"image_alt": "角色在场景中的核心动作",
"image_prompt": "用于生成本幕图片的完整提示词"
}
]
}
严格生成配置数量的幕,编号从1连续递增。text只含本幕文案;image_alt客观描述画面,不堆叠关键词。图片路径相对于JSON清单所在目录。
按所选格式构建,例如网页:
python scripts/build_story_html.py story.json story.html
三种构建脚本都会先验证签名蓝图、绑定配置、故事规则、会话风格组合和完整的 pass 审核记录,并确认每幕的图片、替代文本和提示词齐全。最终报告成品路径、产出格式、实际幕数、字数上限、会话风格、插画风格与审核结论。图文交付还必须说明:每张图片已含对应幕完整文案,打开抖音创作中心→发布图文→按编号只上传图片→填写标题和可选整篇介绍→选择轻柔配乐,不能只给目录或要求逐张配文。