Skip to content

Commit dfbc5fc

Browse files
feat: input class registry and unregistered model fallback (withceleste#99)
* feat: add input class registry and unregistered model fallback - Add register_input/get_input_class to celeste.io for capability-based Input class discovery - Register Input classes in all capability packages during initialization - Allow unregistered models when provider and capability are explicit, with warning about disabled parameter validation - Export new functions from celeste package - Update test to verify new warning behavior * feat(byteplus): add Seedance 1.5 Pro video model - Add seedance-1-5-pro-251215 with 4-12s duration, 480p/720p resolution - Fix gradium py.typed marker file (should be empty) - Reorder google pyproject.toml sections - Update .gitignore for temporary files * chore: bump all package versions to 0.3.6
1 parent b87d791 commit dfbc5fc

File tree

25 files changed

+131
-39
lines changed

25 files changed

+131
-39
lines changed

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,3 +158,8 @@ uv.lock
158158
# Security reports
159159
bandit-report.json
160160
mureka.md
161+
162+
# Temporary/audit files
163+
CHANGELOG_SINCE_RELEASE.md
164+
MIGRATION_AUDIT_REPORT.md
165+
scripts/

packages/capabilities/image-generation/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "celeste-image-generation"
3-
version = "0.3.5"
3+
version = "0.3.6"
44
description = "Image generation package for Celeste AI. Unified interface for all providers"
55
authors = [{name = "Kamilbenkirane", email = "kamil@withceleste.ai"}]
66
readme = "README.md"

packages/capabilities/image-generation/src/celeste_image_generation/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,20 @@
22

33

44
def register_package() -> None:
5-
"""Register image generation package (client and models)."""
5+
"""Register image generation package (client, models, and input)."""
66
from celeste.client import register_client
77
from celeste.core import Capability
8+
from celeste.io import register_input
89
from celeste.models import register_models
10+
from celeste_image_generation.io import ImageGenerationInput
911
from celeste_image_generation.models import MODELS
1012
from celeste_image_generation.providers import PROVIDERS
1113

1214
for provider, client_class in PROVIDERS:
1315
register_client(Capability.IMAGE_GENERATION, provider, client_class)
1416

1517
register_models(MODELS, capability=Capability.IMAGE_GENERATION)
18+
register_input(Capability.IMAGE_GENERATION, ImageGenerationInput)
1619

1720

1821
from celeste_image_generation.io import ( # noqa: E402

packages/capabilities/speech-generation/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "celeste-speech-generation"
3-
version = "0.3.3"
3+
version = "0.3.6"
44
description = "Speech generation package for Celeste AI. Unified interface for all providers"
55
authors = [{name = "Kamilbenkirane", email = "kamil@withceleste.ai"}]
66
readme = "README.md"

packages/capabilities/speech-generation/src/celeste_speech_generation/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,20 @@
22

33

44
def register_package() -> None:
5-
"""Register speech generation package (client and models)."""
5+
"""Register speech generation package (client, models, and input)."""
66
from celeste.client import register_client
77
from celeste.core import Capability
8+
from celeste.io import register_input
89
from celeste.models import register_models
10+
from celeste_speech_generation.io import SpeechGenerationInput
911
from celeste_speech_generation.models import MODELS
1012
from celeste_speech_generation.providers import PROVIDERS
1113

1214
for provider, client_class in PROVIDERS:
1315
register_client(Capability.SPEECH_GENERATION, provider, client_class)
1416

1517
register_models(MODELS, capability=Capability.SPEECH_GENERATION)
18+
register_input(Capability.SPEECH_GENERATION, SpeechGenerationInput)
1619

1720

1821
from celeste_speech_generation.io import ( # noqa: E402

packages/capabilities/text-generation/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "celeste-text-generation"
3-
version = "0.3.4"
3+
version = "0.3.6"
44
description = "Text generation package for Celeste AI. Unified interface for all providers"
55
authors = [{name = "Kamilbenkirane", email = "kamil@withceleste.ai"}]
66
readme = "README.md"

packages/capabilities/text-generation/src/celeste_text_generation/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,20 @@
22

33

44
def register_package() -> None:
5-
"""Register text generation package (client and models)."""
5+
"""Register text generation package (client, models, and input)."""
66
from celeste.client import register_client
77
from celeste.core import Capability
8+
from celeste.io import register_input
89
from celeste.models import register_models
10+
from celeste_text_generation.io import TextGenerationInput
911
from celeste_text_generation.models import MODELS
1012
from celeste_text_generation.providers import PROVIDERS
1113

1214
for provider, client_class in PROVIDERS:
1315
register_client(Capability.TEXT_GENERATION, provider, client_class)
1416

1517
register_models(MODELS, capability=Capability.TEXT_GENERATION)
18+
register_input(Capability.TEXT_GENERATION, TextGenerationInput)
1619

1720

1821
from celeste_text_generation.io import ( # noqa: E402

packages/capabilities/video-generation/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "celeste-video-generation"
3-
version = "0.3.3"
3+
version = "0.3.6"
44
description = "Video generation package for Celeste AI. Unified interface for all providers"
55
authors = [{name = "Kamilbenkirane", email = "kamil@withceleste.ai"}]
66
readme = "README.md"

packages/capabilities/video-generation/src/celeste_video_generation/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,20 @@
22

33

44
def register_package() -> None:
5-
"""Register video generation package (client and models)."""
5+
"""Register video generation package (client, models, and input)."""
66
from celeste.client import register_client
77
from celeste.core import Capability
8+
from celeste.io import register_input
89
from celeste.models import register_models
10+
from celeste_video_generation.io import VideoGenerationInput
911
from celeste_video_generation.models import MODELS
1012
from celeste_video_generation.providers import PROVIDERS
1113

1214
for provider, client_class in PROVIDERS:
1315
register_client(Capability.VIDEO_GENERATION, provider, client_class)
1416

1517
register_models(MODELS, capability=Capability.VIDEO_GENERATION)
18+
register_input(Capability.VIDEO_GENERATION, VideoGenerationInput)
1619

1720

1821
from celeste_video_generation.io import ( # noqa: E402

packages/capabilities/video-generation/src/celeste_video_generation/providers/byteplus/models.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,20 @@
9696
),
9797
},
9898
),
99+
Model(
100+
id="seedance-1-5-pro-251215",
101+
provider=Provider.BYTEPLUS,
102+
capabilities={Capability.VIDEO_GENERATION},
103+
display_name="Seedance 1.5 Pro",
104+
parameter_constraints={
105+
VideoGenerationParameter.DURATION: Range(min=4, max=12),
106+
VideoGenerationParameter.RESOLUTION: Choice(options=["480p", "720p"]),
107+
VideoGenerationParameter.FIRST_FRAME: ImageConstraint(
108+
supported_mime_types=BYTEPLUS_SUPPORTED_MIME_TYPES,
109+
),
110+
VideoGenerationParameter.LAST_FRAME: ImageConstraint(
111+
supported_mime_types=BYTEPLUS_SUPPORTED_MIME_TYPES,
112+
),
113+
},
114+
),
99115
]

0 commit comments

Comments
 (0)