@@ -93,6 +93,8 @@ struct CommandLineArgs {
9393 bool vae_tiling = false ;
9494 bool offload_to_cpu = false ;
9595 bool diffusion_fa = false ;
96+ bool control_net_cpu = false ;
97+ bool clip_on_cpu = false ;
9698};
9799
98100void print_usage (const char * program_name) {
@@ -117,6 +119,8 @@ void print_usage(const char* program_name) {
117119 std::cerr << " --vae-tiling Enable VAE tiling (default: false)" << std::endl;
118120 std::cerr << " --offload-to-cpu Offload parameters to CPU (default: false)" << std::endl;
119121 std::cerr << " --diffusion-fa Enable diffusion flash attention (default: false)" << std::endl;
122+ std::cerr << " --control-net-cpu Keep ControlNet on CPU (default: false)" << std::endl;
123+ std::cerr << " --clip-on-cpu Keep CLIP on CPU (default: false)" << std::endl;
120124}
121125
122126CommandLineArgs parse_args (int argc, char * argv[]) {
@@ -171,6 +175,10 @@ CommandLineArgs parse_args(int argc, char* argv[]) {
171175 args.offload_to_cpu = true ;
172176 } else if (arg == " --diffusion-fa" ) {
173177 args.diffusion_fa = true ;
178+ } else if (arg == " --control-net-cpu" ) {
179+ args.control_net_cpu = true ;
180+ } else if (arg == " --clip-on-cpu" ) {
181+ args.clip_on_cpu = true ;
174182 } else if (arg == " --help" || arg == " -h" ) {
175183 print_usage (argv[0 ]);
176184 exit (0 );
@@ -249,6 +257,8 @@ int main(int argc, char* argv[]) {
249257 server_params.vae_tiling = args.vae_tiling ;
250258 server_params.offload_to_cpu = args.offload_to_cpu ;
251259 server_params.diffusion_fa = args.diffusion_fa ;
260+ server_params.control_net_cpu = args.control_net_cpu ;
261+ server_params.clip_on_cpu = args.clip_on_cpu ;
252262
253263 // Create and start the server
254264 g_server = std::make_unique<Server>(server_params);
0 commit comments