稳定扩散AI 纹理生成器

news2025/1/15 12:43:21
推荐基于稳定扩散(stable diffusion) AI 模型开发的自动纹理工具: DreamTexture.js自动纹理化开发包 - NSDT

什么是稳定扩散?

从技术上讲,Stable Diffusion 是一种用于机器学习的潜在扩散模型 (LDM)。这种类型的专用深度学习模型使用概率分布来生成在统计上与模型训练数据相似的输出。

除了生成新图像外,Stable Diffusion 还可用于修复或修复现有图像中的元素,以及图像到图像的转换。

  • 修复是填充图像中缺失或损坏部分的过程。它是图像恢复和编辑中的常见任务,可用于从图像中删除对象、修复损坏的照片或完成不完整的图像。
  • Outpainting 是将图像扩展到其原始边界之外的过程。它可用于创建更大的图像、向图像添加新元素或更改图像的纵横比。
  • 图像到图像转换是将输入图像映射到输出图像的过程。它可用于更改图像的艺术风格、更改图像中对象的外观或通过增加对比度或颜色密度来提高图像质量。

稳定扩散如何工作?

Stable Diffusion 最初是在从互联网上抓取的人类标记图像上训练的。该模型学会了如何通过使用一种称为人类反馈强化学习 (RLHF) 的技术来改进其输出。

在初始训练阶段,基础模型的任务是分析标记训练数据中潜在变量的概率分布。潜在变量捕获训练图像的底层结构和细节,并允许模型了解特定图像与人类创建的文本标签匹配的可能性。

Stable Diffusion 的工作原理是将扩散滤波器应用于随机像素的图像,该图像对相邻像素的值进行平均。在深度学习过程的每次迭代期间,过滤器都会从图像中去除更多噪点,直到剩余像素在统计上与提供的文本描述匹配。

基础模型的最新版本 SDXL 1.0 于 2023 年 3 月发布。据说它已经用 5 亿个参数和数千个超参数进行了训练。根据 Stability AI 网站的说法,该模型之所以运行得如此之好,是因为它在发布前进行了大规模测试,有超过 10,000 名 beta 测试人员平均每天创建 1 万张图像。

下面是使用文本提示“灰松鼠嗅黄花”创建的稳定扩散图像的示例。

稳定的扩散生成松鼠嗅花的图像。

来源:DreamStudio.ai

下面是使用文本提示“折纸灰松鼠嗅黄色花朵”创建的稳定扩散图像示例。

折纸灰松鼠嗅黄色的花

来源:DreamStudio.ai

稳定扩散与 DALL-E,Midjourney 相比

Stable Diffusion 经常被拿来与 DALL-E 相提并论,DALL-E 是由 ChatGPT 的创造者 Open AI 开发的专有生成式 AI 图像应用程序。

虽然这两个 AI 模型都是在大量图像数据上训练的,并且都能够生成有用的图像,但 DALL-E 是一种条件扩散模型,它使用外部信息来指导图像生成过程。用户的提示为模型提供了有关生成的图像应类似于或包含的内容的具体指导。

相比之下,Stable Diffusion 是一种开源的潜在扩散模型,它使用文本或图像提示对所需图像的潜在表示进行编码。潜在表示指导扩散过程,以确保生成的图像在统计上与用户的提示相似。

Midjourney 是一种专有的潜在扩散模型,用于生成图像。它只能通过付费订阅获得。没有免费或免费增值版本可供个人使用。

历史

Stable Diffusion 于 2022 年首次发布,由一家相对较新的研发 (R&D) 公司 Stability AI 资助。

该公司与 Amazon Web Services (AWS) 的合作使开发人员能够访问 Ezra-1 UltraCluster 超级计算机,并为 Stability AI 提供了开发用于图像、音乐和代码生成的复杂人工智能 (AI) 模型所需的处理能力。

Stability AI 的既定使命是“让 AI 更易于访问和包容”。然而,在 2023 年 <> 月,一些媒体报道称,用户被禁止在 Google Cloud Platform (GCP) 上运行 Stable Diffusion。

