How to Prepare NFT Trait Layers: Sizes, Transparency, Names

By Puffles StudioPublished Updated

Put each trait type in its own folder of images, all drawn on the same canvas size and lined up, with transparent backgrounds on every layer except the bottom one. Name each file after its trait, add a #5-style weight if you like, and number the folders to set the layer order.

The folder layout

One parent folder, holding one folder per trait type, with the images directly inside each:

My collection/
  01_Background/
    Sky.png
    Sunset#10.png
  02_Body/
    Puff.png
  03_Headwear/
    Crown#2.png
    Bucket hat.png
  1 of 1/
    The original.png

Choose the parent folder when you import. Images in a deeper folder are skipped, and the studio tells you which. The parent folder’s name becomes the collection name.

One canvas size, aligned

Draw every trait on the same canvas, already in place: the hat sits where the head will be. The studio stacks the images without moving them. If some images are a different size, they are stretched to the size most of your images share, and the import tells you how many.

How big? OpenSea’s metadata docs say to “use images at least 3000 by 3000 pixels” (OpenSea), while the older ERC-721 standard suggests 320 to 1080 pixels wide and a shape between 1.91:1 and 4:5 (EIP-721). The studio exports at any width from 64 to 8,192 pixels, so you can draw large and export the size you need.

Transparency, and what a solid layer does

Every layer above the bottom one needs a transparent background, or it covers everything beneath it. The bottom layer, usually the background, can be solid.

The studio treats an image with no see-through pixels, in any layer above the bottom one, as filling the whole picture: everything under it is hidden, so NFTs carrying it can only differ in the layers above it. If that leaves too few different pictures, the studio says so by name. Finished, complete artworks belong in 1 of 1s instead (the maths of hidden traits).

File types and size limits

What Puffles Studio accepts on import
WhatLimit
File typesPNG, JPG and WebP, mixed as you like
Each imageUp to 50 MB and 8,192 px on either side
Trait folders (layers)Up to 64
Traits per folderUp to 2,000
Images per importUp to 10,000

JPG has no transparency, so keep it for a solid bottom layer.

Naming traits and setting weights with #

The file name, without its extension, becomes the trait name: “Bucket hat.png” is “Bucket hat”. Add #N before the extension for a starting weight: “Crown#5.png” is “Crown” with weight 5, and decimals work. Files with no # get weight 1, and you can change any weight in the studio (how weights work).

Names must be unique within a folder; if two match, the studio asks you to rename one. It also notes any image that is an exact copy of another.

Numbering folders to set the layer order

Folders are sorted by name, and the first is drawn at the back. A number followed by _, . or - at the start sets the order and is removed from the trait type: “01_Background” becomes “Background”. Numbers sort naturally, so 2 comes before 10. You can still drag layers into a new order in the studio.

Leaving a trait out: None

You don’t need an empty image for “no hat”. Press “Add empty trait” in the studio to add a None choice, and give it a weight or an exact count like any other trait.

Where finished 1 of 1 artworks go

Put hand-made, complete artworks in a folder called “1 of 1” inside the parent folder. The studio also recognises “one of one”, “1_of_1” and “1-of-1s”, with or without a number in front. Each file becomes a 1 of 1, named after the file (how to add 1 of 1s).

Bringing back saved settings

Every Puffles Studio export includes nft-generator.json, your settings. Put it in the parent folder next to your trait folders and import again: names, weights, counts, rules, 1 of 1 choices and the seed come back, matched by folder and file name. Images that are new arrive with fresh settings.

A checklist before you import

  1. One parent folder, one folder per trait type, images directly inside.
  2. Every image on the same canvas size, lined up.
  3. Transparent backgrounds on every layer except the bottom one.
  4. Folders numbered in drawing order, back first.
  5. File names that read well as trait names, with any #weights added.
  6. Finished artworks in a “1 of 1” folder.
  7. Images under 50 MB and 8,192 px, and no more than 10,000 in all.
  8. Enough traits for your collection size (check the maths).

Questions people ask

What size should NFT layers be?

All the same size, drawn in place. OpenSea’s docs ask for images at least 3000 × 3000 pixels, and Puffles Studio can export anything from 64 to 8,192 pixels wide, so draw large.

Do all layers need transparent backgrounds?

Every layer except the bottom one. A solid image higher up hides everything under it.

How do I set rarity in the file name?

Add #N before the extension: Crown#5.png arrives as “Crown” with weight 5. Files without # get weight 1.

How do I control which layer is in front?

Number your folders (01_Background, 02_Body and so on): the first is at the back. You can also drag layers in the studio, where the top of the list is in front.

Can I mix PNG and JPG?

Yes. PNG, JPG and WebP can sit side by side. JPG has no transparency, so keep it for solid bottom layers.