政安晨的AI笔记——示例演绎OpenAI的ChatGPT与DALL·E提示词总原则(并融合创作一副敦煌飞天仙女图)

        ChatGPT是由OpenAI开发的一种基于大规模预训练的语言生成模型。它建立在GPT(Generative Pre-trained Transformer)模型的基础上,通过大量的无监督学习和生成式任务训练来学习语言的概念和模式。

        ChatGPT的原理是基于Transformer模型。Transformer是一种基于自注意力机制的深度神经网络架构,它能够有效地捕捉长距离依赖关系。ChatGPT的核心结构包括编码器和解码器,其中编码器用于将输入序列转换成上下文向量,解码器则利用上下文向量生成输出序列。

        ChatGPT的训练过程分为两个阶段:预训练和微调。在预训练阶段,模型使用大量的文本数据进行自监督学习,通过预测下一个词来学习语言的概念和语义。预训练过程中使用的数据可以是从互联网上爬取的大规模文本数据集。预训练完成后,ChatGPT具备了一定的语言理解和生成能力。

        在微调阶段,ChatGPT会使用有标签的对话数据进行有监督学习,以提高其生成对话的质量和准确性。这些对话数据通常是人类专家生成的,或者是从互联网上收集并经过人工筛选处理的。微调过程中,模型会根据对话上下文和目标对话的相关信息来生成响应。通过反复微调,可以逐渐提升ChatGPT在生成对话方面的表现。

        ChatGPT的应用方式可以分为两种:单轮对话和多轮对话。在单轮对话中,用户输入一个问题或指令,ChatGPT生成一个回答或执行相应的任务。在多轮对话中,用户和ChatGPT之间进行连续的对话,ChatGPT需要维护上下文信息,并根据之前的对话内容生成合适的回应。

        所以,咱们可以知道,ChatGPT提示词是指向ChatGPT提供的一段文本,用来指导它如何生成期望的回答或内容。提示词的质量和效果直接影响了ChatGPT的表现和能力。因此,编写好的提示词是使用ChatGPT的关键技能之一。

        DALL.E模型是一种基于DALL·E 3的变分自编码器(VAE)和Transformer的文本到图像生成模型,可以根据用户提供的文本提示,即自然语言描述,生成高质量、高分辨率、多样化的图像。DALL.E模型的提示词法则是指如何编写有效的文本提示,以引导DALL·E模型生成期望的图像。

        接下来,咱们先把这两个模型的原则列一列,再用实例对比分析一下。

一、挖掘ChatGPT提示词的总原则

1. 写清晰的指令

要清楚地表达你想要什么,不要让ChatGPT猜你想要什么。如果生成的内容很长,就要求ChatGPT做简短地回答;如果生成的结果太简单,就要求ChatGPT用专业级的要求写作;如果不喜欢格式,就给ChatGPT展示你期望的格式......

2. 使用分隔符

使用三重引号、XML标签、章节标题等分隔符可以帮助划分文本的不同部分,便于ChatGPT更好地理解,以便进行不同的处理。分隔符可以用来区分指令、参考文本、控制符、输出等。

3. 提供参考文本

如果你想让ChatGPT生成类似于某个文本的内容,你可以提供一些参考文本作为示例,让ChatGPT模仿其风格、语言、结构等。参考文本可以是你自己写的,也可以是从其他来源复制的。

4. 使用控制符

控制符是一些特殊的符号或单词,用来调整ChatGPT的行为和输出。例如,你可以使用`<|end|>`来告诉ChatGPT停止生成,使用`<|start|>`来告诉ChatGPT开始生成,使用`<|pad|>`来告诉ChatGPT填充空白,使用`<|keyword|>`来告诉ChatGPT使用特定的关键词,等等。控制符可以帮助你更精确地控制生成的内容和格式。

5. 适应不同的场景

不同的场景可能需要不同的提示词,因为ChatGPT的目标和任务也不同。例如,如果你想让ChatGPT生成一首诗,你可能需要提供一些诗歌的特征,如韵律、押韵、主题等;如果你想让ChatGPT生成一段代码,你可能需要提供一些编程语言的规则,如语法、变量、函数等;如果你想让ChatGPT生成一篇文章,你可能需要提供一些文章的结构,如标题、段落、引用等。根据不同的场景,你可以调整提示词的长度、内容、风格等,以达到最佳的效果。

