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.
ImaGen
Model-agnostic image-generation framework: pluggable backends (local FLUX on mRock, Replicate, DALL-E, …) behind a single CLI / skill / API.
imagen generate "a cat in a fishbowl" --backend flux-schnell-local --size 1024x1024
See CLAUDE.md for the design — backend contract, registry,
config layout, how to add a new adapter.
Install
go install mgit.msbls.de/m/ImaGen/cmd/imagen@latest
Or from a checkout:
make build # writes ./bin/imagen
make install # installs into $GOBIN (defaults to ~/go/bin)
First run
mkdir -p ~/.config
imagen config init > ~/.config/imagen.yaml
imagen config validate
imagen backends
imagen generate "test prompt" --backend mock --output /tmp/x.png
The mock backend ships in this repo and produces a deterministic gradient PNG — useful for smoke-testing the pipeline without reaching any model.
Status
| Component | Status |
|---|---|
| Backend interface | done (#1) |
| Mock backend | done (#1) |
| ComfyUI / FLUX on mRock | open (#2) |
| Replicate adapter | open (#3) |
/imagine skill |
open (#4) |
| HTTP server | stubbed (#1) |
Issues live at https://mgit.msbls.de/m/ImaGen/issues.
Languages
Go
99.3%
Shell
0.5%
Makefile
0.2%