o
    *j                     @   s   d dl Z d dlmZ d dlZd dlmZmZ d dlm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlmZ dZdd Zd	d
 Zdd Zdd ZdS )    Nload_objload_objs_as_meshes)AmbientLightsMeshRasterizerMeshRendererWithFragmentsPerspectiveCamerasRasterizationSettingsSoftPhongShaderlook_at_view_transform)
transforms)tqdmi   c                 C   s,   t | |d\}}}t| g|d}||||fS )Ndevicer   )Z
model_pathr   vertsfacesauxmesh r   s/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/modelscope/models/cv/text_texture_generation/utils.py	init_mesh   s   r   c                 C   sp   d|  }|||  d }t |||\}}||d d< tttgd}	td}
t|
||||	d}||||fS )Nih  r      g       @)focal_lengthRTr   
image_size)r   torchZtensor
IMAGE_SIZEZ	unsqueezer   )	num_viewsdistelevazimview_idxr   intervalr   r   r   r   camerasr   r   r   init_camera   s   
r%   c                 C   s6   t td}t|d}tt| |dt| ||dd}|S )N)r   r   )r$   raster_settings)r$   lightsr   )Z
rasterizerZshader)r	   r   r   r   r   r
   )camerar   r&   r'   rendererr   r   r   init_renderer(   s   

r*   c                    sV  d}t j rt d}t j| ntd t  d| tj	 dd t
| |\}}}}td tt|D ]E}tj d|}d	}	d
}
d}t||	|
|||\}}	}
}t||}||\}}|d  }|ddd}t |d}|| q9 fddttjD }tjtj d|dd tjtj d|dd td d S )NH   zcuda:0zno gpu avaiablezGIF-{}T)exist_okz=> rendering...{}.pngg?   r   r      RGBc                    s&   g | ]}t tj d |qS )r-   )imageioZimreadospathjoinformat).0Zv_id
output_dirr   r   
<listcomp>T   s    z"generation_gif.<locals>.<listcomp>z
output.gifg?)durationz
output.mp4   )Zfpsz=> done!)r   cudaZis_availabler   Z
set_deviceprintexitr5   r2   makedirsr   r   ranger3   r4   r%   r*   cpuZpermuter   Z
ToPILImageconvertsaveargsr   r1   Zmimsave)Z	mesh_pathr   ZDEVICEr   r   r   r   r"   Zinit_image_pathr   r    r!   r$   r)   Zinit_images_tensor	fragmentsZ
init_imageZimagesr   r7   r   generation_gif3   s@   





rF   )r2   Z
imageio.v2Zv2r1   r   Zpytorch3d.ior   r   Zpytorch3d.rendererr   r   r   r   r	   r
   r   Ztorchvisionr   r   r   r   r%   r*   rF   r   r   r   r   <module>   s   $