一起用代码吸猫!本文正在参与【喵星人征文活动】。
批量生成独一无二的NFT猫猫图,这项目王多鱼会投吗?
零、前言
我们本项目是基于Benyamin Ahmed小朋友写的 nft-image-generator。之前在新闻看到这个小朋友暑假期间靠卖NFT鲸鱼“表情包” weird-whales-images一个暑假赚了250万元。另外他还将这个NFT图片生成器开源了,今天我们就基于他的这个开源工具来生成猫猫表情包。
一、设置合成部件的权重
1 | py复制代码cat = ["01","02","03","04","05","06","07"] |
我们这里分别有7张和4张猫咪图片。我们要将这7张猫咪与4张猫咪排列组合,生成独一无二的图片。
P.S. 这里权重之和要是100.
二、每一张图片对应的文件名
1 | py复制代码cat_files = { |
我们是将文件夹中的文件名放入字典中。
三、随即生成基于权重的图片组合
1 | py复制代码TOTAL_IMAGES = 10 # Number of random unique images we want to generate |
TOTAL_IMAGES这个变量是我们要生成的最大图片数量。
create_new_image是利用递归,对于每个图片类别都根据权重随机选择一张图片。
四、判断所有的图片是否独特
1 | py复制代码def all_images_unique(all_images): |
这里我们遍历所有图片来判断是否有重复图片。
五、为每一张图片添加Token Id
1 | py复制代码# Add token Id to each image |
这之后all_images中内容是:
1 | py复制代码[{'Cat': '05', 'Title': '01', 'tokenId': 0}, {'Cat': '02', 'Title': '04', 'tokenId': 1}, {'Cat': '01', 'Title': '03', 'tokenId': 2}, {'Cat': '01', 'Title': '02', 'tokenId': 3}, {'Cat': '02', 'Title': '03', 'tokenId': 4}, {'Cat': '07', 'Title': '02', 'tokenId': 5}, {'Cat': '02', 'Title': '02', 'tokenId': 6}, {'Cat': '07', 'Title': '01', 'tokenId': 7}, {'Cat': '03', 'Title': '02', 'tokenId': 8}, {'Cat': '05', 'Title': '02', 'tokenId': 9}] |
包含tokenId和两种猫的图片。
六、获取图片使用的数量
1 | py复制代码# Get Trait Counts |
使用字典来存储各个图片被使用的次数。
七、拼凑图片
1 | py复制代码#### Generate Images |
这里的思路很简单,将图片转化为同一尺寸,然后利用Image.alpha_composite将其叠加,然后在根据tokenId来保存图片。
八、来欣赏一下我生成的独一无二的图片吧~
本文转载自: 掘金