|  | import numpy as np | 
					
						
						|  | import gradio as gr | 
					
						
						|  |  | 
					
						
						|  | def sepia(input_img, strength): | 
					
						
						|  | sepia_filter = strength * np.array( | 
					
						
						|  | [[0.393, 0.769, 0.189], [0.349, 0.686, 0.168], [0.272, 0.534, 0.131]] | 
					
						
						|  | ) + (1-strength) * np.identity(3) | 
					
						
						|  | sepia_img = input_img.dot(sepia_filter.T) | 
					
						
						|  | sepia_img /= sepia_img.max() | 
					
						
						|  | return sepia_img | 
					
						
						|  |  | 
					
						
						|  | callback = gr.CSVLogger() | 
					
						
						|  |  | 
					
						
						|  | with gr.Blocks() as demo: | 
					
						
						|  | with gr.Row(): | 
					
						
						|  | with gr.Column(): | 
					
						
						|  | img_input = gr.Image() | 
					
						
						|  | strength = gr.Slider(0, 1, 0.5) | 
					
						
						|  | img_output = gr.Image() | 
					
						
						|  | with gr.Row(): | 
					
						
						|  | btn = gr.Button("Flag") | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | callback.setup([img_input, strength, img_output], "flagged_data_points") | 
					
						
						|  |  | 
					
						
						|  | img_input.change(sepia, [img_input, strength], img_output) | 
					
						
						|  | strength.change(sepia, [img_input, strength], img_output) | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | btn.click(lambda *args: callback.flag(list(args)), [img_input, strength, img_output], None, preprocess=False) | 
					
						
						|  |  | 
					
						
						|  | if __name__ == "__main__": | 
					
						
						|  | demo.launch() | 
					
						
						|  |  |