绘本制作技能
任务目标
- - 本技能用于:从零创作完整的绘本作品
- 能力包含:主题策划、故事创作、角色设计、分镜规划、画面生成、最终打包
- 触发条件:用户请求制作绘本、创作儿童故事、设计教育绘本
前置准备
依赖说明
本技能使用智能体原生能力,无需安装额外依赖包。
非标准文件/文件夹准备
CODEBLOCK0
操作步骤
1. 需求收集与分析
- 绘本主题(如:友谊、勇气、环保等)
- 目标受众(如:3-6岁、6-8岁、青少年等)
- 风格偏好(如:卡通、写实、水墨、水彩等)
- 预期页数(建议12-24页)
- 特殊要求(如:教育目标、寓意等)
2. 故事创作
- 核心冲突与主题
- 完整的情节发展(起承转合)
- 清晰的角色动机
- 适合目标受众的语言风格
3. 角色设定
- 角色名称与定位
- 外貌特征(详细描述,确保画面生成的一致性)
- 性格特点
- 在故事中的成长弧光
4. 分镜设计
- 画面构图(视角、景别、空间关系)
- 图文配比(文字位置、画面重点)
- 情绪基调(色彩倾向、氛围)
- 逐页记录画面描述,用于后续图像生成
5. 逐页生成
1.
生成图像:根据分镜描述生成画面,确保角色一致性、风格统一
2.
调整优化:检查画面是否匹配情节需求,必要时重新生成
3.
保存文件:将图片保存为
page-01.png,
page-02.png 等格式,存入
./picture-book-output/<book-name>/pages/
4.
记录元数据:为每个页面记录对应的故事文字
6. 创建 metadata.json
- - 在
./picture-book-output/<book-name>/ 目录下创建 metadata.json 文件 - 必须使用以下标准格式:
CODEBLOCK1
格式要求:
- -
title:绘本标题(必需) - INLINECODE6 :作者名称(必需)
- INLINECODE7 :绘本描述(可选)
- INLINECODE8 :页面数组(必需)
-
image:图片URL(可选,如果不提供则使用本地 pages 目录中的文件;支持 http/https 开头的URL)
-
url 或
file:图片URL的替代字段名(与
image 等效)
-
text_cn:中文内容(必需,只取第一段显示)
-
text_en:英文内容(可选)
- 页数顺序必须与图片顺序一致(pages[0] 对应第一页)
图片来源优先级:
- 1. 如果本地
pages/ 目录存在图片文件 → 使用本地文件 - 如果
pages/ 目录为空 → 使用 metadata.json 中 pages[i].image 字段的URL - 如果都没有 → 报错
7. 打包输出
- - 确认所有页面和 metadata.json 已就绪后,调用打包脚本:
CODEBLOCK2
参数说明:
- -
--input:绘本目录路径(支持相对路径,如 ./picture-book-output/my-book 或 picture-book-output/my-book) - INLINECODE22 :输出HTML文件路径(可选,默认
book.html) - INLINECODE24 :图片下载失败时的最大重试次数(可选,默认3次)
图片处理机制:
- - 支持本地图片文件和URL图片
- URL图片下载失败会自动重试(默认3次,每次间隔递增:2s、4s、6s)
- 本地文件不存在或读取失败会立即报错
- 所有图片重试失败后会生成占位图,继续完成绘本打包
- 打包完成后会显示失败的图片列表和错误信息
目录结构要求:
CODEBLOCK3
常见错误排查:
1.
metadata.json 是否在正确的目录下
2. 路径是否正确(支持
./ 开头,也支持无
./ 的相对路径)
3. 文件名是否拼写正确
- - 如果提示"找不到页面目录",请检查
pages 文件夹是否存在 - 如果图片下载失败:
1. 检查URL是否可访问
2. 增加
--max-retries 参数提高重试次数
3. 打包完成后查看失败图片列表,手动下载并替换
- 这通常意味着URL返回的是HTML错误页面而非真正的图片
- 解决方法:直接在
metadata.json 中使用原始图片URL,让打包脚本直接从网络加载
- 避免使用需要重定向或验证的图片URL
-
book.html:可在浏览器中直接浏览的HTML绘本(包含封面、翻页动画、响应式设计)
资源索引
注意事项
- - 保持角色视觉一致性:详细记录角色特征,在画面描述中反复强调
- 控制页数规模:初次创作建议12-16页,避免故事过于冗长
- 图文协调:文字应简洁,避免喧宾夺主
- 风格统一:所有页面使用相同的艺术风格和调色方案
- 受众适配:语言复杂度和画面细节符合目标年龄段认知水平
使用示例
示例1:教育绘本
1. 确定目标:4-6岁儿童,主题"爱护森林",16页
2. 创作"小熊守护森林"的故事
3. 设计主角小熊的形象(棕色毛发、蓝色围巾)
4. 逐页生成画面,采用温暖明亮的卡通风格
5. 打包生成HTML绘本
示例2:寓言故事
1. 确定目标:6-8岁儿童,主题"诚实",20页
2. 改编"狼来了"的寓言故事
3. 采用略带神秘的水彩风格
4. 强调情节转折时的画面对比
5. 打包输出
示例3:情感教育
1. 确定目标:3-5岁儿童,主题"认识情绪",12页
2. 设计简单的情境,展示不同情绪
3. 使用简洁的线条和柔和的色块
4. 每页聚焦一种情绪表达
5. 生成适合低幼儿童的绘本
绘本制作技能
任务目标
- - 本技能用于:从零创作完整的绘本作品
- 能力包含:主题策划、故事创作、角色设计、分镜规划、画面生成、最终打包
- 触发条件:用户请求制作绘本、创作儿童故事、设计教育绘本
前置准备
依赖说明
本技能使用智能体原生能力,无需安装额外依赖包。
非标准文件/文件夹准备
bash
创建绘本输出目录
mkdir -p ./picture-book-output
操作步骤
1. 需求收集与分析
- 绘本主题(如:友谊、勇气、环保等)
- 目标受众(如:3-6岁、6-8岁、青少年等)
- 风格偏好(如:卡通、写实、水墨、水彩等)
- 预期页数(建议12-24页)
- 特殊要求(如:教育目标、寓意等)
2. 故事创作
- 核心冲突与主题
- 完整的情节发展(起承转合)
- 清晰的角色动机
- 适合目标受众的语言风格
3. 角色设定
- 角色名称与定位
- 外貌特征(详细描述,确保画面生成的一致性)
- 性格特点
- 在故事中的成长弧光
4. 分镜设计
- 画面构图(视角、景别、空间关系)
- 图文配比(文字位置、画面重点)
- 情绪基调(色彩倾向、氛围)
- 逐页记录画面描述,用于后续图像生成
5. 逐页生成
1.
生成图像:根据分镜描述生成画面,确保角色一致性、风格统一
2.
调整优化:检查画面是否匹配情节需求,必要时重新生成
3.
保存文件:将图片保存为 page-01.png, page-02.png 等格式,存入 ./picture-book-output/
/pages/
4. 记录元数据:为每个页面记录对应的故事文字
6. 创建 metadata.json
- - 在 ./picture-book-output// 目录下创建 metadata.json 文件
- 必须使用以下标准格式:
json
{
title: 绘本标题,
author: 作者名称,
description: 绘本描述,
pages: [
{
image: https://example.com/page-01.png,
text_cn: 第一页中文内容,
text_en: First page English content
},
{
image: https://example.com/page-02.png,
text_cn: 第二页中文内容,
text_en: Second page English content
}
]
}
格式要求:
- - title:绘本标题(必需)
- author:作者名称(必需)
- description:绘本描述(可选)
- pages:页面数组(必需)
- image:图片URL(可选,如果不提供则使用本地 pages 目录中的文件;支持 http/https 开头的URL)
- url 或 file:图片URL的替代字段名(与 image 等效)
- text_cn:中文内容(必需,只取第一段显示)
- text_en:英文内容(可选)
- 页数顺序必须与图片顺序一致(pages[0] 对应第一页)
图片来源优先级:
- 1. 如果本地 pages/ 目录存在图片文件 → 使用本地文件
- 如果 pages/ 目录为空 → 使用 metadata.json 中 pages[i].image 字段的URL
- 如果都没有 → 报错
7. 打包输出
- - 确认所有页面和 metadata.json 已就绪后,调用打包脚本:
bash
python /workspace/projects/picture-book-maker/scripts/pack-book.py --input ./picture-book-output/ --output ./picture-book-output//book.html
参数说明:
- - --input:绘本目录路径(支持相对路径,如 ./picture-book-output/my-book 或 picture-book-output/my-book)
- --output:输出HTML文件路径(可选,默认 book.html)
- --max-retries:图片下载失败时的最大重试次数(可选,默认3次)
图片处理机制:
- - 支持本地图片文件和URL图片
- URL图片下载失败会自动重试(默认3次,每次间隔递增:2s、4s、6s)
- 本地文件不存在或读取失败会立即报错
- 所有图片重试失败后会生成占位图,继续完成绘本打包
- 打包完成后会显示失败的图片列表和错误信息
目录结构要求:
./picture-book-output//
├── metadata.json # 元数据文件(必需)
└── pages/ # 页面图片目录(必需)
├── page-01.png
├── page-02.png
└── ...
常见错误排查:
1. metadata.json 是否在正确的目录下
2. 路径是否正确(支持 ./ 开头,也支持无 ./ 的相对路径)
3. 文件名是否拼写正确
- - 如果提示找不到页面目录,请检查 pages 文件夹是否存在
- 如果图片下载失败:
1. 检查URL是否可访问
2. 增加 --max-retries 参数提高重试次数
3. 打包完成后查看失败图片列表,手动下载并替换
- 这通常意味着URL返回的是HTML错误页面而非真正的图片
- 解决方法:直接在 metadata.json 中使用原始图片URL,让打包脚本直接从网络加载
- 避免使用需要重定向或验证的图片URL
- book.html:可在浏览器中直接浏览的HTML绘本(包含封面、翻页动画、响应式设计)
资源索引
注意事项
- - 保持角色视觉一致性:详细记录角色特征,在画面描述中反复强调
- 控制页数规模:初次创作建议12-16页,避免故事过于冗长
- 图文协调:文字应简洁,避免喧宾夺主
- 风格统一:所有页面使用相同的艺术风格和调色方案
- 受众适配:语言复杂度和画面细节符合目标年龄段认知水平
使用示例
示例1:教育绘本
1. 确定目标:4-6岁儿童,主题爱护森林,16页
2. 创作小熊守护森林的故事
3. 设计主角小熊的形象(棕色毛发、蓝色围巾)
4. 逐页生成画面,采用温暖明亮的卡通风格
5. 打包生成HTML绘本
示例2:寓言故事
1. 确定目标:6-8岁儿童,主题诚实,20页
2. 改编狼来了的寓言故事
3. 采用略带神秘的水彩风格
4. 强调情节转折时的画面对比
5. 打包输出
示例3:情感教育
1. 确定目标:3-5岁儿童,主题认识情绪,12页
2. 设计简单的情境,展示不同情绪
3. 使用简洁的线条和柔和的色块
4. 每页聚焦一种情绪表达
5. 生成适合低幼儿童的绘本