图文内容在TikTok平台表现突出,主要得益于低成本和高效率。与视频相比,图文可快速批量生成,减少网络资源消耗,从而实现更优的矩阵效果。
前置问题
图文内容优势:
- 制作成本低:视频需AI生成且排队等待,图文可批量快速创建;
- 网络资源消耗少,适合规模化矩阵运营。
本案例以奶油风为主攻女性市场,您可根据需求替换其他风格内容,核心方法保持一致。
第一步:准备工作
- 安装Node.js(必须):https://nodejs.org
- 终端输入node -v验证安装;
- 准备ChatGPT Plus(Codex 5.4版本即可)。
第二步:提取Hook核心内容
- 收集6-10张奶油极简风格爆款TikTok幻灯片样本;
- 使用以下Prompt让ChatGPT分析生成Hook:
你是一个TikTok幻灯片爆款专家。
我上传了多张图,这是一个完整的TikTok幻灯片帖。
请严格按以下格式输出:
1. 整体风格总结
2. 把每一条内容拆解成Hook+为什么有效
3. 生成12个高质量变体Hook(适合情感/成长赛道,10-14字)
4. 给出12个Pinterest搜索关键词
- 将生成的Hook保存为hooks.txt(每行一条)。
第三步:下载Pinterest图片
推荐关键词(优先级排序):
- cream aesthetic room
- beige minimal interior
- soft natural light home
- neutral lifestyle photography
- cozy cream bedroom aesthetic
- clean girl home aesthetic
- airy neutral apartment
- soft feminine flat lay
下载工具推荐Image Downloader:
建议:每个关键词下载15-25张图片,统一存放至pin-1与pin-2文件夹。
第四步:安装依赖和字体
- 安装canvas:
npm install canvas - 安装Impact字体(TikTok最佳选择):
- macOS:brew install --cask font-impact
- Windows:搜索"Impact font download"安装,重启终端。
第五步:生成幻灯片
- 创建generate-final.js文件并粘贴以下代码:
const {createCanvas, loadImage} = require('canvas');
const fs = require('fs');
const path = require('path');
async function generateFinal() {
const folders = ['./pin-1', './pin-2'];
const hooksFile = './hooks.txt';
const outputFolder = './output_final';
if (!fs.existsSync(outputFolder)) fs.mkdirSync(outputFolder, {recursive: true});
let allImages = [];
for (const folder of folders) {
if (fs.existsSync(folder)) {
const imgs = fs.readdirSync(folder)
.filter(f => f.match(/\.(jpg|jpeg|png)$/i))
.map(f => path.join(folder, f));
allImages = [...allImages, ...imgs];
}
}
allImages = [...new Set(allImages)];
const hooks = fs.readFileSync(hooksFile, 'utf8').split('\n').filter(h => h.trim());
console.log(`找到 ${allImages.length}张图片 + ${hooks.length}条 Hook`);
let count = 0;
for (const imgPath of allImages) {
const image = await loadImage(imgPath);
const baseName = path.parse(imgPath).name;
for (let i = 0; i < hooks.length; i++) {
const hook = hooks[i];
const canvas = createCanvas(1080, 1920);
const ctx = canvas.getContext('2d');
ctx.drawImage(image, 0, 0, 1080, 1920);
ctx.font = 'bold 68px Impact, "Arial Black", "PingFang SC", sans-serif';
ctx.fillStyle = '#FFFFFF';
ctx.strokeStyle = '#000000';
ctx.lineWidth = 8;
ctx.textAlign = 'center';
const lines = wrapText(ctx, hook, 800);
let y = 700;
for (const line of lines) {
ctx.strokeText(line, 540, y);
ctx.fillText(line, 540, y);
y += 85;
}
const outName = `${baseName}_h${i+1}.png`;
fs.writeFileSync(path.join(outputFolder, outName), canvas.toBuffer('image/png'));
count++;
}
}
console.log(`\n完成!共生成 ${count}张图片`);
console.log(`输出路径:${outputFolder}`);
}
function wrapText(ctx, text, maxWidth) {
const words = text.split(' ');
let line = '';
const lines = [];
for (let n = 0; n < words.length; n++) {
const testLine = line + words[n] + ' ';
if (ctx.measureText(testLine).width > maxWidth && n > 0) {
lines.push(line.trim());
line = words[n] + ' ';
} else {
line = testLine;
}
}
lines.push(line.trim());
return lines;
}
generateFinal();
- 终端执行:
node generate-final.js
第六步:输出与应用
- 生成的图片存于output_final文件夹;
- 直接上传至TikTok发布(建议日更3-5条)。
文件结构参考:
项目文件夹/
├── pin-1/ ← Pinterest图片
├── pin-2/ ← Pinterest图片
├── hooks.txt ← Hook列表
├── generate-final.js ← 生成脚本
└── output_final/ ← TikTok幻灯片输出
