生成式NFT艺术品创作教程

Posted 新缸中之脑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成式NFT艺术品创作教程相关的知识,希望对你有一定的参考价值。

在这个教程中,我们将学习如何使用使用一组基础特征实现生成式NFT艺术品。使用的工具包括Python和Scrappy Squirrels提供的基础特征库。

用熟悉的语言学习 以太坊DApp开发Java | Php | Python | .Net / C# | Golang | Node.JS | Flutter / Dart

像Cryptopunks 和Bored Ape Yacht Club这样的Marquee NFT 项目 已经产生了数亿美元的收入,并让
开发者成为了百万富翁。这些项目(以及当今大多数其他成功的 NFT 项目)的共同点是它们都是PFP 项目。这意味着它们通常是 10,000 多个化身的集合,其中每个化身都是独一无二的,并且具有一组特征。

在这个教程中,我们将学习如何使用自定义稀有度生成这样的收藏。我们将使用Scrappy Squirrels团队创建的库来完成此任务。在本教程结束时,你将生成自己的自定义头像集合以及关联的元数据。

1、准备工作

我们的库是用 Python 编写的,因此需要在计算机上安装Python,此外你还需要 pip, 它将为我们安装重要的软件包。可以到此网站并下载最新版本的 Python。即使不熟悉如何编程(使用 Python 或其他方式)也可以学习本教程。

你还需要一位了解数字艺术的艺术家来创建自己的定制收藏。但是,这不是学习本教程所必需的。我们将为你提供某些测试图像。

作为本教程的一部分,我们将引导你完成创建Scrappy Squirrels NFT 的过程,这是我们已经启动的一个真实项目。本教程以及后续教程是我们路线图目标的一部分,旨在让人们更容易访问 NFT 和区块链。

松鼠已经使用超过 85 个特征生成。这里有几个示例:

2、生成式NFT图像的实现机制

我们在上面看到的松鼠是通过将 PNG 图像堆叠在一起生成的。尽管没有蓝筹 NFT 项目描述他们如何产生艺术,但我们确信这也是他们所做的。你看到的几乎每个 NFT 头像都是一组堆叠的 PNG 图像。

从右上角开始,如果你将每个特征图像按顺时针顺序堆叠,一个接一个,最终会得到位于中心的图像。这里有几点需要注意:

  • 每个特征图像(以及最终的松鼠头像)具有完全相同的尺寸。
  • 除了背景特征(这是第一个特征)之外,其他所有特征图像都有透明背景。
  • 特征图像必须堆叠以获得正确的松鼠头像(即从右上角顺时针方向)。
  • 特征图像的绘制方式使其位置相对于所有其他特征都有意义。
  • 我们可以将任何特征与同一类别的另一个特征交换(例如,将红色衬衫换成蓝色衬衫)。因此,在这种情况下,如果每个特征 类别有 10 个特征,我们理论上可以生产 1 亿只不同的松鼠。

因此,艺术家的工作是创建各种特征类别的多个图像。你可以根据需要拥有尽可能多或尽可能少的特征类别。请记住,可能的组合数量会随着特征类别的数量呈指数增长。

在Scrappy Squirrels项目中,我们创建了 8 个特征类别:

每个特征类别都有不同数量的特征图像。例如,我们有 11 种不同的衬衫可供使用:

现在轮到你了。你需要确定要使用的特征类别并为每个类别生成特征图像。确保它们满足上述条件(应具有相同的尺寸,应正确定位等)。
此外,请确保正确命名特征图像。你为图像命名的内容将出现在元数据文件中。

完成此操作后,我们现在就可以使用库自动生成我们的收藏了!如果你不是艺术家(或无法接触艺术家),请不要担心!我们
有一些示例图像可供你使用。

注意:目前该库仅能够处理 PNG 图像。我们将很快增加对其他媒体类型的支持。

3、下载库并安装所需的软件包

我们的生成式NFT艺术库在 GitHub上 免费提供。

下载库后,打开终端或命令提示符,然后运行以下命令:

pip install Pillow pandas progressbar2

运行此命令将安装我们的库所依赖的三个重要的 Python 包:

  • Pillow:一个图像处理库,可以帮助我们堆叠特征图像。
  • Pandas:一个数据分析库,可以帮助我们生成和保存图像元数据。
  • Progressbar:一个库,它会告诉我们图像生成发生时的进度。

4、添加自定义资产

在你下载的generation-art-nft存储库中,会看到有一个assets文件夹。如果有可用的自定义特征艺术品,请将此文件夹的内容替换为你的资产。在我们的例子中,assets文件夹有 8 个子文件夹,代表适当命名的类别(见上文),每个子文件夹都有该特定类别的特征图像。

如果没有自定义图稿,请保持默认资产文件夹不变。

5、配置 config.py 文件

这是生成头像集合之前的最后一步(也许也是最重要的一步)。打开config.py文件并按照以下说明进行填写。

配置文件由一个名为 CONFIG 的 Python 变量组成。CONFIG 是一个 Python 列表(由 [] 封装)。它包含按需要堆叠的顺序排列的特征类别列表。这里的顺序非常重要。这是一个示例配置。

