用稳定扩散生成4K PBR纹理【SDXL】

news2024/9/19 11:16:21

我正在继续去年开始使用 Three.JS 构建 3D 场景和草图的工作。

当时,DALL-E 和 Stable Diffusion 等 AI 图像生成器刚刚真正起飞。 我成功地在本地运行稳定扩散,并使用它为我正在构建的 3D 世界中的地形、建筑物和其他环境生成纹理。

当时我使用的是稳定扩散 v1。 我发现了一些我喜欢的提示,它们创建了具有如下样式的图像:

在这里插入图片描述

推荐:用 NSDT编辑器 快速搭建可编程3D场景

SDv1 非常擅长生成这样的纹理,我在使用不同的提示时生成了数百/数千张图像。

现在已经是 2023 年 8 月,AI 图像生成生态系统持续突飞猛进。 我一直在尝试使用 Stable Diffusion XL 来生成纹理,从大部分地形开始,我已经得到了一些很好的结果。

起初,我得到了一些令人沮丧的结果,因为我之前使用的提示效果不佳。 然而,经过一些实验,我得到的结果比我过去取得的任何成果都要好得多。

1、SDXL v1.0 PBR 纹理生成工作流程

我想出了一个非常可靠的工作流程,可以使用 Stable Diffusion XL 和其他一些工具生成高质量的 4K PBR 纹理。 到目前为止,我对结果印象非常深刻,而且我现在才开始研究这些东西几天。

这是我能够得到的结果:

在这里插入图片描述

2、使用7900 XTX安装运行SDXL

我最近买了一块7900 XTX显卡。 它具有 24GB 的 VRAM,足以生成具有稳定扩散的 1024x1024 图像,无需升级或其他技巧。

我选择 AUTOMATIC1111 WebUI 来安装和运行 Stable Diffusion。 它似乎是功能最丰富和最受欢迎的,并且它开箱即用地支持 AMD GPU。 我克隆了存储库,运行了 ./run_webui.sh 脚本,它自动安装依赖项并下载稳定扩散权重和其他模型文件。

为了运行它,我需要做一些手动操作。 我在第一次运行时遇到了段错误,但可以通过设置两个环境变量来解决此问题:

export CL_EXCLUDE=gfx1036
export HSA_OVERRIDE_GFX_VERSION=11.0.0

我目前正在使用 ROCm v5.5,我相信这就是需要这样做的原因。 该版本增加了对 AMD 7000 系列 GPU 的支持,但支持还不是很完整。 这些环境变量诱骗 Pytorch 和其他库认为它是其他模型并使其工作。

我之前写过一些关于使用 7900 XTX 安装 ROCm 和 TensorFlow 的说明。 不过,它们可能已经过时了。

无论如何,安装并导出这些环境变量后,Web UI 启动并生成图像!

3、SDXL提示词

该过程的第一步是找到一些好的纹理生成提示。 这当然是整个事情中最具创意的部分,并且对你的结果影响最大。

我这里没有太多指导; 这很大程度上取决于你想要生成的内容以及想要获得的风格。 然而,这是一个我已经取得很大成功的提示示例:

top-down image of rough solid flat dark, rich slate rock. interspersed with bright ((flecks)) of ((glinting)) metallic spots like mica. high quality photograph, detailed, realistic

负面提示:

blurry, cracks, crevice, round, smooth, distinct, pebble, shadows, coin, circle

请注意一些单词周围的括号。 这是我正在使用的 AUTO1111 webui 的一个功能,它告诉模型更多地关注它们周围的提示部分。 还有一些其他奇特的提示语法技巧; 大量的灵活性和可供探索的选项。

4、SDXL参数

下一步是为图像生成提出良好的参数。

我发现 Stable Diffusion XL 实际上比旧版本对所选参数更敏感。 最重要的是,与一年前相比,需要调整的东西要多得多。 结果,我确实花了很长时间才想出能够产生令我满意的图像的设置。