6. 测试和改进

编写提示词是一个不断试错和改进的过程,你可能需要多次测试和修改你的提示词,才能得到满意的结果。你可以通过观察ChatGPT的输出,来判断提示词的效果,看看是否符合你的期望,是否有错误或不合理的地方,是否有可以改进的地方。你也可以参考其他人的提示词,学习他们的技巧和经验,或者向他们寻求反馈和建议。

二、挖掘DALL.E提示词的总原则

1. 进行多方面的具体描述

提示词应该尽可能具体、描述性和详细,包括图像的所有重要元素和细节,以实现对生成图像的细粒度控制。

2. 对描述进行适当分隔

提示词可以使用符号和格式来分隔文本提示的不同部分,增加清晰度和多样性,例如使用括号、冒号、逗号等。

例如,`(purple hairs:1.2)`表示头发的颜色是紫色,且权重是1.2。

3. 穿插使用一些特定格式描述

提示词可以使用特定的格式来指定图像的风格,例如`<lora:dingdang-liuqiyue:0.55>`,其中`lora`是风格的名称,`dingdang-liuqiyue`是风格的作者,`0.55`是风格的权重。

4. 遵守DALL·E模型的政策

提示词应该遵守DALL·E模型的政策,不要创建任何可能冒犯、违法或有害的图像,不要参考任何政治家或公众人物,不要使用在过去100年内创作的艺术家的风格,不要改变模因或虚构角色的起源等。

5. 明确场景及目标

提示词应该适应不同的场景和目标,根据需求和偏好,选择合适的图像类型、分辨率、数量等参数,例如使用`photo`或`1024x1792`等关键词。如果用户想要生成一张全身肖像,就要求DALL.E模型使用`1024x1792`这样的尺寸。

6. 反复测试与改进

提示词应该经过多次测试和改进,以获得最佳的生成效果,观察和评估生成图像的质量和多样性,修改和优化文本提示中的内容和格式。比如,用户可以通过观察DALL.E模型的输出,来评估提示词的质量,看看是否符合用户的期望,是否有错误或不合理的地方,是否有可以改进的地方。同时,还需要经常参考和学习其他人的文本提示,寻求和接受反馈和建议。

三、以绘画示例穿插使用ChatGPT与DALL·E的演绎

目标使用一些鲜明的手法创作一套敦煌飞天仙女图。

这是一件很有意思的工作,同时使用ChatGPT与DALL·E的模型来完成,在这个过程中,咱们会尝试很多中技巧,来达到我们的目标。

从很一般提问开始

请问敦煌的飞天仙女图有什么背景知识吗

这种提问得到的回答只能如下:

咱们尝试更换一种问法:

我是一名敦煌知识的爱好值,我打算要仿照古老的敦煌壁画创作一副"'敦煌飞天仙女图"',但我并不是太清楚关于敦煌飞天仙女的背景知识,以致于我无法为整幅画作进行框架设计。所以,我想要通过你的强大的知识库,为我填充创作这幅画作的知识空白,给我一些全面的知识描述,并在最后帮我生成一些描述这幅画作要素的必要关键词,这些关键词比如"'南北朝绘画艺术"'、"'东西方艺术走廊"'等。当然,我希望这些描述里面包含有'<|西域|>'这个关键词,以方便我创作图画的时候能够受到该地域艺术风格的影响。为我生成描述的时候,最好能够让前面给出的背景知识描述与后面给出的画作要素关键词相呼应。

ChatGPT就帮我生成了相当有水平的答案:

接下来,咱们基于ChatGPT的答案提炼出图画的创作描述:

创作一幅具备敦煌南北朝艺术风格的飞天仙女图。

该图描绘佛教中的天人或神仙在空中飞舞的场景。

该图融合了印度、西域和中原的艺术元素。

图中飞天仙女的造型服饰要求如下:

飞天仙女的头部有圆光,头发束成圆髻或双髻,有的戴印度式的宝冠,有的戴道冠或花冠,有的头发散开,飞天仙女的下身穿着长裙,裙子的颜色和花纹各异,有的裙子开叉,露出白皙的腿部,有的裙子紧贴身体,显示出曲线。飞天仙女的手中多持有各种乐器、花篮、香炉等物品,表现出她们的音乐和芬芳的功能。

