前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【腾讯云AI绘画】零基础无代码体验指南

【腾讯云AI绘画】零基础无代码体验指南

原创
作者头像
爱去西
发布2023-12-15 17:06:46
3650
发布2023-12-15 17:06:46
举报
文章被收录于专栏:猫窜游戏猫窜游戏

1. AI绘画的发展历史

从世界上第一台科学计算机的诞生至今,人类从未停止探索机器智能化的脚步,就像大多数科幻电影中,总会出现能够与人类交流、有着独立思想的机器人一样,创造一个具有智慧的机器一直是一个追逐的梦想。

通俗易懂的说,计算机的核心部件CPU是由大量的“三极管”构成的与非门组成的逻辑运算部件,通过将输入的数据编码成0和1促成的二进制数据,进行运算从而得出结论。出于以上的硬件结构和逻辑设计,计算机可以完美的计算数字和比较文字,例如99+1=100,搜索引擎中输入“绘画”就能匹配到文字中有“绘画”词组的网页和段落。

而如何让计算机能够识别判断一张图片的内容,就成为了理所当然的下一个课题。因为图片在计算机中的表达是相对复杂的,例如一张256*256像素大小的图片,就是由256行由256个点组成的点阵,并且每个点上都记录着RGB(红绿蓝,深浅由从0-255的数字表示)三种颜色的信息,就相当于一个三维的矩阵,这个信息量是远比一段文字要多的。一串“123”的数字用字符串记录的话,也就几个字节,而一张画有“123”的图片,却可以由不同像素点数量,不同的颜色深浅,间距,角度,字体,手写等有着无尽的表达方式,想在两者之间画上等号,难度可想而知。

图像识别算法openCV的诞生和开源,是计算机在这一领域的重大进步,我们现在日常中使用的很多场景,如车牌识别,人脸识别,手写输入板,图形验证码等等,都是实际的使用案例。因为其原理相对复杂,笔者在此无法简述。

到此,计算机已经实现了“认识事物”的能力,但仅仅是认识某种事物而言,其能力也与猫狗无异,接下来更为困难的是,要让计算机能够实现“推理”。随着科技发展进步,硬件性能的提升,以及数学理论的应用和创新,我们现在熟知的一些应用,如深度学习,神经网络,模型训练等都在为智能化做出贡献。

回到AI绘画,虽然概念及模型或实际案例在很早就出现了,更早的商业应用应该是openAI发布的DALL·E,但是其并未开源且用途狭窄,所以笔者更认为,真正的用AI来绘画,应该从disco diffusion开始,因为这是一个真正应用级别的里程碑。笔者切身尝试体验过,搭建过程可以见https://cloud.tencent.com/developer/article/2009937?shareByChannel=link。

由disco diffusion生成的新海诚风格实景动画效果图
由disco diffusion生成的新海诚风格实景动画效果图

之后的一年内, Midjouney,DALL.E 2以及Stable diffusion相继登场,慢慢的也取代了生成图片不稳定,速度慢的disco diffusion。而stable diffusion的开源性质以及稳定快速的图像输出,更受使用者的欢迎。

Stable Diffusion作品
Stable Diffusion作品

2. 如何体验

以上笔者提到的AI绘画软件和应用,受限于电脑操作能力,网络限制和英文水平,以及昂贵的使用费或者GPU服务器租赁费用等一系列制约条件,一般用户很难深度体验到AI绘画的魅力,很难感受到科技的进步对我们的生活生产带来的巨大影响。

所以笔者在此推荐使用功能更全面,使用更方便的腾讯云AI绘画作为演示,和大家一起感受体验AI绘画,操作的步骤也是非常的简单。

2.1 步骤1:注册账号

在使用 AI 绘画服务前,您需要先注册腾讯云账号。如果没有账号,请参考 注册腾讯云教程

2.2 步骤2:开通服务

注册并通过实名认证后,登录腾讯云 AI 绘画控制台,阅读和同意服务条款,单击 立即开通,即可获得 AI 绘画的 API 接口调用权限。

首次开通 AI 绘画服务后,智能文生图接口与智能图生图接口将各自发放50次免费调用额度,供您测试体验。免费调用额度将以一次性的免费资源包的形式配送,并在计费结算时优先扣减。免费资源包有效期为1年,自开通服务之日起1年内若免费资源包次数未使用完,则过期作废。

简单来说,就是可以免费使用两种服务共计100次,足以满足大部分用户的测试需求。

2.3 步骤3:通过 API 和 SDK 命令行来使用服务

对于通过使用SDK来使用服务,需要下载对应SDK以及需要有一定的编程基础,为了增加文章的通读性,笔者在这里仅演示通过API调用来实现功能。

点击通过 API 3.0 Explorer 进行在线测试,弹出以下界面:

 API 3.0 Explorer 界面
API 3.0 Explorer 界面

