image-toolbench / scripts /gen_project_art_refresh.py
HumboldtJoker's picture
Upload folder using huggingface_hub
a495b1a verified
Raw
History Blame Contribute Delete
4.41 kB
"""Fresh art for stale project pages β€” Oracle, Lyra Technique, Garuda, Agni, Meridian.
Matching site aesthetic: navy/gold, no human faces on product pages,
abstract/architectural, the feel of the tool working.
"""
import torch, os, gc, time
os.environ["TOKENIZERS_PARALLELISM"] = "false"
from diffusers import FluxPipeline
OUTPUT = "/Users/margaret/models/vera-triple-stack/project_art_refresh"
os.makedirs(OUTPUT, exist_ok=True)
pipe = FluxPipeline.from_pretrained(
"black-forest-labs/FLUX.1-dev",
torch_dtype=torch.bfloat16,
safety_checker=None, requires_safety_checker=False,
)
pipe.to("mps")
PROJECTS = {
"oracle": (
"A vast circular diagnostic instrument made of dark navy metal and gold, "
"suspended in space. Concentric rings rotate independently β€” each ring inscribed "
"with geometric patterns that glow amber when active. At the center, a lens focuses "
"golden light onto a stream of flowing data rendered as a luminous ribbon. "
"The instrument is reading something, measuring, diagnosing β€” you can feel it working. "
"No figures, no text. Deep navy background with warm gold accents. "
"The aesthetic of a precision measurement device that sees what the output hides."
),
"lyra_technique": (
"A cross-section of layered geometric space β€” imagine slicing through a transformer's "
"internal representation and seeing the structure. Parallel planes of dark navy, each with "
"different gold patterns: one shows spectral ridges (sharp peaks), another shows flat entropy "
"(smooth), another shows branching pathways. The planes are slightly transparent, stacked, "
"with golden threads connecting corresponding points between layers. "
"The feel of looking inside a mind and seeing geometry where thoughts should be. "
"Abstract, architectural, precise. Navy and gold only."
),
"garuda": (
"A golden eagle rendered in geometric, architectural style β€” not naturalistic but structural. "
"Wings spread wide, each feather is a sharp angular plate of burnished gold against deep navy. "
"The eagle's eye is a lens, scanning. Below it, faint red threads represent intercepted threats β€” "
"thin, fragile against the eagle's mass. The eagle doesn't chase the threats; it watches, "
"assesses, decides. Heraldic but modern. The feel of a sentinel that devours serpents. "
"No text. Navy background, gold and amber eagle, red threat indicators."
),
"agni": (
"A crucible of dark navy ceramic filled with molten gold β€” but the gold is being tested. "
"Seven geometric probes descend into the liquid, each glowing a different shade of amber "
"depending on what they find. Some glow bright (passing), some glow dim (failing). "
"The crucible has fine cracks filled with cooled gold (kintsugi). Around it, faint traces "
"of rejected material β€” things that didn't survive the fire. "
"The feel of purification through rigorous testing. "
"Abstract, no figures, no text. Navy ceramic, molten gold, amber probes."
),
"meridian": (
"A compass rose made of intersecting golden arcs on a dark navy field, "
"but the arcs are alive β€” papers, documents, data streams flowing along the curves "
"toward a central nexus point where they converge and transform into structured knowledge. "
"The streams come from all directions. Some are bright (relevant), some dim (filtered out). "
"At the center, a small dense cluster of interconnected golden nodes β€” the knowledge graph "
"being built in real time. The feel of a swarm that never sleeps, finding what matters. "
"No figures, no text. Navy background, gold arcs and streams."
),
}
for name, prompt in PROJECTS.items():
for seed in [137, 2026]:
print(f" {name} s{seed}...", flush=True)
t0 = time.time()
img = pipe(
prompt=prompt, num_inference_steps=30, guidance_scale=3.5,
height=1024, width=1024,
generator=torch.Generator("cpu").manual_seed(seed),
).images[0]
img.save(os.path.join(OUTPUT, f"{name}_s{seed}.png"))
print(f" saved ({time.time()-t0:.0f}s)")
gc.collect(); torch.mps.empty_cache()
print(f"\nDone. {OUTPUT}")