Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions docs/src/generated/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -886,6 +886,28 @@
"type": "typing.Optional[str]",
"validation": {}
},
{
"category": "EXTERNAL PROVIDERS",
"default": null,
"description": "API key for Atlas Cloud image generation.",
"env_var": "INVOKEAI_EXTERNAL_ATLASCLOUD_API_KEY",
"literal_values": [],
"name": "external_atlascloud_api_key",
"required": false,
"type": "typing.Optional[str]",
"validation": {}
},
{
"category": "EXTERNAL PROVIDERS",
"default": null,
"description": "Base URL override for Atlas Cloud image generation.",
"env_var": "INVOKEAI_EXTERNAL_ATLASCLOUD_BASE_URL",
"literal_values": [],
"name": "external_atlascloud_base_url",
"required": false,
"type": "typing.Optional[str]",
"validation": {}
},
{
"category": "EXTERNAL PROVIDERS",
"default": null,
Expand Down
2 changes: 2 additions & 0 deletions invokeai/app/api/dependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from invokeai.app.services.external_generation.external_generation_default import ExternalGenerationService
from invokeai.app.services.external_generation.providers import (
AlibabaCloudProvider,
AtlasCloudProvider,
GeminiProvider,
OpenAIProvider,
SeedreamProvider,
Expand Down Expand Up @@ -188,6 +189,7 @@ def initialize(
external_generation = ExternalGenerationService(
providers={
AlibabaCloudProvider.provider_id: AlibabaCloudProvider(app_config=configuration, logger=logger),
AtlasCloudProvider.provider_id: AtlasCloudProvider(app_config=configuration, logger=logger),
GeminiProvider.provider_id: GeminiProvider(app_config=configuration, logger=logger),
OpenAIProvider.provider_id: OpenAIProvider(app_config=configuration, logger=logger),
SeedreamProvider.provider_id: SeedreamProvider(app_config=configuration, logger=logger),
Expand Down
1 change: 1 addition & 0 deletions invokeai/app/api/routers/app_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ class ExternalProviderConfigModel(BaseModel):

EXTERNAL_PROVIDER_FIELDS: dict[str, tuple[str, str]] = {
"alibabacloud": ("external_alibabacloud_api_key", "external_alibabacloud_base_url"),
"atlascloud": ("external_atlascloud_api_key", "external_atlascloud_base_url"),
"gemini": ("external_gemini_api_key", "external_gemini_base_url"),
"openai": ("external_openai_api_key", "external_openai_base_url"),
"seedream": ("external_seedream_api_key", "external_seedream_base_url"),
Expand Down
28 changes: 28 additions & 0 deletions invokeai/app/invocations/external_image_generation.py
Original file line number Diff line number Diff line change
Expand Up @@ -349,3 +349,31 @@ class AlibabaCloudImageGenerationInvocation(BaseExternalImageGenerationInvocatio
ui_model_format=[ModelFormat.ExternalApi],
ui_model_provider_id=["alibabacloud"],
)


@invocation(
"atlascloud_image_generation",
title="Atlas Cloud Image Generation",
tags=["external", "generation", "atlascloud"],
category="image",
version="1.0.0",
)
class AtlasCloudImageGenerationInvocation(BaseExternalImageGenerationInvocation):
"""Generate images through the Atlas Cloud asynchronous media API."""

provider_id = "atlascloud"

model: ModelIdentifierField = InputField(
description=FieldDescriptions.main_model,
ui_model_base=[BaseModelType.External],
ui_model_type=[ModelType.ExternalImageGenerator],
ui_model_format=[ModelFormat.ExternalApi],
ui_model_provider_id=["atlascloud"],
)

mode: ExternalGenerationMode = InputField(default="txt2img", description="Generation mode.", ui_hidden=True)
init_image: ImageField | None = InputField(
default=None, description="Init image for img2img/inpaint", ui_hidden=True
)
mask_image: ImageField | None = InputField(default=None, description="Mask image for inpaint", ui_hidden=True)
reference_images: list[ImageField] = InputField(default=[], description="Reference images", ui_hidden=True)
10 changes: 10 additions & 0 deletions invokeai/app/services/config/config_default.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
EXTERNAL_PROVIDER_CONFIG_FIELDS = (
"external_alibabacloud_api_key",
"external_alibabacloud_base_url",
"external_atlascloud_api_key",
"external_atlascloud_base_url",
"external_gemini_api_key",
"external_gemini_base_url",
"external_openai_api_key",
Expand Down Expand Up @@ -140,6 +142,8 @@ class InvokeAIAppConfig(BaseSettings):
strict_password_checking: Enforce strict password requirements. When True, passwords must contain uppercase, lowercase, and numbers. When False (default), any password is accepted but its strength (weak/moderate/strong) is reported to the user.
external_alibabacloud_api_key: API key for Alibaba Cloud DashScope image generation.
external_alibabacloud_base_url: Base URL override for Alibaba Cloud DashScope image generation.
external_atlascloud_api_key: API key for Atlas Cloud image generation.
external_atlascloud_base_url: Base URL override for Atlas Cloud image generation.
external_gemini_api_key: API key for Gemini image generation.
external_openai_api_key: API key for OpenAI image generation.
external_gemini_base_url: Base URL override for Gemini image generation.
Expand Down Expand Up @@ -264,6 +268,12 @@ class InvokeAIAppConfig(BaseSettings):
external_alibabacloud_base_url: Optional[str] = Field(
default=None, description="Base URL override for Alibaba Cloud DashScope image generation."
)
external_atlascloud_api_key: Optional[str] = Field(
default=None, description="API key for Atlas Cloud image generation."
)
external_atlascloud_base_url: Optional[str] = Field(
default=None, description="Base URL override for Atlas Cloud image generation."
)
external_gemini_api_key: Optional[str] = Field(default=None, description="API key for Gemini image generation.")
external_openai_api_key: Optional[str] = Field(default=None, description="API key for OpenAI image generation.")
external_gemini_base_url: Optional[str] = Field(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from invokeai.app.services.external_generation.providers.alibabacloud import AlibabaCloudProvider
from invokeai.app.services.external_generation.providers.atlascloud import AtlasCloudProvider
from invokeai.app.services.external_generation.providers.gemini import GeminiProvider
from invokeai.app.services.external_generation.providers.openai import OpenAIProvider
from invokeai.app.services.external_generation.providers.seedream import SeedreamProvider

__all__ = ["AlibabaCloudProvider", "GeminiProvider", "OpenAIProvider", "SeedreamProvider"]
__all__ = ["AlibabaCloudProvider", "AtlasCloudProvider", "GeminiProvider", "OpenAIProvider", "SeedreamProvider"]
Loading