[object Object]

← back to Trending Dw

gapgen: cost guard — refuse paid Replicate by default (Steve: use local models); Replicate now opt-in via GEN_BACKEND=replicate

39b1dba82cd0053ad14dd1334eaceeb98a6b19a0 · 2026-07-07 12:49:30 -0700 · Steve

Files touched

Diff

commit 39b1dba82cd0053ad14dd1334eaceeb98a6b19a0
Author: Steve <steve@designerwallcoverings.com>
Date:   Tue Jul 7 12:49:30 2026 -0700

    gapgen: cost guard — refuse paid Replicate by default (Steve: use local models); Replicate now opt-in via GEN_BACKEND=replicate
---
 scripts/gapgen.js | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/scripts/gapgen.js b/scripts/gapgen.js
index 0e75fc3..9ad092a 100644
--- a/scripts/gapgen.js
+++ b/scripts/gapgen.js
@@ -217,6 +217,19 @@ if (DRY) {
   process.exit(0);
 }
 
+// COST GUARD (Steve 2026-07-07): generation must default to LOCAL models, not paid
+// Replicate. gapgen still calls Replicate, so refuse to spend unless explicitly opted
+// in. NEXT TASK: port wallco-ai's comfy path (comfyCurl → COMFY_URL/prompt) so
+// GEN_BACKEND=comfy generates on Mac1 ComfyUI for $0.
+const BACKEND = process.env.GEN_BACKEND || 'comfy';
+if (BACKEND !== 'replicate') {
+  console.error(`[COST GUARD] refusing to spend on paid Replicate by default (GEN_BACKEND=${BACKEND}).
+Local ComfyUI generation ($0) is not yet wired into gapgen — that's the next task.
+To knowingly use paid Replicate (~$${GEN_COST}/img), re-run with: GEN_BACKEND=replicate node scripts/gapgen.js ${args.join(' ')} --rolls ${rolls}
+(--dry-run works free without a backend.)`);
+  process.exit(2);
+}
+
 fs.mkdirSync(CAND_DIR, { recursive: true });
 const ledger = loadJSON(LEDGER, { total: 0, gens: 0 });
 const report = loadJSON(REPORT, {});

← 8e9ac73 chore: lint guards (colorGate NaN, --rolls, json.loads) + re  ·  back to Trending Dw  ·  chore: v0.1.3 (session close) eb73264 →