import gradio as gr import numpy as np import time def sepia(input_img, num_copies): sepia_filter = np.array([ [0.393, 0.769, 0.189], [0.349, 0.686, 0.168], [0.272, 0.534, 0.131] ]) # Normalize input image to 0-1 range input_img = input_img / 255.0 sepia_img = np.dot(input_img[...,:3], sepia_filter.T) sepia_img = np.clip(sepia_img, 0, 1) # Iterate to yield multiple sepia images for _ in range(num_copies): # Simulating a delay for demonstration, you might not need this time.sleep(1) yield (sepia_img * 255).astype(np.uint8) demo = gr.Interface(fn=sepia, inputs=[gr.Image(), gr.Number()], outputs="image", title="Sepia Tone Generator") if __name__ == "__main__": demo.launch()