首先可以看到,在AI绘画功能下,有两个可以用的接口,智能文生图和智能图生图(上图中红线部分)。

文生图指:通过用户输入一段文字描述,让AI根据描述生成符合文意的图片。

图生图指:通过用户上传(或指定URL)的一张图片,加上描述,让AI根据图文信息,生成图片。

点击智能文生图之后,可以看到中间有一整列的输入参数,每一个参数的后边都会有一个圆圈的感叹号图标,点击后,会显示该参数的具体内容。

首先第一个参数Region,是一个选项卡,选取的是当前用户下该资源(AI绘画)包的所属区域,这个参数对应的是用户所购买的资源包的区域,目前对我们测试没有影响,可以随便选取。

接着就是非常重要的参数Prompt和NegativePrompt:

Prompt,翻译又叫正向提示词,指用户希望AI生成什么样子的图片。

比如在这里,我们输入:一个漂亮的女孩,浅蓝色的短发上面系着红色的发带,蓝色的眼睛,坐在课桌上面,正对着我们微笑。

NegativePrompt,翻译又叫反向提示词,指用户不希望AI在图片生成的过程中,添加的东西。

该词条可以默认不填写,熟知Stable Diffusion的读者会知道,如果需要生成一些精美无差错的图片,会需要用户多输入若干词汇来防止图片崩坏,如6根手指,脚趾,3个手臂等。

此处笔者用于演示,输入鞋子,希望出来的图片是裸足。

接下来的参数Styles是绘画的风格,可以点击 风格列表,查看了解目前可支持的绘画风格。

该参数是用代码输入的,参照列表,我们输入201,代表日系动漫风格。

ResultConfig中Resolution参数,希望输出图片的分辨率,有固定的需求(64的倍数),不填的话默认768*768。

此处我们希望输出的图片能够当做手机桌面,填写720:1280,是一副9:16的纵向图片。

LogoAdd参数是指,是否希望在生成的图片上加上水印,默认是1,添加图片由AI生成的明显标识,此处笔者默认不修改。

LogoParam是指水印的具体信息,由于是测试,此处也无需填写。

最后是RspImgType参数,此处由于我们是测试使用,不做二次的图片存储和传输等处理,我们更改参数为url,以便我们能够更直观的看到结果。

NOW,点击下方“发起调用”,成功后,右侧会出现返回的结果:

调用返回的结果
调用返回的结果

复制图中红色方框内 https://aiart.......5d9c3 字符串,在浏览器中粘贴,即可显示得到的AI绘画图片,是不是很简单呢。URL的图片是临时文件,服务器只保存一个小时,记得及时保存至本地哦。

笔者根据上述参数生成的AI绘画
笔者根据上述参数生成的AI绘画

3. 进阶体验

笔者以node js 为例,使用腾讯云API的SDK,实现本地或服务器使用。

3.1 新建项目文件夹,新建node.js文件,打开终端,安装相关依赖,如下图第二行所示:

代码语言:javascript
复制
// 安装腾讯云API相关依赖
// npm install tencentcloud-sdk-nodejs --save

// 引入依赖,创建实例
const tencentcloud = require("tencentcloud-sdk-nodejs");
const AiartClient = tencentcloud.aiart.v20221229.Client;

//入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
// 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
const clientConfig = {
    credential: {
        secretId: "AKIDjIcgU1HI2VhcHfn*******************",
        secretKey: "KOBhwykFagX8UaS5******************",
    },
    region: "ap-shanghai",
    profile: {
        httpProfile: {
            endpoint: "aiart.tencentcloudapi.com",//接口请求域名
        },
    },
};

// 实例化要请求产品的client对象,clientProfile是可选的
const client = new AiartClient(clientConfig);

// 前端传入的参数,此处为方便阅读,简化为固定参数。
const params = {
    "Prompt": "官方艺术,高清正面画像,动画艺术,一个女白领,穿着黑色丝袜,高跟鞋,头发黑长直,戴着眼镜,新海诚作画", //正向积极提示词 string
    "NegativePrompt": "昏暗,模糊,粗腿,多手指,户外", //负面提示词 string 
    "Styles":// 风格列表,参照https://cloud.tencent.com/document/product/1668/86249
        [
            "201"// 日系动漫
        ],
    "ResultConfig": // 分辨率智能文生图支持生成以下分辨率的图片:768:768(1:1)、768:1024(3:4)、1024:768(4:3)、1024:1024(1:1)、720:1280(9:16)、1280:720(16:9)、768:1280(3:5)、1280:768(5:3)、1080:1920(9:16)、1920:1080(16:9)智能图生图支持生成以下分辨率的图片:768:768(1:1)、768:1024(3:4)、1024:768(4:3)不传默认使用768:768
    {
        "Resolution": "768:1280"
    },
    "RspImgType": "url"//返回图像方式(base64 或 url) ,二选一,默认为 base64。url 有效期为1小时。示例值 base64
};
client.TextToImage(params).then(
    (data) => {
        console.log(data);
    },
    (err) => {
        console.error("error", err);
    }
);

