1
0
Fork 0
onnx-web/api/onnx_web/chain/persist_disk.py

48 lines
1.3 KiB
Python
Raw Normal View History

2023-01-28 23:09:19 +00:00
from logging import getLogger
from typing import List, Optional
2023-02-05 13:53:26 +00:00
2023-01-28 15:08:59 +00:00
from PIL import Image
2023-02-05 13:53:26 +00:00
from ..output import save_image
from ..params import ImageParams, Size, SizeChart, StageParams
2023-02-26 05:49:39 +00:00
from ..server import ServerContext
2023-02-26 20:15:30 +00:00
from ..worker import WorkerContext
from .base import BaseStage
from .result import StageResult
2023-01-28 15:08:59 +00:00
2023-01-28 23:09:19 +00:00
logger = getLogger(__name__)
2023-01-28 15:08:59 +00:00
class PersistDiskStage(BaseStage):
max_tile = SizeChart.max
def run(
self,
_worker: WorkerContext,
server: ServerContext,
_stage: StageParams,
params: ImageParams,
sources: StageResult,
*,
output: List[str],
2023-09-11 04:20:49 +00:00
size: Optional[Size] = None,
stage_source: Optional[Image.Image] = None,
**kwargs,
) -> StageResult:
2023-11-20 00:39:39 +00:00
logger.info("persisting %s images to disk: %s", len(sources), output)
2023-11-06 14:48:35 +00:00
2024-01-03 03:49:22 +00:00
for name, source, metadata in zip(output, sources.as_image(), sources.metadata):
dest = save_image(
server,
name,
source,
params=metadata.params,
size=metadata.size,
upscale=metadata.upscale,
border=metadata.border,
highres=metadata.highres,
) # TODO: inversions and loras
logger.info("saved image to %s", dest)
return sources