Skip to content

Add an image baseline

Topics: generation, kudos, workers

Adding a model on an existing baseline needs no change here: publish it to the model reference and the service picks it up. A new architecture needs a baseline record published on models.aihorde.net, and a row in horde/bridge_reference.py only once a bridge release renders something on it. The baseline policy reference documents what each authority decides.

An uncatalogued baseline is priced at par and accepted for plain txt2img requests, so the models can land before the record does.

1. Publish the baseline record

Submit the record through the model reference's baseline resource. Its capabilities state what exists for the family:

{
  "name": "my_baseline",
  "display_name": "My Baseline",
  "native_resolution": 1024,
  "capabilities": {
    "controlnet": false,
    "controlnet_types_unavailable": [],
    "transparent": false,
    "qr_code": false,
    "remix": false,
    "flow_matching": true
  },
  "horde_policy": {
    "kudos": 8,
    "batching": 8,
    "ttl": 3,
    "resolution_floor": 1024
  }
}

Answer each capability from what has been published for the architecture, not from the model card. horde_policy states only what departs from par; the fields are described in the reference page.

The record is served to every replica, so a pricing change reaches the API within the hour without a deployment.

2. Add the bridge row when a release renders a feature

Engine support is not a property of the architecture: it is a property of a bridge release. When a release adds hires_fix, control_type, flow_shift or transparent on the new baseline, add it to that release's version in BRIDGE_BASELINE_FEATURES:

"AI Horde Worker reGen": {
    19: {"flow_shift": frozenset({"my_baseline"})},
},

Land the bridge release first. Until the row exists the four features are refused for the baseline, which is the correct answer: a bridge that ignores the field renders something the request did not ask for rather than reporting an error.

3. Update the reference page

Add the release row to the bridge table in the reference page.

4. Verify

pytest tests/unit/test_baseline_policy.py tests/unit/parity

The parity suite compares every request shape against the rules this design replaced, so a capability answered wrongly shows up as an unadjudicated difference rather than as silence.