mAi: #10 - multi-model backend expansion (workflow templates + compare harness)
Path 1 architecture: one comfyui adapter, workflows as data.
- workflow_template.go: embed.FS + token substitution with type-preserving
whole-value placeholders. ${prompt} → string, ${seed} → int64,
${cfg} → float64 — no JSON round-tripping. Partial matches ignored.
- comfyui.go: refactored to load workflow from embedded FS or filesystem
path. Back-compat preserved: workflow: defaults to flux1-schnell.
- workflows/{flux1-schnell,flux2-klein,sd35-medium}.json — bundled
templates. flux1-schnell migrated from hardcoded with identical node IDs.
- compare.go: new `imagen compare` subcommand. Sequential N-backend run
(one GPU on mRock — parallel would OOM), per-backend PNG, sidecar JSON
with per-model metadata + errors, composite contact sheet via Go image
package (no ImageMagick dep).
- Sample config gains flux2-klein-local + sd35-medium-local instances.
- docs/backends.md: architecture rationale + per-model HF download paths
+ how to add a new bundled workflow + compare-harness reference.
Live smoke verified: compare mock + flux-schnell-local at 768×768 →
both PNGs written, sidecar JSON has workflow="flux1-schnell" + full
metadata, contact sheet renders. Worker contract (Request → Generate)
unchanged, so flexsiebels /imagine UI API surface preserved.
Tests: 11 existing comfyui + 6 new workflow_template + 5 new compare
tests, all green.
Adding a new model is now yaml + JSON, never Go.
This commit is contained in:
@@ -4,14 +4,21 @@
|
||||
|
||||
```
|
||||
imagen generate <prompt> [flags] generate one image
|
||||
imagen compare <prompt> --models a,b,c [flags]
|
||||
run one prompt across N backends + contact sheet
|
||||
imagen worker [flags] consume the imagen.jobs queue (daemon)
|
||||
imagen backends list configured + registered backends
|
||||
imagen config init print a sample imagen.yaml on stdout
|
||||
imagen config validate parse + validate the active config
|
||||
imagen config path print the resolved config path
|
||||
imagen serve [--addr :8080] (stub) start the HTTP server
|
||||
imagen usage [--since DATE] show cost-tracking rows
|
||||
imagen version print version
|
||||
```
|
||||
|
||||
For the per-backend setup (FLUX.1, FLUX.2 [klein], SD3.5 medium, …) and
|
||||
the architecture rationale, see [`backends.md`](backends.md).
|
||||
|
||||
## `generate` flags
|
||||
|
||||
| Flag | Default | Notes |
|
||||
|
||||
Reference in New Issue
Block a user