基础准备
环境
- Node.js (LTS)版本,如 16.x 安装完成。
- 包管理器 Yarn:
npm i -g yarn
- Redis:缓存服务,最好自行再准备一个
项目准备
- 创建
output
目录 - 执行命令
yarn
安装依赖项
测试环境:
node 1-seeds.js
看是否能跑通不报错。
准备工作
图片素材准备
创建 source
目录,按照类型放置图片素材。
图片素材要求:
准备素材概率
对于 5000 张生成产物,推荐至少提供 4 种类型素材进行排列组合。如果素材概率不够生成,执行步骤一代码则会死循环(不结束,需要手动终止)。
参考代码:
// 概率自行调整,总数等于 TOTAL
const RATE = {
background: [
//
3.0 * 50,
6.3 * 50,
7.0 * 50,
7.0 * 50,
7.0 * 50,
7.0 * 50,
8.0 * 50,
8.0 * 50,
8.0 * 50,
8.0 * 50,
8.0 * 50,
8.0 * 50,
8.0 * 50,
6.7 * 50
],
prop: [
//
2.5 * 50,
5.0 * 50,
5.0 * 50,
5.0 * 50,
5.5 * 50,
5.5 * 50,
5.5 * 50,
5.5 * 50,
5.4 * 50,
5.6 * 50,
6.0 * 50,
6.0 * 50,
7.5 * 50,
7.5 * 50,
7.5 * 50,
7.5 * 50,
7.5 * 50
],
character: [
0.5 * 50,
0.8 * 50,
0.8 * 50,
0.8 * 50,
0.8 * 50,
1.0 * 50,
1.0 * 50,
1.2 * 50,
1.2 * 50,
1.2 * 50,
1.5 * 50,
1.5 * 50,
1.5 * 50,
1.5 * 50,
1.5 * 50,
1.5 * 50,
1.5 * 50,
1.52 * 50,
1.52 * 50,
1.52 * 50,
1.52 * 50,
1.52 * 50,
1.52 * 50,
1.52 * 50,
1.52 * 50,
1.52 * 50,
1.52 * 50,
1.52 * 50,
1.52 * 50,
1.56 * 50,
1.0 * 50,
1.3 * 50,
1.3 * 50,
1.3 * 50,
1.5 * 50,
1.6 * 50,
1.6 * 50,
1.6 * 50,
1.6 * 50,
1.6 * 50,
1.6 * 50,
1.7 * 50,
2.0 * 50,
2.0 * 50,
2.0 * 50,
2.0 * 50,
2.0 * 50,
2.0 * 50,
2.3 * 50,
2.5 * 50,
2.5 * 50,
2.8 * 50,
2.8 * 50,
2.5 * 50,
2.5 * 50,
2.5 * 50,
2.8 * 50,
2.5 * 50,
2.5 * 50,
2.5 * 50
]
};
生成
0. 修改配置
首先需要修改 1-seeds.js
里的各类型概率和总数。
然后需要修改 generate.js
里的类型叠加顺序。
1. 生成种子
node 1-seeds.js > 概率.log
一定要确保概率合理。
2. 批量生成任务
node 2-task.js
node 3-handle.js
如果中途报错,修改对应的素材或者概率。然后清除 Redis 缓存,重新开始。
FAQ 问题解答
环境相关
对于不了解 Node.js 及 Redis 的,需要自行百度,都非常基础。
依赖项安装
Canvas 依赖:
OS | Command |
---|---|
OS X | Using Homebrew:brew install pkg-config cairo pango libpng jpeg giflib librsvg |
Ubuntu | sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev |
Fedora | sudo yum install gcc-c++ cairo-devel pango-devel libjpeg-turbo-devel giflib-devel |
Solaris | pkgin install cairo pango pkg-config xproto renderproto kbproto xextproto |
OpenBSD | doas pkg_add cairo pango png jpeg giflib |
Windows | See the wiki |
Others | See the wiki |
需要项目指导请 pm 联系。