为了解决这个问题,我广泛使用了 AUTO1111 webui 的“X/Y/Z 图”功能。 它位于用户界面的“脚本”下拉列表中:
在这里插入图片描述

它生成输出图像的网格,其中每个单元格都是使用不同的参数组合生成的。 使用它时的输出如下所示:
在这里插入图片描述

它对于为我的图像确定一组良好的基线参数非常有用。

经过大量实验后,这是我现在在生成新纹理时使用的基线参数:

  • 采样方法:欧拉
  • 采样步数:60
  • 宽度/高度:1024x1024
  • CFG 量表:6.5(我发现正确地做到这一点尤其重要)
  • 平铺:启用(需要生成无缝平铺的纹理;极其重要)
  • 修复:已禁用(启用此功能后我尝试的所有操作都运气不好)

你可能需要自己进行试验才能找到适合你的用例的参数,但在开始时这些可能会作为一个很好的基准。

我观察到的另一件事是,启用平铺会导致生成的图像总体上显着不同。 例如,当使用 Stable Diffusion Dream Studio 在线生成图像以利用其快速 GPU,然后尝试在本地复制这些结果时,这会变得很棘手。 他们的托管 UI 中没有平铺选项,也不允许调整采样器等参数,因此很难获得精确匹配。

5、将纹理从 1K 转换为 4K

一旦我找到了一个好的提示和好的参数,我只需将其设置为生成一堆图像,然后就可以了! 我让它运行了大约 2 个小时,并选出了大约 50 张图像。 虽然很多都是不好的,但是这堆宝石中有足够多的宝石可供使用。

你可能已经注意到的一件事是,我在这篇文章的标题中提到了“4K 纹理”,但到目前为止我生成的所有图像都是 1K。 好吧,如果你认为我会说我使用多种可能方法中的一种沿着升级路线做了一些事情,那么你实际上就错了!

我创建了一种独特的方法,将AI生成的纹理组合在一起,以生成更高分辨率的输出。 生成的纹理保留源图像的无缝/无限平铺属性。

我构建了一个在浏览器中运行的工具,可以轻松地完成此操作,你可以在这里使用它, 100% 免费且开源。

过程非常简单。 你拖放 4 个看起来相似的无缝平铺稳定扩散生成的纹理,并将它们组合在一起。 正如我提到的,输出也将是无缝平铺的,并且分辨率提高了 4 倍。

该工具的 UI 如下所示:
在这里插入图片描述

你可以右键单击生成的图像并选择“图像另存为”将结果下载为 PNG 格式。 默认情况下的输出非常大,因此你可能需要使用像 sqoosh 这样的工具来压缩/优化它。

与稳定扩散和其他AI工具相比,其实现实际上技术含量相当低。 但我发现总体效果非常好!

它最适用于看起来非常相似的图像。 如果样式、颜色等方面存在较大差异,则在结果输出中可能会很明显并且看起来很糟糕。

获得外观非常相似的源图像的一个好方法是找到你喜欢的生成图像,然后生成它的变体。 为此,请将生成的图像上传到 AUTO1111 Web UI 的“PNG Info”选项卡。 然后,单击“发送到 txt2img”按钮,它将使用用于生成它的所有参数预先填充 UI。

然后,勾选 txt2img 选项卡上的“额外”复选框。 将“变化强度”设置为较小的值,例如 0.1-0.3,并生成十几个左右的图像。 它们整体看起来应该与原始版本相似,但细节不同。 如果您选择其中 4 个上传到无缝纹理缝合器工具,我发现输出通常看起来不错。

6、构建 PBR 纹理

一旦获得了满意的拼接 4K 图像,就可以将它们制作成完整的 PBR 纹理了。

为此,我使用了一个名为 Poly 的工具。 他们提供了一个AI驱动的纹理生成器,将图像作为输入并为其生成法线、高度、环境光遮挡、金属度和粗糙度贴图。 他们还提供自己的基于提示的生成工具,但我个人更喜欢自己生成它提供的控制。

