Series Labby W3IR · v1.4.0

Series Lab Guide

A plain-language step-by-step guide: stages 1–7, a $0 quick start, the safety net, a glossary and FAQ.

What is Series Lab

Series Lab is a studio on your own computer for creating a series of images (for example, an NFT collection) with one recognisable character or style.

You set a base image and a set of traits (hair, outfit, background…). The studio makes a unique "recipe" for every NFT, an AI draws the images, you pick the best ones and package everything for release.

Quick start in 10 minutes for $0

Walk the whole path with the mock demo engine — no keys, no payment. You'll understand how it all works before spending anything.

  1. Start the studio: double-click start-lab.bat (or npm start). http://127.0.0.1:5344/studio/ opens.
  2. 1 · Overview: name "Test", ID test, count 12 → "Save preset".
  3. 2 · Base: upload any image with the role "Main base".
  4. 3 · Constructor: pick the pfp-core pack → "Apply pack" → "Save prompt+traits".
  5. 4 · Recipes: "Build archive".
  6. 5 · Generate: engine mock → "Pilot N" = 5 → "Estimate" → "Generate". You get 5 demo images.
  7. 6 · Review: mark ✓ / ↻ and try "Re-generate rejected" — v·2 versions appear.
  8. 7 · Export: "Run checklist" and "Build ZIP" — a package ready for a marketplace.

Mock draws simple coloured placeholders, not real portraits — it's a training ground. For real images pick a local or cloud engine.

Step-by-step guide

Each stage is a tab at the top. Go left to right: 1 → 7. You can go back at any time — nothing breaks.

1 · Overview — the series passport

Why: Sets the series name, how many NFTs there will be, and the random seed so the result can be reproduced.

What to do

  1. Enter the collection name and an ID in Latin letters (e.g. my-heroes).
  2. Set the number of NFTs — 12–24 for a first try.
  3. You can leave the seed as is. Remember: same seed = same characters.
  4. Pick an engine (changeable later) and click "Save preset".

What you get: The file presets/<ID>.json — your series settings.

Common mistakes

  • An ID with spaces or Cyrillic — use Latin letters, digits and dashes.
  • Changing the seed after review re-rolls the recipes and images stop matching their numbers. Change the seed only at the start.
2 · Base — the face of the series

Why: The base image is the model every NFT resembles. It decides whether the character is recognisable.

What to do

  1. Upload your image (role "Main base") or generate a candidate from a description.
  2. Look through the input/ gallery and make the best one the "Main base".
  3. Optionally click 🤖 Vision Assist to get a style description for the Constructor.

What you get: The file input/primary.png — the main base image.

Common mistakes

  • An image with text, logos or a busy background — the AI will copy those flaws.
  • Several people in the frame — the series becomes inconsistent.
3 · Constructor — the description formula

Why: Defines what stays the same in the images (keep, style) and what changes (traits).

What to do

  1. Apply a ready trait pack or load a preset.
  2. Check 3–6 categories that should vary.
  3. Review the options: value, weight (frequency), prompt (English words).
  4. Fill in keep and suffix, optionally Style lock. Click Validate and "Save prompt+traits".

What you get: A preset with the full trait dictionary and the prompt template.

Common mistakes

  • Too many varying categories — images turn chaotic and the character gets lost.
  • An empty prompt in an option — the AI won't know what to draw for that variant.
4 · Recipes — a plan for each NFT

Why: Turns the settings into an exact list: NFT #1 gets these traits and this description, #2 others, and so on.

What to do

  1. Click "Build archive".
  2. Check the table, the rarity report and twin warnings.
  3. Edit a single recipe if needed (click a row).

What you get: The archive out/<ID>.json with every recipe.

Common mistakes

  • Changed the preset but didn't rebuild the archive — Generate uses the old recipes.
5 · Generate — drawing

Why: The AI draws images from the recipes. This is the only stage where money can be spent.

