Skip to content

Commit

Permalink
fix(api): use exception level logs
Browse files Browse the repository at this point in the history
  • Loading branch information
ssube committed Mar 17, 2023
1 parent d9bae80 commit 226710a
Show file tree
Hide file tree
Showing 11 changed files with 43 additions and 51 deletions.
6 changes: 3 additions & 3 deletions api/onnx_web/chain/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ def __call__(
kwargs = stage_kwargs or {}
kwargs = {**pipeline_kwargs, **kwargs}

logger.info(
logger.debug(
"running stage %s on image with dimensions %sx%s, %s",
name,
image.width,
Expand Down Expand Up @@ -145,7 +145,7 @@ def stage_tile(tile: Image.Image, _dims) -> Image.Image:
[stage_tile],
)
else:
logger.info("image within tile size, running stage")
logger.debug("image within tile size, running stage")
image = stage_pipe(
job,
server,
Expand All @@ -156,7 +156,7 @@ def stage_tile(tile: Image.Image, _dims) -> Image.Image:
**kwargs
)

logger.info(
logger.debug(
"finished stage %s, result size: %sx%s", name, image.width, image.height
)

Expand Down
4 changes: 2 additions & 2 deletions api/onnx_web/chain/persist_s3.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def persist_s3(
try:
s3.upload_fileobj(data, bucket, output)
logger.info("saved image to %s/%s", bucket, output)
except Exception as err:
logger.error("error saving image to S3: %s", err)
except Exception:
logger.exception("error saving image to S3")

return source
4 changes: 2 additions & 2 deletions api/onnx_web/chain/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def process_tile_grid(
idx = (y * tiles_x) + x
left = x * tile
top = y * tile
logger.info("processing tile %s of %s, %s.%s", idx + 1, total, y, x)
logger.debug("processing tile %s of %s, %s.%s", idx + 1, total, y, x)
tile_image = source.crop((left, top, left + tile, top + tile))

for filter in filters:
Expand Down Expand Up @@ -80,7 +80,7 @@ def process_tile_spiral(
top = center_y + int(top)

counter += 1
logger.info("processing tile %s of %s, %sx%s", counter, len(tiles), left, top)
logger.debug("processing tile %s of %s, %sx%s", counter, len(tiles), left, top)

# TODO: only valid for scale == 1, resize source for others
tile_image = image.crop((left, top, left + tile, top + tile))
Expand Down
34 changes: 15 additions & 19 deletions api/onnx_web/convert/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from logging import getLogger
from os import makedirs, path
from sys import exit
from traceback import format_exception
from typing import Any, Dict, List, Optional, Tuple
from urllib.parse import urlparse

Expand Down Expand Up @@ -199,8 +198,8 @@ def convert_models(ctx: ConversionContext, args, models: Models):
try:
dest = fetch_model(ctx, name, source, model_format=model_format)
logger.info("finished downloading source: %s -> %s", source, dest)
except Exception as e:
logger.error("error fetching source %s: %s", name, e)
except Exception:
logger.exception("error fetching source %s", name)

if args.diffusion and "diffusion" in models:
for model in models.get("diffusion"):
Expand Down Expand Up @@ -246,11 +245,10 @@ def convert_models(ctx: ConversionContext, args, models: Models):
base_token=inversion.get("token"),
)

except Exception as e:
logger.error(
"error converting diffusion model %s: %s",
except Exception:
logger.exception(
"error converting diffusion model %s",
name,
format_exception(type(e), e, e.__traceback__),
)

if args.upscaling and "upscaling" in models:
Expand All @@ -268,11 +266,10 @@ def convert_models(ctx: ConversionContext, args, models: Models):
ctx, name, model["source"], model_format=model_format
)
convert_upscale_resrgan(ctx, model, source)
except Exception as e:
logger.error(
"error converting upscaling model %s: %s",
except Exception:
logger.exception(
"error converting upscaling model %s",
name,
format_exception(type(e), e, e.__traceback__),
)

if args.correction and "correction" in models:
Expand All @@ -289,11 +286,10 @@ def convert_models(ctx: ConversionContext, args, models: Models):
ctx, name, model["source"], model_format=model_format
)
convert_correction_gfpgan(ctx, model, source)
except Exception as e:
logger.error(
"error converting correction model %s: %s",
except Exception:
logger.exception(
"error converting correction model %s",
name,
format_exception(type(e), e, e.__traceback__),
)


Expand Down Expand Up @@ -375,10 +371,10 @@ def main() -> int:
validate(data, extra_schema)
logger.info("converting extra models")
convert_models(ctx, args, data)
except ValidationError as err:
logger.error("invalid data in extras file: %s", err)
except Exception as err:
logger.error("error converting extra models: %s", err)
except ValidationError:
logger.exception("invalid data in extras file")
except Exception:
logger.exception("error converting extra models")

return 0

Expand Down
4 changes: 2 additions & 2 deletions api/onnx_web/convert/diffusion/lora.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,10 +160,10 @@ def blend_loras(
fixed_initializer_names = [
fix_initializer_name(node.name) for node in base_model.graph.initializer
]
# logger.info("fixed initializer names: %s", fixed_initializer_names)
logger.trace("fixed initializer names: %s", fixed_initializer_names)

fixed_node_names = [fix_node_name(node.name) for node in base_model.graph.node]
# logger.info("fixed node names: %s", fixed_node_names)
logger.trace("fixed node names: %s", fixed_node_names)

for base_key, weights in blended.items():
conv_key = base_key + "_Conv"
Expand Down
11 changes: 3 additions & 8 deletions api/onnx_web/convert/diffusion/original.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
import os
import re
import shutil
import sys
import traceback
from logging import getLogger
from typing import Dict, List

Expand Down Expand Up @@ -1395,7 +1393,6 @@ def extract_checkpoint(
image_size = 512 if is_512 else 768
# Needed for V2 models so we can create the right text encoder.
upcast_attention = False
msg = None

# Create empty config
db_config = TrainingConfig(
Expand Down Expand Up @@ -1607,15 +1604,13 @@ def extract_checkpoint(
scheduler=scheduler,
)
except Exception:
logger.error(
"exception setting up output: %s",
traceback.format_exception(*sys.exc_info()),
logger.exception(
"error setting up output",
)
pipe = None

if pipe is None or db_config is None:
msg = "pipeline or config is not set, unable to continue."
logger.error(msg)
logger.error("pipeline or config is not set, unable to continue")
return
else:
logger.info("saving diffusion model")
Expand Down
8 changes: 4 additions & 4 deletions api/onnx_web/server/load.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ def load_extras(context: ServerContext):
logger.debug("validating extras file %s", data)
try:
validate(data, extra_schema)
except ValidationError as err:
logger.error("invalid data in extras file: %s", err)
except ValidationError:
logger.exception("invalid data in extras file")
continue

if "strings" in data:
Expand Down Expand Up @@ -166,8 +166,8 @@ def load_extras(context: ServerContext):
f"inversion-{inversion_name}"
] = inversion["label"]

except Exception as err:
logger.error("error loading extras file: %s", err)
except Exception:
logger.exception("error loading extras file")

logger.debug("adding labels to strings: %s", labels)
merge(
Expand Down
3 changes: 3 additions & 0 deletions api/onnx_web/server/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ def register_routes(


def wrap_route(func, *args, **kwargs):
"""
From http://louistiao.me/posts/adding-__name__-and-__doc__-attributes-to-functoolspartial-objects/
"""
partial_func = partial(func, *args, **kwargs)
update_wrapper(partial_func, func)
return partial_func
12 changes: 6 additions & 6 deletions api/onnx_web/worker/pool.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,8 @@ def logger_worker(logs: Queue):
pass
except ValueError:
break
except Exception as err:
logger.error("error in log worker: %s", err)
except Exception:
logger.exception("error in log worker")

logger_thread = Thread(
name="onnx-web logger", target=logger_worker, args=(self.logs,), daemon=True
Expand All @@ -159,8 +159,8 @@ def progress_worker(progress: Queue):
pass
except ValueError:
break
except Exception as err:
logger.error("error in progress worker: %s", err)
except Exception:
logger.exception("error in progress worker")

progress_thread = Thread(
name="onnx-web progress",
Expand Down Expand Up @@ -189,8 +189,8 @@ def finished_worker(finished: Queue):
pass
except ValueError:
break
except Exception as err:
logger.error("error in finished worker: %s", err)
except Exception:
logger.exception("error in finished worker")

finished_thread = Thread(
name="onnx-web finished",
Expand Down
5 changes: 2 additions & 3 deletions api/onnx_web/worker/worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ def worker_main(context: WorkerContext, server: ServerContext):
logger.error("detected out-of-memory error, exiting: %s", e)
exit(EXIT_MEMORY)
else:
logger.error(
"error while running job: %s",
format_exception(type(e), e, e.__traceback__),
logger.exception(
"error while running job",
)
3 changes: 1 addition & 2 deletions api/scripts/test-release.py
Original file line number Diff line number Diff line change
Expand Up @@ -342,8 +342,7 @@ def main():
logger.warning("test failed: %s", test.name)
failed.append(test.name)
except Exception as e:
traceback.print_exception(type(e), e, e.__traceback__)
logger.error("error running test for %s: %s", test.name, e)
logger.exception("error running test for %s", test.name)
failed.append(test.name)

logger.info("%s of %s tests passed", len(passed), len(TEST_DATA))
Expand Down

0 comments on commit 226710a

Please sign in to comment.