torrinworx / blend_my_nfts Goto Github PK
View Code? Open in Web Editor NEWEasily generate thousands of 3D models, images, and animation automatically in Blender for free with Blend_My_NFTs.
License: GNU General Public License v3.0
Easily generate thousands of 3D models, images, and animation automatically in Blender for free with Blend_My_NFTs.
License: GNU General Public License v3.0
Hello Dear Developers!
I appreciate your hard-work and its a great help!
I am facing the issue in metadata output that there is rarity number and item number in hierarchy which should not be there so kindly make it easy and remove that numbers. see attachments for reference
Need Correction like following:
if that happens then I can easily upload my metadata on NFT Maker Pro. thanks in advance
Hello,
In my opinion, the generated batches in the NFT_Output
folder unnecessarily pollute the git tracking system.
I suggest adding the following line to the .gitignore
file.
NFT_Output/*
Thank you.
Hi,
I already wrote a script that mostly covers this. The folder structure just has to be exactly the same as you already laid out in the readme.
You just postfix the rarity to filenames of the external 3d models to enable rarity.
After that setup, just import those files into a scene while keeping to the .blend scene collection structure reuqired for the main script. (The scene collection structure is mirrored by the folder structure for the external 3d models anyway).
After that you can simply run your main script and use it normally.
My importer script is extremely messy as I have never worked with the blender API and not well integrated into you scripts. So currently you have to load the importer script and run it before loading the main.py script.
I dont have much time to rewrite this currently. Just let me know if youd rather implement this yourself or if you're ok with waiting a few weeks for me to commit the cleaned up, more integrated importer.
cheers.
So there is an upper limit with the current set up of generating random DNAs then removing them from a list if there are duplicates. Resolve this by generating a list of all possible DNA, then randomly send them to DNAList until maxNFTs is reached.
It Would be great if you can implement such feature - https://www.youtube.com/watch?v=Uwb7rBr51xo&t=777s
You can directly create 3d models inside Blender file (Using Instances or Proxies) where each layer consists of 1 NFT so that we can RenderOut in cycles using A renderfarm.
From Random Noise#2267
in the Discord:
ok, after one week of testing with your script, I have finally found what is the problem with the logic part.
apparently, your logic script is checking one rule at a time, so when there is more than one rule, the next rule can overwrite the previous one.
This is why only the last rule is always correct.
Basically, you have to rewrite the logic part, so that the script is checking that all of the rules are fulfilled, and not just one by one.
(expand the loop, so that it is running until all of the rules are checked)
Hi, I'm having the following error while running main.py the first time (generating json file): Python script failed, check the message in the system console
I can say the the line throwing the error is #35: Batch_Sorter.makeBatches()
, but I can't understand more, as the console output is not helping
environment:
The "Generate NFTs" button is missing on the user interface.
I have verified that I am using the most recent version of BMNFTs and have tried Blender 3.1.2 as well as Blender 3.0.0
Note that Version 2.0.0 of BMNFTs DOES show the button for this particular .blend file.
Also If I start a new .blend file, the "Generate NFTs" button DOES show.
Hey Torrin & Crew,
This isn't as much of an issue as much as it is asking for a recommendation for how to get multiple computers going at a time (e.g. computer 1 rending batch 1 and computer 2 rendering batch 2, etc.).
There are options for both "Virtual Drive" and "Mirror Drive" for google drive...
Could you foresee potential issues with using a Virtual Drive system where the documents needing to be uploaded prior to accessing? For instance if a batch was prematurely ended and part of a file changed such that the renderer would know where to pick up the render again, this would have to be uploaded prior to reopening the .blend file?
Would you recommend a "Mirror Drive" system instead?
What have you used in the past? Box? Google Drive? DropBox? OneDrive?
Thank you,
To renderout the blender hair particles in renderfarm we need to implement feature in which all the 3d models are instanced straight inside the new blenderfile and each frame represents each NFT model so that it is easy to renderout the entire collection
Before every render in the Exporter.py, a log.json file is opened and the current NFT and it's generation number and media file type is recorded.
At the top of the log.json there should be a record of what type of media was being generated: 3D models, images, animations, and the file types that the user chose for those media. (This will be used to help users remember what they set in Blender before the crash)
Some kind of dictionary is set so that a bool determines if a render/generation was completed in the log.json file. Log.json is created after the Export NFTs operator (button) is pressed.
Logs folder is created within NFT_Data folder in Blend_My_NFTs Output. Each Log.json file name will be dated with the exact date and time it was created.
START FROM FAILED STATE Operator (Button) in the Export NFT panel that appears if log fail state detected. - Possible?
It'll be ultracool to randomise shapekeys and get their metadata for different state of the character we are building.
Like smiling, bored, sad, yelling etc.
Create a way to generate every possible combination of NFTs if the maxNFTs and maximum number of combinations is below 500-1000.
If maxNFTs == maxCombinations:
Generate all combinations of NFT
The current method of doing this can't reliable generate all possible combinations and occasionally skips one or two, when the above variables are closer to zero. I believe this was the old method for generating NFT DNA, so check the old commits before the rarity patch to see if we can implement that old code in an if statement in the DNA_Generator.py.
NFT.zip
Hi, I am sharing with you my code. NFT models doesn't generating.
Possibly look into adding feature where you can export seperate and embeded textures like .gltf
and .gltf + .bin + textures
.
https://docs.blender.org/api/current/bpy.ops.export_scene.html#bpy.ops.export_scene.fbx
Search for embed_textures
under bpy.ops.export_scene.fbx
.
Hey Torrin!
Is there any way that a not-fully-rendered-collection could be renamed/refactored with the metadata in order to have a sequenced release of an NFT collection? Example would be renaming/refactoring per batch.
I ask because in the case of video NFTs, render time is LONG (potentially hundreds of times longer duration) and breaking down the finalization of a chunk of the collection could prove very useful.
Forgive my ignorance if this has already been implemented, but according to the documentation, It seems that an entire collection must be rendered prior to renaming/refactoring.
Thank you for all of your hard work.
Hello,
I'm MB. A very nice and polite guy.
Please post some screenshots.
Limit the amount an Attribute or Variant can appear per NFT DNA.
Create new method for creating DNA:
DNASet = set()
def create_single_DNA(something):
create DNA with random
create DNA with Rarity
create DNA with Logic
some loop:
DNAList = create_single_DNA(something)
DNASet |= {''.join([dnaPushToList()]) for _ in range(maxNFTs - len(DNASet))}
DNAList = list(DNASet)
I'm using Blender 3.0.1 and the latest release of BMNFTs (downloaded 22/02/22)
In 'Create NFT Data', when I hit 'Create Data', it works as intended, however it disables render on random objects. I say random, because if I run the process twice, different objects get disabled. If I go ahead and click the 'generate nfts' button, those layers won't render. It's not a show stopper, I just turn render on again for those objects that have been disabled before generating the NFT's.
Second issue I've encountered, which is a bit odd. If I have text objects in my scene with numbers (not in the object title, in the actual scene), it won't render that object. In my case these text objects have numbers, a minus symbol and full stops. If I convert the text object to a mesh, problem solved.
Hope that helps squish a couple of buggies. Thanks for the epic addon!!!
Blend_My_NFTs/main/Exporter.py
Line 304 in 00a87d9
The time it takes to generate a batch should be accurate even in the event of a batch failure. I don't currently know how it would be handled in the event of a failure. More testing needs to be done, as I don't think it takes it into account. Just open batch_info.json and add the time if a batch failure is detected somehow I guess with one of the failure variables passed to the Exporter.py file from the resumeFailedBatch Operator.
So I've generated 2 batches and want to render them on 2 machines. How to do it without generating DNAs again?
Here is a link to a module for xlsx:
https://www.geeksforgeeks.org/python-create-and-write-on-excel-file-using-xlsxwriter-module/#:~:text=XlsxWriter%20is%20a%20Python%20module,conditional%20formatting%20and%20many%20others.
You might have to figure out how to import the xlsxwriter module to BMNFTs because it's not natively supported in the Blender version of Python.
Please consider integrating your project with Google Colab which currently supports max render time of 12 hours and idle time out at 90 minutes.
For inspiration, check out Micro Singularity's Github repo and YouTube video showing how to use the repo.
Keep up the great work at This Cozy Studio!
It would be brilliant if we can also set rarity with materials in the material lists.
I've got this error in the system console, how can I solve it? I'm on mac
There is a recurring bug with the "never with" function of the logic implementation. When used, there are certain instances of "blanks" where if 2 objects are ruled out form one another, neither of them would appear. As an example, with the test blender file, In the case of not wanting the sphere with the square, there was instances where there was neither (only the cone and torus appeared).
(screenshot taken directly from BMNFT 3.0 tutorial video at 13:33)
Materials selected for each NFT DNA are not sent to the metadata in the Refactororer.py. I think a format like this would be good:
"trait_type": Material for <Variant selected with Materials>, "value": <Material Name selected>
^^ Don't forget to do it for ERC721, CIP, and Solana.
I did everything in your instructions and this notice pops up. I started eliminating Each collection from the bottom up to find the corrupt file. After I deleted Left Hand Held Stuff with 99 items in it. I was able to make NFT's. I then quit w/o saving, restarted, and eliminated only that collection and was able to make NFT's. Something in that collection is causing this notice I believe. Then I started eliminating each item in the collection one at a time to find the corrupted file. I got all the way to up to zero contents and I still got this message. I then eliminated the collection file and still got this notice. Weird. What could be causing this?
?
Let me know if you want me to do it.
Works perfectly with eevee and cycles, but crashes when using octane as render engine. Any way to solve this?
It would be great to see BlendMyNFTs expand to support Maxon Cinema 4D. Here's the official Cinema 4D Python examples. Here's the Python SDK.
Forgive my ignorance. How compatible is the ERC-721 contract with ERC-1155 when using the rebatching feature?
As in, would you recommend rebatching with ERC-721 and then somehow manipulating the metadata towards ERC-1155?
Don't have any sources or information to base the format off of as it's kind of elusive. Maybe look at the Haships YouTube channel as he recently did a thing on Polygon.
i have blender version 2.79b can you make it compatible with the blender 2.79b version
Upon enabling the addon, I encounter this error
Traceback (most recent call last):
File "I:\Blender Versions\stable\blender-3.0.0+stable.f1cca3055776\3.0\scripts\modules\addon_utils.py", line 351, in enable
mod = import(module_name)
ModuleNotFoundError: No module named 'Blend_My_NFTs-2'
hi
i try to refactor and export metadata but in .json files the "image" section is empty
i try to change the metadata.py file and its work to input for example ++<.png> to set "image" in metadatas
please add a baseUrl in this generator to set image url automatically
Thanks
What are the steps to remove the "The Cozy Place" watermark from output images in the Cozy Place Example file.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.