谷歌集团产品经理克里斯·佩里(Chris Perry)在推特上回应说,该公司没有禁止生成式人工智能应用程序,但他们确实对免费账户进行了限制,因为Stable Diffusion已经变得如此受欢迎。Stability AI创始人穆罕默德·埃马德·莫斯塔克(Mohammad Emad Mostaque)在推特上表示,他认为这一决定是公平的。

如何使用稳定扩散

可以通过访问 Stability AI 网站或使用 DreamStudio 或 Clipdrop 免费访问和试用 Stable Diffusion。DreamTexture.js自动纹理化开发包 使用 Stable Diffusion 应用程序编程接口 (API)可用于webGL应用3D模型AI自动纹理化工具。

要使用 Stable Diffusion,请按照下列步骤操作:

  1. 打开 Stable Diffusion 用户界面。
  2. 输入描述图像的文本提示,或上传图像并输入有关如何更改图像的文本提示。
  3. 单击“生成”按钮,根据文本提示生成少量图像。
  4. 如果需要,可以调整文本提示和模型的潜在变量,以控制输出的各个方面,例如样式、内容或主题。
  5. 模型生成所需结果后,将其保存在本地以备将来使用。

使用稳定扩散的 3 个技巧

  • 创建文本提示时要具体。这可以说是使用Stable Diffusion最困难的方面。文本提示越具体,输出效果越好。如果模型的初始输出不是最优的,请考虑使用更具体的提示再次启动该过程。
  • 使用否定提示从模型的输出中排除特定元素。例如,要生成不戴帽子的牛仔图像,请使用否定提示“不戴帽子”。
  • 如果模型在本地运行,请考虑使用较小的数据集对其进行微调,以满足特定的创意需求。

在本地运行稳定的扩散

为了避免为大规模使用 Stable Diffusion 付费,同意 Stability AI 可接受使用政策 (AUP) 的技术娴熟用户可以在具有至少 7GB 视频随机存取内存 (VRAM) 的显卡的商用台式计算机上本地安装 LDM 模型。

