Я разрабатываю приложение Gradio для создания изображений, которое использует несколько моделей, таких как SD3.5, Flux и другие, для создания изображений по заданному запросу.
В приложении есть 7 вкладок, каждая соответствующий конкретной модели. На каждой вкладке отображается изображение, созданное соответствующей моделью.
Моя проблема в том, что я не могу отображать индикатор выполнения для каждой вкладки отдельно. В настоящее время индикатор выполнения отображается на всех вкладках одновременно. Однако мне нужен «индикатор выполнения для конкретной вкладки».
Ниже представлена моя кодовая база и скриншоты приложения, которое имитирует процесс создания изображения во вложении. Как я могу реализовать эту функцию?
Я разрабатываю приложение Gradio для создания изображений, которое использует несколько моделей, таких как SD3.5, Flux и другие, для создания изображений по заданному запросу. В приложении есть 7 вкладок, каждая соответствующий конкретной модели. На каждой вкладке отображается изображение, созданное соответствующей моделью. Моя проблема в том, что я не могу отображать индикатор выполнения для каждой вкладки отдельно. В настоящее время индикатор выполнения отображается на всех вкладках одновременно. Однако мне нужен «индикатор выполнения для конкретной вкладки». Ниже представлена моя кодовая база и скриншоты приложения, которое имитирует процесс создания изображения во вложении. Как я могу реализовать эту функцию? [code]import random from time import sleep
import gradio as gr import threading import requests from PIL import Image from io import BytesIO
def generate_all(prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps): # Initialize a list to store all outputs all_outputs = [None] * (len(MODEL_CONFIGS) * 2) # Pre-fill with None for each model's image and seed
for idx, model_name in enumerate(MODEL_CONFIGS.keys()): try: progress_dict[model_name](0, desc=f"Starting generation for {model_name}...") print(f"IMAGE GENERATING {model_name}") generated_seed = seed if not randomize_seed else random.randint(0, 100000)
# Fetch an image from a URL url = f"https://placehold.co/600x400/000000/FFFFFF.png?text=Hello+{model_name}+ +{generated_seed}" # Replace with actual URL as needed image = fetch_image_from_url(url)
progress_dict[model_name](0.9, desc=f"downloaded {model_name}...") # Update the outputs array with the result and seed, leaving remaining slots as None all_outputs[idx * 2] = image # Image slot all_outputs[idx * 2 + 1] = generated_seed # Seed slot
except Exception as e: print(f"Error generating with {model_name}: {str(e)}") # Leave the slots for this model as None all_outputs[idx * 2] = None all_outputs[idx * 2 + 1] = None
# Return the final completed array return all_outputs