大数跨境

用 CODEX + Node.js 批量生成 TikTok 图文完整教程

用 CODEX + Node.js 批量生成 TikTok 图文完整教程 aron厚玉
2026-05-06
45
导读:灵感来自于这个: 就全部是图文的账号,流量特别好。前置问题:为什么是图文?1.因为成本低,1段视频需要AI生成,排队很久。

图文内容在TikTok平台表现突出,主要得益于低成本和高效率。与视频相比,图文可快速批量生成,减少网络资源消耗,从而实现更优的矩阵效果。

前置问题

图文内容优势:

  1. 制作成本低:视频需AI生成且排队等待,图文可批量快速创建;
  2. 网络资源消耗少,适合规模化矩阵运营。

本案例以奶油风为主攻女性市场,您可根据需求替换其他风格内容,核心方法保持一致。

第一步:准备工作

  1. 安装Node.js(必须):https://nodejs.org
  2. 终端输入node -v验证安装;
  3. 准备ChatGPT Plus(Codex 5.4版本即可)。

第二步:提取Hook核心内容

  1. 收集6-10张奶油极简风格爆款TikTok幻灯片样本;
  2. 使用以下Prompt让ChatGPT分析生成Hook:
你是一个TikTok幻灯片爆款专家。
我上传了多张图,这是一个完整的TikTok幻灯片帖。
请严格按以下格式输出:
1. 整体风格总结
2. 把每一条内容拆解成Hook+为什么有效
3. 生成12个高质量变体Hook(适合情感/成长赛道,10-14字)
4. 给出12个Pinterest搜索关键词
  1. 将生成的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文件夹。

第四步:安装依赖和字体

  1. 安装canvas:
    npm install canvas
  2. 安装Impact字体(TikTok最佳选择):
    • macOS:brew install --cask font-impact
    • Windows:搜索"Impact font download"安装,重启终端。

第五步:生成幻灯片

  1. 创建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();
  1. 终端执行:
    node generate-final.js

第六步:输出与应用

  • 生成的图片存于output_final文件夹;
  • 直接上传至TikTok发布(建议日更3-5条)。

文件结构参考:

项目文件夹/
├── pin-1/         ← Pinterest图片
├── pin-2/         ← Pinterest图片
├── hooks.txt      ← Hook列表
├── generate-final.js ← 生成脚本
└── output_final/  ← TikTok幻灯片输出
【声明】内容源于网络
0
0
aron厚玉
各类跨境出海行业相关资讯
内容 240
粉丝 1
aron厚玉 各类跨境出海行业相关资讯
总阅读19.3k
粉丝1
内容240