{"id":27201094,"url":"https://github.com/gregl83/mknft","last_synced_at":"2025-04-09T21:55:08.389Z","repository":{"id":57639327,"uuid":"429977250","full_name":"gregl83/mknft","owner":"gregl83","description":"Create NFTs using Adobe Photoshop","archived":false,"fork":false,"pushed_at":"2022-10-08T19:48:50.000Z","size":85,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-09T21:55:03.733Z","etag":null,"topics":["blockchain","nfshibes","nft","opensea","photoshop","psd"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gregl83.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-20T01:10:25.000Z","updated_at":"2024-10-17T07:16:30.000Z","dependencies_parsed_at":"2022-08-27T20:02:26.493Z","dependency_job_id":null,"html_url":"https://github.com/gregl83/mknft","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregl83%2Fmknft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregl83%2Fmknft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregl83%2Fmknft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregl83%2Fmknft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gregl83","download_url":"https://codeload.github.com/gregl83/mknft/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119394,"owners_count":21050754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","nfshibes","nft","opensea","photoshop","psd"],"created_at":"2025-04-09T21:55:07.886Z","updated_at":"2025-04-09T21:55:08.375Z","avatar_url":"https://github.com/gregl83.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mknft\n\nToolset to create NFTs from Photoshop layer group combinations.\n\n`mknft` was created rather quickly to POC a NFT project. Originally it included tools to deploy NFTs to the OpenSea marketplace but policy changes in their service now prevent that solution from being viable. Features were subsequently removed from `mknft` in order to provide a minimum toolset for generating NFT, images, using Photoshop layer group combinations. There is the possibility of this package including a deployment mechanism to the Polygon network in the future, but that's far from a guarantee.\n\n## Features\n\n- Attributes are organized by PSD layer groups\n- Attribute values comprised of layers in each group\n- Combinations of attribute values, random layers from groups, for unique NFTs\n- Weighted selection of layers using configuration file\n- Exclusion lists prevent incompatible layers from being combined\n- PSD groups or layers can be ignored with *_* prefix\n- Image probabilities calculated for odds of assembling attributes together (factors weights)\n- Sort composite images by probability\n\n**Status:** Alpha Experimentation\n\n## Requirements\n\n- Photoshop PSD (layers in groups)\n- Rust / Cargo\n\n## Limitations\n\n- Photoshop layers **must** not have hidden pixels outside canvas\n- Size of output collection cannot be too close to total number of possible combinations (due to random selection)\n\n## Installation\n\n1. [Install Rust and Cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html)\n2. Install `mknft` using Cargo command: `cargo install mknft`\n\n## Usage\n\n`mknft` is a command line interface utility.\n\n### Project States\n\nNFT projects have been broken down into three distinct states.\n\nEach state created by `mknft` produces a new directory with respective configuration and assets. These directories are NOT meant to be the same path for other states. They must be unique to prevent file name collisions.\n\n#### Photoshop Project\n\nThis state is not created by `mknft`.\n\nThe project directory should contain a structured Photoshop project file (PSD) with a configuration file identifying layers and weights.\n\n#### Prepared Project\n\nThis state represents a configuration of the prepared layer images without each individual generated NFT. The preapred project can be used to generate new combinations of NFTs more than once using the same parameters but, due to probablistic outcomes, *should* produce different results each execution.\n\n#### Packaged Project\n\nThe final state for making NFTs. The results of this state include a configuration file identifying attributes and name of each NFT. This configuration file can be used to publish NFTs.\n\nThis state includes ALL the final NFT files and will consume disk space respectively.\n\n### Command Help\n\nHelp menu can be displayed using `--help` or `-h` option with any `mknft` command.\n\n```bash\n$ mknft --help\n```\n\nOR\n\n```bash\n$ mknft prepare --help\n```\n\n## Example Project\n\nIncluded in this package is an [example project](example) that is composed of a configuration JSON file and PSD with three layer groups.\n\nRun the `prepare` command and subsequently the `package` command to observe how `mknft` functions.\n\n## Real-World Example\n\n`mknft` was used to build the [nfshibes NFT project](https://github.com/nfshibes/nfshibes.github.io).\n\n[GitHub Pages website](http://nfshibes.com) hosts NFTs minted with `mknft`.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregl83%2Fmknft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgregl83%2Fmknft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregl83%2Fmknft/lists"}