model-compose 0.4.6__tar.gz → 0.4.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {model_compose-0.4.6/src/model_compose.egg-info → model_compose-0.4.7}/PKG-INFO +1 -1
- {model_compose-0.4.6 → model_compose-0.4.7}/pyproject.toml +1 -1
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/base.py +2 -1
- model_compose-0.4.7/src/mindor/core/component/services/model/tasks/image_generation/common.py +47 -0
- model_compose-0.4.7/src/mindor/core/component/services/model/tasks/image_generation/custom.py +12 -0
- model_compose-0.4.7/src/mindor/core/component/services/model/tasks/image_generation/flux.py +54 -0
- model_compose-0.4.7/src/mindor/core/component/services/model/tasks/image_generation/hunyuan_image.py +54 -0
- model_compose-0.4.7/src/mindor/core/component/services/model/tasks/image_generation/sdxl.py +54 -0
- model_compose-0.4.7/src/mindor/core/component/services/model/tasks/image_upscale/__init__.py +1 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/image_upscale/real_esrgan.py +1 -1
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/package.py +3 -3
- {model_compose-0.4.6/src/mindor/dsl/schema/component → model_compose-0.4.7/src/mindor/dsl/schema/action}/impl/model/impl/__init__.py +1 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_generation/__init__.py +1 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_generation/image_generation.py +6 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/__init__.py +4 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/common.py +13 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/flux.py +11 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/hunyuan_image.py +11 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/sdxl.py +11 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/__init__.py +1 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/image_upscale.py +9 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/__init__.py +5 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/common.py +17 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/esrgan.py +14 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/ldsr.py +14 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/real_esrgan.py +16 -0
- model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/swinir.py +16 -0
- {model_compose-0.4.6/src/mindor/dsl/schema/action → model_compose-0.4.7/src/mindor/dsl/schema/component}/impl/model/impl/__init__.py +1 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_generation/__init__.py +1 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_generation/image_generation.py +10 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/__init__.py +2 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/common.py +28 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/flux.py +14 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/hunyuan_image.py +14 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/sdxl.py +14 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/__init__.py +1 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/image_upscale.py +13 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/__init__.py +5 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/common.py +28 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/esrgan.py +15 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/ldsr.py +14 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/real_esrgan.py +15 -0
- model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/swinir.py +14 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/model/impl/types.py +1 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/model/model.py +1 -0
- {model_compose-0.4.6 → model_compose-0.4.7/src/model_compose.egg-info}/PKG-INFO +1 -1
- {model_compose-0.4.6 → model_compose-0.4.7}/src/model_compose.egg-info/SOURCES.txt +36 -2
- model_compose-0.4.6/src/mindor/dsl/schema/action/impl/model/impl/image_upscale.py +0 -64
- model_compose-0.4.6/src/mindor/dsl/schema/component/impl/model/impl/image_upscale.py +0 -76
- {model_compose-0.4.6 → model_compose-0.4.7}/LICENSE +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/README.md +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/setup.cfg +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/cli/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/cli/compose.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/component.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/context.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/http_client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/http_server.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/mcp_client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/mcp_server.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/base/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/base/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/base/huggingface.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/base/huggingface_hub.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/base/unsloth.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/model.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/chat_completion/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/chat_completion/huggingface.py +0 -0
- {model_compose-0.4.6/src/mindor/core/component/services/model/tasks/image_upscale → model_compose-0.4.7/src/mindor/core/component/services/model/tasks/image_generation}/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/image_to_text/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/image_to_text/huggingface.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/image_upscale/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/image_upscale/custom.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/image_upscale/esrgan.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/image_upscale/ldsr.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/image_upscale/swinir.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/text_classification/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/text_classification/huggingface.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/text_embedding/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/text_embedding/huggingface.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/text_generation/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/model/tasks/text_generation/huggingface.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/shell.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/text_splitter.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/vector_store/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/vector_store/base.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/vector_store/drivers/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/vector_store/drivers/chroma.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/vector_store/drivers/milvus.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/vector_store/vector_store.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/component/services/workflow.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/compose/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/compose/compose.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/compose/manager.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/base.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/controller.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runner/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runner/client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runner/http_client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runner/mcp_client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runner/runner.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runtime/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runtime/docker/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runtime/docker/context/Dockerfile +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runtime/docker/docker.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runtime/native/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runtime/native/native.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/runtime/specs.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/services/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/services/http_server.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/services/mcp_server.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/webui/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/webui/gradio.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/controller/webui/webui.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/gateway/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/gateway/base.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/gateway/gateway.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/gateway/services/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/gateway/services/http_tunnel.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/gateway/services/ssh_tunnel.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/listener/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/listener/base.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/listener/listener.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/listener/services/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/listener/services/http_callback.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/logger/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/logger/base.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/logger/logger.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/logger/logging.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/logger/services/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/logger/services/console.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/logger/services/file.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/runtime/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/runtime/docker/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/runtime/docker/docker.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/runtime/env.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/services/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/services/async_service.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/caching.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/http_client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/http_request.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/http_response.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/http_status.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/image.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/mcp_client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/renderers.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/resolvers.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/shell.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/ssh_client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/streamer.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/streaming.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/time.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/utils/workqueue.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/context.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/job/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/job/base.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/job/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/job/impl/action.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/job/impl/delay.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/job/impl/filter.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/job/impl/if_.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/job/impl/random_router.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/job/impl/switch.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/job/job.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/schema.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/core/workflow/workflow.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/loader.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/action.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/http_client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/http_server.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/mcp_client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/mcp_server.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/model/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/model/impl/chat_completion.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/model/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/model/impl/image_to_text.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/model/impl/text_classification.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/model/impl/text_embedding.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/model/impl/text_generation.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/model/model.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/shell.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/text_splitter.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/vector_store/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/vector_store/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/vector_store/impl/chroma.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/vector_store/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/vector_store/impl/faiss.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/vector_store/impl/milvus.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/vector_store/impl/qdrant.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/vector_store/vector_store.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/action/impl/workflow.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/component.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/http_client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/http_server.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/mcp_client.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/mcp_server.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/model/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/model/impl/chat_completion.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/model/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/model/impl/image_to_text.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/model/impl/text_classification.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/model/impl/text_embedding.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/model/impl/text_generation.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/shell.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/text_splitter.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/types.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/vector_store/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/vector_store/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/vector_store/impl/chroma.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/vector_store/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/vector_store/impl/faiss.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/vector_store/impl/milvus.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/vector_store/impl/qdrant.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/vector_store/impl/types.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/vector_store/vector_store.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/component/impl/workflow.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/compose.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/controller.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/impl/http_server.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/impl/mcp_server.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/impl/types.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/webui/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/webui/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/webui/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/webui/impl/dynamic.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/webui/impl/gradio.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/webui/impl/static.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/controller/webui/webui.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/gateway.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/impl/http_tunnel/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/impl/http_tunnel/http_tunnel.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/cloudflare.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/ngrok.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/impl/ssh_tunnel.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/gateway/impl/types.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/job/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/job/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/job/impl/action.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/job/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/job/impl/delay.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/job/impl/filter.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/job/impl/if_.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/job/impl/random_router.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/job/impl/switch.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/job/impl/types.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/job/job.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/listener/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/listener/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/listener/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/listener/impl/http_callback.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/listener/impl/types.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/listener/listener.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/logger/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/logger/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/logger/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/logger/impl/console.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/logger/impl/file.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/logger/impl/types.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/logger/logger.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/runtime/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/runtime/impl/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/runtime/impl/common.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/runtime/impl/docker.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/runtime/impl/native.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/runtime/impl/types.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/runtime/runtime.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/transport/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/transport/http.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/transport/ssh.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/schema/workflow.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/utils/__init__.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/utils/annotation.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/mindor/dsl/utils/enum.py +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/model_compose.egg-info/dependency_links.txt +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/model_compose.egg-info/entry_points.txt +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/model_compose.egg-info/requires.txt +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/src/model_compose.egg-info/top_level.txt +0 -0
- {model_compose-0.4.6 → model_compose-0.4.7}/tests/test_cli.py +0 -0
|
@@ -114,10 +114,11 @@ class ComponentService(AsyncService):
|
|
|
114
114
|
|
|
115
115
|
async def _install_packages(self, packages: List[str]) -> None:
|
|
116
116
|
for package_spec in packages:
|
|
117
|
+
package_spec, repository = (package_spec.split("@") + [ None ])[:2]
|
|
117
118
|
requirement = parse_requirement(package_spec)
|
|
118
119
|
if not requirement or not is_requirement_satisfied(requirement):
|
|
119
120
|
logging.info(f"Installing missing module: {package_spec}")
|
|
120
|
-
await install_package(package_spec)
|
|
121
|
+
await install_package(repository or package_spec)
|
|
121
122
|
|
|
122
123
|
def register_component(type: ComponentType):
|
|
123
124
|
def decorator(cls: Type[ComponentService]) -> Type[ComponentService]:
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import TYPE_CHECKING
|
|
3
|
+
|
|
4
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, TypeAlias, Any
|
|
5
|
+
from abc import ABC, abstractmethod
|
|
6
|
+
from mindor.dsl.schema.action import ImageGenerationModelActionConfig, ColorFormat
|
|
7
|
+
from mindor.core.logger import logging
|
|
8
|
+
from ...base import ModelTaskService, ComponentActionContext
|
|
9
|
+
from PIL import Image as PILImage
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
import torch
|
|
13
|
+
|
|
14
|
+
class ImageGenerationTaskAction:
|
|
15
|
+
def __init__(self, config: ImageGenerationModelActionConfig, device: torch.device):
|
|
16
|
+
self.config: ImageGenerationModelActionConfig = config
|
|
17
|
+
self.device: torch.device = device
|
|
18
|
+
|
|
19
|
+
async def run(self, context: ComponentActionContext) -> Any:
|
|
20
|
+
text = await self._prepare_input(context)
|
|
21
|
+
is_single_input = not isinstance(text, list)
|
|
22
|
+
texts: List[PILImage.Image] = [ text ] if is_single_input else text
|
|
23
|
+
results = []
|
|
24
|
+
|
|
25
|
+
batch_size = await context.render_variable(self.config.batch_size)
|
|
26
|
+
params = await self._resolve_generation_params(context)
|
|
27
|
+
|
|
28
|
+
for index in range(0, len(texts), batch_size):
|
|
29
|
+
batch_texts = texts[index:index + batch_size]
|
|
30
|
+
upscaled_images = await self._upscale(batch_texts, params)
|
|
31
|
+
results.extend(upscaled_images)
|
|
32
|
+
|
|
33
|
+
return results[0] if is_single_input else results
|
|
34
|
+
|
|
35
|
+
async def _prepare_input(self, context: ComponentActionContext) -> Union[str, List[str]]:
|
|
36
|
+
return await context.render_image(self.config.image)
|
|
37
|
+
|
|
38
|
+
@abstractmethod
|
|
39
|
+
async def _generate(self, images: List[PILImage.Image], params: Dict[str, Any]) -> List[PILImage.Image]:
|
|
40
|
+
pass
|
|
41
|
+
|
|
42
|
+
@abstractmethod
|
|
43
|
+
async def _resolve_generation_params(self, context: ComponentActionContext) -> Dict[str, Any]:
|
|
44
|
+
pass
|
|
45
|
+
|
|
46
|
+
class ImageGenerationTaskService(ModelTaskService):
|
|
47
|
+
pass
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, TypeAlias, Any
|
|
2
|
+
from mindor.dsl.schema.component import ModelComponentConfig, ImageGenerationModelFamily
|
|
3
|
+
from ...base import ModelTaskType, ModelDriver, register_model_task_service
|
|
4
|
+
|
|
5
|
+
@register_model_task_service(ModelTaskType.IMAGE_GENERATION, ModelDriver.CUSTOM)
|
|
6
|
+
class CustomImageGenerationTaskService:
|
|
7
|
+
def __new__(cls, id: str, config: ModelComponentConfig, daemon: bool):
|
|
8
|
+
if config.family == ImageGenerationModelFamily.HUNYUAN_IMAGE:
|
|
9
|
+
from .hunyuan_image import HunyuanImageGenerationTaskService
|
|
10
|
+
return HunyuanImageGenerationTaskService(id, config, daemon)
|
|
11
|
+
|
|
12
|
+
raise ValueError(f"Unknown architecture: {config.architecture}")
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import TYPE_CHECKING
|
|
3
|
+
|
|
4
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, TypeAlias, Any
|
|
5
|
+
from mindor.dsl.schema.component import ModelComponentConfig
|
|
6
|
+
from mindor.dsl.schema.action import ModelActionConfig, FluxImageGenerationModelActionConfig
|
|
7
|
+
from mindor.core.logger import logging
|
|
8
|
+
from ...base import ComponentActionContext
|
|
9
|
+
from .common import ImageGenerationTaskService, ImageGenerationTaskAction
|
|
10
|
+
from PIL import Image as PILImage
|
|
11
|
+
import asyncio
|
|
12
|
+
|
|
13
|
+
if TYPE_CHECKING:
|
|
14
|
+
import torch
|
|
15
|
+
|
|
16
|
+
class FluxImageGenerationTaskAction(ImageGenerationTaskAction):
|
|
17
|
+
def __init__(self, config: FluxImageGenerationModelActionConfig, pipeline: Any, device: torch.device):
|
|
18
|
+
super().__init__(config, device)
|
|
19
|
+
|
|
20
|
+
self.pipeline = pipeline
|
|
21
|
+
|
|
22
|
+
async def _generate(self, params: Dict[str, Any]) -> List[PILImage.Image]:
|
|
23
|
+
pass
|
|
24
|
+
|
|
25
|
+
async def _resolve_generation_params(self, context: ComponentActionContext) -> Dict[str, Any]:
|
|
26
|
+
pass
|
|
27
|
+
|
|
28
|
+
class FluxImageGenerationTaskService(ImageGenerationTaskService):
|
|
29
|
+
def __init__(self, id: str, config: ModelComponentConfig, daemon: bool):
|
|
30
|
+
super().__init__(id, config, daemon)
|
|
31
|
+
|
|
32
|
+
self.pipeline: Optional[Any] = None
|
|
33
|
+
self.device: Optional[torch.device] = None
|
|
34
|
+
|
|
35
|
+
def get_setup_requirements(self) -> Optional[List[str]]:
|
|
36
|
+
return None
|
|
37
|
+
|
|
38
|
+
async def _serve(self) -> None:
|
|
39
|
+
try:
|
|
40
|
+
self.pipeline, self.device = self._load_pretrained_pipeline()
|
|
41
|
+
logging.info(f"Model loaded successfully on device '{self.device}': {self.config.model}")
|
|
42
|
+
except Exception as e:
|
|
43
|
+
logging.error(f"Failed to load model '{self.config.model}': {e}")
|
|
44
|
+
raise
|
|
45
|
+
|
|
46
|
+
async def _shutdown(self) -> None:
|
|
47
|
+
self.pipeline = None
|
|
48
|
+
self.device = None
|
|
49
|
+
|
|
50
|
+
def _load_pretrained_pipeline(self) -> Tuple[Any, torch.device]:
|
|
51
|
+
pass
|
|
52
|
+
|
|
53
|
+
async def _run(self, action: ModelActionConfig, context: ComponentActionContext, loop: asyncio.AbstractEventLoop) -> Any:
|
|
54
|
+
return FluxImageGenerationModelActionConfig(action, self.model).run(context)
|
model_compose-0.4.7/src/mindor/core/component/services/model/tasks/image_generation/hunyuan_image.py
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import TYPE_CHECKING
|
|
3
|
+
|
|
4
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, TypeAlias, Any
|
|
5
|
+
from mindor.dsl.schema.component import ModelComponentConfig
|
|
6
|
+
from mindor.dsl.schema.action import ModelActionConfig, HunyuanImageGenerationModelActionConfig
|
|
7
|
+
from mindor.core.logger import logging
|
|
8
|
+
from ...base import ComponentActionContext
|
|
9
|
+
from .common import ImageGenerationTaskService, ImageGenerationTaskAction
|
|
10
|
+
from PIL import Image as PILImage
|
|
11
|
+
import asyncio
|
|
12
|
+
|
|
13
|
+
if TYPE_CHECKING:
|
|
14
|
+
import torch
|
|
15
|
+
|
|
16
|
+
class HunyuanImageGenerationTaskAction(ImageGenerationTaskAction):
|
|
17
|
+
def __init__(self, config: HunyuanImageGenerationModelActionConfig, pipeline: Any, device: torch.device):
|
|
18
|
+
super().__init__(config, device)
|
|
19
|
+
|
|
20
|
+
self.pipeline = pipeline
|
|
21
|
+
|
|
22
|
+
async def _generate(self, params: Dict[str, Any]) -> List[PILImage.Image]:
|
|
23
|
+
pass
|
|
24
|
+
|
|
25
|
+
async def _resolve_generation_params(self, context: ComponentActionContext) -> Dict[str, Any]:
|
|
26
|
+
pass
|
|
27
|
+
|
|
28
|
+
class HunyuanImageGenerationTaskService(ImageGenerationTaskService):
|
|
29
|
+
def __init__(self, id: str, config: ModelComponentConfig, daemon: bool):
|
|
30
|
+
super().__init__(id, config, daemon)
|
|
31
|
+
|
|
32
|
+
self.pipeline: Optional[Any] = None
|
|
33
|
+
self.device: Optional[torch.device] = None
|
|
34
|
+
|
|
35
|
+
def get_setup_requirements(self) -> Optional[List[str]]:
|
|
36
|
+
return None
|
|
37
|
+
|
|
38
|
+
async def _serve(self) -> None:
|
|
39
|
+
try:
|
|
40
|
+
self.pipeline, self.device = self._load_pretrained_pipeline()
|
|
41
|
+
logging.info(f"Model loaded successfully on device '{self.device}': {self.config.model}")
|
|
42
|
+
except Exception as e:
|
|
43
|
+
logging.error(f"Failed to load model '{self.config.model}': {e}")
|
|
44
|
+
raise
|
|
45
|
+
|
|
46
|
+
async def _shutdown(self) -> None:
|
|
47
|
+
self.pipeline = None
|
|
48
|
+
self.device = None
|
|
49
|
+
|
|
50
|
+
def _load_pretrained_pipeline(self) -> Tuple[Any, torch.device]:
|
|
51
|
+
pass
|
|
52
|
+
|
|
53
|
+
async def _run(self, action: ModelActionConfig, context: ComponentActionContext, loop: asyncio.AbstractEventLoop) -> Any:
|
|
54
|
+
return HunyuanImageGenerationModelActionConfig(action, self.model).run(context)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import TYPE_CHECKING
|
|
3
|
+
|
|
4
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, TypeAlias, Any
|
|
5
|
+
from mindor.dsl.schema.component import ModelComponentConfig
|
|
6
|
+
from mindor.dsl.schema.action import ModelActionConfig, SdxlImageGenerationModelActionConfig
|
|
7
|
+
from mindor.core.logger import logging
|
|
8
|
+
from ...base import ComponentActionContext
|
|
9
|
+
from .common import ImageGenerationTaskService, ImageGenerationTaskAction
|
|
10
|
+
from PIL import Image as PILImage
|
|
11
|
+
import asyncio
|
|
12
|
+
|
|
13
|
+
if TYPE_CHECKING:
|
|
14
|
+
import torch
|
|
15
|
+
|
|
16
|
+
class SdxlImageGenerationTaskAction(ImageGenerationTaskAction):
|
|
17
|
+
def __init__(self, config: SdxlImageGenerationModelActionConfig, pipeline: Any, device: torch.device):
|
|
18
|
+
super().__init__(config, device)
|
|
19
|
+
|
|
20
|
+
self.pipeline = pipeline
|
|
21
|
+
|
|
22
|
+
async def _generate(self, params: Dict[str, Any]) -> List[PILImage.Image]:
|
|
23
|
+
pass
|
|
24
|
+
|
|
25
|
+
async def _resolve_generation_params(self, context: ComponentActionContext) -> Dict[str, Any]:
|
|
26
|
+
pass
|
|
27
|
+
|
|
28
|
+
class SdxlImageGenerationTaskService(ImageGenerationTaskService):
|
|
29
|
+
def __init__(self, id: str, config: ModelComponentConfig, daemon: bool):
|
|
30
|
+
super().__init__(id, config, daemon)
|
|
31
|
+
|
|
32
|
+
self.pipeline: Optional[Any] = None
|
|
33
|
+
self.device: Optional[torch.device] = None
|
|
34
|
+
|
|
35
|
+
def get_setup_requirements(self) -> Optional[List[str]]:
|
|
36
|
+
return None
|
|
37
|
+
|
|
38
|
+
async def _serve(self) -> None:
|
|
39
|
+
try:
|
|
40
|
+
self.pipeline, self.device = self._load_pretrained_pipeline()
|
|
41
|
+
logging.info(f"Model loaded successfully on device '{self.device}': {self.config.model}")
|
|
42
|
+
except Exception as e:
|
|
43
|
+
logging.error(f"Failed to load model '{self.config.model}': {e}")
|
|
44
|
+
raise
|
|
45
|
+
|
|
46
|
+
async def _shutdown(self) -> None:
|
|
47
|
+
self.pipeline = None
|
|
48
|
+
self.device = None
|
|
49
|
+
|
|
50
|
+
def _load_pretrained_pipeline(self) -> Tuple[Any, torch.device]:
|
|
51
|
+
pass
|
|
52
|
+
|
|
53
|
+
async def _run(self, action: ModelActionConfig, context: ComponentActionContext, loop: asyncio.AbstractEventLoop) -> Any:
|
|
54
|
+
return SdxlImageGenerationModelActionConfig(action, self.model).run(context)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .custom import *
|
|
@@ -57,7 +57,7 @@ class RealEsrganImageUpscaleTaskService(ImageUpscaleTaskService):
|
|
|
57
57
|
hub.cached_download = cached_download
|
|
58
58
|
|
|
59
59
|
def get_setup_requirements(self) -> Optional[List[str]]:
|
|
60
|
-
return [ "realesrgan" ]
|
|
60
|
+
return [ "realesrgan>=1.0@git+https://github.com/sberbank-ai/Real-ESRGAN.git" ]
|
|
61
61
|
|
|
62
62
|
async def _serve(self) -> None:
|
|
63
63
|
try:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Optional
|
|
1
|
+
from typing import Optional, Tuple
|
|
2
2
|
from packaging.requirements import Requirement, SpecifierSet
|
|
3
3
|
from packaging.utils import canonicalize_name
|
|
4
4
|
from importlib.metadata import version, PackageNotFoundError
|
|
@@ -9,7 +9,7 @@ async def install_package(package_spec: str) -> None:
|
|
|
9
9
|
"""Install a package using pip.
|
|
10
10
|
|
|
11
11
|
Args:
|
|
12
|
-
package_spec: Package specification to install (e.g., "torch>=2.0.0")
|
|
12
|
+
package_spec: Package specification to install (e.g., "torch>=2.0.0" or "git+https://github.com/...")
|
|
13
13
|
"""
|
|
14
14
|
process = await asyncio.create_subprocess_exec(
|
|
15
15
|
sys.executable, "-m", "pip", "install", package_spec,
|
|
@@ -31,7 +31,7 @@ def parse_requirement(package_spec: str) -> Optional[Requirement]:
|
|
|
31
31
|
"""Attempt to parse the package specification as a PEP 508 requirement.
|
|
32
32
|
|
|
33
33
|
Args:
|
|
34
|
-
package_spec: A package specification string (e.g., "torch>=2.0.0")
|
|
34
|
+
package_spec: A package specification string (e.g., "torch>=2.0.0" or "git+https://github.com/...")
|
|
35
35
|
|
|
36
36
|
Returns:
|
|
37
37
|
A Requirement object if the specification can be parsed, None otherwise
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .image_generation import *
|
model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/common.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from ...common import CommonModelActionConfig
|
|
6
|
+
|
|
7
|
+
class CommonImageGenerationParamsConfig(BaseModel):
|
|
8
|
+
pass
|
|
9
|
+
|
|
10
|
+
class CommonImageGenerationModelActionConfig(CommonModelActionConfig):
|
|
11
|
+
text: Union[str, List[str]] = Field(..., description="Text prompt describing the image to generate.")
|
|
12
|
+
batch_size: Union[int, str] = Field(default=1, description="Number of images to generate simultaneously in each batch.")
|
|
13
|
+
params: CommonImageGenerationParamsConfig = Field(..., description="Model-specific parameters for image generation.")
|
model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/flux.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from .common import CommonImageGenerationModelActionConfig
|
|
6
|
+
|
|
7
|
+
class FluxImageGenerationParamsConfig(BaseModel):
|
|
8
|
+
pass
|
|
9
|
+
|
|
10
|
+
class FluxImageGenerationModelActionConfig(CommonImageGenerationModelActionConfig):
|
|
11
|
+
params: FluxImageGenerationParamsConfig = Field(..., description="Image generation configuration parameters.")
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from .common import CommonImageGenerationModelActionConfig
|
|
6
|
+
|
|
7
|
+
class HunyuanImageGenerationParamsConfig(BaseModel):
|
|
8
|
+
pass
|
|
9
|
+
|
|
10
|
+
class HunyuanImageGenerationModelActionConfig(CommonImageGenerationModelActionConfig):
|
|
11
|
+
params: HunyuanImageGenerationParamsConfig = Field(..., description="Image generation configuration parameters.")
|
model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/sdxl.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from .common import CommonImageGenerationModelActionConfig
|
|
6
|
+
|
|
7
|
+
class SdxlImageGenerationParamsConfig(BaseModel):
|
|
8
|
+
pass
|
|
9
|
+
|
|
10
|
+
class SdxlImageGenerationModelActionConfig(CommonImageGenerationModelActionConfig):
|
|
11
|
+
params: SdxlImageGenerationParamsConfig = Field(..., description="Image generation configuration parameters.")
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .image_upscale import *
|
model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/image_upscale.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from .impl import *
|
|
3
|
+
|
|
4
|
+
ImageUpscaleModelActionConfig = Union[
|
|
5
|
+
EsrganImageUpscaleModelActionConfig,
|
|
6
|
+
RealEsrganImageUpscaleModelActionConfig,
|
|
7
|
+
LdsrImageUpscaleModelActionConfig,
|
|
8
|
+
SwinIRImageUpscaleModelActionConfig,
|
|
9
|
+
]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from ...common import CommonModelActionConfig
|
|
6
|
+
|
|
7
|
+
class ColorFormat(str, Enum):
|
|
8
|
+
RGB = "rgb"
|
|
9
|
+
BGR = "bgr"
|
|
10
|
+
|
|
11
|
+
class CommonImageUpscaleParamsConfig(BaseModel):
|
|
12
|
+
color_format: ColorFormat = Field(default=ColorFormat.RGB, description="Color format for image processing.")
|
|
13
|
+
|
|
14
|
+
class CommonImageUpscaleModelActionConfig(CommonModelActionConfig):
|
|
15
|
+
image: Union[str, List[str]] = Field(..., description="Input image to upscale.")
|
|
16
|
+
batch_size: Union[int, str] = Field(default=1, description="Number of images to process in a single batch.")
|
|
17
|
+
params: CommonImageUpscaleParamsConfig = Field(..., description="Image upscale configuration parameters.")
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from .common import CommonImageUpscaleModelActionConfig, CommonImageUpscaleParamsConfig
|
|
6
|
+
|
|
7
|
+
class EsrganImageUpscaleParamsConfig(CommonImageUpscaleParamsConfig):
|
|
8
|
+
tile_size: Union[int, str] = Field(default=0, description="Tile size for processing large images (0 = no tiling).")
|
|
9
|
+
tile_pad_size: Union[int, str] = Field(default=10, description="Padding for tiles to avoid seam artifacts.")
|
|
10
|
+
pre_pad_size: Union[int, str] = Field(default=0, description="Pre-padding before processing.")
|
|
11
|
+
half_precision: Union[bool, str] = Field(default=False, description="Use half precision (FP16) for faster inference.")
|
|
12
|
+
|
|
13
|
+
class EsrganImageUpscaleModelActionConfig(CommonImageUpscaleModelActionConfig):
|
|
14
|
+
params: EsrganImageUpscaleParamsConfig = Field(default_factory=EsrganImageUpscaleParamsConfig)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from .common import CommonImageUpscaleModelActionConfig, CommonImageUpscaleParamsConfig
|
|
6
|
+
|
|
7
|
+
class LdsrImageUpscaleParamsConfig(CommonImageUpscaleParamsConfig):
|
|
8
|
+
steps: Union[int, str] = Field(default=50, description="Number of diffusion steps.")
|
|
9
|
+
eta: Union[float, str] = Field(default=1.0, description="DDIM eta parameter.")
|
|
10
|
+
downsample_method: Optional[str] = Field(default=None, description="Downsampling method for preprocessing.")
|
|
11
|
+
half_precision: Union[bool, str] = Field(default=False, description="Use half precision (FP16) for faster inference.")
|
|
12
|
+
|
|
13
|
+
class LdsrImageUpscaleModelActionConfig(CommonImageUpscaleModelActionConfig):
|
|
14
|
+
params: LdsrImageUpscaleParamsConfig = Field(default_factory=LdsrImageUpscaleParamsConfig)
|
model_compose-0.4.7/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/real_esrgan.py
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from .common import CommonImageUpscaleModelActionConfig, CommonImageUpscaleParamsConfig
|
|
6
|
+
|
|
7
|
+
class RealEsrganImageUpscaleParamsConfig(CommonImageUpscaleParamsConfig):
|
|
8
|
+
denoise_strength: Union[float, str] = Field(default=0.5, description="Denoising strength (0.0-1.0).")
|
|
9
|
+
tile_batch_size: Union[int, str] = Field(default=4, description="Number of tiles to process in a single batch.")
|
|
10
|
+
tile_size: Union[int, str] = Field(default=192, description="Tile size for large image processing.")
|
|
11
|
+
tile_pad_size: Union[int, str] = Field(default=24, description="Tile padding size.")
|
|
12
|
+
pre_pad_size: Union[int, str] = Field(default=15, description="Pre-padding size.")
|
|
13
|
+
half_precision: Union[bool, str] = Field(default=False, description="Use half precision (FP16) for faster inference.")
|
|
14
|
+
|
|
15
|
+
class RealEsrganImageUpscaleModelActionConfig(CommonImageUpscaleModelActionConfig):
|
|
16
|
+
params: RealEsrganImageUpscaleParamsConfig = Field(default_factory=RealEsrganImageUpscaleParamsConfig)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from .common import CommonImageUpscaleModelActionConfig, CommonImageUpscaleParamsConfig
|
|
6
|
+
|
|
7
|
+
class SwinIRImageUpscaleParamsConfig(CommonImageUpscaleParamsConfig):
|
|
8
|
+
task: Union[str, str] = Field(default="real_sr", description="SwinIR task type: real_sr, classical_sr, dn, etc.")
|
|
9
|
+
tile: Union[int, str] = Field(default=None, description="Tile size for large image processing.")
|
|
10
|
+
tile_overlap: Union[int, str] = Field(default=32, description="Overlap between tiles.")
|
|
11
|
+
scale: Union[int, str] = Field(default=4, description="Upscaling factor.")
|
|
12
|
+
window_size: Union[int, str] = Field(default=8, description="Window size for attention computation.")
|
|
13
|
+
jpeg_quality: Union[int, str] = Field(default=40, description="JPEG quality for compression artifacts removal task.")
|
|
14
|
+
|
|
15
|
+
class SwinIRImageUpscaleModelActionConfig(CommonImageUpscaleModelActionConfig):
|
|
16
|
+
params: SwinIRImageUpscaleParamsConfig = Field(default_factory=SwinIRImageUpscaleParamsConfig)
|
model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_generation/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .image_generation import *
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from pydantic import BaseModel, Field
|
|
3
|
+
from .impl import *
|
|
4
|
+
|
|
5
|
+
ImageGenerationModelComponentConfig = Annotated[
|
|
6
|
+
Union[
|
|
7
|
+
HunyuanImageGenerationModelComponentConfig
|
|
8
|
+
],
|
|
9
|
+
Field(discriminator="family")
|
|
10
|
+
]
|
model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/common.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Type, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from ...common import CommonModelComponentConfig, ModelTaskType, ModelDriver
|
|
6
|
+
|
|
7
|
+
class ImageGenerationModelFamily(str, Enum):
|
|
8
|
+
SDXL = "sdxl"
|
|
9
|
+
FLUX = "flux"
|
|
10
|
+
HUNYUAN_IMAGE = "hunyuan-image"
|
|
11
|
+
|
|
12
|
+
class CommonImageGenerationModelComponentConfig(CommonModelComponentConfig):
|
|
13
|
+
task: Literal[ModelTaskType.IMAGE_GENERATION]
|
|
14
|
+
driver: ModelDriver = Field(default=ModelDriver.CUSTOM)
|
|
15
|
+
family: ImageGenerationModelFamily = Field(..., description="Model family.")
|
|
16
|
+
version: Optional[str] = Field(default=None, description="")
|
|
17
|
+
|
|
18
|
+
@model_validator(mode="before")
|
|
19
|
+
def inflate_single_action(cls, values: Dict[str, Any]):
|
|
20
|
+
if "actions" not in values:
|
|
21
|
+
action_keys = set(cls._get_action_class().model_fields.keys()) - set(CommonModelComponentConfig.model_fields.keys())
|
|
22
|
+
if any(k in values for k in action_keys):
|
|
23
|
+
values["actions"] = [ { k: values.pop(k) for k in action_keys if k in values } ]
|
|
24
|
+
return values
|
|
25
|
+
|
|
26
|
+
@classmethod
|
|
27
|
+
def _get_action_class(cls) -> Type[BaseModel]:
|
|
28
|
+
return None
|
model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/flux.py
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Type, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from mindor.dsl.schema.action import FluxImageGenerationModelActionConfig
|
|
6
|
+
from .common import CommonImageGenerationModelComponentConfig, ImageGenerationModelFamily
|
|
7
|
+
|
|
8
|
+
class FluxImageGenerationModelComponentConfig(CommonImageGenerationModelComponentConfig):
|
|
9
|
+
family: Literal[ImageGenerationModelFamily.FLUX]
|
|
10
|
+
actions: List[FluxImageGenerationModelActionConfig] = Field(default_factory=list)
|
|
11
|
+
|
|
12
|
+
@classmethod
|
|
13
|
+
def _get_action_class(cls) -> Type[BaseModel]:
|
|
14
|
+
return FluxImageGenerationModelActionConfig
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Type, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from mindor.dsl.schema.action import HunyuanImageGenerationModelActionConfig
|
|
6
|
+
from .common import CommonImageGenerationModelComponentConfig, ImageGenerationModelFamily
|
|
7
|
+
|
|
8
|
+
class HunyuanImageGenerationModelComponentConfig(CommonImageGenerationModelComponentConfig):
|
|
9
|
+
family: Literal[ImageGenerationModelFamily.HUNYUAN_IMAGE]
|
|
10
|
+
actions: List[HunyuanImageGenerationModelActionConfig] = Field(default_factory=list)
|
|
11
|
+
|
|
12
|
+
@classmethod
|
|
13
|
+
def _get_action_class(cls) -> Type[BaseModel]:
|
|
14
|
+
return HunyuanImageGenerationModelActionConfig
|
model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/sdxl.py
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Type, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from mindor.dsl.schema.action import SdxlImageGenerationModelActionConfig
|
|
6
|
+
from .common import CommonImageGenerationModelComponentConfig, ImageGenerationModelFamily
|
|
7
|
+
|
|
8
|
+
class SdxlImageGenerationModelComponentConfig(CommonImageGenerationModelComponentConfig):
|
|
9
|
+
family: Literal[ImageGenerationModelFamily.SDXL]
|
|
10
|
+
actions: List[SdxlImageGenerationModelActionConfig] = Field(default_factory=list)
|
|
11
|
+
|
|
12
|
+
@classmethod
|
|
13
|
+
def _get_action_class(cls) -> Type[BaseModel]:
|
|
14
|
+
return SdxlImageGenerationModelActionConfig
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .image_upscale import *
|
model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/image_upscale.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
|
|
2
|
+
from pydantic import BaseModel, Field
|
|
3
|
+
from .impl import *
|
|
4
|
+
|
|
5
|
+
ImageUpscaleModelComponentConfig = Annotated[
|
|
6
|
+
Union[
|
|
7
|
+
EsrganImageUpscaleModelComponentConfig,
|
|
8
|
+
RealEsrganImageUpscaleModelComponentConfig,
|
|
9
|
+
LdsrImageUpscaleModelComponentConfig,
|
|
10
|
+
SwinIRImageUpscaleModelComponentConfig,
|
|
11
|
+
],
|
|
12
|
+
Field(discriminator="architecture")
|
|
13
|
+
]
|
model_compose-0.4.7/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/common.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Type, Any
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import model_validator
|
|
5
|
+
from ...common import CommonModelComponentConfig, ModelTaskType, ModelDriver
|
|
6
|
+
|
|
7
|
+
class ImageUpscaleModelArchitecture(str, Enum):
|
|
8
|
+
ESRGAN = "esrgan"
|
|
9
|
+
REAL_ESRGAN = "real-esrgan"
|
|
10
|
+
LDSR = "ldsr"
|
|
11
|
+
SWINIR = "swinir"
|
|
12
|
+
|
|
13
|
+
class CommonImageUpscaleModelComponentConfig(CommonModelComponentConfig):
|
|
14
|
+
task: Literal[ModelTaskType.IMAGE_UPSCALE]
|
|
15
|
+
driver: ModelDriver = Field(default=ModelDriver.CUSTOM)
|
|
16
|
+
architecture: ImageUpscaleModelArchitecture = Field(..., description="Model architecture.")
|
|
17
|
+
|
|
18
|
+
@model_validator(mode="before")
|
|
19
|
+
def inflate_single_action(cls, values: Dict[str, Any]):
|
|
20
|
+
if "actions" not in values:
|
|
21
|
+
action_keys = set(cls._get_action_class().model_fields.keys()) - set(CommonModelComponentConfig.model_fields.keys())
|
|
22
|
+
if any(k in values for k in action_keys):
|
|
23
|
+
values["actions"] = [ { k: values.pop(k) for k in action_keys if k in values } ]
|
|
24
|
+
return values
|
|
25
|
+
|
|
26
|
+
@classmethod
|
|
27
|
+
def _get_action_class(cls) -> Type[BaseModel]:
|
|
28
|
+
return None
|