Spaces:
Runtime error
Runtime error
Improvements for Hardware Selection (#4)
Browse files- Improvements for Hardware Selection (63e70686c0557a2acf134691d0431f972ca878e3)
Co-authored-by: Radamés Ajna <[email protected]>
app.py
CHANGED
|
@@ -2,7 +2,7 @@ import os
|
|
| 2 |
import subprocess
|
| 3 |
from huggingface_hub import HfApi, upload_folder
|
| 4 |
import gradio as gr
|
| 5 |
-
|
| 6 |
from huggingface_hub import whoami, list_models
|
| 7 |
|
| 8 |
|
|
@@ -69,7 +69,7 @@ def on_load_model(user_model_id, other_model_id, token):
|
|
| 69 |
except Exception as e:
|
| 70 |
return None, None, None, None, gr.update(value=error_str(e))
|
| 71 |
|
| 72 |
-
def create_and_push(space_type, other_model_name, radio_model_names, model_id, title, description, prefix, update, token):
|
| 73 |
|
| 74 |
try:
|
| 75 |
|
|
@@ -80,7 +80,14 @@ def create_and_push(space_type, other_model_name, radio_model_names, model_id, t
|
|
| 80 |
exist_ok=update,
|
| 81 |
repo_type="space",
|
| 82 |
space_sdk="gradio",
|
|
|
|
| 83 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
|
| 85 |
# 2. Replace the name, title, and description in the template
|
| 86 |
with open("template/app_simple.py" if space_type == "Simple" else "template/app_advanced.py", "r") as f:
|
|
@@ -137,6 +144,7 @@ with gr.Blocks() as demo:
|
|
| 137 |
gr.Markdown("#### 1. Choose a model")
|
| 138 |
input_token = gr.Textbox(
|
| 139 |
max_lines=1,
|
|
|
|
| 140 |
label="Enter your Hugging Face token",
|
| 141 |
placeholder="WRITE permission is required!",
|
| 142 |
)
|
|
@@ -158,8 +166,9 @@ with gr.Blocks() as demo:
|
|
| 158 |
- **Advanced** - Runs on CPU by default, with the option to upgrade to GPU. You can control image generation parameters: guidance, number of steps, image size, etc. Also supports **image-to-image** generation.""")
|
| 159 |
space_type =gr.Radio(label="Space type", choices=["Simple", "Advanced"], value="Simple")
|
| 160 |
update = gr.Checkbox(label="Update the space if it already exists?")
|
| 161 |
-
|
| 162 |
-
|
|
|
|
| 163 |
brn_create = gr.Button("Create the space")
|
| 164 |
|
| 165 |
error_output = gr.Markdown(label="Output")
|
|
@@ -181,7 +190,7 @@ with gr.Blocks() as demo:
|
|
| 181 |
|
| 182 |
brn_create.click(
|
| 183 |
fn=create_and_push,
|
| 184 |
-
inputs=[space_type, other_model_name, radio_model_names, name, title, description, prefix, update, input_token],
|
| 185 |
outputs=[error_output],
|
| 186 |
scroll_to_output=True
|
| 187 |
)
|
|
@@ -197,4 +206,4 @@ with gr.Blocks() as demo:
|
|
| 197 |
""")
|
| 198 |
|
| 199 |
demo.queue()
|
| 200 |
-
demo.launch(debug=True)
|
|
|
|
| 2 |
import subprocess
|
| 3 |
from huggingface_hub import HfApi, upload_folder
|
| 4 |
import gradio as gr
|
| 5 |
+
import requests
|
| 6 |
from huggingface_hub import whoami, list_models
|
| 7 |
|
| 8 |
|
|
|
|
| 69 |
except Exception as e:
|
| 70 |
return None, None, None, None, gr.update(value=error_str(e))
|
| 71 |
|
| 72 |
+
def create_and_push(space_type, hardware, private_space, other_model_name, radio_model_names, model_id, title, description, prefix, update, token):
|
| 73 |
|
| 74 |
try:
|
| 75 |
|
|
|
|
| 80 |
exist_ok=update,
|
| 81 |
repo_type="space",
|
| 82 |
space_sdk="gradio",
|
| 83 |
+
private=private_space
|
| 84 |
)
|
| 85 |
+
api_url = f'https://huggingface.co/api/spaces/{model_id}'
|
| 86 |
+
headers = { "Authorization" : f"Bearer {token}"}
|
| 87 |
+
# add HUGGING_FACE_HUB_TOKEN secret to new space
|
| 88 |
+
requests.post(f'{api_url}/secrets', json={"key":"HUGGING_FACE_HUB_TOKEN","value":token}, headers=headers)
|
| 89 |
+
# set new Space Hardware flavor
|
| 90 |
+
requests.post(f'{api_url}/hardware', json={'flavor': hardware}, headers=headers)
|
| 91 |
|
| 92 |
# 2. Replace the name, title, and description in the template
|
| 93 |
with open("template/app_simple.py" if space_type == "Simple" else "template/app_advanced.py", "r") as f:
|
|
|
|
| 144 |
gr.Markdown("#### 1. Choose a model")
|
| 145 |
input_token = gr.Textbox(
|
| 146 |
max_lines=1,
|
| 147 |
+
type="password",
|
| 148 |
label="Enter your Hugging Face token",
|
| 149 |
placeholder="WRITE permission is required!",
|
| 150 |
)
|
|
|
|
| 166 |
- **Advanced** - Runs on CPU by default, with the option to upgrade to GPU. You can control image generation parameters: guidance, number of steps, image size, etc. Also supports **image-to-image** generation.""")
|
| 167 |
space_type =gr.Radio(label="Space type", choices=["Simple", "Advanced"], value="Simple")
|
| 168 |
update = gr.Checkbox(label="Update the space if it already exists?")
|
| 169 |
+
private_space = gr.Checkbox(label="Private Space")
|
| 170 |
+
gr.Markdown("Choose the new Space Hardware <small>[check pricing page](https://huggingface.co/pricing#spaces), you need payment method to upgrade your Space hardware</small>")
|
| 171 |
+
hardware = gr.Dropdown(["cpu-basic","cpu-upgrade","t4-small","t4-medium","a10g-small","a10g-large"],value = "cpu-basic", label="Space Hardware")
|
| 172 |
brn_create = gr.Button("Create the space")
|
| 173 |
|
| 174 |
error_output = gr.Markdown(label="Output")
|
|
|
|
| 190 |
|
| 191 |
brn_create.click(
|
| 192 |
fn=create_and_push,
|
| 193 |
+
inputs=[space_type, hardware, private_space, other_model_name, radio_model_names, name, title, description, prefix, update, input_token],
|
| 194 |
outputs=[error_output],
|
| 195 |
scroll_to_output=True
|
| 196 |
)
|
|
|
|
| 206 |
""")
|
| 207 |
|
| 208 |
demo.queue()
|
| 209 |
+
demo.launch(debug=True)
|