Spaces:
Running
Running
salomonsky
commited on
Commit
•
5981fd1
1
Parent(s):
e3a57cc
Update app.py
Browse files
app.py
CHANGED
@@ -121,6 +121,23 @@ def create_video_from_images():
|
|
121 |
def main():
|
122 |
st.set_page_config(layout="wide")
|
123 |
st.title("Generador de Imágenes")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
st.warning("Este espacio contiene contenido que no es adecuado para todas las audiencias. Se recomienda discreción.")
|
125 |
agree = st.checkbox("Soy mayor de 18 años y entiendo que el contenido puede no ser apropiado.")
|
126 |
|
@@ -128,60 +145,60 @@ def main():
|
|
128 |
prompt = st.sidebar.text_input("Descripción de la imagen", max_chars=500)
|
129 |
format_option = st.sidebar.selectbox("Formato", ["9:16", "16:9"])
|
130 |
model_option = st.sidebar.selectbox("Modelo", ["enhanceaiteam/Flux-Uncensored-V2", "enhanceaiteam/Flux-uncensored"])
|
131 |
-
|
132 |
width, height = (720, 1280) if format_option == "9:16" else (1280, 720)
|
133 |
-
|
134 |
if st.sidebar.button("Generar Imagen"):
|
135 |
with st.spinner("Generando imagen..."):
|
136 |
result = asyncio.run(gen(prompt, width, height, model_option))
|
137 |
image_paths = result[0]
|
138 |
prompt_file = result[1]
|
139 |
-
|
140 |
if image_paths:
|
141 |
if Path(image_paths).exists():
|
142 |
st.image(image_paths, caption="Imagen Generada")
|
143 |
else:
|
144 |
st.error("El archivo de imagen no existe.")
|
145 |
-
|
146 |
if prompt_file and Path(prompt_file).exists():
|
147 |
prompt_text = Path(prompt_file).read_text()
|
148 |
st.write(f"Prompt utilizado: {prompt_text}")
|
149 |
else:
|
150 |
st.write("El archivo del prompt no está disponible.")
|
151 |
-
|
152 |
files, usage = get_storage()
|
153 |
st.text(usage)
|
154 |
cols = st.columns(6)
|
155 |
prompts = get_prompts()
|
156 |
-
|
157 |
for idx, file in enumerate(files):
|
158 |
with cols[idx % 6]:
|
159 |
image = Image.open(file)
|
160 |
prompt_file = prompts.get(Path(file).stem.replace("image_", ""), None)
|
161 |
prompt_text = Path(prompt_file).read_text() if prompt_file else "No disponible"
|
162 |
-
|
163 |
st.image(image, caption=f"Imagen {idx+1}")
|
164 |
st.write(f"Prompt: {prompt_text}")
|
165 |
-
|
166 |
if st.button(f"Borrar Imagen {idx+1}", key=f"delete_{idx}"):
|
167 |
try:
|
168 |
-
os.remove(file)
|
169 |
if prompt_file:
|
170 |
os.remove(prompt_file)
|
171 |
st.success(f"Imagen {idx+1} y su prompt fueron borrados.")
|
172 |
except Exception as e:
|
173 |
st.error(f"Error al borrar la imagen o prompt: {e}")
|
174 |
-
|
175 |
if st.sidebar.button("Borrar todas las imágenes"):
|
176 |
delete_all_images()
|
177 |
-
|
178 |
if st.sidebar.button("Descargar imágenes en .zip"):
|
179 |
download_images_as_zip()
|
180 |
-
|
181 |
if st.button("Generar video con las imágenes"):
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
if __name__ == "__main__":
|
187 |
main()
|
|
|
121 |
def main():
|
122 |
st.set_page_config(layout="wide")
|
123 |
st.title("Generador de Imágenes")
|
124 |
+
|
125 |
+
if "authenticated" not in st.session_state:
|
126 |
+
st.session_state.authenticated = False
|
127 |
+
|
128 |
+
if not st.session_state.authenticated:
|
129 |
+
st.subheader("Iniciar sesión")
|
130 |
+
username = st.text_input("Usuario")
|
131 |
+
password = st.text_input("Contraseña", type="password")
|
132 |
+
|
133 |
+
if st.button("Ingresar"):
|
134 |
+
if username == credentials["username"] and password == credentials["password"]:
|
135 |
+
st.session_state.authenticated = True
|
136 |
+
st.success("Inicio de sesión exitoso.")
|
137 |
+
else:
|
138 |
+
st.error("Usuario o contraseña incorrectos.")
|
139 |
+
return
|
140 |
+
|
141 |
st.warning("Este espacio contiene contenido que no es adecuado para todas las audiencias. Se recomienda discreción.")
|
142 |
agree = st.checkbox("Soy mayor de 18 años y entiendo que el contenido puede no ser apropiado.")
|
143 |
|
|
|
145 |
prompt = st.sidebar.text_input("Descripción de la imagen", max_chars=500)
|
146 |
format_option = st.sidebar.selectbox("Formato", ["9:16", "16:9"])
|
147 |
model_option = st.sidebar.selectbox("Modelo", ["enhanceaiteam/Flux-Uncensored-V2", "enhanceaiteam/Flux-uncensored"])
|
148 |
+
|
149 |
width, height = (720, 1280) if format_option == "9:16" else (1280, 720)
|
150 |
+
|
151 |
if st.sidebar.button("Generar Imagen"):
|
152 |
with st.spinner("Generando imagen..."):
|
153 |
result = asyncio.run(gen(prompt, width, height, model_option))
|
154 |
image_paths = result[0]
|
155 |
prompt_file = result[1]
|
156 |
+
|
157 |
if image_paths:
|
158 |
if Path(image_paths).exists():
|
159 |
st.image(image_paths, caption="Imagen Generada")
|
160 |
else:
|
161 |
st.error("El archivo de imagen no existe.")
|
162 |
+
|
163 |
if prompt_file and Path(prompt_file).exists():
|
164 |
prompt_text = Path(prompt_file).read_text()
|
165 |
st.write(f"Prompt utilizado: {prompt_text}")
|
166 |
else:
|
167 |
st.write("El archivo del prompt no está disponible.")
|
168 |
+
|
169 |
files, usage = get_storage()
|
170 |
st.text(usage)
|
171 |
cols = st.columns(6)
|
172 |
prompts = get_prompts()
|
173 |
+
|
174 |
for idx, file in enumerate(files):
|
175 |
with cols[idx % 6]:
|
176 |
image = Image.open(file)
|
177 |
prompt_file = prompts.get(Path(file).stem.replace("image_", ""), None)
|
178 |
prompt_text = Path(prompt_file).read_text() if prompt_file else "No disponible"
|
179 |
+
|
180 |
st.image(image, caption=f"Imagen {idx+1}")
|
181 |
st.write(f"Prompt: {prompt_text}")
|
182 |
+
|
183 |
if st.button(f"Borrar Imagen {idx+1}", key=f"delete_{idx}"):
|
184 |
try:
|
185 |
+
os.remove(file)
|
186 |
if prompt_file:
|
187 |
os.remove(prompt_file)
|
188 |
st.success(f"Imagen {idx+1} y su prompt fueron borrados.")
|
189 |
except Exception as e:
|
190 |
st.error(f"Error al borrar la imagen o prompt: {e}")
|
191 |
+
|
192 |
if st.sidebar.button("Borrar todas las imágenes"):
|
193 |
delete_all_images()
|
194 |
+
|
195 |
if st.sidebar.button("Descargar imágenes en .zip"):
|
196 |
download_images_as_zip()
|
197 |
+
|
198 |
if st.button("Generar video con las imágenes"):
|
199 |
+
video_path = create_video_from_images()
|
200 |
+
if video_path:
|
201 |
+
st.video(str(video_path), format="video/mp4")
|
202 |
+
|
203 |
+
if __name__ == "__main__":
|
204 |
main()
|