人工智能的优势:使用 GPT 和扩散模型生成图像

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

世界被人工智能 (AI) 所吸引,尤其是自然语言处理 (NLP) 和生成 AI 的最新进展,这是有充分理由的。这些突破性技术有可能提高各种任务的日常生产力。例如,GitHub Copilot帮助开发人员快速编写整个算法,OtterPilot自动生成高管会议记录,Mixo允许企业家快速启动网站。

本文将简要概述生成式 AI,包括相关的 AI 技术示例,然后通过生成式 AI 教程将理论付诸实践,我们将使用 GPT 和扩散模型创建艺术渲染。

作者的六张 AI 生成的图像,使用本教程中的技术创建。

生成式 AI 的简要概述

注意:熟悉生成式 AI 背后的技术概念的人可以跳过本节并继续学习本教程。

2022 年,许多基础模型实现进入市场,加速了许多领域的人工智能进步。在了解了几个关键概念之后,我们可以更好地定义基础模型:

  • 人工智能是一个通用术语,描述任何可以智能地完成特定任务的软件。
  • 机器学习是人工智能的一个子集,它使用从数据中学习的算法。
  • 神经网络是机器学习的一个子集,它使用以人脑为模型的分层节点。
  • 深度神经网络是具有许多层和学习参数的神经网络

基础模型是在大量原始数据上训练的深度神经网络。在更实际的术语中,基础模型是一种非常成功的人工智能类型,可以轻松适应和完成各种任务。基础模型是生成式 AI 的核心:文本生成语言模型(如 GPT)和图像生成扩散模型都是基础模型。

文本:自然语言处理模型

在生成式 AI 中,自然语言处理 (NLP) 模型经过训练,可以生成读起来好像由人类撰写的文本。特别是,大型语言模型(LLM)与当今的AI系统特别相关。LLM根据其对大量数据的使用进行分类,可以识别和生成文本和其他内容。

在实践中,这些模型可以用作写作甚至编码助手。自然语言处理应用程序包括简单地重述复杂概念,翻译文本,起草法律文件,甚至创建锻炼计划(尽管此类用途有一定的局限性)。

Lex 是具有许多功能的 NLP 写作工具的一个例子:提出标题、完成句子以及就给定主题撰写整个段落。目前最容易识别的LLM是GPT。GPT 由 OpenAI 开发,可以在几秒钟内以高精度响应几乎任何问题或命令。OpenAI的各种模型都可以通过单个API获得。与 Lex 不同,GPT 可以处理代码、根据功能需求对解决方案进行编程以及识别代码内问题,从而使开发人员的生活更加轻松。

图像:AI 扩散模型

扩散模型是一种深度神经网络,它包含潜在变量,能够通过消除模糊(即噪声)来学习给定图像的结构。在训练模型的网络以“知道”图像背后的概念抽象后,它可以创建该图像的新变体。例如,通过消除猫图像中的噪声,扩散模型“看到”猫的干净图像,了解猫的外观,并应用这些知识来创建新的猫图像变体。

扩散模型可用于去噪或锐化图像(增强和完善它们),操纵面部表情或生成面部老化图像,以暗示一个人随着时间的推移可能会如何看待。您可以浏览 Lexica 搜索引擎,见证这些 AI 模型在生成新图像方面的强大功能。

教程:扩散模型和 GPT 实现

为了演示如何实现和使用这些技术,让我们练习使用 HuggingFace 扩散模型和 GPT 生成动漫风格的图像,这两者都不需要任何复杂的基础设施或软件。我们将从一个现成的模型(即已经创建和预先训练的模型)开始,我们只需要对其进行微调。

注意:本文介绍了如何使用生成式 AI 图像和语言模型以有趣的风格创建自己的高质量图像。本文中的信息不应(误)用于违反 Google Colab 使用条款创建深度伪造。

设置和照片要求

要准备本教程,请在以下位置注册:

谷歌

使用云端硬盘和 Colab。

开放人工智能

进行 GPT API 调用。

