{ "components": { "background": [ "bafybeib3wpn4lfx4iiccdobg3biiadgek2c7juf4utp4cebyelaclpx4sy", "bafybeiedpzqeblg4pump2mpoj5upiliflou427wx5z352vmall3y7vitoe", "bafybeiembiswzsbp6csjnlgntnfbk3qblkfoj7l74qxmtlxkibc5szt2zu" ], "base": [ "bafybeicqsxuipe6wpuynbig6tcznjcm7qwkzrjiq4kam4plmztpctkplfu", "bafybeicwj4lciguwb3h2ymht5wjomu7o76agjkv5bkvzufndqewyg66dga", "bafybeiatg2rytojys5lrygapawjafre22wqswi7wf74otam55ggq2rgrxe" ], "car": [ "bafybeiffnq24kd77x3qobp47xjfyrwmm3tkwnjiktqk2m73yy2v2ma4nc4", "bafybeig5bhyxdwwo6ivbeoqfsvh5tstb5erlllgdo3fwudpz37djohkqjm", "bafybeigjglvvbplnlwunbgui3cwy6lwthovkt7ukatn6sg2ug5dphyrkvy" ] }, "code": " from PIL import Image import requests from io import BytesIO components = { 'background': [ 'bafybeib3wpn4lfx4iiccdobg3biiadgek2c7juf4utp4cebyelaclpx4sy', 'bafybeiedpzqeblg4pump2mpoj5upiliflou427wx5z352vmall3y7vitoe', 'bafybeiembiswzsbp6csjnlgntnfbk3qblkfoj7l74qxmtlxkibc5szt2zu' ], 'base': [ 'bafybeicqsxuipe6wpuynbig6tcznjcm7qwkzrjiq4kam4plmztpctkplfu', 'bafybeicwj4lciguwb3h2ymht5wjomu7o76agjkv5bkvzufndqewyg66dga', 'bafybeiatg2rytojys5lrygapawjafre22wqswi7wf74otam55ggq2rgrxe' ], 'car': [ 'bafybeiffnq24kd77x3qobp47xjfyrwmm3tkwnjiktqk2m73yy2v2ma4nc4', 'bafybeig5bhyxdwwo6ivbeoqfsvh5tstb5erlllgdo3fwudpz37djohkqjm', 'bafybeigjglvvbplnlwunbgui3cwy6lwthovkt7ukatn6sg2ug5dphyrkvy' ] } def get_image_from_ipfs(ipfs_hash): url = f'https://{ipfs_hash}.ipfs.dweb.link' response = requests.get(url) return Image.open(BytesIO(response.content)) def generate_nft(components, idx): background = get_image_from_ipfs(components['background'][idx % 3]) base = get_image_from_ipfs(components['base'][idx % 3]) car = get_image_from_ipfs(components['car'][idx % 3]) # Combine parts background.paste(base, (0, 0), base) background.paste(car, (0, 0), car) return background for i in range(10): nft_image = generate_nft(components, i) nft_image.save(f'generated_nft_{i}.png') " }