o yfe@s`ddlmZddlZddlZddlmZmZmZmZm Z e Z ddZ d ddZ d d d ZdS) wrapsN)sharedprogresserrorsdevices fifo_lockcsfdd}|S)Ncs8t|i|}Wd|S1swY|SN) queue_lock)argskwargsresfunccC:\Users\Luke\Documents\Stable diffusion\Automatic1111\stable-diffusion-webui\modules\call_queue.pyf s  zwrap_queued_call..fr)rrrrrwrap_queued_call s rcs"tfdd}t||ddS)Nc s|r"t|dtkr"|ddr"|ddr"|d}t|nd}t5tjj |dt |z|i|}t ||Wt |nt |wtj Wd|S1s^wY|S)Nrztask())job)typestr startswithendswithrZadd_task_to_queuer rstatebegin start_taskZrecord_resultsZ finish_taskend)r r id_taskr rrrrs 0      zwrap_gradio_gpu_call..fT) extra_outputs add_stats)rwrap_gradio_call)rrrrrrwrap_gradio_gpu_callsr"Fcs t|dfdd }|S)N)extra_outputs_arrayc stjjdko tjj o }|rtjt}z t|i|}Wngt y}z[d}d}d|d|d|} t | |krN| d|dt | d7} t j |d | d d d tj _dtj _|durjdd g}t|jd |} |dt| dg}WYd}~nd}~wwtdtj _dtj _dtj _dtj _st|St|} t| d} | d} | dd}| dkr| d|}|r/ddtjD}|d}|d}|d}|d}|t|dd}d}d}d}d |d!|d"d#d$}d |d%|d"d#d$}d |d&|d"dd|d"d'd(|dd) }d*|d+|d+|d,}nd }|d-d.|d/|d7<t|S)0NrizError completing requestz Arguments:  z (Argument list truncated at /z characters) T)exc_infoz: z
z
F<z.1fz sec.z min. cSsi|] \}}||d qS)ir).0kvrrr _sz/wrap_gradio_call..f.. active_peak reserved_peak system_peaktotaldzRActive: peak amount of video memory used during generation (excluding cached data)zFReserved: total amount of video memory allocated by the Torch library z\System: peak amount of video memory allocated by all running programs, out of total capacityz A: iz.2fz GBz&'>R: z('>Sys: gz GB (z%)z

z, z

zT

Time taken: z

)roptsmemmon_poll_ratemem_mondisabledmonitortime perf_counterlist Exceptionlenrreportrr job_countr__name__htmlescapertorch_gcskipped interruptedstopping_generationtupleintstopitemsmax)r#r r Z run_memmontr eZmax_debug_str_lenmessagearg_str error_messageelapsedZ elapsed_m elapsed_sZ elapsed_textZ mem_statsr.r/Zsys_peakZ sys_totalZsys_pctZtoltip_aZtoltip_rZ toltip_sysZtext_aZtext_rZtext_sysZ vram_htmlr rrrr1sf  $   ,zwrap_gradio_call..fr)rrr rrrUrr!0sEr!r )NF) functoolsrrCr;modulesrrrrrZFIFOLockr rr"r!rrrrs