Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -13,10 +13,9 @@ import multiprocessing
|
|
13 |
import io
|
14 |
import time
|
15 |
|
16 |
-
# Obtener las variables de entorno
|
17 |
hf_token = os.getenv("HF_TOKEN")
|
18 |
redis_host = os.getenv("REDIS_HOST")
|
19 |
-
redis_port = int(os.getenv("REDIS_PORT", 6379))
|
20 |
redis_password = os.getenv("REDIS_PASSWORD")
|
21 |
|
22 |
HfFolder.save_token(hf_token)
|
@@ -25,8 +24,7 @@ def connect_to_redis():
|
|
25 |
while True:
|
26 |
try:
|
27 |
redis_client = redis.Redis(host=redis_host, port=redis_port, password=redis_password)
|
28 |
-
redis_client.ping()
|
29 |
-
print("Connected to Redis successfully.")
|
30 |
return redis_client
|
31 |
except (redis.exceptions.ConnectionError, redis.exceptions.TimeoutError, BrokenPipeError) as e:
|
32 |
print(f"Connection to Redis failed: {e}. Retrying in 1 second...")
|
@@ -55,19 +53,16 @@ def save_object_to_redis(key, obj):
|
|
55 |
redis_client = reconnect_if_needed(redis_client)
|
56 |
try:
|
57 |
redis_client.set(key, pickle.dumps(obj))
|
58 |
-
print(f"Object saved to Redis: {key}")
|
59 |
except redis.exceptions.RedisError as e:
|
60 |
print(f"Failed to save object to Redis: {e}")
|
61 |
|
62 |
def get_model_or_download(model_id, redis_key, loader_func):
|
63 |
model = load_object_from_redis(redis_key)
|
64 |
if model:
|
65 |
-
print(f"Model loaded from Redis: {redis_key}")
|
66 |
return model
|
67 |
try:
|
68 |
model = loader_func(model_id, torch_dtype=torch.float16)
|
69 |
save_object_to_redis(redis_key, model)
|
70 |
-
print(f"Model downloaded and saved to Redis: {redis_key}")
|
71 |
except Exception as e:
|
72 |
print(f"Failed to load or save model: {e}")
|
73 |
return None
|
@@ -221,7 +216,6 @@ for _ in range(num_processes):
|
|
221 |
|
222 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
223 |
|
224 |
-
# Cargar modelos
|
225 |
text_to_image_pipeline = get_model_or_download("stabilityai/stable-diffusion-2", "text_to_image_model", StableDiffusionPipeline.from_pretrained)
|
226 |
img2img_pipeline = get_model_or_download("CompVis/stable-diffusion-v1-4", "img2img_model", StableDiffusionImg2ImgPipeline.from_pretrained)
|
227 |
flux_pipeline = get_model_or_download("black-forest-labs/FLUX.1-schnell", "flux_model", FluxPipeline.from_pretrained)
|
@@ -229,7 +223,6 @@ text_gen_pipeline = transformers_pipeline("text-generation", model="bigcode/star
|
|
229 |
music_gen = load_object_from_redis("music_gen") or MusicGen.from_pretrained('melody')
|
230 |
meta_llama_pipeline = get_model_or_download("meta-llama/Meta-Llama-3.1-8B-Instruct", "meta_llama_model", transformers_pipeline)
|
231 |
|
232 |
-
# Definir interfaces de usuario
|
233 |
gen_image_tab = gr.Interface(generate_image, gr.inputs.Textbox(label="Prompt:"), gr.outputs.Image(type="pil"), title="Generate Image")
|
234 |
edit_image_tab = gr.Interface(edit_image_with_prompt, [gr.inputs.Image(type="pil", label="Image:"), gr.inputs.Textbox(label="Prompt:"), gr.inputs.Slider(0.1, 1.0, 0.75, step=0.05, label="Strength:")], gr.outputs.Image(type="pil"), title="Edit Image")
|
235 |
generate_song_tab = gr.Interface(generate_song, [gr.inputs.Textbox(label="Prompt:"), gr.inputs.Slider(5, 60, 10, step=1, label="Duration (s):")], gr.outputs.Audio(type="numpy"), title="Generate Songs")
|
@@ -247,4 +240,4 @@ app.launch(share=True)
|
|
247 |
for _ in range(num_processes):
|
248 |
task_queue.put(None)
|
249 |
for p in processes:
|
250 |
-
p.join()
|
|
|
13 |
import io
|
14 |
import time
|
15 |
|
|
|
16 |
hf_token = os.getenv("HF_TOKEN")
|
17 |
redis_host = os.getenv("REDIS_HOST")
|
18 |
+
redis_port = int(os.getenv("REDIS_PORT", 6379))
|
19 |
redis_password = os.getenv("REDIS_PASSWORD")
|
20 |
|
21 |
HfFolder.save_token(hf_token)
|
|
|
24 |
while True:
|
25 |
try:
|
26 |
redis_client = redis.Redis(host=redis_host, port=redis_port, password=redis_password)
|
27 |
+
redis_client.ping()
|
|
|
28 |
return redis_client
|
29 |
except (redis.exceptions.ConnectionError, redis.exceptions.TimeoutError, BrokenPipeError) as e:
|
30 |
print(f"Connection to Redis failed: {e}. Retrying in 1 second...")
|
|
|
53 |
redis_client = reconnect_if_needed(redis_client)
|
54 |
try:
|
55 |
redis_client.set(key, pickle.dumps(obj))
|
|
|
56 |
except redis.exceptions.RedisError as e:
|
57 |
print(f"Failed to save object to Redis: {e}")
|
58 |
|
59 |
def get_model_or_download(model_id, redis_key, loader_func):
|
60 |
model = load_object_from_redis(redis_key)
|
61 |
if model:
|
|
|
62 |
return model
|
63 |
try:
|
64 |
model = loader_func(model_id, torch_dtype=torch.float16)
|
65 |
save_object_to_redis(redis_key, model)
|
|
|
66 |
except Exception as e:
|
67 |
print(f"Failed to load or save model: {e}")
|
68 |
return None
|
|
|
216 |
|
217 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
218 |
|
|
|
219 |
text_to_image_pipeline = get_model_or_download("stabilityai/stable-diffusion-2", "text_to_image_model", StableDiffusionPipeline.from_pretrained)
|
220 |
img2img_pipeline = get_model_or_download("CompVis/stable-diffusion-v1-4", "img2img_model", StableDiffusionImg2ImgPipeline.from_pretrained)
|
221 |
flux_pipeline = get_model_or_download("black-forest-labs/FLUX.1-schnell", "flux_model", FluxPipeline.from_pretrained)
|
|
|
223 |
music_gen = load_object_from_redis("music_gen") or MusicGen.from_pretrained('melody')
|
224 |
meta_llama_pipeline = get_model_or_download("meta-llama/Meta-Llama-3.1-8B-Instruct", "meta_llama_model", transformers_pipeline)
|
225 |
|
|
|
226 |
gen_image_tab = gr.Interface(generate_image, gr.inputs.Textbox(label="Prompt:"), gr.outputs.Image(type="pil"), title="Generate Image")
|
227 |
edit_image_tab = gr.Interface(edit_image_with_prompt, [gr.inputs.Image(type="pil", label="Image:"), gr.inputs.Textbox(label="Prompt:"), gr.inputs.Slider(0.1, 1.0, 0.75, step=0.05, label="Strength:")], gr.outputs.Image(type="pil"), title="Edit Image")
|
228 |
generate_song_tab = gr.Interface(generate_song, [gr.inputs.Textbox(label="Prompt:"), gr.inputs.Slider(5, 60, 10, step=1, label="Duration (s):")], gr.outputs.Audio(type="numpy"), title="Generate Songs")
|
|
|
240 |
for _ in range(num_processes):
|
241 |
task_queue.put(None)
|
242 |
for p in processes:
|
243 |
+
p.join()
|