feat(external): add Atlas Cloud image provider - #9476
Conversation
Signed-off-by: binyangzhu000-sudo <224954946+binyangzhu000-sudo@users.noreply.github.com>
lstein
left a comment
There was a problem hiding this comment.
Since Atlas Cloud supports many popular image generation models, why don't you add support for multiple models? It doesn't cost the user anything. Otherwise this PR is overkill for adding a single model.
…rnal-provider # Conflicts: # invokeai/frontend/web/src/services/api/schema.ts
Atlas Cloud fronts many popular image models behind one endpoint, so ship a set of them rather than a single model. - Register 11 more text-to-image starter models across 8 vendors (FLUX.1 Dev, FLUX.2 Pro, Qwen Image 3.0, Z-Image Turbo, MAI-Image-2.5, Ideogram V4 Turbo/Quality, Krea 2 Turbo, HiDream O1 1.5, Grok Imagine Image 2.0 and Nano Banana 2), each with the capabilities its upstream model reports. - Record per-model request schemas in the provider: these models spell output dimensions as "size", "image_size" or "aspect_ratio", and batch size as "num_images", "n" or not at all, so a single payload shape does not fit them all. Unlisted models keep using the explicit-size schema, so custom installs via `external://atlascloud/<model_id>` are unaffected. - Cover every request-schema variant with tests.
|
Thanks for the review — that's a fair point, a single model didn't justify the provider. I pushed follow-up commit
Validation:
Notes:
|
|
Thanks for the review — that's a fair point, so I pushed follow-up commit Now 12 Atlas Cloud starter models across 8 vendors: FLUX.1 Schnell/Dev, FLUX.2 Pro, Qwen Image 3.0, Z-Image Turbo, MAI-Image-2.5, Ideogram V4 Turbo/Quality, Krea 2 Turbo, HiDream O1 1.5, Grok Imagine Image 2.0 and Nano Banana 2. The models don't share one request shape, which is why this needed a bit more than extra table rows:
So the provider now records each model's request schema and builds the payload from it. Models not in that table fall back to the explicit-size schema, so custom This commit also merges current Validation
One deliberate omission: I left out the |
Summary
Adds Atlas Cloud as a first-class external image generation provider.
Related Issues / Discussions
None.
QA Instructions
uv tool run ruff@0.11.2 format --check <changed Python files>uv tool run ruff@0.11.2 check <changed Python files>python -m compileall <changed Python files>pytest tests/app/services/external_generation/test_atlascloud_provider.py tests/app/services/external_generation/test_seedream_provider.py tests/app/services/external_generation/test_alibabacloud_provider.py tests/app/services/external_generation/test_external_provider_adapters.py -q(38 passed)python scripts/generate_openapi_schema.py | pnpm typegen(deterministic on a second run)pnpm lint:tscpnpm exec prettier --check src/services/api/schema.tspython -m pip wheel . --no-deps(wheel built successfully)Merge Plan
No special merge steps required.
Checklist
What's Newcopy (if doing a release after this PR)