dsh-fal-image-gen 0.5.0
The plugin was FAL from end to end. It is becoming the one image generation plugin, where FAL is a provider rather than the whole design.
Providers
A provider now turns a prompt into image bytes and nothing else. Everything after that — the attachment, the durable copy in the session workspace, the same-origin URL that outlives the provider's own link, the tool card — is shared and written once.
provider |
What it is | Protocol |
|---|---|---|
fal (default) |
the FAL queue, exactly as before | submit, poll, download |
custom |
any OpenAI-compatible API | one POST {customBaseURL}/images/generations |
- id: dsh-fal-image-gen
config:
provider: custom
customBaseURL: https://api.openai.com/v1
customModel: gpt-image-1
customKeyEnv: OPENAI_API_KEYAll four fields are editable in the settings card. An empty customKeyEnv means no authorization header at all — a real case for a local gateway, not a misconfiguration.
Sizes stay the tool's language
The named sizes do not change when the provider does, so a prompt keeps its meaning. FAL takes them as they are; for an OpenAI-compatible API they are translated (landscape_4_3 → 1024x768). An API picky about sizes gets customSize, which is sent verbatim instead.
response_format is deliberately not sent: newer OpenAI models reject it, and the answer is read either way — base64 inline, or a link that is downloaded.
Removed: a settings field that lied
The card offered "Max images per call" (numImagesMax), but no such key existed in the host schema and generate_image has no num_images parameter — it always asks for one image. Turning the knob changed nothing.
Also
- default
outputDirmoves fromgenerated/faltogenerated/images, since the folder is no longer FAL's; deployments that set it explicitly are unaffected; - 12 unit tests, the first this plugin has had.
Renaming to @goodandready/dsh-image-gen waits until the provider set settles.
Install
dsh plugin --profile web add @goodandready/dsh-fal-image-gen