他们的工具可以让你免费生成法线图和高度图,但是他们每月向你收取 20 美元来生成其他图。 我个人现在确实支付了该订阅费用,但你不必为了获得良好的结果而支付费用。 法线贴图是最重要的部分,您可以为纹理设置全局粗糙度/金属度值(这是您很多时候所需要的),或者编写自定义着色器以从像素值动态生成它们。

另一种可用于生成法线贴图的方法是 SmartNormap。 它使用非人工智能方法以编程方式为任何源图像生成法线贴图。 它有一些参数可以调整,结果还不错,但根据我的经验,总体来说不如AI驱动的 Poly 工具好。

无论如何,是的,那时你可以下载贴图并将其插入 Blender、Three.JS 或你想要的任何其他 3D 软件中。

如果你想更疯狂地使用它,无缝 4K 输出纹理可以与十六进制平铺算法一起使用,使其无限平铺,没有任何重复。 我正在开发一个 Three.JS 库来自动处理这个问题,下面是我在 Blender 中生成的一些地形上的布局:

在这里插入图片描述

7、结束语

这里真的有闸门打开的感觉。 我个人发现,使用 AI 图像生成纹理和其他构建块资产而不是完整图像或艺术品才是正确的选择。 我的创造力和投入有很大的空间来指导整个过程。 有无限的可能性可以探索,整个过程在我看来还是蛮有趣的。

无论如何,我希望这些内容对您有所帮助,如果你决定亲自尝试一下,祝你好运。


原文链接:用SDXL生成4K PBR纹理 — BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1061648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sd卡数据异常丢失怎么办?别慌,有这五种应对方法

随着SD卡在我们的生活中越来越广泛地使用,我们很可能会遇到SD卡数据异常丢失的情况。这种情况可能会给我们带来困扰和不便,因为丢失的数据可能包含了我们珍贵的照片、音乐、视频和文件等重要信息。幸运的是,在大多数情况下,我们仍…

多目标跟踪框架boxmot介绍

引言 boxmot由mikel brostrom开发,用于目标检测,分割和姿态估计模型的SOTA(state of art)跟踪模块,现已加入python第三方库 PYPI,可用pip包管理器进行安装。 boxmot所支持的跟踪器采用外观特征识别方法&am…

一文了解VR全景在城市园区和电子楼书的应用

引言: 虚拟现实(VR)技术在日常生活中越发普及,已经成为众多行业的宣传工具,房地产行业近些年来热度较低,VR全景为房地产展示带来了新方式,为购房者提供更真实、更直观的体验。 一.…

练[MRCTF2020]Ez_bypass

[MRCTF2020]Ez_bypass 文章目录 [MRCTF2020]Ez_bypass掌握知识解题思路关键paylaod 掌握知识 ​ 代码审计,md5函数绕过,is_numeric函数绕过,弱等于的字符串和数字类型绕过 解题思路 打开题目链接,发现是代码审计题目&#xff0…

基于猫群优化的BP神经网络(分类应用) - 附代码

基于猫群优化的BP神经网络(分类应用) - 附代码 文章目录 基于猫群优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.猫群优化BP神经网络3.1 BP神经网络参数设置3.2 猫群算法应用 4.测试结果:5.M…

buuctf-[BSidesCF 2020]Had a bad day 文件包含

打开环境 就两个按钮,随便按按 url变了 还有 像文件包含,使用php伪协议读取一下,但是发现报错,而且有两个.php,可能是自己会加上php后缀 所以把后缀去掉 /index.php?categoryphp://filter/convert.base64-encode/resourcei…

从0开始深入理解并发、线程与等待通知机制(中)

一,深入学习 Java 的线程 线程的状态/生命周期 Java 中线程的状态分为 6 种: 1. 初始(NEW):新创建了一个线程对象,但还没有调用 start()方法。 2. 运行(RUNNABLE):Java 线程中将就绪(ready)和…

