Spaces:
				
			
			
	
			
			
					
		Running
		
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
	Update app.py
Browse files
    	
        app.py
    CHANGED
    
    | @@ -37,16 +37,16 @@ def swap_hardware(hf_token, hardware="cpu-basic"): | |
| 37 | 
             
                requests.post(hardware_url, json = body, headers=headers)
         | 
| 38 |  | 
| 39 |  | 
| 40 | 
            -
            global sleep_time
         | 
| 41 |  | 
| 42 | 
            -
             | 
|  | |
| 43 | 
             
                sleep_time_url = f"https://huggingface.co/api/spaces/{os.environ['SPACE_ID']}/sleeptime"
         | 
| 44 | 
             
                headers = { "authorization" : f"Bearer {hf_token}"}
         | 
| 45 | 
             
                body = {'seconds':sleep_time}
         | 
| 46 | 
             
                requests.post(sleep_time_url,json=body,headers=headers)
         | 
| 47 |  | 
| 48 |  | 
| 49 | 
            -
            def get_sleep_time( | 
| 50 | 
             
                sleep_time_url = f"https://huggingface.co/api/spaces/{os.environ['SPACE_ID']}"
         | 
| 51 | 
             
                headers = { "authorization" : f"Bearer {hf_token}"}
         | 
| 52 | 
             
                response = requests.get(sleep_time_url,headers=headers)
         | 
| @@ -54,10 +54,15 @@ def get_sleep_time(hf_token): | |
| 54 | 
             
                    gcTimeout = response.json()['runtime']['gcTimeout']
         | 
| 55 | 
             
                except:
         | 
| 56 | 
             
                    gcTimeout = None
         | 
| 57 | 
            -
                 | 
| 58 | 
             
                return gcTimeout
         | 
| 59 |  | 
| 60 | 
            -
             | 
|  | |
|  | |
|  | |
|  | |
|  | |
| 61 |  | 
| 62 | 
             
            def train_dreambooth_blora_sdxl(instance_data_dir, b_lora_trained_folder, instance_prompt, class_prompt, max_train_steps, checkpoint_steps):
         | 
| 63 |  | 
| @@ -159,8 +164,8 @@ def main(image_path, b_lora_trained_folder, instance_prompt, class_prompt, train | |
| 159 |  | 
| 160 | 
             
                your_username = api.whoami(token=hf_token)["name"]
         | 
| 161 |  | 
| 162 | 
            -
                #swap_hardware( | 
| 163 | 
            -
                swap_sleep_time( | 
| 164 |  | 
| 165 | 
             
                return f"Done, your trained model has been stored in your models library: {your_username}/{b_lora_trained_folder}"
         | 
| 166 |  | 
| @@ -264,40 +269,29 @@ with gr.Blocks(css=css) as demo: | |
| 264 | 
             
                        image = gr.Image(label="Image Reference", sources=["upload"], type="filepath")
         | 
| 265 |  | 
| 266 | 
             
                        with gr.Column():
         | 
| 267 | 
            -
                             | 
| 268 | 
            -
                            print(f"loaded demo: {sleep_time}")
         | 
| 269 | 
            -
                            if sleep_time is not None and sleep_time > 1:
         | 
| 270 | 
            -
                                gr.HTML(f'''
         | 
| 271 | 
            -
                                <div class="gr-prose">
         | 
| 272 | 
            -
                                <h2>in order to train properly your B-LoRa, you need to set space sleep time to "Don't sleep"</h2>
         | 
| 273 | 
            -
                                <p class="actions">
         | 
| 274 | 
            -
                                    <a href="https://huggingface.co/spaces/{os.environ['SPACE_ID']}/settings">⚡️   Set recommended Sleep Time</a>
         | 
| 275 | 
            -
                                </p>
         | 
| 276 | 
            -
                                </div>
         | 
| 277 | 
            -
                                ''')
         | 
| 278 | 
            -
                                training_type = gr.Radio(label="Training type", choices=["style", "concept"], value="style", interactive=False)
         | 
| 279 | 
            -
                                b_lora_name = gr.Textbox(label="Name your B-LoRa model", placeholder="b_lora_trained_folder", interactive=False)
         | 
| 280 | 
             
                                with gr.Row():
         | 
| 281 | 
            -
                                     | 
| 282 | 
            -
                                     | 
| 283 | 
            -
                                 | 
| 284 | 
            -
                                 | 
| 285 | 
            -
                            else:    
         | 
| 286 | 
            -
                                training_type = gr.Radio(label="Training type", choices=["style", "concept"], value="style", interactive=True)
         | 
| 287 | 
            -
                                b_lora_name = gr.Textbox(label="Name your B-LoRa model", placeholder="b_lora_trained_folder", interactive=True)
         | 
| 288 | 
             
                                with gr.Row():
         | 
| 289 | 
            -
                                    instance_prompt = gr.Textbox(label="Create instance prompt", placeholder="A [v42] <class_prompt>",  | 
| 290 | 
            -
                                    class_prompt = gr.Textbox(label="Specify class prompt", placeholder="style | person | dog ",  | 
| 291 | 
            -
                                training_steps = gr.Number(label="Training steps", value=1000, interactive=False)
         | 
| 292 | 
             
                                checkpoint_step = gr.Number(label="checkpoint step", visible=False, value=500)
         | 
| 293 |  | 
| 294 |  | 
| 295 | 
            -
                     | 
| 296 | 
            -
             | 
| 297 | 
            -
             | 
| 298 | 
            -
                        train_btn = gr.Button("Train B-LoRa", visible=True)
         | 
| 299 | 
             
                    status = gr.Textbox(label="status")
         | 
| 300 |  | 
|  | |
|  | |
|  | |
|  | |
|  | |
| 301 |  | 
| 302 | 
             
                training_type.change(
         | 
| 303 | 
             
                                    fn = change_training_setup,
         | 
| @@ -310,5 +304,5 @@ with gr.Blocks(css=css) as demo: | |
| 310 | 
             
                    inputs = [image, b_lora_name, instance_prompt, class_prompt, training_type, training_steps],
         | 
| 311 | 
             
                    outputs = [status]
         | 
| 312 | 
             
                )
         | 
| 313 | 
            -
                 | 
| 314 | 
             
            demo.launch(debug=True)
         | 
|  | |
| 37 | 
             
                requests.post(hardware_url, json = body, headers=headers)
         | 
| 38 |  | 
| 39 |  | 
|  | |
| 40 |  | 
| 41 | 
            +
             | 
| 42 | 
            +
            def swap_sleep_time(sleep_time):
         | 
| 43 | 
             
                sleep_time_url = f"https://huggingface.co/api/spaces/{os.environ['SPACE_ID']}/sleeptime"
         | 
| 44 | 
             
                headers = { "authorization" : f"Bearer {hf_token}"}
         | 
| 45 | 
             
                body = {'seconds':sleep_time}
         | 
| 46 | 
             
                requests.post(sleep_time_url,json=body,headers=headers)
         | 
| 47 |  | 
| 48 |  | 
| 49 | 
            +
            def get_sleep_time():
         | 
| 50 | 
             
                sleep_time_url = f"https://huggingface.co/api/spaces/{os.environ['SPACE_ID']}"
         | 
| 51 | 
             
                headers = { "authorization" : f"Bearer {hf_token}"}
         | 
| 52 | 
             
                response = requests.get(sleep_time_url,headers=headers)
         | 
|  | |
| 54 | 
             
                    gcTimeout = response.json()['runtime']['gcTimeout']
         | 
| 55 | 
             
                except:
         | 
| 56 | 
             
                    gcTimeout = None
         | 
| 57 | 
            +
                
         | 
| 58 | 
             
                return gcTimeout
         | 
| 59 |  | 
| 60 | 
            +
            def check_sleep_time():
         | 
| 61 | 
            +
                sleep_time = get_sleep_time()
         | 
| 62 | 
            +
                if sleep_time is None :
         | 
| 63 | 
            +
                    return sleep_time, gr.update(visible=True), gr.update(visible=True), gr.update(visible=True), gr.update(visible=True), gr.update(visible=True), gr.update(visible=True)
         | 
| 64 | 
            +
                else :
         | 
| 65 | 
            +
                    return sleep_time, gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False)
         | 
| 66 |  | 
| 67 | 
             
            def train_dreambooth_blora_sdxl(instance_data_dir, b_lora_trained_folder, instance_prompt, class_prompt, max_train_steps, checkpoint_steps):
         | 
| 68 |  | 
|  | |
| 164 |  | 
| 165 | 
             
                your_username = api.whoami(token=hf_token)["name"]
         | 
| 166 |  | 
| 167 | 
            +
                #swap_hardware(hardware="cpu-basic")
         | 
| 168 | 
            +
                swap_sleep_time(300)
         | 
| 169 |  | 
| 170 | 
             
                return f"Done, your trained model has been stored in your models library: {your_username}/{b_lora_trained_folder}"
         | 
| 171 |  | 
|  | |
| 269 | 
             
                        image = gr.Image(label="Image Reference", sources=["upload"], type="filepath")
         | 
| 270 |  | 
| 271 | 
             
                        with gr.Column():
         | 
| 272 | 
            +
                            
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 273 | 
             
                                with gr.Row():
         | 
| 274 | 
            +
                                    current_sleep_time = gr.Textbox(label="current space sleep time")
         | 
| 275 | 
            +
                                    check_sleep_time_btn = gr.Button("check", scale=1)
         | 
| 276 | 
            +
                                training_type = gr.Radio(label="Training type", choices=["style", "concept"], value="style", visible=False)
         | 
| 277 | 
            +
                                b_lora_name = gr.Textbox(label="Name your B-LoRa model", placeholder="b_lora_trained_folder", visible=False)
         | 
|  | |
|  | |
|  | |
| 278 | 
             
                                with gr.Row():
         | 
| 279 | 
            +
                                    instance_prompt = gr.Textbox(label="Create instance prompt", placeholder="A [v42] <class_prompt>", visible=False)
         | 
| 280 | 
            +
                                    class_prompt = gr.Textbox(label="Specify class prompt", placeholder="style | person | dog ", visible=False)
         | 
| 281 | 
            +
                                training_steps = gr.Number(label="Training steps", value=1000, interactive=False, visible=False)
         | 
| 282 | 
             
                                checkpoint_step = gr.Number(label="checkpoint step", visible=False, value=500)
         | 
| 283 |  | 
| 284 |  | 
| 285 | 
            +
                    
         | 
| 286 | 
            +
                    train_btn = gr.Button("Train B-LoRa", visible=False)
         | 
| 287 | 
            +
                
         | 
|  | |
| 288 | 
             
                    status = gr.Textbox(label="status")
         | 
| 289 |  | 
| 290 | 
            +
                check_sleep_time_btn.click(
         | 
| 291 | 
            +
                    fn = check_sleep_time,
         | 
| 292 | 
            +
                    inputs = None, 
         | 
| 293 | 
            +
                    outputs = [current_sleep_time, b_lora_name, instance_prompt, class_prompt, training_type, training_steps, train_btn]
         | 
| 294 | 
            +
                )
         | 
| 295 |  | 
| 296 | 
             
                training_type.change(
         | 
| 297 | 
             
                                    fn = change_training_setup,
         | 
|  | |
| 304 | 
             
                    inputs = [image, b_lora_name, instance_prompt, class_prompt, training_type, training_steps],
         | 
| 305 | 
             
                    outputs = [status]
         | 
| 306 | 
             
                )
         | 
| 307 | 
            +
                
         | 
| 308 | 
             
            demo.launch(debug=True)
         | 
