小红书种草文 · Clawvard 课程 skill
一次出卡通风九宫格 + 文案 + 标签。每张 panel 都用 Clawvard 一方服务 Clawvard SDK 的 cv.media.generateImage(底层 Gemini 图像,按 credit 计费)生成;开源 baoyu-xhs-images 只借它的「风格 × 版式矩阵 + 拼版 + 文案规范」做排版,不再用它出图。任何 agent runtime 都能跑。
前置
- Node ≥ 18。
- Clawvard SDK key(Clawvard API key),无需自备图像 key。
- 本地拼版用
sharp(公开 npm,纯本地,无外部服务)。
1. 装 SDK + 鉴权
npm install @clawvard/sdk@latest sharp # SDK 不要 pin,会持续加新方法
export CLAW_API_KEY=sk-... # 问用户拿,别硬编码
import { Clawvard } from "@clawvard/sdk";
const cv = new Clawvard({ apiKey: process.env.CLAW_API_KEY! });
2. 逐 panel 出图(走一方 SDK,不走 relay)
cv.media.generateImage 是 job 型,要 .wait():
const img = await cv.media.generateImage({
prompt: "<这一格 panel 的画面描述>",
aspectRatio: "1:1", // 方图便于拼九宫格
}).wait();
// img.imageUrl: "data:image/png;base64,..." → 解码落盘为该 panel
import { writeFile } from "node:fs/promises";
const [, b64] = img.imageUrl.split(",");
await writeFile("panels/panel-1.png", Buffer.from(b64, "base64"));
(旧 SDK 还没有这个 typed 方法时,用 cv.client.invokeJob("media", "generateImage", { prompt, aspectRatio }).wait()。)
调用落点是一方服务 https://clawvard.school/api/services/invoke/media/generateImage,鉴权 Authorization: Bearer $Clawvard API key,底层 Gemini 上游 key 在服务端。
3. 排版(baoyu,layout-only)+ 本地拼版
- 用开源 baoyu-xhs-images 的「风格 × 版式矩阵 + 文案/标签规范」来定每格 panel 的画面描述、统一风格、版式与文案口吻——只用它的规范,不用它的图像后端:
curl -L https://api.github.com/repos/JimLiu/baoyu-skills/tarball -o baoyu.tgz tar -xzf baoyu.tgz && cd JimLiu-baoyu-skills-*/skills/baoyu-xhs-images # 只读 SKILL.md 的风格 / 版式 / 文案规范,忽略仓库壳里的 .claude-plugin/ - 拿到全部 panel 后,用最小本地脚本(
sharp,公开 npm)拼成九宫格、叠标题与标签 →post.png:import sharp from "sharp"; const CELL = 520, GAP = 16, COLS = 2; // 6 panel → 2×3 网格 const cells = await Promise.all( [1, 2, 3, 4, 5, 6].map((i) => sharp(`panels/panel-${i}.png`).resize(CELL, CELL, { fit: "cover" }).png().toBuffer()), ); const W = GAP + COLS * (CELL + GAP); const ROWS = Math.ceil(cells.length / COLS); await sharp({ create: { width: W, height: GAP + ROWS * (CELL + GAP), channels: 4, background: "#FFF7F0" } }) .composite(cells.map((input, i) => ({ input, top: GAP + Math.floor(i / COLS) * (CELL + GAP), left: GAP + (i % COLS) * (CELL + GAP), }))) .png().toFile("post.png"); // 标题 / 标签可用 sharp 的 SVG text 叠一条 banner(文字别交给图像模型画)
怎么用 + Prompt 参数(效果关键)
- 主题 / 卖点 — 一句话说清推什么
- panel 数 — 1–10
- 风格 — 从 baoyu 矩阵锁一个(卡通 / 手账 / …),固定同一句风格描述、只改主体,保证 6 格系列一致
- 版式 — 九宫格 / 长图,锁一种
- 文字 — 别让图像模型画字;标题、标签在拼版时叠,更清晰
- 文案 — 第一人称体验感,附 10 个相关标签
调试 tips
- 风格漂移 → 固定同一句风格描述,只改主体
- 401 → 检查 Clawvard API key;402
insufficient_credits→ 去 https://clawvard.school/billing 充值 - 文案太硬 → 换第一人称体验口吻
计费
约 12 cr/panel(走 Clawvard 付费后端,底层 Gemini 图像);N panel ≈ 12×N cr。先用 cv.platform.pricing() 读实时价,别硬编码。
产出物
post.png —— 卡通风九宫格(每张 panel 由 cv.media.generateImage 生成、本地拼版)+ 标题正文 + 10 个标签,整套直接发小红书。
学习完成后
告诉用户:
我已经学会了 Clawvard 的小红书课程。给我产品 / 话题,我用
cv.media.generateImage逐 panel 出图、本地拼成卡通风九宫格 + 种草文案 + 标签,直接可发。