What to do

  1. Pick an engine and reference strength.
  2. Choose "Pilot N" = 3–5.
  3. Click "Estimate (free)" and check the price and daily cap.
  4. Click "Generate" and watch the progress.

What you get: The folder out/<engine>-s<strength>/ with 1.png, 2.png… Earlier variants live in versions/.

Common mistakes

  • The whole series straight away without a pilot — you risk paying for hundreds of bad images.
  • No key for the chosen cloud engine — see the Resources tab.
6 · Review — picking the best

Why: Not every image works out. Here you decide what goes into the collection.

What to do

  1. Pick a set, go through every image and mark ✓ or ↻.
  2. Redo the rejected ones — old variants remain as versions (v·N badge).
  3. In the versions window choose the best — "Make current".

What you get: Marks (marks.json) and the final current versions of the images.

Common mistakes

  • Images left unmarked — use the "Unmarked" filter.
7 · Export — packaging for release

Why: Prepares files in a marketplace format. You sell and mint yourself on the marketplace website.

What to do

  1. Run the NFT checklist and fix the remarks.
  2. Pick the set, format and "Only keep-marked" → "Build ZIP".
  3. Optionally: IPFS (Pinata), Provenance Hash, Showcase, LoRA dataset.

What you get: A ZIP with images and metadata, ready to upload to a marketplace.

Common mistakes

  • Exporting without review — bad images end up in the collection. Turn on "Only keep-marked".
💰 Resources — keys, money, trash

Why: Shows which engines are available, how much was spent and what's in the trash.

What to do

  1. Check which keys are "present" and which engines respond (⚡ Test all connections).
  2. Set a daily spend cap in .env: SERIES_SPEND_CAP_USD=5.
  3. Restore anything deleted by accident from the 🗑️ Trash.

What you get: Control over spending and files.

Common mistakes

  • Edited .env but didn't restart the studio — new keys aren't picked up.

Safety net: how the studio protects your money and files

These work automatically — nothing to turn on (except the daily cap).

  • Versions: re-generation never overwrites a paid image. Every variant is kept; switch the current one in Review (v·N badge).
  • Trash: deleting and replacing files moves them to out/trash/. Restore them in the Resources tab.
  • Daily spend cap: SERIES_SPEND_CAP_USD in .env blocks a run that would exceed the cap before any paid service is called.
  • Spend log: every paid call is written to out/render-log.jsonl (time, engine, price, success or error).
  • Auto-stop: if the engine fails 5 times in a row, the batch stops (SERIES_MAX_CONSECUTIVE_FAILURES).
  • Estimate first: "Generate" is available only after the free "Estimate".
  • Your PC only: the studio runs on 127.0.0.1 and rejects requests from other websites. Keys never reach the browser.
  • Brand filter: prompts with brand, franchise or celebrity names are blocked before generation.

How to work for free ($0)

Only cloud engines cost money. Everything else is free.

  • Stages 1–4, 6 and 7 are always free: they run on your PC.
  • The mock engine — demo images without keys or internet. Perfect for learning.
  • ComfyUI (port 8188) or Automatic1111 (port 7860) — real images on your GPU at no cost. Install the app and an SDXL or Flux model, start it, then pick the engine in the studio.
  • Uploading your own base images is free; Vision Assist without a key runs a simple free analysis.
  • Triage "Quick heuristic" is free; "AI Vision" is paid.

Glossary

Short and in plain words.

