Generative NFTの基となる画像データをPython処理で作ってみた

 

とみます(@20tomimasu)です。

 

NFTがゲームやアートなどに使われ始め、ブロックチェーン技術が生活にどのように影響していくのか、ワクワクしますね。

今回、Generative NFTを発行するまでの流れを理解するために、基となる画像データを作っていきます。

 

スコちゃん、かわゆす…w

(家で飼っているスコティッシュフォールド、猫です。)

 

Generative NFTとは

 

前回、thirdwebというプラットフォームにて、画像データをブロックチェーンに乗せるイメージを持てた。

>>ThirdwebでNFTをMintできる

 

今回は、より詳細に、

  • Generative NFT

を作っていこう。

 

ざっくり、Generative NFTとは、

  • プログラミングで発行されたNFT

のことで、

  • 利用者は、Mintした時に、ランダムにNFTが付与されるので楽しい

と認識している。

 

まずは、画像データをプログラムで用意するところから。

色々とエラーは出たけど、それっぽいものができた↓

generative NFT220605-9

 

いつも、とみますの頭の上に載っている

  • スコちゃん

だね。w

 

色んな組み合わせがあって可愛い。w

とりあえず、ここまでの忘備録として、ログを残しておこう。

 

Generative NFTための画像データの作り方

 

この方のコードを参考にした。

>>Generative NFT コレクションの作り方

 

コードを利用するための環境設定としては、

>>PythonとGitのダウンロード方法

 

次に、asset内に、素となるデータを用意していくのだが、

を利用した。

 

それぞれ、

  • background
  • body
  • face
  • fronthair

に収納し、config.pyを変更していく。

generative NFT220605-8

↑一連の流れを習得するのが目的なので、よりシンプルな設定に変更している。

 

背景の透明に関するエラー

 

今回、悩まされたのが…

  • 背景の透かし

(ちなみに、Canvaでは有料なので、パワポで処理した。)

 

イメージ画像をランダムに組み合わせるコードを走らせた時に、

  • ValueError bad transparency mask

というエラー。

 

Pythonライブラリを見ながら、コード自体も色々触ってみたけど、

結局、元画像を変更することで解決できた。

generative NFT220605-5

↑エラー途中までに掃き出された画像を確認すると…

  • body→黒

にしていたのが、悪さをしていたみたい。

(合成処理の時に、バグりやすい画像だっただろうね。)

 

ってな感じに、一通り走らせると↓

generative NFT220605-6

(仮テスト)

 

キャー、かわゆす~w

ちなみに、背景でレア度を決めている。

  • Super Rare(SR)→カオスっぽいやつ
  • Rare(R)→単色じゃないやつ
  • Normal→単色

 

思ったよりも、SRが多いので、レアリティ度合いを変更させようかー。

ってな感じに、色々と試行錯誤しつつ。

 

おわりに

 

以上「Generative NFTの基となる画像データをPython処理で作ってみた」でした。

 

Mintした時に、どんなスコちゃんをゲットできるかな?

次は、スマートコントラクト上へ、データを実際に記録していければ。

 

一方で、NFTを使って、どんなことができるのかを考えていければ。

  • discord権限を作る。 (コミュニティ)
  • NFT所有者に配当する。(法律的にダメかな)
  • NFT美術館やNFTゲーム
  • リアルでの認証 (セミナー会場の出欠認証など? )
  • twitch配信の視聴者報酬

うー、なかなか思いつかないw。→色々と考えよう。(何かアイデアあったら、コメントなどで教えてください。w)

あと、欲しい方? これからのテストに協力? してくれる方いたら、応援コメントで、エアドロを優先的に実施いたします。(メールアドレスにご連絡する形を想定。)

 

色々と不透明だけど、色々と試行錯誤しつつ。

それでは、また。

「普通の会社員」こそ 安定した副収入が得られる 不動産投資を

「安定した不労所得」の仕組みを作り、給与を超える家賃収入で、経済的自由を手に入れる方法はこちらから

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です