Endnote修改参考文献(References)的期刊全称为缩写

一、准备(下载)所需要的期刊缩写列表 (Term Lists) 我已经下载并上传了一份Trem Lists 链接: 在不列颠哥伦比亚大学图书馆网站导出所有期刊名和缩写,大概1W的期刊名字,期刊名字和缩写截至2021.12.03 哥伦…

【抢先体验】开通使用 ChatGPT 语音版功能保姆级教程

大家好,我是苍何,一个土木转码的非典型程序员,也是一名技术管理者,同时也是 AI 应用的探索者。今天在视频号上看到和 ChatGPT 语音对话的视频,其声音的真实感太让人震撼了,于是也想去抢先体验一下 ChatGPT …

学习记忆——宫殿篇——记忆宫殿——记忆桩——卧室——莫兰勋爵在地铁走失的案子

《神探夏洛克》第三季第一集中提到“思维殿堂”,其实指的就是记忆宫殿。讲述了一个名叫莫兰勋爵在地铁走失的案子,这里简单给大家罗列以下破案信息: 订阅报纸的男人、伦敦养狗的女人、穿着黑色运动的非裔女人、松木、云杉、雪松、新樟脑球、碳…

js——深拷贝和浅拷贝

深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。对于基本数据类型,例如字符串、数字、布尔值等,由于它们是按值传递的,所以不存在深拷贝和浅拷贝的问题。 深拷贝 将对象从内存中完整拷贝出来,从堆内存中开辟一个新的…

mac电脑任务管理器 Things3 for Mac中文

Things 3是一款效率软件,可以帮助用户规划一天行程、管理项目,并使使用者按部就班地朝目标迈进。以下是Things 3的主要特点和功能: 待办事项:以“待办事项”为基本组成部分,每一则待办事项都是迈向大成就的一小步。用…

【每日一题】买卖股票的最佳时机含冷冻期

文章目录 Tag题目来源题目解读解题思路方法一:动态规划空间优化 写在最后 Tag 【动态规划】【数组】【2023-10-05】 题目来源 309. 买卖股票的最佳时机含冷冻期 题目解读 这是股票系列问题的第五篇了,要求求出买卖股票的最佳时期以获得最大的利润&…

基于spirngboot人事考勤管理信息系统

一:功能介绍 本系统前端采用vue框架以及Elemnt-UI,后端采用springboot、mysql、redis、mybatis等技术栈。 主要功能有登录、员工考勤、数据统计、薪资管理、权限管理、打卡管理、考勤审核、请假审批、薪资发放、报表统计、文件上传、文件下载、考勤设置、请假设置。…

Spring Boot注册Web组件

文章目录 什么是Web组件?注册Servlet注册Filter注册Listener总结 🎉欢迎来到架构设计专栏~Spring Boot注册Web组件 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页:IT陈寒的博客🎈该系列文章专栏:架构设计&a…

安装matplotlib__pygame,以pycharm调入模块

安装pip 安装matplotlib 安装完毕,终端输入pip list检查 导入模块出现bug,发现不是matplotlib包的问题,pycharm版本貌似不兼容,用python编辑器可正常绘图,pygame也可正常导入。 ​​​​​​​ pycharm版本问题解决 终…

k8s集群-7 service

工作负载的应用是如何暴露出去的 解决访问问题 Service可以看作是一组提供相同服务的Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。 service默认只支持4层负载均衡能力,没有7层功能。(可以通过Ingress实现) service的类型: C…

【每日一题】买卖股票的最佳时机含手续费

文章目录 Tag题目来源题目解读解题思路方法一:动态规划空间优化 写在最后 Tag 【动态规划】【数组】【2023-10-06】 题目来源 714. 买卖股票的最佳时机含手续费 题目解读 本题与 122. 买卖股票的最佳时机 II 如出一辙,仅仅是增加了交易的手续费用。 解…

人工智能:定义未来,揭开历史神秘面纱,展望无限可能!

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…