Preset
the series settings file: name, count, seed, traits, description template.
Seed
a word or number that fixes randomness. Same seed = same set of characters.
Base image
the model all NFTs in the series resemble. Main base = primary.
Trait
a characteristic that varies: hair, eyes, outfit, background.
Option
a specific variant of a trait, e.g. "red hair".
Weight
how often an option appears. Weight 10 is ten times more often than weight 1.
Trait pack
a ready set of traits and options from libraries/traits/.
Prompt
the English text description the AI draws from.
keep
phrases present in every prompt (the fixed part).
suffix
the prompt ending: quality, bans ("no text").
Style lock
fixed angle, light, mood and framing.
Recipe
the plan for one NFT: trait set + ready prompt.
DNA
a short fingerprint of the trait set. Same DNA = twins.
Archive
the file with all recipes of the series (out/<ID>.json).
Engine
the service or app that draws images (fal.ai, ComfyUI, mock…).
Reference strength
how closely an image sticks to the base: 0.1 free, 0.95 near copy.
Pilot
a trial generation of a few images before the whole series.
Set
the folder of images from one run, e.g. out/fal-s0.45/.
Version
one of the variants of an image for the same number. The current one is used by the gallery and export.
Trash
out/trash/: deleted and replaced files that can be restored.
Daily spend cap
the maximum dollars per day (SERIES_SPEND_CAP_USD).
Triage
automatic image quality scoring with a ✓ or ↻ suggestion.
Upscale
increasing image resolution.
Metadata
the JSON description of an NFT: name, image, traits. Marketplaces read exactly this.
IPFS
decentralised file storage; Pinata — a service for uploading to it.
Provenance Hash
a fingerprint of the collection proving the images didn't change.
LoRA
a small fine-tune of an AI model on your images so it draws your character.
Mint
creating the NFT on a blockchain. The studio doesn't do it — it only prepares files.
Launchpad
a service for launching a collection sale (OpenSea Studio, Magic Eden, LaunchMyNFT).
Gas
the blockchain network fee for a transaction during mint.

Frequently asked questions

The character looks different every time. What do I do?

Use a sharp base image; raise reference strength to 0.5–0.65; describe who the character is and the style in keep; turn on Style lock; reduce the number of varying traits.

How much does a series cost?

Click "Estimate" for an exact figure. Roughly fal.ai ~$0.025 per image, so 100 images ≈ $2.5. Local engines and mock cost $0.

How do I avoid overspending?

Set SERIES_SPEND_CAP_USD in .env (e.g. 5), always start with a 3–5 image pilot and watch "Spend today" in Resources.

I re-generated an image and the old one was better. Is it gone?

No. In Review click the v·N badge on the image and pick the version you want — "Make current".

I deleted a base image by accident. How do I get it back?

Resources tab → Trash → "Restore". Files are kept for 30 days.

It says "Daily spend cap…" and won't generate.

Today's cap is reached. Reduce the count, wait until tomorrow, or raise SERIES_SPEND_CAP_USD in .env and restart the studio.

Generation stopped with a message about consecutive failures.

The engine returned errors several times (no balance, wrong key, service outage). Check the key and balance (Resources → Test all connections), then run "All missing".

The "Generate" button is disabled.

Click "Estimate (free)" first. That's how the studio shows the price before spending.

The prompt is blocked because of brands.

The text contains a brand, franchise or celebrity name. Replace it with a generic description — this protects you from legal trouble on marketplaces.

Crooked hands and faces. What do I do?

Mark ↻ and redo; add "detailed hands, symmetrical face" to suffix; try another engine or strength and compare sets in Review.

Where are my files?

Presets — presets/, base images — input/, archives and images — out/, versions — out/<set>/versions/, trash — out/trash/, spend log — out/render-log.jsonl.

How do I add an API key?

Copy .env.example to .env in the project root, add the key (e.g. FAL_KEY=...) and restart the studio. The browser never sees the key value.

Can I open the studio from a phone or another PC?

Not by default — it runs on 127.0.0.1 only. That's on purpose, for safety.

How do I train my own model (LoRA)?

Export → "📦 LoRA Training Dataset". Upload the ZIP of image + caption pairs to Kohya_ss or Replicate LoRA Trainer.

Start and stop

Start: start-lab.bat (Windows) or npm start. Address: http://127.0.0.1:5344/studio/. Stop: stop-lab.bat or Ctrl+C in the server window. Switch the interface language with UK / EN at the top; the "Hints" toggle hides the purple hint boxes.