在不久的将来,Stability AI 预计将发布其 LDM 模型的优化版本,以提高模型性能和输出质量。他们还计划发布一些版本,使 Stable Diffusion 能够在 AMD、Macbook M1/M2 和其他芯片组上运行。(目前,建议使用NVIDIA芯片。

对于想要大规模生成免费图像、离线生成图像、保持图像私密性或微调 Stable Diffusion 输出以满足特定用例的用户来说,在本地运行 Stable Diffusion 是一个不错的选择。

例如,开发人员可以在本地运行 Stable Diffusion,为他们正在开发的游戏生成纹理和图像。

如何安装稳定扩散

在用户访问 Stability.ai 网站并验证其计算机满足最新的最低要求后,他们将需要下载并安装 Python 和 Git。他们还需要在 Hugging Face 创建一个免费帐户以获取模型重量,然后按照以下步骤操作:

步骤1: 要获取 Stable Diffusion 项目文件,请访问此项目的 GitHub 页面。在右上角,找到并单击绿色的“代码”按钮。从下拉菜单中,选择“下载 ZIP”。下载后,解压缩ZIP文件内容。此操作将创建一个名为“stable-diffusion-webui-master”的文件夹。若要简化安装,请将整个文件夹(以及所有提取的文件)复制到主机的 C: 驱动器的根目录。

步骤2:访问 Hugging Face 网站并搜索或浏览“768-v-ema.ckpt”文件的下载链接。此文件非常大,因此在下载过程中预计会有很多等待时间。下载完成后,导航到以下位置:“C:\stable-diffusion-webui-master\models\Stable-diffusion”。在此文件夹中,找到一个名为“在此处放置稳定扩散检查点 .txt”的文件并插入“768-v-ema.ckpt”文件。

第 3 步:在从 GitHub 下载的 ZIP 文件中找到配置 YAML 文件。导航到“C:\stable-diffusion-webui-master\models\Stable-diffusion”文件夹并将 YAML 文件保存在那里。将文件名更改为“768-v-ema.yaml”,同时保留“.yaml”扩展名。

第 4 步:移动到“stable-diffusion-webui-master”文件夹并运行“webui-user.bat”文件。等待几分钟。命令窗口最终应显示一条消息,内容为:“在本地 URL 上运行”,后跟包含本地计算机的 IP 地址和端口号的 URL。将整个 URL(包括端口号)复制并粘贴到 Web 浏览器中。此操作将打开 Stable Diffusion 应用程序。

第 5 步:出现提示时输入所需图像的描述。(可选)在“否定提示”框中指定要排除的任何文本。调整参数,根据需要修改批次计数和大小,然后单击“生成”按钮。然后,应用程序将根据提供的输入显示请求的图像数量。

许可

Stable Diffusion 根据 CreativeML Open RAIL-M 许可证获得许可,该许可证允许将模型及其输出用于商业和非商业用途。

需要注意的是,该许可证不涵盖可用于生成具有 Stable Diffusion 的图像的任何基础材料的版权。

这意味着,如果通过添加或替换图像中的元素(上漆)、扩展以使图像变大(上漆)或使其类似于梵高的画作(图像到图像的翻译)来更改受版权保护的照片,则新生成的图像的版权仍属于原始照片的版权所有者。

 转载:稳定扩散AI 纹理生成器 (mvrlink.com)

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

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

相关文章

直播间自动发言机器人的运行分享,与开发需要到的技术分析

先来看实操成果&#xff0c;↑↑需要的同学可看我名字↖↖↖↖↖&#xff0c;或评论888无偿分享 一、引言 随着人工智能技术的不断发展&#xff0c;自动发言机器人已经成为了当今社交媒体领域的重要组成部分。它们能够自动化地发布内容、回复用户评论和消息&#xff0c;大大提高…

解析html生成Word文档

内容&#xff1a;读取html文件中的文本内容&#xff0c;然后生成Word文档导出。 事例场景&#xff1a;需求开发完成之后需要写文档&#xff08;代码修改清单&#xff09;&#xff0c;文档内容就是这次需求修改/新增的所有代码&#xff0c;需要列出修改的文件路径以及代码片段&…

JavaWeb Day09 Mybatis-基础操作01-增删改查

目录 环境准备 ①Emp.sql ②Emp.java 一、删除 ①Mapper层 ②测试类 ③预编译SQL&#xff08;查看mybatis日志&#xff09; 1.性能 2.安全 ④总结 二、新增 ①Mapper层 ②测试类 ③结果 ④新增&#xff08;主键返回&#xff09; 1.Mapper层 2.测试类 ⑤总结​…

leetCode 493 翻转对 归并分治 + 图解

493. 翻转对 - 力扣&#xff08;LeetCode&#xff09; 给定一个数组 nums &#xff0c;如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。你需要返回给定数组中的重要翻转对的数量。 求"小和"问题是&#xff0c;当我 j 来到一个位置的时…

【研究】Splunk 字段是否被加工过

1: 背景: 最近用户有个疑问,就是有些字段的输出有点问题,不确定是否被加工过。 2: 查找问题: index=abc sourcetype=def123 发现字段: city_shanghai 的输出可能有点问题。 3: 排查问题: 先去这个splunk search head cluster 的页面: server 的查找如下: 登入so1 s…

“Git实践指南:深入探索开发测试上线、分支管理与标签“

文章目录 引言一、Git的分支的使用1.分支2.标签3.分支与标签的关系4. 分支在实际中的作用5. 四个环境以及各自的功能特点6. 分支策略分支应用场景 二、Git的标签3.1 标签的基本使用3.3 标签的共享与推送 总结 引言 在现代软件开发中&#xff0c;版本控制是一个关键的环节&…

kubernetes prometheus监控

目录 一、部署prometheus 二、 部署nginx监控实例 三、部署prometheus-adapter 一、部署prometheus 清理镜像方便后面一次性上传 docker rmi docker images | grep -v REPOSITORY | awk {print $1":"$2} 删除 docker load -i kube-prometheus-stack-0.58.0.tar…

计蒜客详解合集(3)期

目录 T1236——分苹果 T1113——整理药名 T1153——整数奇偶排列 T1249——漂亮的字符串 T1168——统计素数个数 T1160——甲流病人筛选 T1236——分苹果 分享一道特别简单的题。 蒜头君要把一堆苹果分给 个小朋友&#xff0c;要使每个人都能拿到苹果&#xff0c;而目每…

Python学习笔记--自定义类型的枚举

三、自定义类型的枚举 但有些时候我们需要控制枚举的类型&#xff0c;那么我们可以 Enum 派生出自定义类来满足这种需要。通过修改上面的例子&#xff1a; #!/usr/bin/env python3 # -*- coding: UTF-8 -*- from enum import Enum, uniqueEnum(Month, (Jan, Feb, Mar, Apr, M…

相机内外参实践之点云投影矢量图

目录 概述 涉及到的坐标变换 深度值可视化 3D点云的2D投影实现 实现效果 参考文献 概述 Camer的内外参在多模态融合中主要涉及到坐标系变换&#xff0c;即像素坐标、相机坐标以及其他坐标系。这篇就针对点云到图像的投影与反投影做代码实践&#xff0c;来构建一张具有深度…

【2023CANN训练营第二季】——Ascend C算子开发进阶—Ascend C Tiling计算

了解Tiling基本概念 在这一小节中接触到了一个新的概念&#xff0c;叫Tiling计算&#xff0c;指的是在Ascend C 算子开发过程中&#xff0c;矢量的算子流程分为3个基本任务&#xff1a;CopyIn&#xff0c;Compute&#xff0c;CopyOut。CopyIn任务负责将Global Memory上的输入T…

Python 列表元素里面含有字典或者列表进行排序

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 示例1&#xff1a;列表里面含有列表进行排序 s [[1, 2], [100, 2], [33, 3], [25, 6]] s.sort(keylambda k: k[0]) print(s)结果&#xff1a; [[1, 2], [25, 6], [33, 3…

基于FPGA的PS端的Si5340的控制

1、功能 Si5340/41-D可以输出任意频率&#xff0c;当然有范围&#xff0c;100Hz1GHz。外部输入为24M或者4854M的XTAL&#xff0c;VCO在13500~14256Mhz之间&#xff0c;控制接口采用IIC或者SPI。 芯片架构图 2、IIC控制方式 3、直接上控制代码 使用米联客ZU3EG&#xff0c;将…

Learn runqlat in 5 minutes

内容预告 learn X in 5 系列第一篇. 本篇主要介绍进程时延统计方式和 rawtracepoint. runqlat "高负载场景下应用为何卡顿", "进程 A 为什么得不到调度". 当我们在工作生活中产生这样的疑问, 目标进程的调度时延是一个不错的观测切入点. runqlat 可以帮…

SQL必知会(二)-SQL查询篇(5)-用通配符进行过滤

第6课、用通配符进行过滤 LIKE&#xff1a;匹配文本 LIKE&#xff1a;针对未知值进行过滤。通配符搜索只能用于文本字段。 1&#xff09;百分号%通配符 %表示任何字符出现任意次数。 需求&#xff1a;找出所有以词 Fish 起头的产品 SELECT prod_id, prod_name FROM Product…

Linux-基础知识

1.快捷键 ctrlc 强制停止 ctrld 退出或登出 history 查看历史命令&#xff08;&#xff01;/ctrlr输入内容去匹配历史命令&#xff09; 光标移动快捷键 ctrla,跳到命令开头 ctrle,跳到命令结尾 ctrl键盘左键&#xff0c;向左跳一个单词 ctrl键盘右键&…

Python 使用tkinter的Menu菜单command参数与bind方法共用触发事件

用普通函数作为媒介&#xff0c;使用event_generate()方法模拟触发bind()事件来创建一个模拟的event对象&#xff0c;并将其传递给绑定的事件处理函数。 运行结果 示例代码 import tkinter as tk# 菜单事件 def menuEvent(event):print(event.x, event.y)label.config(textf鼠…

【Linux】Centos7 shell实现MySQL5.7 tar 一键安装

&#x1f984; 个人主页——&#x1f390;个人主页 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; 感谢点赞和关注 &#xff0c;每天进步一点点&#xff01;加油&#xff01;&…

SpringBoot集成easyexcel实现动态模板导出

添加依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-o…

补坑:Java的字符串String类(3):再谈String

不太熟悉字符串的可以看看这两篇文章 补坑&#xff1a;Java的字符串String类&#xff08;1&#xff09;-CSDN博客 补坑&#xff1a;Java的字符串String类&#xff08;2&#xff09;&#xff1a;一些OJ题目-CSDN博客 字符串创建对象 public static void main(String[] args) …