3.2 根据代码注释,更改自己的secretId和secretKey。

3.3 根据代码注释,更改期望AI绘画的params,此部分由用户在实践中自行以表单或者其他方式传入,笔者省略。

3.4 打开终端,运行node index.js。

3.5 数秒后得到返回结果如下:

代码语言:javascript
复制
{
  ResultImage: 'https://aiart-1258344699.cos.ap-guangzhou.myqcloud.com/text_to_img/3393cab4-6164-49c2-aa96-ef0d14711b30-1258618245.jpg?q-sign-algorithm=sha1&q-ak=AKIDpRovliU1IJ5ctufBSVIq8AwTlnZ5MN8d&q-sign-time=1702628559%3B1702632159&q-key-time=1702628559%3B1702632159&q-header-list=host&q-url-param-list=&q-signature=6b9c9076c4b29f211cb373690beca984c6489f5d',
  RequestId: '3393cab4-6164-49c2-aa96-ef0d14711b30'
}

ResultImage中就是返回结果图片的URL地址。

在浏览器中输入该地址,即可查看:

笔者运行上述代码得到的AI绘画图
笔者运行上述代码得到的AI绘画图

4. 使用图生图功能,制作漫画风格头像

代码与上边没有很大区别,加入了js自带的文件读取模块fs,以及图片转base64的命令。

注,测试图片文件需存在项目的根目录,实践中可以根据需要更改引入方式。

代码语言:javascript
复制
// 实例化要请求产品的client对象,clientProfile是可选的
const fs = require('fs')
const client = new AiartClient(clientConfig);
var filePath = "boy.jpg";
var base64Str = fs.readFileSync(filePath, 'base64');
const params = {
    "InputImage": base64Str,
    "Prompt": "帅气的小男孩,穿着蓝色的连帽大衣,非常委屈的在哭泣",
    "NegativePrompt": "",
    "Styles": [
        "201"
    ],
    "ResultConfig": {
        "Resolution": "768:1024"
    },
    "Strength": 0.75,// 生成自由度。Strength 值越小,生成图和原图越接近。取值范围0~1,不传默认为0.75。
    "RspImgType": "url"
};
client.ImageToImage(params).then(
    (data) => {
        console.log(data);
    },
    (err) => {
        console.error("error", err);
    }
);

原始图片
原始图片
根据笔者描述,AI生成的图片
根据笔者描述,AI生成的图片

到此文章接近尾声,总的体验下来,腾讯云的AI绘画功能非常的不错,可以做到几乎秒级以上的反馈速度,无论是自用还是商用,都比自建服务器群来的更方便更实惠,加上可以购买资源包,在实用中非常具有弹性。模型方面虽然测试不多,但动漫部分颇具国风色彩。

另外有一点小建议,由于笔者在去年自运营过一个AI绘画的小程序,在用户中图生图的需求是很大的,但目前API的指令看来,在回传图片的分辨率上做了很大限制,仅有3个选择(1:1,3:4,4:3),这样在用户上传图片的过程中就会有很大的局限,回传的结果也很可能会裁剪或者拉伸,因为都是基于stable diffusion的算法,可以预先将上传的图片进行64倍数的修裁,使其可以运算又不至于高宽比的变化过大,回传图片的分辨率这个参数就不用自己填写,而是匹配传入图片的参数,这样会更加人性化和方便使用,开发人员看到的话记得发奖金给我哦!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. AI绘画的发展历史
  • 2. 如何体验
    • 2.1 步骤1:注册账号
      • 2.2 步骤2:开通服务
        • 2.3 步骤3:通过 API 和 SDK 命令行来使用服务
        • 3. 进阶体验
          • 3.1 新建项目文件夹,新建node.js文件,打开终端,安装相关依赖,如下图第二行所示:
            • 3.2 根据代码注释,更改自己的secretId和secretKey。
              • 3.3 根据代码注释,更改期望AI绘画的params,此部分由用户在实践中自行以表单或者其他方式传入,笔者省略。
                • 3.4 打开终端,运行node index.js。
                • 4. 使用图生图功能,制作漫画风格头像
                相关产品与服务
                大模型图像创作引擎
                大模型图像创作引擎是一款提供 AI 图像生成与处理能力的 API 技术服务,可以结合输入的文本或图片智能创作出与输入相关的图像内容,具有更强大的中文理解能力、更多样化的风格选择,更好支持中文场景下的建筑风景生成、古诗词理解、水墨剪纸等中国元素风格生成,以及各种动漫、游戏风格的高精度图像生成和风格转换,为高质量的内容创作、内容运营提供技术支持。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档