interactive-pipe-tutorial / interactivity.py
balthou's picture
provide "context" with a shared param
3187496
from interactive_pipe import interactive_pipeline, interactive
from core import (gen_color, modify_geometry, change_color,
compare_by_splitting, tutorial_pipeline)
import argparse
# --------------------------------------------------------------
def add_interactivity() -> None:
# Depending on the level of control you want,
# you can add more or less controls to the pipeline
interactive(
ratio=(0.5, [0., 1.], "Side by Side comparison")
)(compare_by_splitting)
interactive(
bnw=(True, "Black and White")
)(change_color)
interactive(
effect=("flip", ["flip", "mirror", "flip+mirror", "identity"])
)(modify_geometry)
interactive(
frequency=(80, [1, 100]),
isotropy=(0.8, [0.1, 1.])
)(gen_color)
def run_interactive_pipeline(
backend: str = "gradio",
markdown_description: str = "# Tuto"
) -> None:
add_interactivity()
playable_tutorial_pipeline = interactive_pipeline(
gui=backend,
cache=True,
markdown_description=markdown_description,
context={"initialized_param": 42}
# context is shared between processing blocks.
# Initialization allow to pre-load a neural network for example.
)(tutorial_pipeline)
playable_tutorial_pipeline()
if __name__ == "__main__":
BACKEND_OPTIONS = ["gradio", "qt"]
parser = argparse.ArgumentParser()
parser.add_argument("-b", "--backend", type=str,
choices=BACKEND_OPTIONS, default=BACKEND_OPTIONS[0])
args = parser.parse_args()
run_interactive_pipeline(backend=args.backend,
markdown_description="# Tutorial")