Ghostlight/scripts
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-05-03 16:52:30 +01:00
..
blender Revert "Enrich Pallas blockout geometry" 2026-05-03 16:52:30 +01:00
count_visual_images.py Remove legacy visual modification prompts 2026-05-03 11:26:36 +01:00
generate_bfl_images.py Split BFL base and edit prompts 2026-05-03 13:00:41 +01:00
README.md Split BFL base and edit prompts 2026-05-03 13:00:41 +01:00
run_blender_blockout.py Revert "Add Geometry Nodes blockout builder" 2026-05-03 16:52:30 +01:00

Ghostlight Scripts

BFL Image Generation

generate_bfl_images.py submits prompts to the Black Forest Labs async image API, polls the returned polling_url, downloads the signed result.sample image immediately, and writes a metadata receipt beside the image.

For Ghostlight visual-plan modifiers, the script uses the durable continuity workflow:

  1. Generate the scene base image from the assembled base prompt.
  2. Save the base image locally.
  3. Send that base image back as input_image.
  4. Send only the selected modifier prompt as the edit instruction.

Dry-runs write .base.prompt.txt and, when modifiers are selected, .edit.prompt.txt separately so the two prompts can be inspected before credits get thrown into the machine.

The script reads the API key from BFL_API_KEY first. If that is not set, it falls back to E:\Projects\gamecult-ops\bfl-api.txt. It never prints the key.

Dry-run a direct prompt:

npm run images:bfl -- --prompt "A maintenance yard in a rotating asteroid habitat" --dry-run

Dry-run one Ghostlight visual scene prompt:

npm run images:bfl -- --visual-plan examples\visual\pallas-species-strikes.branch-and-fold.v0.visual.json --scene-id pallas_yard_wake --dry-run

Dry-run a base scene plus one edit modifier:

npm run images:bfl -- --visual-plan examples\visual\pallas-species-strikes.branch-and-fold.v0.visual.json --scene-id pallas_ilya_arrival --global-modifier-id formal_stoppage_visible --dry-run

Submit one paid render:

npm run images:bfl -- --visual-plan examples\visual\pallas-species-strikes.branch-and-fold.v0.visual.json --scene-id pallas_yard_wake --width 1536 --height 864 --output-format png --yes

If modifier ids are supplied, one visual scene costs two BFL jobs: one base generation and one edit pass from that base image.

Render every base scene from a visual plan:

npm run images:bfl -- --visual-plan examples\visual\pallas-species-strikes.branch-and-fold.v0.visual.json --all-scenes --width 1536 --height 864 --output-format png --yes

Generated images and receipts go under experiments/images/, which is ignored by git. Move curated artifacts elsewhere deliberately if they need to become project assets.