News & Events
NFT 프로그래머가 되는 방법
“Visa는 Mohawk(NFT 디지털 아바타)를 15만 달러에 구입했다.”
NFT 분야는 점점 명성이 높아지고 있다. 메인스트림은 블룸버그가 Visa가 크립토펑크를 15만 달러에 샀다고 보도했을 때 NFT에 소개되었다. 대부분의 사람들에게 이는 디지털 영역에만 사는 단순한 이미지치고는 과도한 금액으로 보인다.
이 포스팅은 NFT 크리에이터 시리즈의 첫 번째 파트이다.
- 파트 1: Python을 사용하여 Cryptopunks와 유사한 100개의 고유한 아바타를 생성하는 방법
- 파트 2: 컬렉션의 메타데이터를 생성하는 방법
- 파트 3: NFT 스마트 계약 전개(23/11/21)
- 파트 4: NFT 주조(07/12/21)
방법론
스크립트 뒤에 있는 방법론은 매우 간단하다: 다른 특징들을 함께 결합하여 독특한 아바타 이미지를 만드는 것이다.
데이터 가져오기
usetech-llc의 “Substrapunks” 저장소의 데이터를 사용할 것이다.
다음 link에서 저장소를 다운로드하고 zip 파일을 로컬 PC에 압축을 푼다.
필요한 패키지 가져오기
이 프로젝트에 다음 패키지를 사용할 것이다. 사용된 패키지에 대한 자세한 내용을 보려면 링크를 클릭해보자.
특성 할당
각각의 아바타는 5가지 특성으로 구성된다.
- 얼굴
- 귀
- 머리
- 입
- 코
어떤 코는 다른 코보다 더 희귀해야 한다. 이를 위해, 가지고 있는 다양한 종류의 코에 웨이트를 부여할 필요가 있다. 배열의 합은 항상 100이 되어야 한다.
얼굴에는 두 가지 유형(흑인 & 백인)이 있습니다. 이미지에 백인 얼굴이 지정될 확률은 60%이고 흑인 얼굴이 지정될 확률은 40%라고 프로그램에 지정한다.
특성 분류
딕셔너리는 특성에 대해 다른 이름을 원할 경우에 사용한다. 간단하게 하기 위해 얼굴을 제외하고 원래 파일 이름은 유지된다.
특성명 “face1″은 흰색 얼굴로 분류되고 “face2″는 검은색 얼굴로 분류된다.
이미지 특성 정의
여러분이 만들 각각의 아바타 이미지는 얼굴, 코, 입, 귀, 눈의 여섯 장의 사진이 조합될 것이다.
따라서 지정된 총 사진 수에 대해 이러한 특성을 단일 사진에 결합하는 for 루프를 작성한다.
함수는 각 그림에 대해 어떤 특징을 가지고 있는지를 명시하는 딕셔너리를 만든다.
이 특성들은 random.choices() 함수를 기반으로 할당된다.
이 함수는 얼굴 특성 목록(백인, 흑인)을 살펴보고 흰색(60% 확률) 또는 검은색(40% 확률)을 반환한다.
고유성 검증
NFT 아바타 프로젝트에서는 모든 아바타가 고유하다는 것이 중요하다. 따라서 모든 이미지가 고유한지 확인해야 한다. 모든 이미지를 루프하여 목록에 저장하고 중복된 이미지를 반환하는 간단한 함수를 작성한다.
그런 다음 각 이미지에 고유한 식별자를 추가한다.
특성 개수
미리 정의된 가중치와 랜덤 함수를 기반으로 특성을 할당한다. 이는 백인 얼굴의 가중치를 60으로 정의했다고 해도 정확히 60개의 백인 얼굴을 가지고 있을 가능성은 낮다는 것을 의미한다. 각 특성이 얼마나 많이 발생하는지 정확하게 알기 위해서는 이미지 컬렉션에 얼마나 많은 특성이 있는지 추적해야 할 것이다.
이렇게 하려면 다음과 같은 코드를 작성한다.
- 각 특성에 대한 딕셔너리를 각각의 분류로 정의하고 0에서 시작한다.
- 만든 이미지를 반복해서 보고 만약 그 특성을 발견한다면 각각의 특성 딕셔너리에 추가하자.
이미지 생성
이 부분에서는 이미지가 만들어지는 마법이 일어난다.
각 이미지에 대해 스크립트는 다음을 수행한다.
- 특성을 정의한 이미지 특성 파일을 연다.
- PIL 패키지를 사용하여 디렉토리에서 해당 특성 이미지를 선택한다.
- 모든 특성을 하나의 이미지로 결합한다.
- RGB로 변환하면 가장 일반적인 색상 모델이 된다.
- PC에 저장한다.
해피 프로그래밍~!
출처
https://github.com/UniqueNetwork/substrapunks
https://github.com/benyaminahmed/nft-image-generator
번역 – 핀인사이트 인턴연구원 강지윤(shety0427@gmail.com)
원문 보러가기>
https://betterprogramming.pub/create-your-own-nft-collection-with-python-82af40abf99f