From agentic-ai-skills
Generates multi-panel science popularization comics from articles using Baidu Xinghe API's Ernie-5.0-thinking-preview for analysis and Ernie-Image-Turbo for images. Orchestrates 3-phase workflow: parse into 4-6 panels, prompt refinement, strip synthesis. Useful for visualizing科普 narratives via comic strips.
npx claudepluginhub agenticaiplan/agenticaiskills --plugin agentic-ai-skillsThis skill uses the workspace's default tool permissions.
---
Generates educational comics from academic papers, distilling core ideas into visual stories with mentor-student dialogues and 4 art styles: classic, tech, warm, chalk.
Creates original educational comics with multiple art styles, tones, detailed panel layouts, and sequential image generation for knowledge topics like biographies or tutorials.
Transforms text content into styled PNG visuals using seven molds: long reading cards, infographs, multi-cards, sketchnotes, comics, whiteboards, big-font cards. Outputs to ~/Downloads/.
Share bugs, ideas, or general feedback.
基于百度星河社区 API 的自动化科普连环画生成工具,实现多模态解析 × 单 Panel 精修 × N×N 全局合成的三阶段闭环创作。
📖 详细 API 文档参见 references/api_reference.md
| 项目 | 要求 |
|---|---|
| API Key | 星河社区 API Key,环境变量 AISTUDIO_API_KEY |
| API 端点 | https://aistudio.baidu.com/llm/lmapi/v3/chat/completions |
| 分析模型 | ernie-5.0-thinking-preview(原生全模态大模型) |
| 生图模型 | ernie-image-turbo(图像生成 API) |
# 设置 API Key
export AISTUDIO_API_KEY="your-key"
# 验证连通性
curl -s https://aistudio.baidu.com/llm/lmapi/v3/chat/completions \n -H "Content-Type: application/json" \n -H "Authorization: Bearer $AISTUDIO_API_KEY" \n -d '{"model": "ernie-5.0-thinking-preview", "messages": [{"role": "user", "content": "ping"}], "stream": true, "max_completion_tokens": 100}'
| 文档 | 用途 |
|---|---|
| references/api_reference.md | 星河社区 API 详细参考 |
| references/article_analysis_prompts.md | 文章解析提示词模板 |
| references/ernie_image_prompt_guide.md | ERNIE-Image 提示词撰写指南 |
| references/style_guide.md | 连环画风格设计指南 |
目标: 将科普文章拆解为 4-6 个视觉场景,生成风格一致的图像 Prompt。
系统提示词模板:
你是一位科普连环画脚本编写专家。分析文章并根据内容的丰富程度和结构确定最合适的 Panel 数量(4-6个)。输出一个 JSON 对象,包含四个字段:"recommended_panels"(整数,4-6),"recommendation_reason"(一句话中文解释为什么这个 Panel 数量适合该文章),"style_seed"(简短的中文风格描述,在所有 Panel 中复用),"panels"(与推荐数量匹配的对象数组,每个对象包含 "id"、"scene" 中文场景描述、"image_prompt" 中文图像生成提示)。仅输出原始 JSON,不要使用 markdown 代码块。
image_prompt 撰写规范(详见 references/ernie_image_prompt_guide.md):
{主体特征},{动作姿态},{环境背景},{细节元素},{风格关键词},{质量标签}
示例:
一位戴眼镜的女科学家,穿着白色实验服,正激动地指着屏幕,现代实验室背景有显微镜和电脑,屏幕上显示橙红色的黑洞光环图像,扁平插画风格,清晰轮廓,科学配色,高质量,连环画
| Panel数 | 适用场景 |
|---|---|
| 4 | 内容简洁,结构清晰,有明确的起承转合 |
| 5 | 内容适中,需要一个过渡或高潮格 |
| 6 | 内容丰富,知识点多,需要完整叙事链 |
📖 详细规范参见 references/style_guide.md
格式: {画风},{色调},{线条/质感},{氛围}
| 主题类型 | 推荐风格种子 |
|---|---|
| 天文/物理 | 扁平插画风格,深邃太空蓝配色,清晰轮廓,科学严谨氛围 |
| 生物/医学 | 可爱卡通风,柔和粉彩配色,圆润造型,温馨友好 |
| 环境/生态 | 水彩手绘风,清新自然色调,柔和笔触,生态感 |
| 科技/AI | 赛博朋克风格,霓虹光效,高科技质感,未来感 |
| 科学史 | 复古连环画风,怀旧暖色调,经典漫画风格 |
步骤:
ernie-5.0-thinking-preview 进行解析API 调用模板:
curl -s https://aistudio.baidu.com/llm/lmapi/v3/chat/completions \n -H "Content-Type: application/json" \n -H "Authorization: Bearer $AISTUDIO_API_KEY" \n -d '{
"model": "ernie-5.0-thinking-preview",
"messages": [
{
"role": "system",
"content": "你是一位科普连环画脚本编写专家。分析文章并根据内容的丰富程度和结构确定最合适的 Panel 数量(4-6个)。输出一个 JSON 对象,包含四个字段:"recommended_panels"(整数,4-6),"recommendation_reason"(一句话中文解释为什么这个 Panel 数量适合该文章),"style_seed"(简短的中文风格描述,在所有 Panel 中复用),"panels"(与推荐数量匹配的对象数组,每个对象包含 "id"、"scene" 中文场景描述、"image_prompt" 中文图像生成提示)。仅输出原始 JSON,不要使用 markdown 代码块。"
},
{
"role": "user",
"content": "【科普文章全文】"
}
],
"stream": true,
"response_format": {"type": "json_object"},
"max_completion_tokens": 65536
}'
返回结构:
{
"recommended_panels": 5,
"recommendation_reason": "文章涵盖五个层次,5格可完整呈现叙事弧线。",
"style_seed": "扁平插画风格,柔和粉彩配色,清晰轮廓,2D矢量艺术",
"panels": [
{
"id": 1,
"scene": "场景描述",
"image_prompt": "中文图像生成提示,描述画面内容、风格、构图等"
}
]
}
用户确认: 展示 recommended_panels 与 recommendation_reason,询问用户是否采用。若不同意,询问期望数量(4-6),调整 panels 数组。
目标: 为每个 Panel 生成图像,支持用户反馈迭代优化。
ernie-image-turbo 对中文 Prompt 效果最佳主体 → 动作 → 环境 → 风格 的顺序关键规则: 将 style_seed 追加到每个 image_prompt 末尾,保证风格一致。
{panel_image_prompt},{style_seed},高质量,连环画
提示词长度建议: 单 Panel 以 80-150 中文字符为宜
API 调用模板:
📖 详细 API 参数参见 references/api_reference.md
curl -s https://aistudio.baidu.com/llm/lmapi/v3/images/generations \n -H "Content-Type: application/json" \n -H "Authorization: Bearer $AISTUDIO_API_KEY" \n -d '{
"model": "ernie-image-turbo",
"prompt": "【拼接后的完整Prompt】",
"n": 1,
"response_format": "b64_json",
"size": "1024x1024",
"use_pe": true,
"num_inference_steps": 8,
"guidance_scale": 1.0
}'
返回格式: 图像以 base64 编码返回。
{
"created": 1234567890,
"data": [{
"b64_json": "iVBORw0KGgoAAAANSUhEUgA..."
}]
}
保存图像:
# 从 JSON 提取 base64 并保存
echo "iVBORw0KGgoAAAANSUhEUgA..." | base64 -d > panel_01.png
若用户不满意,将图像 base64 + 用户反馈文字传入多模态模型获取改进建议。
常见问题改进策略(详见 references/ernie_image_prompt_guide.md):
| 问题类型 | 改进策略 |
|---|---|
| 风格不一致 | 强化 style_seed 关键词,添加"保持风格统一"指令 |
| 细节缺失 | 添加具体细节描述,如"带有XX标识"、"背景显示XX" |
| 角色变形 | 添加"比例协调"、"人体结构正确"等约束 |
| 色彩偏差 | 明确色调描述,如"主色调为深蓝色" |
| 构图混乱 | 添加构图指令,如"居中构图"、"三分法构图" |
IMAGE_B64=$(base64 -i panel_01.png | tr -d '\n')
curl -s https://aistudio.baidu.com/llm/lmapi/v3/chat/completions \n -H "Content-Type: application/json" \n -H "Authorization: Bearer $AISTUDIO_API_KEY" \n -d "{
"model": "ernie-5.0-thinking-preview",
"messages": [{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "data:image/png;base64,${IMAGE_B64}"}},
{"type": "text", "text": "用户反馈:【用户反馈】\n\n分析图像与反馈之间的差距,仅返回改进后的中文图像生成提示,不需要解释,不要使用 markdown。"}
]
}],
"stream": true,
"max_completion_tokens": 65536
}"
迭代循环: 用改进后的 Prompt 重新执行 Phase 2a,直至用户满意。
目标: 将所有 Panel 合成为一张完整连环画长图。
📖 详细规范参见 references/style_guide.md
根据 Panel 数量推荐布局:
| Panel 数 | 推荐布局 | 说明 |
|---|---|---|
| 4 | 2×2 | 正方形,视觉均衡 |
| 5 | 2×3(空出右下角) | 横向阅读,留白收尾 |
| 6 | 2×3 | 标准竖向长图 |
阅读顺序: 中文连环画采用从左到右、从上到下的阅读顺序。
向用户展示推荐布局,获取确认或自定义布局。
布局合法性: 行数 × 列数 ≥ Panel数
提示词长度建议: 全局合成以 200-400 中文字符为宜。
{grid} 格连环画,共 {num_panels} 格,{style_seed},
每格之间用粗黑边框清晰分隔,按阅读顺序排列:
第1格:{panel_1_image_prompt}
第2格:{panel_2_image_prompt}
...
第N格:{panel_N_image_prompt}
若有空余格,末尾追加"剩余格子留白"。
curl -s https://aistudio.baidu.com/llm/lmapi/v3/images/generations \n -H "Content-Type: application/json" \n -H "Authorization: Bearer $AISTUDIO_API_KEY" \n -d '{
"model": "ernie-image-turbo",
"prompt": "【全局Prompt】",
"n": 1,
"response_format": "b64_json",
"size": "2048x2048",
"use_pe": true,
"num_inference_steps": 8,
"guidance_scale": 1.0
}'
若用户对大图有整体调整意见,使用多模态反馈路径重新生成。
style_seed 由 Phase 1 生成,在后续所有调用中保持原文不变:
{panel_image_prompt},{style_seed},高质量,连环画
Phase 3 全局合成时,style_seed 置于 Prompt 首部强调,防止风格漂移。
| HTTP 状态码 | 含义 | 处理策略 |
|---|---|---|
401 | API Key 无效 | 检查 AISTUDIO_API_KEY |
402 | 余额不足 | 登录星河社区控制台充值 |
429 | 请求频繁 | 指数退避重试:1s → 4s → 16s,最多3次 |
5xx | 服务端错误 | 指数退避重试3次 |
创建连环画时,按以下顺序执行:
AISTUDIO_API_KEY 已设置style_seedQ: 多张图像风格不统一?
检查每次调用是否将 style_seed 原文追加至 Prompt 末尾。
Q: 支持中文 Prompt?
ernie-image-turbo 对中文 Prompt 效果最佳。
Q: base64 在 Windows 处理?
PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes("panel_01.png"))