diff --git a/invokeai/app/services/board_images.py b/invokeai/app/services/board_images.py index cf16993a7a..072effbfae 100644 --- a/invokeai/app/services/board_images.py +++ b/invokeai/app/services/board_images.py @@ -1,6 +1,6 @@ from abc import ABC, abstractmethod from logging import Logger -from typing import Union +from typing import List, Union from invokeai.app.services.board_image_record_storage import BoardImageRecordStorageBase from invokeai.app.services.board_record_storage import ( BoardRecord, @@ -132,11 +132,11 @@ class BoardImagesService(BoardImagesServiceABC): def board_record_to_dto( - board_record: BoardRecord, cover_image_url: str | None, image_count: int + board_record: BoardRecord, cover_image_name: str | None, image_count: int ) -> BoardDTO: """Converts a board record to a board DTO.""" return BoardDTO( - **board_record.dict(), - cover_image_url=cover_image_url, + **board_record.dict(exclude={'cover_image_name'}), + cover_image_name=cover_image_name, image_count=image_count, ) diff --git a/invokeai/app/services/boards.py b/invokeai/app/services/boards.py index 148af50103..93def0cafd 100644 --- a/invokeai/app/services/boards.py +++ b/invokeai/app/services/boards.py @@ -101,15 +101,15 @@ class BoardService(BoardServiceABC): def get_dto(self, board_id: str) -> BoardDTO: board_record = self._services.board_records.get(board_id) - cover_image_url = ( - self._services.urls.get_image_url(board_record.cover_image_name, True) - if board_record.cover_image_name - else None - ) + cover_image = self._services.image_records.get_most_recent_image_for_board(board_recordboard_id) + if (cover_image): + cover_image_name = cover_image.image_name + else: + cover_image_name = None image_count = self._services.board_image_records.get_image_count_for_board( board_id ) - return board_record_to_dto(board_record, cover_image_url, image_count) + return board_record_to_dto(board_record, cover_image_name, image_count) def update( self, @@ -117,15 +117,16 @@ class BoardService(BoardServiceABC): changes: BoardChanges, ) -> BoardDTO: board_record = self._services.board_records.update(board_id, changes) - cover_image_url = ( - self._services.urls.get_image_url(board_record.cover_image_name, True) - if board_record.cover_image_name - else None - ) + cover_image = self._services.image_records.get_most_recent_image_for_board(board_record.board_id) + if (cover_image): + cover_image_name = cover_image.image_name + else: + cover_image_name = None + image_count = self._services.board_image_records.get_image_count_for_board( board_id ) - return board_record_to_dto(board_record, cover_image_url, image_count) + return board_record_to_dto(board_record, cover_image_name, image_count) def delete(self, board_id: str) -> None: self._services.board_records.delete(board_id) @@ -138,14 +139,14 @@ class BoardService(BoardServiceABC): for r in board_records.items: cover_image = self._services.image_records.get_most_recent_image_for_board(r.board_id) if (cover_image): - cover_image_url = self._services.urls.get_image_url(cover_image.image_name, True) + cover_image_name = cover_image.image_name else: - cover_image_url = None + cover_image_name = None image_count = self._services.board_image_records.get_image_count_for_board( r.board_id ) - board_dtos.append(board_record_to_dto(r, cover_image_url, image_count)) + board_dtos.append(board_record_to_dto(r, cover_image_name, image_count)) return OffsetPaginatedResults[BoardDTO]( items=board_dtos, offset=offset, limit=limit, total=len(board_dtos) diff --git a/invokeai/app/services/models/board_record.py b/invokeai/app/services/models/board_record.py index 35c4cea9b0..16748570c4 100644 --- a/invokeai/app/services/models/board_record.py +++ b/invokeai/app/services/models/board_record.py @@ -27,8 +27,8 @@ class BoardRecord(BaseModel): class BoardDTO(BoardRecord): """Deserialized board record with cover image URL and image count.""" - cover_image_url: Optional[str] = Field( - description="The URL of the thumbnail of the board's cover image." + cover_image_name: Optional[str] = Field( + description="The name of the board's cover image." ) """The URL of the thumbnail of the most recent image in the board.""" image_count: int = Field(description="The number of images in the board.")