a ƒe+gQã @sÐddlZddlZej dej ej ej e¡¡¡›¡ddlZddlm Z m Z ddl m Z m Z mZddl mZmZGdd„dƒZedkrÌddlZdd „ZeƒZeejd Zeejejejd Ze ej¡dS) éN)ÚHunyuanDiTPipelineÚAutoPipelineForText2Image)Úseed_everythingÚtiming_decoratorÚauto_amp_inference)Úget_parameter_numberÚset_parameter_grad_falsec@s<eZdZddd„Ze ¡edƒedd„ƒƒƒZdd d „Z d S)Ú Text2Imageúweights/hunyuanDiTúcuda:0FcCs^||_||_tj|tjddgd|_t|jjƒt dt |jjƒƒ|sT|j  |¡|_d|_ dS)zC save_memory: if GPU memory is low, can set it Tzblocks.(16|17|18|19))Ú torch_dtypeÚ enable_pagÚpag_applied_layersztext2image transformer modelu~文本,特写,è£å‰ª,出框,最差质é‡,低质é‡,JPEG伪影,PGLY,é‡å¤,ç—…æ€,残缺,多余的手指,å˜å¼‚的手,画得ä¸å¥½çš„æ‰‹,画得ä¸å¥½çš„脸,å˜å¼‚,畸形,模糊,脱水,糟糕的解剖学,糟糕的比例,多余的肢体,克隆的脸,æ¯å®¹,æ¶å¿ƒçš„æ¯”例,畸形的肢体,缺失的手臂,缺失的腿,é¢å¤–的手臂,é¢å¤–的腿,èžåˆçš„æ‰‹æŒ‡,手指太多,é•¿è„–å­N) Ú save_memoryÚdevicerÚfrom_pretrainedÚtorchÚfloat16ÚpiperÚ transformerÚprintrÚtoÚneg_txt)ÚselfÚpretrainrr©rú`/apdcephfs_cq5/share_300600172/huiwenshi/3d_services/repos/hunyuan3d-lite/infer/text_to_image.pyÚ__init__!sü zText2Image.__init__z text to imagecOs^|jr@|j |j¡|_tj ¡|j|i|¤Ž}|j d¡|_n|j|i|¤Ž}tj ¡|S)NÚcpu)rrrrrÚcudaÚ empty_cacheÚcall)rÚargsÚkwargsÚresrrrÚ__call__5s  zText2Image.__call__réc Csf|d}t|ƒtj|jd}|dur4| t|ƒ¡}|j||j|ddd|dddd}tj  ¡|S) z¡ inputs: prompr: str seed: int steps: int return: rgb: PIL.Image u#,白色背景,3D风格,最佳质釩rNgÍÌÌÌÌÌô?iF)ÚpromptÚnegative_promptÚnum_inference_stepsÚ pag_scaleÚwidthÚheightÚ generatorÚ return_dictr) rrÚ GeneratorrÚ manual_seedÚintrrrr )rr(ÚseedÚstepsr.Úrgbrrrr!Cs   ÿÿÿ zText2Image.callN)r r F)rr&) Ú__name__Ú __module__Ú __qualname__rrÚno_gradrrr%r!rrrrr s   r Ú__main__cCspt ¡}|jddtd|jddtd|jddtd|jdd td|jd d td|jd d td| ¡S)Nz--text2image_pathr )ÚdefaultÚtypez --text_promptÚz--output_img_pathz./outputs/test/img.jpgz--devicer z--seedrz--stepsr&)ÚargparseÚArgumentParserÚ add_argumentÚstrr2Ú parse_args)ÚparserrrrÚget_argsXsrDr')r3r4)ÚosÚsysÚpathÚinsertÚdirnameÚabspathÚ__file__rÚ diffusersrrÚ infer.utilsrrrrrr r6r>rDr"rÚtext2image_modelÚ text_promptr3r4Úrgb_imgÚsaveÚoutput_img_pathrrrrÚs(5