图中飞天仙女的姿态和动作要求如下:

飞天仙女的姿态轻盈优美,动作灵动自然,表现出她们的飘逸和欢乐。飞天仙女有的横空飞翔,有的俯冲而下,有的盘旋而上,有的倒踢而飞,有的单飞,有的群飞,有的散花,有的弹奏,有的歌唱,有的舞动,有的祈祷,有的微笑,有的沉思,有的神情严肃,有的神情妩媚 。

飞天仙女的背景和环境要求如下:

飞天仙女的背景有天空、云彩、山水、花草、建筑、佛龛等,表现出她们的天国和人间的关系。飞天仙女的环境有明亮、暗淡、清新、艳丽等,表现出她们的气氛和情绪。飞天仙女的色彩有红、黄、绿、蓝、紫、白、黑等,表现出她们的个性和特征 。

过程如下:

稍等片刻,图片出来:

还不错,咱们放大一下图片:

在生成图片时,可以反复尝试,找到最合理的描述方法,同时使用一些格式化方式会有更好的效果。

最后,希望小伙伴们都能够得到自己满意的答案,创作出自己心仪的好图!

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

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

相关文章

shell命令以及运行原理 | 权限

Shell命令原理剖析 shell命令以及运行原理&#x1f4a6;Linux权限的概念&#x1f4a6;什么是权限❔Linux下有哪些权限身份❔Linux中文件属性解析 shell命令以及运行原理&#x1f4a6; Linux严格意义上说的是一个操作系统&#xff0c;我们称之为 “核心&#xff08;kernel"…

AS-V1000 视频监控平台产品介绍:客户端功能介绍(一)

目 录 一、引言 1.1 AS-V1000视频监控平台介绍 1.2平台服务器配置说明 二、软件概述 2.1 客户端软件用途 2.2 客户端功能 三、客户端功能说明 3.1 登陆和主界面 3.1.1登陆界面 3.1.2登陆操作 3.1.3主界面 3.1.4资源树 3.2 视频预览 3.2.1视频预览界面 3.2.…

京东微前端框架MicroApp简介

一、MicroApp 1.1 MicroApp简介 MicroApp是由京东前端团队推出的一款微前端框架,它从组件化的思维,基于类WebComponent进行微前端的渲染,旨在降低上手难度、提升工作效率。MicroApp无关技术栈,也不和业务绑定,可以用于任何前端框架。 官网链接:https://micro-zoe.gith…

获取真实 IP 地址(一):判断是否使用 CDN(附链接)

一、介绍 CDN&#xff0c;全称为内容分发网络&#xff08;Content Delivery Network&#xff09;&#xff0c;是一种网络架构&#xff0c;旨在提高用户对于网络上内容的访问速度和性能。CDN通过在全球各地部署分布式服务器节点来存储和分发静态和动态内容&#xff0c;从而减少…

【Linux系统化学习】进程替换

目录 进程程序替换 替换原理 ​编辑替换函数 函数解释 命名理解 函数使用 execl execlp execv execvp 调用其它程序 进程程序替换 替换原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个…

禁止 ios H5 中 bounces 滑动回弹效果

在开发面向 iOS 设备的 HTML5 应用时&#xff0c;控制页面的滚动行为至关重要&#xff0c;特别是禁用在 Safari 中默认的滑动回弹效果。本文旨在提供一个简洁明了的解决方案&#xff0c;帮助开发者在特定的 Web 应用中禁用这一效果。 1. 什么是滑动回弹效果&#xff1f; 在 iO…

C++输出地址

下面是一段输出地址的程序。 #include <bits/stdc.h> using namespace std;int main() {int s;cout << &s;//原地址return 0; }假如有一个人&#xff08;的朋友&#xff09;后来了&#xff0c;他也想住进的房间&#xff0c;我们可以这样&#xff1a; #includ…

【数据结构】链表OJ面试题2(题库+解析)

1.前言 前五题在这http://t.csdnimg.cn/UeggB 休息一天&#xff0c;今天继续刷题&#xff01; 2.OJ题目训练 1. 编写代码&#xff0c;以给定值x为基准将链表分割成两部分&#xff0c;所有小于x的结点排在大于或等于x的结点之前 。链表分割_牛客题霸_牛客网 思路 既然涉及…

