U \,gq @sddlZddlZejdejejejeddlZddlm Z m Z ddl m Z m Z mZddl mZmZGdddZedkrddlZdd ZeZeejd Zeejejejd ZeejdS) N)HunyuanDiTPipelineAutoPipelineForText2Image)seed_everythingtiming_decoratorauto_amp_inference)get_parameter_numberset_parameter_grad_falsec@s<eZdZd ddZeededdZdd d Z dS) Text2Imageweights/hunyuanDiTcuda:0NcCs^||_||_tj|tjddgd|_t|jjt dt |jj|sT|j ||_d|_ dS)zC save_memory: if GPU memory is low, can set it Tzblocks.(16|17|18|19))Z torch_dtypeZ enable_pagZpag_applied_layersztext2image transformer modelu~文本,特写,裁剪,出框,最差质量,低质量,JPEG伪影,PGLY,重复,病态,残缺,多余的手指,变异的手,画得不好的手,画得不好的脸,变异,畸形,模糊,脱水,糟糕的解剖学,糟糕的比例,多余的肢体,克隆的脸,毁容,恶心的比例,畸形的肢体,缺失的手臂,缺失的腿,额外的手臂,额外的腿,融合的手指,手指太多,长脖子N) save_memorydevicerfrom_pretrainedtorchfloat16piper transformerprintrtoneg_txt)selfpretrainr r r`/apdcephfs_cq5/share_300600172/huiwenshi/3d_services/repos/hunyuan3d-lite/infer/text_to_image.py__init__!s zText2Image.__init__z text to imagecOsV|jr<|j|j|_tj|j||}|jd|_n |j||}tj|S)Ncpu)r rrr rcuda empty_cachecall)rargskwargsresrrr__call__5s    zText2Image.__call__rc Csptd||d}t|tj|jd}|dk r>|t|}|j||j|ddd|ddd d }tj |S) z args: prompr: str seed: int steps: int return: rgb: PIL.Image z prompt is:u#,白色背景,3D风格,最佳质量r Ng?iF)promptZnegative_promptZnum_inference_stepsZ pag_scalewidthheight generatorZ return_dictr) rrr Generatorr manual_seedintrrrr)rr%seedstepsr(rgbrrrrCs&   zText2Image.call)r r N)rr#) __name__ __module__ __qualname__rrno_gradrrr"rrrrrr s   r __main__cCspt}|jddtd|jddtd|jddtd|jdd td|jd d td|jd d td|S)Nz--text2image_pathr )defaulttypez --text_promptz--output_img_pathz./outputs/test/img.jpgz--devicer z--seedrz--stepsr#)argparseArgumentParser add_argumentstrr+ parse_args)parserrrrget_argsYsr=r$)r,r-)ossyspathinsertdirnameabspath__file__rZ diffusersrr infer.utilsrrrrrr r/r7r=rr Ztext2image_model text_promptr,r-Zrgb_imgsaveZoutput_img_pathrrrrs(6