From 6069b301308dd1100cec71cba7cd306cde7c92cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E6=B5=A9?= Date: Thu, 2 Jul 2026 00:27:40 +0800 Subject: [PATCH] docs: update README for Live Photo support --- .gitignore | 1 + README.en.md | 46 +++++++++++++++++++++++++++++++++------------- README.md | 29 +++++++++++++++++++++++------ 3 files changed, 57 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 9fc9db3..4c537ef 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ outputs/ # Node + macOS node_modules/ +py-libs/ .DS_Store *.log npm-debug.log* diff --git a/README.en.md b/README.en.md index 1134620..c608fa2 100644 --- a/README.en.md +++ b/README.en.md @@ -4,12 +4,13 @@ ![License](https://img.shields.io/github/license/op7418/guizang-social-card-skill?style=flat-square) ![Skill](https://img.shields.io/badge/Skill-Agent-111111?style=flat-square) ![Social Cards](https://img.shields.io/badge/Social-Cards-FF4D6D?style=flat-square) +![Live Photo](https://img.shields.io/badge/Live%20Photo-Motion%20Cards-002FA7?style=flat-square) ![Claude Code](https://img.shields.io/badge/Claude%20Code-Supported-6B5B95?style=flat-square) ![Codex](https://img.shields.io/badge/Codex-Supported-222222?style=flat-square) [中文 README](./README.md) -An agent skill for Claude Code, Codex, and similar coding-agent environments. It generates **Xiaohongshu / Rednote carousel images** and **WeChat 21:9 + 1:1 cover pairs** from articles, copy, screenshots, product notes, subtitles, or photos. +An agent skill for Claude Code, Codex, and similar coding-agent environments. It generates **Xiaohongshu / Rednote carousel images**, **Live Photo motion cards**, and **WeChat 21:9 + 1:1 cover pairs** from articles, copy, screenshots, product notes, subtitles, photos, or user-supplied videos. Two visual systems share one workflow: @@ -51,17 +52,20 @@ Make me a 3:4 Xiaohongshu set from this product review, with editorial-style tit Turn this article into a WeChat cover pair: 21:9 hero + 1:1 share card, visually consistent. I have 3 camping photos — make me an image-led Xiaohongshu carousel. Turn this game guide copy into a Xiaohongshu set; pull some game art from Wallhaven. +I have a coffee video — make it a 5-second Xiaohongshu Live Photo card with text in a quiet zone. +Turn these three game clips into a triple Live Photo collage with Swiss-style guide copy. ``` ## What you get - 🖋 **Two visual systems**: Editorial for atmosphere and narrative, Swiss for facts and structure, sharing one workflow - 📐 **3 canvas sizes**: `.poster.xhs` 1080×1440 (Xiaohongshu 3:4), `.poster.wide` 2100×900 (WeChat 21:9), `.poster.square` 1080×1080 (WeChat 1:1) +- 🎬 **Live Photo motion cards**: single video, two-grid, three-grid, four-grid, triple collage, and low-cost long-video diagnosis; `5s` for Xiaohongshu, `3s` for WeChat Official Account articles - 🧩 **28 layout skeletons**: 16 Editorial (`M01-M16`, including Image-Led Cover, Pipeline, Before/After) + 12 Swiss (`S01-S12`, including KPI Tower, H-Bar Chart, Matrix + Hero) - 🎨 **10 theme presets**: 6 Editorial (Ink Classic, Indigo Porcelain, Forest Ink, Kraft Paper, Dune, **Midnight Ink** dark) + 4 Swiss anchor colors (IKB Klein Blue, Lemon, Lemon Green, Safety Orange) - 🖼 **Image sourcing workflow**: user images first; otherwise waterfall through Unsplash → Pexels → Flickr CC → Wallhaven → direct search, downloaded locally with auto-generated `SOURCES.md` - 🌫 **WebGL ink-flow background**: editorial hero pages can ship a live ink animation; can be disabled for low-power devices or screenshot mode -- 🪧 **Image overlay + face safety**: full-bleed images must carry a mask; text drop zones must avoid the subject. Hard rules in `references/image-overlay.md` +- 🪧 **Text-on-image + subject safety**: full-bleed images require quiet-zone and subject mapping first; add only localized tint when needed, not a default full-canvas mask - 🧰 **Screenshot beautification assets**: 9 real-texture WebP backgrounds (5 Editorial / 4 Swiss), paired with `.frame-shot` / `.device-browser` / `.device-phone` utilities - 🗺 **Map component**: MapLibre + OSM real tiles, multi-pin + connectors, made for travel guides - ✅ **Validator**: `validate-social-deck.mjs` auto-detects overflow, type cap violations, 4-band density gaps, and footer collisions @@ -69,9 +73,9 @@ Turn this game guide copy into a Xiaohongshu set; pull some game art from Wallha ## Fits / Doesn't fit -**✅ Fits**: Xiaohongshu carousels / WeChat cover pairs / Moments covers / Channels covers / article visuals / tutorial pages / data recaps / travel guides / product reviews / screenshot explainers +**✅ Fits**: Xiaohongshu carousels / Live Photo motion cards / WeChat cover pairs / Moments covers / Channels covers / article visuals / tutorial pages / data recaps / travel guides / product reviews / screenshot explainers -**❌ Doesn't fit**: Horizontal swipe decks (use [guizang-ppt-skill](https://github.com/op7418/guizang-ppt-skill)) / long-form video generation / pure photo retouching / plain-text editing without layout +**❌ Doesn't fit**: Horizontal swipe decks (use [guizang-ppt-skill](https://github.com/op7418/guizang-ppt-skill)) / long-form video editing / pure photo retouching / plain-text editing without layout ## 11 Xiaohongshu categories @@ -99,6 +103,7 @@ Tiered by "circle of competence" — see [`references/category-cookbook.md`](./r | WeChat cover pair | Render the same content twice: `.poster.wide` 21:9 + `.poster.square` 1:1, visually consistent | | Screenshot tutorial / tool walkthrough | `.frame-shot` + `.device-browser`, prefer Swiss grid base | | Game guide / film recap | Editorial + Midnight Ink, pull game art from Wallhaven for full-bleed hero | +| User video → Live Photo | Judge the `3s/5s` information budget first, then choose single video / puzzle / triple collage / long-video diagnosis | | Data recap / year in review | Swiss + Lemon or Safety Orange, matrix + ledger combo | ## Why single-file HTML to PNG @@ -108,6 +113,7 @@ Tiered by "circle of competence" — see [`references/category-cookbook.md`](./r - **Open image sourcing**: hook into Unsplash / Pexels / Wallhaven / Mapbox / OSM / any web resource - **Verifiable quality**: `validate-social-deck.mjs` runs Playwright DOM measurement, not guesswork - **Simple delivery**: `output/*.png` ships directly — no deploys, no export tools +- **Practical motion-card delivery**: the Live Photo branch exports `JPG + MOV + .pvt`, with Xiaohongshu / WeChat duration limits and mobile publishing paths documented ## Platform support @@ -153,6 +159,8 @@ Once installed, Claude Code auto-detects the skill. Trigger phrases: - "Generate social cards / magazine-style social cards" - "Turn this article into a tutorial carousel" - "Make a Swiss-style Xiaohongshu review / IKB-style cards" +- "Turn this video into a Xiaohongshu Live Photo / triple Live Photo collage" +- "Make a 3-second Live Photo for a WeChat Official Account article" ## Workflow @@ -166,6 +174,8 @@ The skill is a structured workflow. The agent walks through 7 steps: 6. **Deliver & Review** — show PNGs first, ask "look at them yourself, or want me to run the validator?" — does not auto-validate 7. **Iterate** — apply user feedback, tweak inline styles or swap layouts / images, re-render +Live Photo requests branch inside Step 5: judge the `3s/5s` information budget, inspect the first frame or a sparse contact sheet for crop safety, then export `JPG + MOV + .pvt`. Delivery notes include platform limits and publishing paths: `5s` for Xiaohongshu, `3s` for WeChat Official Account articles, usually transferred to iPhone and published from the matching mobile app. + Full spec in [`SKILL.md`](./SKILL.md). Deep details in the matching `references/*.md`. ## Validator @@ -174,14 +184,17 @@ Full spec in [`SKILL.md`](./SKILL.md). Deep details in the matching `references/ node validate-social-deck.mjs path/to/task-dir ``` -6 rules, based on Playwright real-render measurement, not static scanning: +9 rules, based on Playwright real-render measurement, not static scanning: -- **R1** Overflow — any section overflowing `.poster` fails immediately -- **R2** Type Caps — `.h-xl` / `.h-display` size + weight combinations exceeding seed definitions -- **R3** Footer Collision — content pressing into the bottom footer / page-number -- **R4** 4-Band Density — 1440-tall canvas split into 4 horizontal bands; each must hold content or have a stated reason for whitespace -- **R5** Frame Overflow — `.frame-img` / `.frame-shot` children overflowing the frame -- **R6** Swiss Identity — Swiss templates with inline `font-weight >= 700` warn (violates "bigger means thinner") +- **R1** Overflow — any section overflowing `.poster` fails immediately and reports a pixel-based fix tier +- **R2** Footer Collision — content pressing into the bottom footer / page-number +- **R3** Swiss Bold Display — Swiss large titles violating "bigger means thinner" +- **R4** Min Readable Font — body, captions, labels, and metadata below mobile-readable floors +- **R5** 4-Band Density — 1440-tall canvas split into 4 horizontal bands; each must hold content or have a stated whitespace reason +- **R6** H-XL Line Cap — `.h-xl` / `.h-display` / `.h-statement` line counts exceeding board budgets +- **R7** Figure Margin Drift — default browser `
` margins causing layout drift +- **R8** Visual Bounds — true visible top/bottom bounds, visual overflow, and bottom whitespace +- **R9** Title Gap — display title too close to the next content block `SKILL.md` Step 7 explicitly states **the validator does not auto-run** — wait for the user to look at the images first, saving tens of seconds per round. @@ -221,6 +234,7 @@ guizang-social-card-skill/ ├── HANDOFF.md ← Handoff doc: facts + version history ├── PRODUCT.md ← Product doc: thinking + decisions + roadmap ├── validate-social-deck.mjs ← Playwright layout validator +├── scripts/ ← Live Photo packaging / contact sheet / doc-test scripts ├── assets/ │ ├── template-editorial-card.html ← Editorial seed (6 themes / 3 canvases) │ ├── template-swiss-card.html ← Swiss seed (4 accents / 3 canvases) @@ -238,11 +252,12 @@ guizang-social-card-skill/ ├── portrait-fill.md ← Whitespace strategy for the 3:4 board ├── content-planning.md ← Hooks / page splits / copy compression ├── category-cookbook.md ← 11 Xiaohongshu category routing table - ├── image-overlay.md ← Full-bleed image mask + face safety rules + ├── image-overlay.md ← Text-on-image + subject safety rules ├── screenshot-treatment.md ← `.frame-shot` utilities + screenshot beautification ├── map-component.md ← `.map-block` MapLibre map ├── title-shortener.md ← Short-title strategy for the 1:1 cover ├── production-workflow.md ← Playwright render pipeline + ├── live-photo-production.md ← Live Photo production / puzzle / long-video / publishing rules └── qa-checklist.md ← Quality checklist ``` @@ -252,11 +267,12 @@ guizang-social-card-skill/ 2. **Structure over decoration** — type / contrast / grid carries the hierarchy, not shadows or cards 3. **Layouts over freedom** — pick first, adapt later; do not invent pages outside the 28 skeletons 4. **User images first** — at intake, present A/B/C once; do not re-pitch shooting their own -5. **Mask + avoid** — full-bleed images always carry a mask; text drop zones must clear the subject (faces / products / text-dense regions) +5. **Select and avoid first** — full-bleed images need a quiet zone; text drop zones must clear the subject (faces / products / text-dense regions); add localized tint only when needed 6. **Bigger means thinner** — Swiss `.h-xl` size goes up → weight must come down. Editorial follows the same rule 7. **No auto-validation** — let the user look first, then ask before validating; saves tens of seconds per round 8. **A skill is a product, not a prompt** — has PRODUCT.md, version numbers, CHANGELOG, capability boundaries 9. **Local tests stay out of git** — all demos / smoke tests live under `local-tests/`, gitignored +10. **Treat video as a card first** — a Live Photo first frame must work as a good social card; visible copy should describe the real scene, not production terminology ## Visual references @@ -272,6 +288,7 @@ guizang-social-card-skill/ - More Swiss data layouts (additional chart skeletons) - Post-image-generation: actively ask whether to do local fixes / regenerate the whole image - More category-specific recommended layout packs (currently 7 of 11 are end-to-end strong) +- Expand the Live Photo example library: single video, puzzles, game guides, lifestyle, product updates - Marketplace-ready WorkBuddy version ## FAQ @@ -285,6 +302,9 @@ Same reason as the PPT skill — the skill's core value is stable output. Free c **Can I use other models for image generation?** Yes. Image generation itself is out of scope. SKILL.md Step 4 spells out the sourcing protocol: user images → AI-generated → web sources. AI generation depends on whichever model your agent connects to. +**Does it support Live Photo?** +Yes. Plan for `5s` on Xiaohongshu and `3s` inside WeChat Official Account articles. It supports single video, two-grid, three-grid, four-grid, triple collage, and sparse long-video diagnosis. Publishing usually requires the mobile path; desktop upload flows generally cannot recognize `.pvt` as a publishable Live Photo. + **Codex output drifts off-spec — what do I do?** Since v0.12 the rule "seed templates and components.md table stay in sync" is a hard constraint. If a violation slips through, it's almost always seed-template defaults diverging from `references/style-system.md` — open an issue. diff --git a/README.md b/README.md index 6308b4f..d86fe7d 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,13 @@ ![License](https://img.shields.io/github/license/op7418/guizang-social-card-skill?style=flat-square) ![Skill](https://img.shields.io/badge/Skill-Agent-111111?style=flat-square) ![Social Cards](https://img.shields.io/badge/Social-Cards-FF4D6D?style=flat-square) +![Live Photo](https://img.shields.io/badge/Live%20Photo-Motion%20Cards-002FA7?style=flat-square) ![Claude Code](https://img.shields.io/badge/Claude%20Code-Supported-6B5B95?style=flat-square) ![Codex](https://img.shields.io/badge/Codex-Supported-222222?style=flat-square) [English README](./README.en.md) -一个适配 Claude Code / Codex 等 Agent 环境的图文卡片技能,用于从文章、文案、截图、产品笔记、字幕或照片生成**小红书 / Rednote 图文组图**与**公众号 21:9 + 1:1 封面对**。 +一个适配 Claude Code / Codex 等 Agent 环境的图文卡片技能,用于从文章、文案、截图、产品笔记、字幕、照片或用户视频生成**小红书 / Rednote 图文组图**、**Live Photo 动态卡**与**公众号 21:9 + 1:1 封面对**。 内置两套视觉系统,共用一份图文工作流: @@ -51,17 +52,20 @@ npx skills add https://github.com/op7418/guizang-social-card-skill --skill guiza 帮我把这篇文章做成公众号封面对:21:9 头图 + 1:1 分享卡,视觉保持一致。 我有 3 张露营照片,帮我做一套全图风格的小红书图文。 把这段游戏攻略文案做成一套小红书图文,需要从 wallhaven 拿点游戏原画。 +我有一段咖啡视频,帮我做成小红书 5 秒 Live Photo 卡片,文字压在安静区域。 +把这三个游戏片段做成三连 Live Photo 拼图,用 Swiss 风介绍攻略要点。 ``` ## 效果 - 🖋 **双视觉系统**:电子杂志风做氛围与叙事,瑞士风做事实与结构,两套共用同一份工作流 - 📐 **3 个画板尺寸**:`.poster.xhs` 1080×1440(小红书 3:4)、`.poster.wide` 2100×900(公众号 21:9)、`.poster.square` 1080×1080(公众号 1:1) +- 🎬 **Live Photo 动态卡**:支持单视频、二宫格、三宫格、四宫格、三连拼图、长视频低成本诊断;小红书按 `5s`,微信公众号文章内按 `3s` - 🧩 **28 个版式骨架**:Editorial 16 个(`M01-M16`,含 Image-Led Cover、Pipeline、Before/After 等)+ Swiss 12 个(`S01-S12`,含 KPI Tower、H-Bar Chart、Matrix + Hero 等) - 🎨 **10 套主题预设**:Editorial 6 套(墨水经典、靛蓝瓷、森林墨、牛皮纸、沙丘、**Midnight Ink** 暗色)+ Swiss 4 套锚点色(IKB Klein Blue、柠檬黄、柠檬绿、安全橙) - 🖼 **图源工作流**:用户图优先;无图时按 Unsplash → Pexels → Flickr CC → Wallhaven → 直接搜索的优先级取图,落本地 + 自动写 `SOURCES.md` - 🌫 **WebGL 墨流背景**:杂志风 hero 页可挂动态墨流;低性能或截图时可禁用 -- 🪧 **图片底图遮罩 + 人脸避让**:满铺图必须叠遮罩,文字落点要避开主体,`references/image-overlay.md` 给硬规则 +- 🪧 **文字压图 + 主体避让**:满铺图先做 quiet-zone 与主体映射,文字避开人脸、产品和关键动作;需要时只加局部 tint,不默认全图遮罩 - 🧰 **截图美化资产**:9 张 WebP 真实材质背景(Editorial 5 / Swiss 4),配套 `.frame-shot` / `.device-browser` / `.device-phone` 工具类 - 🗺 **地图组件**:MapLibre + OSM 真实瓦片,支持多 pin + 连线,适合旅行攻略 - ✅ **校验脚本**:`validate-social-deck.mjs` 自动检测溢出、字号上限、4 横带密度、footer 碰撞 @@ -69,9 +73,9 @@ npx skills add https://github.com/op7418/guizang-social-card-skill --skill guiza ## 适合 / 不适合 -**✅ 合适**:小红书图文组图 / 公众号封面对 / 微信朋友圈封面 / 视频号封面 / 文章配图 / 教程拆页 / 数据回顾 / 旅行攻略 / 产品测评 / 截图说明 +**✅ 合适**:小红书图文组图 / Live Photo 动态卡 / 公众号封面对 / 微信朋友圈封面 / 视频号封面 / 文章配图 / 教程拆页 / 数据回顾 / 旅行攻略 / 产品测评 / 截图说明 -**❌ 不合适**:横向翻页 PPT(用 [guizang-ppt-skill](https://github.com/op7418/guizang-ppt-skill))/ 长视频生成 / 纯图片修图 / 无版式诉求的纯文字编辑 +**❌ 不合适**:横向翻页 PPT(用 [guizang-ppt-skill](https://github.com/op7418/guizang-ppt-skill))/ 长视频正片剪辑 / 纯图片修图 / 无版式诉求的纯文字编辑 ## 11 个小红书品类适配 @@ -99,6 +103,7 @@ npx skills add https://github.com/op7418/guizang-social-card-skill --skill guiza | 公众号封面对 | 同一份内容渲两块:`.poster.wide` 21:9 + `.poster.square` 1:1,视觉一致 | | 截图教程 / 工具说明 | `.frame-shot` + `.device-browser` 包壳,优先 Swiss 网格底 | | 游戏攻略 / 影视回顾 | Editorial + Midnight Ink,从 Wallhaven 取游戏原画做满铺 | +| 用户视频 → Live Photo | 先判断 `3s/5s` 信息量,再选单视频 / 拼图 / 三连 / 长视频诊断 | | 数据回顾 / 年终总结 | Swiss + Lemon 或 Safety Orange,矩阵 + ledger 组合 | ## 为什么是单文件 HTML 渲 PNG @@ -108,6 +113,7 @@ npx skills add https://github.com/op7418/guizang-social-card-skill --skill guiza - **图源开放**:可以接 Unsplash / Pexels / Wallhaven / Mapbox / OSM 等任意网络资源 - **质量可校验**:`validate-social-deck.mjs` 用 Playwright 跑真实 DOM 测量,不是猜 - **交付简单**:`output/*.png` 直接发,不需要部署、不需要导出工具 +- **动态卡可落地**:Live Photo 分支输出 `JPG + MOV + .pvt`,并记录小红书 / 微信的时长限制和手机端发布路径 ## 平台支持 @@ -153,6 +159,8 @@ git clone https://github.com/op7418/guizang-social-card-skill.git ~/.claude/skil - "生成一套 social cards / 杂志风社交卡片" - "把这篇文章做成轮播图文 / 教程拆页" - "做一套瑞士风的小红书测评 / IKB 风格图文" +- "把这段视频做成小红书 Live Photo / 三连实况拼图" +- "做一个微信公众号文章内 3 秒 Live Photo" ## 使用流程 @@ -166,6 +174,8 @@ Skill 本身是结构化工作流,Agent 会按 7 步走: 6. **Deliver & Review** — 先把 PNG 给用户看,询问"你自己看还是我先帮你跑 validator",默认不自动核查 7. **Iterate** — 用户提反馈,改 inline 样式或 swap 版式 / 替图,重渲 +Live Photo 请求会在第 5 步进入动态分支:先判断 `3s/5s` 内能承载的信息量,抽首帧或稀疏 contact sheet 检查裁切,再输出 `JPG + MOV + .pvt`。交付时会提醒平台限制和发布路径:小红书 `5s`,微信公众号文章内 `3s`,通常需要把 `.pvt` 传到 iPhone 后从对应 App 发布。 + 详细说明见 [`SKILL.md`](./SKILL.md)。深度细节去看对应 `references/*.md`。 ## 校验脚本 @@ -223,6 +233,7 @@ guizang-social-card-skill/ ├── HANDOFF.md ← 交接文档:事实 + 版本历史 ├── PRODUCT.md ← 产品文档:思考 + 决策 + roadmap ├── validate-social-deck.mjs ← Playwright 版式校验脚本 +├── scripts/ ← Live Photo 打包 / 抽帧 / 文档测试脚本 ├── assets/ │ ├── template-editorial-card.html ← Editorial 种子(6 主题 / 3 画板) │ ├── template-swiss-card.html ← Swiss 种子(4 accent / 3 画板) @@ -240,11 +251,12 @@ guizang-social-card-skill/ ├── portrait-fill.md ← 3:4 板的留白对策 ├── content-planning.md ← 钩子 / 拆页 / 文案压缩 ├── category-cookbook.md ← 11 个小红书品类路由表 - ├── image-overlay.md ← 满铺图遮罩 + 人脸避让规则 + ├── image-overlay.md ← 文字压图 + 主体避让规则 ├── screenshot-treatment.md ← `.frame-shot` 工具类 + 截图美化 ├── map-component.md ← `.map-block` MapLibre 地图 ├── title-shortener.md ← 1:1 封面的短标题策略 ├── production-workflow.md ← Playwright 渲染管线 + ├── live-photo-production.md ← Live Photo 生产 / 拼图 / 长视频 / 发布规范 └── qa-checklist.md ← 质量检查清单 ``` @@ -254,11 +266,12 @@ guizang-social-card-skill/ 2. **结构优于装饰** — 字号 + 字体对比 + 网格留白撑起信息层级,不靠阴影和卡片 3. **版式优于自由** — 28 个版式骨架先选后改,不要发明不存在的页面 4. **图片优先用户的** — Intake 时一次性给 A/B/C,不二次劝导用户拍图 -5. **遮罩与避让** — 满铺图必加遮罩,文字落点必须避开主体(人脸 / 产品 / 文字密集区) +5. **选图与避让优先** — 满铺图先确认 quiet zone,文字避开主体(人脸 / 产品 / 文字密集区),必要时才加局部 tint 6. **越大越细** — Swiss `.h-xl` 字号上去 → 字重必须下来。Editorial 同此原则 7. **默认不自动核查** — 把"先看图、再决定要不要 validate"做成工作流,省每轮几十秒 8. **Skill 是产品不是 Prompt** — 有 PRODUCT.md、有版本号、有 CHANGELOG、有能力边界 9. **本地测试不进 git** — 所有 demo / 冒烟测试归 `local-tests/`,被 gitignore +10. **视频先当卡片** — Live Photo 第一帧必须先像一张好社交卡,可见文案描述真实场景,不要把制作术语写上画面 ## 视觉参考 @@ -274,6 +287,7 @@ guizang-social-card-skill/ - 扩展 Swiss 数据类版式(更多图表骨架) - AI 出图后处理:渲染后主动询问是否做局部修复 / 整张重出 - 增加更多小红书品类的官方推荐版式包(目前 11 个里 7 个端到端可用) +- 扩充 Live Photo 示例库:单视频、拼图、游戏攻略、生活方式、产品更新 - 整理 WorkBuddy 等平台上架版本 ## FAQ @@ -287,6 +301,9 @@ guizang-social-card-skill/ **能用其他模型生图吗?** 可以。生图本身不在 Skill 范围内,但 SKILL.md Step 4 写清了取图协议:用户图 → AI 生图 → 网络取图。AI 生图能力依赖你当前 Agent 接的模型。 +**支持 Live Photo 吗?** +支持。小红书按 `5s` 规划,微信公众号文章内按 `3s` 规划。可以做单视频、二宫格、三宫格、四宫格、三连拼图,也能对长视频先做稀疏抽帧诊断。发布通常需要手机端路径,桌面端一般不能直接识别 `.pvt` 为可发布 Live Photo。 + **Codex 写出来不合规怎么办?** v0.12 起把"种子模板与 components.md 表格保持一致"做成了硬规则。如果还是出现违规,大概率是 seed template 默认值与 `references/style-system.md` 不一致——开 Issue 给我们。