Commit 
							
							·
						
						bc7b1c7
	
1
								Parent(s):
							
							ceb365c
								
added alternate metadata saving modes and config options
Browse files- gradio_server.py +27 -5
- requirements.txt +2 -1
    	
        gradio_server.py
    CHANGED
    
    | @@ -292,6 +292,7 @@ if not Path(server_config_filename).is_file(): | |
| 292 | 
             
                                 "text_encoder_filename" : text_encoder_choices[1],
         | 
| 293 | 
             
                                 "save_path": os.path.join(os.getcwd(), "gradio_outputs"),
         | 
| 294 | 
             
                                 "compile" : "",
         | 
|  | |
| 295 | 
             
                                 "default_ui": "t2v",
         | 
| 296 | 
             
                                 "boost" : 1,
         | 
| 297 | 
             
                                 "vae_config": 0,
         | 
| @@ -325,6 +326,8 @@ if len(args.vae_config) > 0: | |
| 325 | 
             
                vae_config = int(args.vae_config)
         | 
| 326 |  | 
| 327 | 
             
            default_ui = server_config.get("default_ui", "t2v") 
         | 
|  | |
|  | |
| 328 | 
             
            use_image2video = default_ui != "t2v"
         | 
| 329 | 
             
            if args.t2v:
         | 
| 330 | 
             
                use_image2video = False
         | 
| @@ -670,6 +673,7 @@ def apply_changes(  state, | |
| 670 | 
             
                                compile_choice,
         | 
| 671 | 
             
                                profile_choice,
         | 
| 672 | 
             
                                vae_config_choice,
         | 
|  | |
| 673 | 
             
                                default_ui_choice ="t2v",
         | 
| 674 | 
             
                                boost_choice = 1
         | 
| 675 | 
             
            ):
         | 
| @@ -687,6 +691,7 @@ def apply_changes(  state, | |
| 687 | 
             
                                 "compile" : compile_choice,
         | 
| 688 | 
             
                                 "profile" : profile_choice,
         | 
| 689 | 
             
                                 "vae_config" : vae_config_choice,
         | 
|  | |
| 690 | 
             
                                 "default_ui" : default_ui_choice,
         | 
| 691 | 
             
                                 "boost" : boost_choice,
         | 
| 692 | 
             
                                   }
         | 
| @@ -910,6 +915,7 @@ def generate_video( | |
| 910 | 
             
                slg_start,
         | 
| 911 | 
             
                slg_end, 
         | 
| 912 | 
             
                state,
         | 
|  | |
| 913 | 
             
                progress=gr.Progress() #track_tqdm= True
         | 
| 914 |  | 
| 915 | 
             
            ):
         | 
| @@ -1113,7 +1119,6 @@ def generate_video( | |
| 1113 | 
             
                file_list = []
         | 
| 1114 | 
             
                state["file_list"] = file_list    
         | 
| 1115 | 
             
                global save_path
         | 
| 1116 | 
            -
                save_path = server_config.get("save_path", os.path.join(os.getcwd(), "gradio_outputs"))
         | 
| 1117 | 
             
                os.makedirs(save_path, exist_ok=True)
         | 
| 1118 | 
             
                video_no = 0
         | 
| 1119 | 
             
                total_video =  repeat_generation * len(prompts)
         | 
| @@ -1272,9 +1277,14 @@ def generate_video( | |
| 1272 | 
             
                                'num_inference_steps': num_inference_steps,
         | 
| 1273 | 
             
                            }
         | 
| 1274 |  | 
| 1275 | 
            -
                             | 
| 1276 | 
            -
             | 
| 1277 | 
            -
             | 
|  | |
|  | |
|  | |
|  | |
|  | |
| 1278 |  | 
| 1279 | 
             
                            print(f"New video saved to Path: "+video_path)
         | 
| 1280 | 
             
                            file_list.append(video_path)
         | 
| @@ -1702,7 +1712,7 @@ def create_demo(): | |
| 1702 | 
             
                             )
         | 