gif动图的裁剪实现思路

项目需求(对app的轮播,以及banner和咨询的图片进行裁剪):前期实现使用用vue-cropper插件对图片进行插件,----后续需求需要裁剪gif动图(vue-cropper、微信自带的截图工具,以及fastStone截图工具,都只能截取静态图片,打开动图时只显示某一帧的静态图片),所以需要研究为什么vue-cr…

机器学习——集成学习

&#x1f4d5;参考&#xff1a;ysu老师课件西瓜书 期末复习笔记 1.集成学习的基本概念 集成学习&#xff08;ensemble learing&#xff09;通过构建并结合多个学习器来完成学习任务。 有时也被称为多分类器系统&#xff08;multi-classifier system&#xff09;、基于委员会的…

Spring Cloud Stream解密:流式数据在微服务中的魔力

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Spring Cloud Stream解密&#xff1a;流式数据在微服务中的魔力 前言Spring Cloud Stream基础&#xff1a;微服务中的数据流动Binder概念与使用&#xff1a;连接流的音符消息序列化与反序列化&#xf…

【消息队列】kafka整理

kafka整理 整理kafka基本知识供回顾。

Leetcode刷题笔记题解(C++):99. 恢复二叉搜索树

思路&#xff1a; 二叉搜索树的中序遍历是递增序列&#xff0c;可以在中序遍历中记录两个需要交换的节点&#xff0c;直到遍历完毕之后&#xff0c;对两个节点的值进行交换即可得到正确的二叉搜索树 比如中序序列为 1 2 3 7 5 6 4&#xff08;7比5大记录7为x&#xf…

每日OJ题_算法_模拟③_力扣6. Z 字形变换

目录 力扣6. Z 字形变换 解析代码 力扣6. Z 字形变换 6. Z 字形变换 难度 中等 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff…

以太网帧格式及ARP协议简介

在以太网中&#xff0c;一个主机和另一个主机进行通信&#xff0c;必须要知道目的主机的MAC地址&#xff08;物理地址&#xff09;&#xff0c;只要知道目的主机的IP地址&#xff0c;就可以通过ARP协议获取目的主机的MAC地址。 1、ARP协议简介 ARP&#xff08;Address Resolut…

处理安装uni-ui依赖一直安装不上

根据官方的文档去安装&#xff0c;我这边把npm换成了pnpm。 搞了一个小时没搞明白为什么下载不下来依赖&#xff0c;原因是镜像的问题。 处理方式&#xff1a;安装了cnpm&#xff0c;去访问国内镜像 安装cnpm&#xff0c;使用国内镜像 npm install -g cnpm --registryhttps…

react 之 useCallback

简单讲述下useCallback的使用方法&#xff0c;useCallback也是用来缓存的&#xff0c;只不过是用于做函数缓存 // useCallbackimport { memo, useCallback, useState } from "react"const Input memo(function Input ({ onChange }) {console.log(子组件重新渲染了…

【第二十二课】最短路:多源最短路floyd算法(acwing-852 spfa判断是否存在负环 / acwing-854 / c++代码)

目录 acwing-852 代码如下 一些解释 acwing-854 foyld算法思想 代码如下 一些解释 acwing-852 在spfa求最短路的算法基础上进行修改。 代码如下 #include<iostream> #include<cstring> #include<algorithm> #include<queue> using names…

百分点科技:《数据科学技术: 文本分析和知识图谱》

科技进步带来的便利已经渗透到工作生活的方方面面&#xff0c;ChatGPT的出现更是掀起了新一波的智能化浪潮&#xff0c;推动更多智能应用的涌现。这背后离不开一个朴素的逻辑&#xff0c;即对数据的收集、治理、建模、分析和应用&#xff0c;这便是数据科学所重点研究的对象——…

Python itertools模块:生成迭代器(实例分析)

itertools 模块中主要包含了一些用于生成迭代器的函数。在 Python 的交互式解释器中先导入 itertools 模块&#xff0c;然后输入 [e for e in dir(itertools) if not e.startswith(_)] 命令&#xff0c;即可看到该模块所包含的全部属性和函数&#xff1a; >>> [e for …