NFT 製作生成簡單入門——批量道具藏品生成

willin發表於2022-05-05

基礎準備

環境

  • Node.js (LTS)版本,如 16.x 安裝完成。
  • 包管理器 Yarn: npm i -g yarn
  • Redis:快取服務,最好自行再準備一個

專案準備

  • 建立 output 目錄
  • 執行命令 yarn 安裝依賴項

測試環境:

node 1-seeds.js

看是否能跑通不報錯。

準備工作

圖片素材準備

建立 source 目錄,按照型別放置圖片素材。

圖片素材要求:

  • png 格式
  • 透明背景
  • 尺寸統一

    參考目錄結構:
    在這裡插入圖片描述

準備素材概率

對於 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 依賴:

OSCommand
OS XUsing Homebrew:<br/>brew install pkg-config cairo pango libpng jpeg giflib librsvg
Ubuntusudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
Fedorasudo yum install gcc-c++ cairo-devel pango-devel libjpeg-turbo-devel giflib-devel
Solarispkgin install cairo pango pkg-config xproto renderproto kbproto xextproto
OpenBSDdoas pkg_add cairo pango png jpeg giflib
WindowsSee the wiki
OthersSee the wiki

需要專案指導請 pm 聯絡。

相關文章