| 1703 | 
             
                            save_path_choice = gr.Textbox(
         | 
| 1704 | 
             
                                label="Output Folder for Generated Videos",
         | 
| 1705 | 
            -
                                value=server_config.get("save_path",  | 
| 1706 | 
             
                            )
         | 
| 1707 | 
             
                            def check(mode): 
         | 
| 1708 | 
             
                                if not mode in attention_modes_supported:
         | 
| @@ -1777,6 +1787,16 @@ def create_demo(): | |
| 1777 | 
             
                                # visible= True ############
         | 
| 1778 | 
             
                             )                
         | 
| 1779 |  | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 1780 | 
             
                            msg = gr.Markdown()            
         | 
| 1781 | 
             
                            apply_btn  = gr.Button("Apply Changes")
         | 
| 1782 |  | 
| @@ -2044,6 +2064,7 @@ def create_demo(): | |
| 2044 | 
             
                            slg_start_perc,
         | 
| 2045 | 
             
                            slg_end_perc,
         | 
| 2046 | 
             
                            state,
         | 
|  | |
| 2047 | 
             
                        ],
         | 
| 2048 | 
             
                        outputs= [gen_status] #,state 
         | 
| 2049 |  | 
| @@ -2065,6 +2086,7 @@ def create_demo(): | |
| 2065 | 
             
                                compile_choice,                            
         | 
| 2066 | 
             
                                profile_choice,
         | 
| 2067 | 
             
                                vae_config_choice,
         | 
|  | |
| 2068 | 
             
                                default_ui_choice,
         | 
| 2069 | 
             
                                boost_choice,
         | 
| 2070 | 
             
                            ],
         | 
|  | |
| 292 | 
             
                                 "text_encoder_filename" : text_encoder_choices[1],
         | 
| 293 | 
             
                                 "save_path": os.path.join(os.getcwd(), "gradio_outputs"),
         | 
| 294 | 
             
                                 "compile" : "",
         | 
| 295 | 
            +
                                 "metadata_type": "metadata",
         | 
| 296 | 
             
                                 "default_ui": "t2v",
         | 
| 297 | 
             
                                 "boost" : 1,
         | 
| 298 | 
             
                                 "vae_config": 0,
         | 
|  | |
| 326 | 
             
                vae_config = int(args.vae_config)
         | 
| 327 |  | 
| 328 | 
             
            default_ui = server_config.get("default_ui", "t2v") 
         | 
| 329 | 
            +
            metadata = server_config.get("metadata_type", "metadata")
         | 
| 330 | 
            +
            save_path = server_config.get("save_path", os.path.join(os.getcwd(), "gradio_outputs"))
         | 
| 331 | 
             
            use_image2video = default_ui != "t2v"
         | 
| 332 | 
             
            if args.t2v:
         | 
| 333 | 
             
                use_image2video = False
         | 
|  | |
| 673 | 
             
                                compile_choice,
         | 
| 674 | 
             
                                profile_choice,
         | 
| 675 | 
             
                                vae_config_choice,
         | 
| 676 | 
            +
                                metadata_choice,
         | 
| 677 | 
             
                                default_ui_choice ="t2v",
         | 
| 678 | 
             
                                boost_choice = 1
         | 
| 679 | 
             
            ):
         | 
|  | |
| 691 | 
             
                                 "compile" : compile_choice,
         | 
| 692 | 
             
                                 "profile" : profile_choice,
         | 
| 693 | 
             
                                 "vae_config" : vae_config_choice,
         | 
| 694 | 
            +
                                 "metadata_choice": metadata_choice,
         | 
| 695 | 
             
                                 "default_ui" : default_ui_choice,
         | 
| 696 | 
             
                                 "boost" : boost_choice,
         | 
| 697 | 
             
                                   }
         | 
|  | |
| 915 | 
             
                slg_start,
         | 
| 916 | 
             
                slg_end, 
         | 
| 917 | 
             
                state,
         | 
| 918 | 
            +
                metadata_choice,
         | 
| 919 | 
             
                progress=gr.Progress() #track_tqdm= True
         | 
| 920 |  | 
| 921 | 
             
            ):
         | 
|  | |
| 1119 | 
             
                file_list = []
         | 
| 1120 | 
             
                state["file_list"] = file_list    
         | 
| 1121 | 
             
                global save_path
         | 
|  | |
| 1122 | 
             
                os.makedirs(save_path, exist_ok=True)
         | 