CONFIG = [
    
        'id': 1,
        'name': 'background',
        'directory': 'Background',
        'required': True,
        'rarity_weights': None,
    ,
    
        'id': 2,
        'name': 'body',
        'directory': 'Body',
        'required': True,
        'rarity_weights': 'random'
    ,
    
        'id': 3,
        'name': 'eyes',
        'directory': 'Expressions',
        'required': True,
        'rarity_weights': None
    ,
    
        'id': 4,
        'name': 'head_gear',
        'directory': 'Head Gear',
        'required': False,
        'rarity_weights': None
    ,
    
        'id': 5,
        'name': 'clothes',
        'directory': 'Shirt',
        'required': False,
        'rarity_weights': None
    ,
    
        'id': 6,
        'name': 'held_item',
        'directory': 'Misc',
        'required': True,
        'rarity_weights': None,
    ,
    
        'id': 7,
        'name': 'hands',
        'directory': 'Hands',
        'required': True,
        'rarity_weights': None,
    ,
    
        'id': 8,
        'name': 'wristband',
        'directory': 'Wristband',
        'required': False,
        'rarity_weights': [100, 5, 5, 15, 5, 5, 15, 15, 5, 1]
    ,
]

每个特征类别都表示为一个 Python 字典(由 封装)。所需要做的就是在 CONFIG 列表中按顺序定义这些特征类别字典。

特征类别字典有 5 个它需要的键。它们是id、name、directory、required 和 rarity_weights。创建新层(或替换现有层)时,请确保已定义所有这些键。

下面是为每个键分配值的方式:

  • id:层数。例如,如果主体是需要堆叠的第二个特征类别(或层),它的 id 将为 2。请注意,层仍必须以正确的顺序定义。
  • name:特征类别的名称。这可以是你选择的任何内容。它将出现在元数据中。
  • directory:资产中包含该特定特征类别图像的文件夹的名称。
  • required:如果每个图像都需要此类别。某些特征类别(例如背景、身体和眼睛)必须出现在每个头像中,而某些其他 类别(例如头饰、腕带或衣服)可以是可选的。我们强烈建议你将第一层所需的值设置为 true。
  • rarity_weights:这个类别将决定你的特征有多普遍(或稀有)。查看下一部分以获取更多详细信息。

6、配置稀有权重

rarity_weights键可以采用三种值:None、Random 或 Python 列表。让我们一一探索每个值。

如果将 rarity_weights 值设置为None,每个特征将被分配相同的权重。因此,如果有 5 个特征,则每个特征将出现在大约 20% 的化身中。

如果required为 False,则同样可能根本无法获得该特定特征。在前一种情况下,如果required属性设置为 false,则每个特征将出现在大约 16.6% 的头像中。另有 16.6% 的化身根本没有这种特殊特征。

将rarity_weights设置为 ‘random’(注意括号)会随机为每个类别分配权重。我们强烈建议你不要使用此功能。始终采用相同或自定义的用户定义稀有度。

Python 列表可能是分配稀有度权重的最常用方法。首先要做的是转到特征类别文件夹并按名称对特征图像进行排序。例如,对Wristbands文件夹进行排序将为我们生成以下内容:

可以看到我们有 9 种不同类型的腕带。现在,我们需要定义一个 Python 列表(由 [] 封装),其中每个数字代表按升序分配给特定特征的权重。

如果必需的设置为 True,则权重的数量应等于该类别的特征数量。如果必需的设置为 False,那么权重的数量应该等于特征数量加一。

在我们的例子中,如果需要腕带,我们将在列表中定义九个权重,如果不需要,我们将定义十个权重。在后一种情况下,第一个重量将是与根本没有腕带相关的重量。

让我们看一下我们为腕带定义的rarity_weights。

[100、5、5、15、5、5、15、15、5、1]

由于不需要腕带,我们设置了十个重量(九加一)。第一个重量是与根本没有腕带相关的重量。第二个权重与Cheetah乐队相关联,第三个权重与Giraffe乐队相关联,依此类推。注意这里的字母顺序。

权重越高,特定特征越常见。例如,Cheetah的权重为 5,没有手环的权重为 100。这意味着拥有Cheetah手环的几率是没有手环的 20 倍。

7、生成NFT艺术品集合

一旦配置了 config.py 文件,现在是时候生成你的集合了。打开终端(或命令提示符)并导航到generation-art-nft文件夹运行以下命令:

python nft.py

运行此命令将启动图像生成程序。它将首先检查 config.py 文件是否有效。接下来,它将告诉你不同的可能组合的总数。然后它会询问你要创建多少个头像。我们建议创建比你想要创建的多 20% 的内容,这样即使在删除重复项之后也有足够的剩余。在我们的例子中,我们选择创建 12,000 个化身,尽管我们想要 10,000 个。然后它会要求你为集合命名,然后开始生成过程。

我们花了大约 30 分钟来生成 11,957 个头像(删除重复后)。图像及其相关元数据将在输出文件夹中可用。

图像文件夹看起来像这样。请注意,这只是一个示例,而不是我们生成的最终松鼠:

元数据文件是一个 CSV 文件,可以将其导入 Excel 并进行分析(例如哪个特征最稀有、哪个特征组合最常见、头像稀有度排名等)。


原文链接:生成式NFT艺术品创作教程 — 汇智网

以上是关于生成式NFT艺术品创作教程的主要内容,如果未能解决你的问题,请参考以下文章

用Three.js打造生成式NFT艺术藏品

用Three.js打造生成式NFT艺术藏品

NFT产业杀入币安智能链

区块链Defi之谁能铸造NFT艺术品汕头市

如何创作属于自己的NFT?

元宇宙欧米说个人创作者的NFT探索之路