您还需要将 20 张自己的照片(甚至更多照片)保存在您计划用于本教程的设备上,以提高性能。为获得最佳效果,照片应:

  • 不小于 512 x 512 像素。
  • 属于你,也只属于你。
  • 具有相同的扩展格式。
  • 从各种角度拍摄。
  • 至少包括三到五次全身镜头和两到三次中身镜头;其余的应该是面部照片。

也就是说,照片不需要完美——看看偏离这些要求如何影响输出甚至会很有启发性。

使用拥抱人脸扩散模型生成 AI 图像

要开始使用,请打开本教程的配套 Google Colab 笔记本,其中包含所需的代码。

  1. 运行单元格 1 将 Colab 与您的 Google 云端硬盘连接,以存储模型并在以后保存其生成的图像。
  2. 运行单元 2 以安装所需的依赖项。
  3. 运行单元格 3 以下载拥抱面模型。
  4. 在单元格 4 中,在字段中键入“我的外观”,然后运行该单元格。会话名称通常标识模型将学习的概念。Session_Name
  5. 运行单元格 5 并上传您的照片。
  6. 转到单元格 6 以训练模型。通过在运行单元之前选中该选项,可以多次重新训练它。(此步骤可能需要大约一个小时才能完成。Resume_Training
  7. 最后,运行单元格 7 以测试模型并查看其运行情况。系统将输出一个URL,您可以在其中找到生成图像的界面。输入提示后,按“生成”按钮以渲染图像。
    用于生成图像的用户界面

有了工作模型,我们现在可以尝试各种提示,产生不同的视觉风格(例如,“我作为一个动画角色”或“我作为一个印象派绘画”)。但是,将 GPT 用于字符提示是最佳的,因为与用户生成的提示相比,它可以产生更多细节,并最大限度地发挥模型的潜力。

使用 GPT 进行有效扩散模型提示

我们将通过 OpenAI 将 GPT 添加到我们的管道中,尽管 Cohere 和其他选项为我们的目的提供了类似的功能。首先,在 OpenAI 平台上注册并创建您的 API 密钥。现在,在 Colab 笔记本的“生成良好的提示”部分,安装 OpenAI 库:

pip install openai

接下来,加载库并设置 API 密钥:

import openai
openai.api_key = "YOUR_API_KEY"

我们将从 GPT 生成优化的提示,以动漫角色的风格生成我们的图像,替换为笔记本单元格 4 中设置的会话名称“我的样子”:YOUR_SESSION_NAME

ASKING_TO_GPT = 'Write a prompt to feed a diffusion model to generate beautiful images '\'of YOUR_SESSION_NAME styled as an anime character.' 
response = openai.Completion.create(model="text-davinci-003", prompt=ASKING_TO_GPT,temperature=0, max_tokens=1000)
print(response["choices"][0].text)

该参数的范围介于 0 和 2 之间,它确定模型是应严格遵守其训练的数据(值接近 0),还是对其输出更具创造性(值接近 2)。该参数设置要返回的文本量,四个标记相当于大约一个英语单词。temperaturemax_tokens

就我而言,GPT 模型输出如下:

"Juan is styled as an anime character, with large, expressive eyes and a small, delicate mouth.
His hair is spiked up and back, and he wears a simple, yet stylish, outfit. He is the perfect
example of a hero, and he always manages to look his best, no matter the situation."

最后,通过将此文本作为输入输入到扩散模型中,我们实现了最终输出:

六张 AI 生成的作者图像,使用 GPT 生成的提示进行优化。
六张 AI 生成的作者图像,使用 GPT 生成的提示进行优化。

让 GPT 编写扩散模型提示意味着您不必详细考虑动漫角色外观的细微差别——GPT 将为您生成适当的描述。您可以随时根据口味进一步调整提示。完成本教程后,您可以创建自己的复杂创意图像或您想要的任何概念。

人工智能的优势触手可及

GPT 和扩散模型是两个基本的现代 AI 实现。我们已经看到了如何单独应用它们,并通过配对它们来乘以它们的功率,使用 GPT 输出作为扩散模型输入。在此过程中,我们创建了一个由两个大型语言模型组成的管道,这些模型能够最大限度地提高它们自己的可用性。

原文链接:人工智能的优势:使用 GPT 和扩散模型生成图像 (mvrlink.com)

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

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

相关文章

Unity的GPUSkinning进一步介绍

大家好,我是阿赵。   在几年前,我曾经写过一篇介绍GPUSkinning的文章,这么多年之后,还是看到不停有朋友在翻看这篇旧文章。今天上去GitHub看了一下,GPUSkinning这个开源的插件已经很久没有更新过了,还是停…

云原生Kubernetes:kubectl管理命令

目录 一、理论 1.kubectl 管理命令 2.项目的生命周期 二、实验 1.kubectl 管理命令 2.项目的生命周期 三、总结 一、理论 1.kubectl 管理命令 (1)陈述式资源管理方法 kubernetes集群管理集群资源的唯一入口是通过相应的方法调用apiserver的接口…

复旦-华盛顿EMBA:AI时代掘金,科技进化里的挑战与机遇

如果从去年年底ChatGPT3.5发布算起,AI赛道的热度已经持续飙升了半年有余。      “AI的iPhone时刻”代表什么?AI驱动的商业时代已经到来?      我们能看到担忧、恐惧、憧憬,但唯独不缺狂飙突进、加速进化。人类制造AI&…

WordPress(4)关于网站的背景图片更换

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、更改的位置1. 红色区域是要更换的随机的图片二、替换图片位置三.开启随机数量四.结束前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也…

Hadoop的分布式文件存储系统HDFS组件的使用

Hadoop的第一个核心组件:HDFS(分布式文件存储系统) 一、HDFS的组成1、NameNode2、DataNode3、SecondaryNameNode4、客户端:命令行/Java API 二、HDFS的基本使用1、命令行操作2、Java API操作 三、HDFS的工作流程问题(H…

Direct3D颜色

在Direct3D中颜色用RGB三元组来表示,RGB数据可用俩种不同的结构来保存,第一种是D3DCOLOR,它实际上与DWORD类型完全相同,共有32位,D3DCOLOR类型种的各位被分成四个8位项,每项存储了一种颜色分量的亮度值。 由…

【Hive SQL 每日一题】统计用户连续下单的日期区间

文章目录 测试数据需求说明需求实现 测试数据 create table test(user_id string,order_date string);INSERT INTO test(user_id, order_date) VALUES(101, 2021-09-21),(101, 2021-09-22),(101, 2021-09-23),(101, 2021-09-27),(101, 2021-09-28),(101, 2021-09-29),(101, 20…

C语言sizeof()计算空间大小为8的问题

在练习数据结构过程中&#xff0c;定义指针p&#xff0c;并且申请了10个char类型空间&#xff0c;但在计算p所指空间大小时候&#xff0c;发现了一些奇怪的现象。 #include <stdio.h> #include <stdlib.h>int main(){char s[12];printf("the size of memory …

Java反射:探索对象创建与类信息获取

文章目录 1. 对象的创建2. 类的初始化2.1 类的加载2.2 类的连接2.3 类的初始化 3. 反射是什么&#xff1f;4. 获取Class类对象4.1 使用类名.class4.2 使用对象的getClass()方法4.3 使用Class.forName() 5. 获取构造器对象5.1 使用getConstructors()和getDeclaredConstructors()…

pytorch代码实现之空间通道重组卷积SCConv

空间通道重组卷积SCConv 空间通道重组卷积SCConv&#xff0c;全称Spatial and Channel Reconstruction Convolution&#xff0c;CPR2023年提出&#xff0c;可以即插即用&#xff0c;能够在减少参数的同时提升性能的模块。其核心思想是希望能够实现减少特征冗余从而提高算法的效…

【探索Linux】—— 强大的命令行工具 P.8(进程优先级、环境变量)

阅读导航 前言一、进程优先级1. 优先级概念2. Linux查看系统进程3. PRI&#xff08;Priority&#xff09;和NI&#xff08;Nice&#xff09; 二、环境变量1. 概念2. 查看环境变量方法3. 环境变量的组织方式4.通过代码获取环境变量5. 环境变量的特点 总结温馨提示 前言 前面我们…

C++ - 多态的实现原理

前言 本博客主要介绍C 当中 多态语法的实现原理&#xff0c;如果有对 多态语法 有疑问的&#xff0c;请看下面这篇博客&#xff1a; 探究&#xff0c;为什么多态的条件是那样的&#xff08;虚函数表&#xff09; 首先&#xff0c;调用虚函数必须是 父类的 指针或 引用&#xf…

KT142C-sop16语音芯片ic的功能介绍 支持pwm和dac输出 usb直接更新内置空间

1.1 简介 KT142C是一个提供串口的SOP16语音芯片&#xff0c;完美的集成了MP3的硬解码。内置330KByte的空间&#xff0c;最大支持330秒的语音长度&#xff0c;支持多段语音&#xff0c;支持直驱0.5W的扬声器无需外置功放 软件支持串口通信协议&#xff0c;默认波特率9600.同时…

opencv旋转图像

0 、使用旋转矩阵旋转 import cv2img cv2.imread(img.jpg, 1) (h, w) img.shape[:2] # 获取图像的宽和高# 定义旋转中心坐标 center (w / 2, h / 2)# 定义旋转角度 angle 90# 定义缩放比例 scale 1# 获得旋转矩阵 M cv2.getRotationMatrix2D(center, angle, scale)# 进行…

比亚迪海豹:特斯拉强劲对手,瑞银拆解成本比同级车型低15%~35%

瑞银证券日前对中国电动车产品比亚迪海豹进行了拆解&#xff0c;发现海豹具有强大的成本优势&#xff0c;而这个优势主要来自于中国本土生产和国内完善的电动车供应链以及比亚迪的垂直整合体系和零部件高度集成性。比亚迪的整车成本比同级别竞争车型分别低15%至35%。 瑞银预测&…

【100天精通Python】Day55:Python 数据分析_Pandas数据选取和常用操作

目录 Pandas数据选择和操作 1 选择列和行 2 过滤数据 3 添加、删除和修改数据 4 数据排序 Pandas数据选择和操作 Pandas是一个Python库&#xff0c;用于数据分析和操作&#xff0c;提供了丰富的功能来选择、过滤、添加、删除和修改数据。 1 选择列和行 Pandas 提供了多种…

学习Bootstrap 5的第六天

目录 信息警告框 警告框 实例 警告框链接 实例 关闭警告框 实例 警告框动画 实例 按钮 按钮样式 实例 按钮轮廓 实例 ​编辑按钮尺寸 实例 块级按钮 实例 实例 活动/禁用按钮 实例 加载器按钮 实例 扩展小知识 信息警告框 警告框 警告框是使用 .aler…

ETCD详解

一、etcd概念 ETCD 是一个高可用的分布式键值key-value数据库&#xff0c;可用于服务发现。 ETCD 采用raft 一致性算法&#xff0c;基于 Go语言实现。 etcd作为一个高可用键值存储系统&#xff0c;天生就是为集群化而设计的。由于Raft算法在做决策时需要多数节点的投票&…

【算法】归并排序 详解

归并排序 详解 归并排序代码实现1. 递归版本2. 非递归版本 排序&#xff1a; 排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a; 假定在待排序的记录序列中&#xff0c;存在多个具有相…

eclipse进入断点之后,一直卡死,线程一直在运行【记录一种情况】

问题描述: 一直卡死在某个断点处&#xff0c;取消断点也是卡死在这边的进程处。 解决方式&#xff1a; 将JDK的使用内存进行了修改 ① 打开eclipse&#xff0c;window->preference->Java->Installed JREs&#xff0c;选中使用的jdk然后点击右侧的edit&#xff0c;在…