| 1123 | 
             
                video_no = 0
         | 
| 1124 | 
             
                total_video =  repeat_generation * len(prompts)
         | 
|  | |
| 1277 | 
             
                                'num_inference_steps': num_inference_steps,
         | 
| 1278 | 
             
                            }
         | 
| 1279 |  | 
| 1280 | 
            +
                            if metadata_choice == "json":
         | 
| 1281 | 
            +
                                with open(video_path.replace('.mp4', '.json'), 'w') as f:
         | 
| 1282 | 
            +
                                    json.dump(configs, f, indent=4)
         | 
| 1283 | 
            +
                            elif metadata_choice == "metadata":
         | 
| 1284 | 
            +
                                from mutagen.mp4 import MP4
         | 
| 1285 | 
            +
                                file = MP4(video_path)
         | 
| 1286 | 
            +
                                file.tags['©cmt'] = [json.dumps(configs)]
         | 
| 1287 | 
            +
                                file.save()
         | 
| 1288 |  | 
| 1289 | 
             
                            print(f"New video saved to Path: "+video_path)
         | 
| 1290 | 
             
                            file_list.append(video_path)
         | 
|  | |
| 1712 | 
             
                             )
         | 
| 1713 | 
             
                            save_path_choice = gr.Textbox(
         | 
| 1714 | 
             
                                label="Output Folder for Generated Videos",
         | 
| 1715 | 
            +
                                value=server_config.get("save_path", save_path)
         | 
| 1716 | 
             
                            )
         | 
| 1717 | 
             
                            def check(mode): 
         | 
| 1718 | 
             
                                if not mode in attention_modes_supported:
         | 
|  | |
| 1787 | 
             
                                # visible= True ############
         | 
| 1788 | 
             
                             )                
         | 
| 1789 |  | 
| 1790 | 
            +
                            metadata_choice = gr.Dropdown(
         | 
| 1791 | 
            +
                                choices=[
         | 
| 1792 | 
            +
                                    ("Export JSON files", "json"),
         | 
| 1793 | 
            +
                                    ("Add metadata to video", "metadata"),
         | 
| 1794 | 
            +
                                    ("Neither", "none")
         | 
| 1795 | 
            +
                                ],
         | 
| 1796 | 
            +
                                value=metadata,
         | 
| 1797 | 
            +
                                label="Metadata Handling"
         | 
| 1798 | 
            +
                            )
         | 
| 1799 | 
            +
             | 
| 1800 | 
             
                            msg = gr.Markdown()            
         | 
| 1801 | 
             
                            apply_btn  = gr.Button("Apply Changes")
         | 
| 1802 |  | 
|  | |
| 2064 | 
             
                            slg_start_perc,
         | 
| 2065 | 
             
                            slg_end_perc,
         | 
| 2066 | 
             
                            state,
         | 
| 2067 | 
            +
                            metadata_choice,
         | 
| 2068 | 
             
                        ],
         | 
| 2069 | 
             
                        outputs= [gen_status] #,state 
         | 
| 2070 |  | 
|  | |
| 2086 | 
             
                                compile_choice,                            
         | 
| 2087 | 
             
                                profile_choice,
         | 
| 2088 | 
             
                                vae_config_choice,
         | 
| 2089 | 
            +
                                metadata_choice,
         | 
| 2090 | 
             
                                default_ui_choice,
         | 
| 2091 | 
             
                                boost_choice,
         | 
| 2092 | 
             
                            ],
         | 
    	
        requirements.txt
    CHANGED
    
    | @@ -17,4 +17,5 @@ numpy>=1.23.5,<2 | |
| 17 | 
             
            einops
         | 
| 18 | 
             
            moviepy==1.0.3
         | 
| 19 | 
             
            mmgp==3.2.8
         | 
| 20 | 
            -
            peft==0.14.0
         | 
|  | 
|  | |
| 17 | 
             
            einops
         | 
| 18 | 
             
            moviepy==1.0.3
         | 
| 19 | 
             
            mmgp==3.2.8
         | 
| 20 | 
            +
            peft==0.14.0
         | 
| 21 | 
            +
            mutagen
         | 
 
			
