文本引导纹理生成是通过输入一个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可能不适用或产生一些偏差,请用户自行评测后决定如何使用。
评论