[PR #341] [MERGED] Image Studio: fix route parity, accurate create status, async transform jobs, and cost catalog #643

Closed
opened 2026-03-13 21:01:34 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/AJaySi/ALwrity/pull/341
Author: @AJaySi
Created: 2/11/2026
Status: Merged
Merged: 2/11/2026
Merged by: @AJaySi

Base: mainHead: codex/review-image-studio-feature-and-suggest-improvements


📝 Commits (1)

  • d9b2807 Implement Image Studio P0/P1 improvements and async transform jobs

📊 Changes

16 files changed (+534 additions, -48 deletions)

View changed files

IMAGE_STUDIO_REVIEW.md (+80 -0)
📝 backend/routers/image_studio_modules/advanced.py (+190 -1)
📝 backend/routers/image_studio_modules/generation.py (+16 -1)
📝 backend/routers/image_studio_modules/models/__init__.py (+6 -0)
📝 backend/routers/image_studio_modules/models/transform.py (+31 -1)
📝 backend/services/image_studio/create_service.py (+14 -4)
📝 backend/services/image_studio/studio_manager.py (+19 -0)
📝 frontend/src/App.tsx (+3 -2)
📝 frontend/src/components/ImageStudio/ImageProcessingStudio.tsx (+3 -3)
📝 frontend/src/components/ImageStudio/ImageStudioDashboard.tsx (+48 -11)
📝 frontend/src/components/ImageStudio/TransformStudio.tsx (+26 -0)
📝 frontend/src/components/ImageStudio/dashboard/ModuleInfoCard.tsx (+6 -0)
📝 frontend/src/components/ImageStudio/dashboard/modules.tsx (+3 -4)
📝 frontend/src/components/ImageStudio/dashboard/types.ts (+2 -0)
📝 frontend/src/hooks/useImageStudio.ts (+1 -0)
📝 frontend/src/hooks/useTransformStudio.ts (+86 -21)

📄 Description

Motivation

  • Ensure the Transform Studio is discoverable and usable by mounting its frontend route and wiring the component to the router.
  • Make Create Studio return truthful top-level success semantics so mixed/failed variations are clear to callers.
  • Reduce expectation mismatch by marking resizer/watermark features as roadmap items in UI surfaces.
  • Improve reliability and UX for long-running transform operations by introducing async job primitives and clearer error guidance.
  • Surface backend-driven pricing hints to the dashboard so pricing cards can display confidence and update metadata.

Description

  • Frontend routing: added TransformStudio import and mounted the /image-transform route in frontend/src/App.tsx.
  • Create service: hardened completion semantics in backend/services/image_studio/create_service.py so the response now returns success: false when all variations fail and status set to success / partial_success / failed accordingly.
  • Transform async jobs: introduced in-memory job queue/orchestration and endpoints in backend/routers/image_studio_modules/advanced.py with POST /transform/image-to-video/async, POST /transform/talking-avatar/async, GET /transform/jobs/{job_id}, and POST /transform/jobs/{job_id}/cancel, plus new Pydantic models in backend/routers/image_studio_modules/models/transform.py.
  • Frontend transform flow: updated frontend/src/hooks/useTransformStudio.ts and frontend/src/components/ImageStudio/TransformStudio.tsx to use the async job endpoints with polling, progress UI, and a cancel action, and added actionable error mapping (timeouts, credit/limit hints, audio/image validation).
  • Cost catalog: added ImageStudioManager.get_cost_catalog() and GET /cost-catalog in backend/routers/image_studio_modules/generation.py, and dashboard wiring in frontend/src/components/ImageStudio/ImageStudioDashboard.tsx to overlay backend-driven pricing with confidence/updatedAt shown in ModuleInfoCard.
  • UI copy: updated Image Processing surfaces and module metadata to mark resizer/watermark as roadmap items (frontend/src/components/ImageStudio/ImageProcessingStudio.tsx and frontend/src/components/ImageStudio/dashboard/modules.tsx).

Testing

  • Ran Python byte-compile on modified backend modules with python -m py_compile ... which succeeded for the updated backend files.
  • Attempted frontend build with cd frontend && npm run -s build which failed in this environment due to missing cross-env (environment dependency, not code syntax).
  • Ran TypeScript check cd frontend && npx tsc --noEmit which surfaced missing frontend dependencies/types in the sandbox (errors are environmental and not caused by the targeted code changes).
  • Tried an end-to-end screenshot with Playwright (navigating to http://localhost:3000/image-studio) which failed because the local dev server was not reachable (ERR_EMPTY_RESPONSE).

Codex Task


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/AJaySi/ALwrity/pull/341 **Author:** [@AJaySi](https://github.com/AJaySi) **Created:** 2/11/2026 **Status:** ✅ Merged **Merged:** 2/11/2026 **Merged by:** [@AJaySi](https://github.com/AJaySi) **Base:** `main` ← **Head:** `codex/review-image-studio-feature-and-suggest-improvements` --- ### 📝 Commits (1) - [`d9b2807`](https://github.com/AJaySi/ALwrity/commit/d9b280752ebc1ead426a0b6a9405f16439fb9a2a) Implement Image Studio P0/P1 improvements and async transform jobs ### 📊 Changes **16 files changed** (+534 additions, -48 deletions) <details> <summary>View changed files</summary> ➕ `IMAGE_STUDIO_REVIEW.md` (+80 -0) 📝 `backend/routers/image_studio_modules/advanced.py` (+190 -1) 📝 `backend/routers/image_studio_modules/generation.py` (+16 -1) 📝 `backend/routers/image_studio_modules/models/__init__.py` (+6 -0) 📝 `backend/routers/image_studio_modules/models/transform.py` (+31 -1) 📝 `backend/services/image_studio/create_service.py` (+14 -4) 📝 `backend/services/image_studio/studio_manager.py` (+19 -0) 📝 `frontend/src/App.tsx` (+3 -2) 📝 `frontend/src/components/ImageStudio/ImageProcessingStudio.tsx` (+3 -3) 📝 `frontend/src/components/ImageStudio/ImageStudioDashboard.tsx` (+48 -11) 📝 `frontend/src/components/ImageStudio/TransformStudio.tsx` (+26 -0) 📝 `frontend/src/components/ImageStudio/dashboard/ModuleInfoCard.tsx` (+6 -0) 📝 `frontend/src/components/ImageStudio/dashboard/modules.tsx` (+3 -4) 📝 `frontend/src/components/ImageStudio/dashboard/types.ts` (+2 -0) 📝 `frontend/src/hooks/useImageStudio.ts` (+1 -0) 📝 `frontend/src/hooks/useTransformStudio.ts` (+86 -21) </details> ### 📄 Description ### Motivation - Ensure the Transform Studio is discoverable and usable by mounting its frontend route and wiring the component to the router. - Make Create Studio return truthful top-level success semantics so mixed/failed variations are clear to callers. - Reduce expectation mismatch by marking resizer/watermark features as roadmap items in UI surfaces. - Improve reliability and UX for long-running transform operations by introducing async job primitives and clearer error guidance. - Surface backend-driven pricing hints to the dashboard so pricing cards can display confidence and update metadata. ### Description - Frontend routing: added `TransformStudio` import and mounted the `/image-transform` route in `frontend/src/App.tsx`. - Create service: hardened completion semantics in `backend/services/image_studio/create_service.py` so the response now returns `success: false` when all variations fail and `status` set to `success` / `partial_success` / `failed` accordingly. - Transform async jobs: introduced in-memory job queue/orchestration and endpoints in `backend/routers/image_studio_modules/advanced.py` with `POST /transform/image-to-video/async`, `POST /transform/talking-avatar/async`, `GET /transform/jobs/{job_id}`, and `POST /transform/jobs/{job_id}/cancel`, plus new Pydantic models in `backend/routers/image_studio_modules/models/transform.py`. - Frontend transform flow: updated `frontend/src/hooks/useTransformStudio.ts` and `frontend/src/components/ImageStudio/TransformStudio.tsx` to use the async job endpoints with polling, progress UI, and a cancel action, and added actionable error mapping (timeouts, credit/limit hints, audio/image validation). - Cost catalog: added `ImageStudioManager.get_cost_catalog()` and `GET /cost-catalog` in `backend/routers/image_studio_modules/generation.py`, and dashboard wiring in `frontend/src/components/ImageStudio/ImageStudioDashboard.tsx` to overlay backend-driven pricing with `confidence`/`updatedAt` shown in `ModuleInfoCard`. - UI copy: updated Image Processing surfaces and module metadata to mark resizer/watermark as roadmap items (`frontend/src/components/ImageStudio/ImageProcessingStudio.tsx` and `frontend/src/components/ImageStudio/dashboard/modules.tsx`). ### Testing - Ran Python byte-compile on modified backend modules with `python -m py_compile ...` which succeeded for the updated backend files. - Attempted frontend build with `cd frontend && npm run -s build` which failed in this environment due to missing `cross-env` (environment dependency, not code syntax). - Ran TypeScript check `cd frontend && npx tsc --noEmit` which surfaced missing frontend dependencies/types in the sandbox (errors are environmental and not caused by the targeted code changes). - Tried an end-to-end screenshot with Playwright (navigating to `http://localhost:3000/image-studio`) which failed because the local dev server was not reachable (`ERR_EMPTY_RESPONSE`). ------ [Codex Task](https://chatgpt.com/codex/tasks/task_e_698b60573bf883289cacfaed5a9fddb7) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-13 21:01:34 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ALwrity#643
No description provided.