cv_diffuser_text-texture-generation

189 downloads 6 likes on ModelScope updated

Model card

文本引导纹理生成是通过输入一个3D白模和描述其纹理的语句,生成符合该3D模型和描述的纹理,该方法使用了stable diffusion预训练模型,实际使用可替换为其他基模。

白模生成纹理渲染效果展示:

模型描述

该方法使用文生图大模型为预训练模型,使用3D模型的深度or法向图作为controlnet引导条件,使得文生图模型可以生成对应3D模型的图像,之后使用pytorch3d反向映射回原图,中间使用文生图-inpaint模型做中间纹理填充,使最终呈现效果具有一致性。

如何使用

(注意:该方法目前仅支持GPU推理,且需要pytorch3d>=0.7.0版本,diffusers>=0.17.0版本,同时安装torch对应版本的xformers库)

在ModelScope框架上,提供输入obj格式mesh的路径和描述prompt,即可以通过简单的Pipeline调用来生成对应纹理。

代码范例

from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

video_inpainting = pipeline(Tasks.text_texture_generation, 
                       model='damo/cv_diffuser_text-texture-generation')
result_status = video_inpainting({'mesh_path':'data/test/mesh/mesh1.obj',
                           'prompt':'old backpage'})
print(result_status)
  • mesh_path 为输入mesh的路径
  • prompt 为对纹理的描述

正常情况下,在原路径下会生成mesh_post.obj文件及其对应纹理

模型局限性以及可能的偏差

受限于预训练模型,生成纹理对于一些case可能不适用或产生一些偏差,请用户自行评测后决定如何使用。