divisor.app
Main entry point for divisor CLI. Routes to different inference modes based on flags. Exclusive import location of submodules to avoid circular imports.
1# SPDX-License-Identifier: MPL-2.0 AND LicenseRef-Commons-Clause-License-Condition-1.0 2# <!-- // /* d a r k s h a p e s */ --> 3 4""" 5Main entry point for divisor CLI. 6Routes to different inference modes based on flags. 7Exclusive import location of submodules to avoid circular imports. 8""" 9 10import argparse 11import sys 12 13from fire import Fire 14 15from divisor.spec import flux_map, mmada_map, acestep_map 16 17model_args = flux_map | mmada_map | acestep_map 18 19 20def main(): 21 """Main entry point that routes to appropriate inference function.""" 22 parser = argparse.ArgumentParser(description="Divisor Multimodal CLI") 23 parser.usage = "divisor --model-type dev --quantization <args>" 24 parser.epilog = """Valid arguments : 25 --ae_id, --width, --height, --guidance, --seed, --prompt, 26 --tiny, --device, --num_steps, --loop, 27 --offload, --compile, --verbose 28 """ 29 parser.add_argument( 30 "--quantization", 31 action="store_true", 32 help="Enable quantization (fp8, e5m2, e4m3fn) for the model", 33 ) 34 35 parser.add_argument( 36 "-m", 37 "--model-type", 38 choices=model_args, 39 default=list(model_args)[0], 40 help=f""" 41 Model type to use: {list(model_args)}, Default: {list(model_args)[0]} 42 """, 43 ) 44 45 args, remaining_argv = parser.parse_known_args() 46 model_id = args.model_type 47 if args.model_type in mmada_map: 48 from divisor.mmada.gradio import main 49 50 remaining_argv = [""] # Gradio app doesn't need arguments 51 elif args.model_type in flux_map: 52 model_id = args.model_type 53 if args.model_type == "flux2-dev": 54 from divisor.flux2.prompt import main 55 else: 56 if args.model_type == "mini": 57 from divisor.xflux1.prompt import main 58 else: 59 from divisor.flux1.prompt import main 60 remaining_argv = ["--mir-id", model_args[model_id]] + remaining_argv # change to model_args[model_id] 61 else: 62 from divisor.acestep.gradio import main 63 64 sys.argv = [sys.argv[0]] + remaining_argv 65 Fire(main) 66 67 68if __name__ == "__main__": 69 main()
model_args =
{'flux1-dev': 'model.dit.flux1-dev', 'mini': 'model.dit.flux1-dev:mini', 'flux1-schnell': 'model.dit.flux1-schnell', 'flux2-dev': 'model.dit.flux2-dev', 'mmada': 'model.mldm.mmada', 'mixcot': 'model.mldm.mmada:mixcot', 'lumina-dimoo': 'model.mldm.mmada:lumina-dimoo', 'acestep': 'model.dit.acestep'}
def
main():
21def main(): 22 """Main entry point that routes to appropriate inference function.""" 23 parser = argparse.ArgumentParser(description="Divisor Multimodal CLI") 24 parser.usage = "divisor --model-type dev --quantization <args>" 25 parser.epilog = """Valid arguments : 26 --ae_id, --width, --height, --guidance, --seed, --prompt, 27 --tiny, --device, --num_steps, --loop, 28 --offload, --compile, --verbose 29 """ 30 parser.add_argument( 31 "--quantization", 32 action="store_true", 33 help="Enable quantization (fp8, e5m2, e4m3fn) for the model", 34 ) 35 36 parser.add_argument( 37 "-m", 38 "--model-type", 39 choices=model_args, 40 default=list(model_args)[0], 41 help=f""" 42 Model type to use: {list(model_args)}, Default: {list(model_args)[0]} 43 """, 44 ) 45 46 args, remaining_argv = parser.parse_known_args() 47 model_id = args.model_type 48 if args.model_type in mmada_map: 49 from divisor.mmada.gradio import main 50 51 remaining_argv = [""] # Gradio app doesn't need arguments 52 elif args.model_type in flux_map: 53 model_id = args.model_type 54 if args.model_type == "flux2-dev": 55 from divisor.flux2.prompt import main 56 else: 57 if args.model_type == "mini": 58 from divisor.xflux1.prompt import main 59 else: 60 from divisor.flux1.prompt import main 61 remaining_argv = ["--mir-id", model_args[model_id]] + remaining_argv # change to model_args[model_id] 62 else: 63 from divisor.acestep.gradio import main 64 65 sys.argv = [sys.argv[0]] + remaining_argv 66 Fire(main)
Main entry point that routes to appropriate inference function.