Spaces:
Runtime error
Runtime error
import gradio as gr | |
import os | |
import time | |
logs = [] | |
def downloader(url, output_path, civitai_token): | |
logs.clear() | |
prompt = f"civitai-downloader --url={url} --output_path={output_path} --token={civitai_token}" | |
os.system(prompt) | |
logs.append(f"Download initiated! Check the output path: {output_path}") | |
# Check if the downloaded file exists in the output path | |
for _ in range(10): # retry for a certain amount of time | |
time.sleep(1) # wait a bit before checking | |
if os.path.exists(output_path): | |
logs.append(f"File detected at: {output_path}") | |
return "\n".join(logs), output_path # Return path for file output | |
else: | |
logs.append("Download complete, but file not detected in the specified output path.") | |
return "\n".join(logs), None # Return None if file is not detected | |
with gr.Blocks(theme='Ryouko-Yamanda65777/ryo', title="CivitAI Downloader") as app: | |
gr.Markdown("<h1> ⬇️ CivitAI Downloader ⬇️ </h1>") | |
with gr.Row(): | |
link = gr.Textbox( | |
label="URL", | |
placeholder="Paste the URL here", | |
interactive=True, | |
) | |
out_path = gr.Textbox( | |
label="Output Path", | |
placeholder="Place the output path here", | |
interactive=True, | |
) | |
with gr.Row(): | |
token = gr.Textbox( | |
label="CivitAI API Key", | |
placeholder="Paste the API Key here. Only needed the first time per session", | |
interactive=True, | |
) | |
with gr.Row(): | |
button = gr.Button("Download!", variant="primary") | |
with gr.Row(): | |
outputs = gr.Textbox( | |
label="Output information", | |
interactive=False, | |
) | |
with gr.Row(): | |
file_output = gr.File( | |
label="Downloaded File", | |
interactive=False, | |
) | |
# Use both `outputs` and `file_output` for the button click event | |
button.click(downloader, [link, out_path, token], [outputs, file_output]) | |
app.launch(share=True) | |