前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【腾讯云AI绘画】深入理解腾讯云AI绘画并实际运用

【腾讯云AI绘画】深入理解腾讯云AI绘画并实际运用

原创
作者头像
杨不易呀
发布2023-12-28 01:08:07
1.6K1
发布2023-12-28 01:08:07
举报

前言

AI绘画是一种使用人工智能技术进行绘画创作的方法,其基本原理是运用算法和机器学习技术,根据训练数据自动生成新的艺术作品,用户可以通过简单的文字或图像描述来快速生成符合要求的艺术作品,AI绘画不仅能够模拟传统艺术风格,还可以创建出具有创新和独特性的艺术作品,目前,AI绘画的技术类型主要包括生成对抗网络(GAN)和变分自编码器(VAE)。AI绘画具有广泛的应用场景,主要集中在艺术和设计领域。那么腾讯云AI绘画(AI ART)是一个先进的AI图像生成与编辑API服务,如今已实现了设计任务的自动化,能够自动完成一些重复性高的设计任务,如图像处理和图形设计。此外,通过智能分析和预测功能,还能为创作者提供针对性的设计建议和优化方案,让其能更加专注于提升设计的整体质量。

banner
banner

智能文生图(Text-to-Image Generation)

智能文生图(Text-to-Image Generation)是人工智能生成内容(AIGC)的一个主要方向。它是一种前沿的图像生成方法,通过输入文字描述,即可生成相对应的图片。文生图技术在内容生产等领域有着广泛的应用前景,例如艺术创作、设计、媒体等。

文生图融合了扩散算法、神经网络和提示技术的创新图像生成方法。通过稳定的逐步扩散过程,结合文本提示和微调技术,它能够生成高质量、创意性的图像。这一方法不仅在艺术创作中具有巨大潜力,还在设计、媒体等领域有着广泛的应用潜力。随着技术的不断演进,文生图将在图像生成领域发挥越来越重要的作用,为创作者们带来更多的创作灵感和可能性。

智能文生图的应用场景非常广泛,以下是一些常见的应用场景:

  1. 内容创作:文生图可以帮助用户快速生成与文字描述相对应的图片,提高内容创作的效率和质量。
  2. 广告宣传:生成的图片可以用于广告宣传,如PPT、短视频、文案、社交媒体宣传图或广告宣传图片等。
  3. 教育培训:文生图可以用于制作教育课件、教材插图等,帮助学生更好地理解和记忆知识。
  4. 游戏开发:在游戏开发中,文生图可以用于生成游戏场景、角色设计、道具设计等,提高游戏的吸引力和沉浸感。
  5. 电商行业:文生图可以用于生成商品图片、店铺装修等,提高电商平台的用户体验和转化率。
  6. 设计行业:文生图可以用于平面设计、UI设计、建筑设计等,帮助设计师快速生成创意草图和设计方案。
  7. 艺术创作:文生图可以用于生成艺术作品,如绘画、雕塑等,为艺术家提供新的创作灵感和工具。

总之,智能文生图可以应用于各种需要生成图像的场景,提高生产效率、降低成本,并为创作者提供更多的创意自由。

绘画风格

img
img

我们可以前往腾讯云 AI 绘画功能体验一下 腾讯云AI绘画特惠活动 每个月拥有 20 次的体验机会

在文本描述当中输入您想要生成图片的描述即可

比如:

飞流直下三千尺,疑是银河落九天 | 水墨画

一只酷酷的狗 | 厚涂风格

一幅优美的风景画,风吹麦浪,远处是连绵的山脉 | 插图

img
img

点击高级参数我们可以进行设置生成的图片的大小以及生成图片当中不希望出现的瑕疵

比如:

img
img
img
img

我这里输入的描述: 飞流直下三千尺,疑是银河落九天 | 水墨画 可以看到很形象的水墨画,那么我们可以将生成出来的图片进行二次改造那么就归功于图生图的模式了接下来我带大家来看看

智能图生图 (Intelligent Graph Generation)

智能图生图是一种利用人工智能技术,根据给定的图片和提示词生成新的图片的过程。在这个过程中,AI会学习参考图片的信息,如颜色、纹理等,并结合提示词生成与参考图片相似但具有不同细节和内容的新图片。

图生图的原理是通过“加噪”和“去噪”的过程,使AI能够从参考图片中获取特征,并将其反映到最终生成的图片中。这使得生成的图片与参考图片具有足够的相似性,同时也具有新的细节和内容。

智能图生图的应用范围广泛,可以用于创作漫画、插画、设计等,也可以用于图像修复、去水印等场景。

绘画风格

那么细心的同学就看到了旁边的图生图的功能模块了,相比文生图风格就没那么的多了它拥有日系动漫、唯美古风、水彩画、美系动漫、2.5D 这四种风格

img
img

接下来我们使用文生图的图片来进行图生图进行优化一下体验感受,我这里就使用官方自带的人脸图像来看看感觉

我这里给的 prompt: 粉色,汉服,高清,唯美,漂亮,不要太白,正常

反向词语: 模糊,扭曲,损坏

img
img

可以看到我们输出出来的图片很精致水哒哒的 hhh,这归功于腾讯云 AI 绘画强大的中文理解能力可以更好地支持中文元素的图像生成

img
img

那么我们差不多已经了解了腾讯云 AI 绘画的能力,那么想不想自己搭建一个来玩呢?

那么腾讯云 AI 绘画训练营免费的给学员提供了文生图、图生图各 50 次的 API 调用能力我们一起来玩玩吧!

福利

人工智能正在加速渗透到千行百业与大众生活中,个体、企业该如何面对新一轮的AI技术浪潮?为了进一步帮助用户了解和使用腾讯云AI系列产品,腾讯云AI技术专家与传智教育人工智能学科高级技术专家正在联合打造《腾讯云AI绘画-StableDiffusion图像生成》训练营,训练营将通过8小时的学习带你玩转AI绘画。并配有专属社群答疑,助教全程陪伴,在AI时代,助你轻松上手人工智能,快速培养AI开发思维。

img
img

先去领取到资格再往下看哦~

接入

AI绘画--提供API服务

点我前往腾讯云AI绘画API服务,点击产品控制台跟着提示来操作,操作完毕后我们点击文生图

img
img
这里查看我们的资源包,还有多少调用次数提供我们使用
img
img

我们直接查看我们的接口文档看看如何进行对接

img
img

我们点击接口文档看看咋对接

一般这种腾讯云都会有 API 调试器的所以我们稍微的过一下这个接口文档我们直接去 API 调试器去玩

img
img

智能文生图接口

接口描述

接口请求域名: aiart.tencentcloudapi.com

智能文生图接口将根据输入的描述文本,智能生成与之相关的结果图。

输入:256个字符以内的描述性文本,推荐使用中文。

输出:对应风格及分辨率的 AI 生成图。

可支持的风格详见 智能文生图风格列表,请将列表中的“风格编号”传入 Styles 数组,建议选择一种风格。

智能文生图风格列表

代码语言:java
复制
官方建议我们进行风格的单选,后面我们也就搞单选就完事了 

智能文生图可支持的风格详见下表,若需选择风格,请将下表中的风格编号传入接口入参中的 Styles 数组。

风格单选(建议):让一张生成图具备某一种风格的特征,为提高效果稳定性,建议选择且只选择一种风格。取值示例:如果您想生成一张水墨画风格的图片,请在下表中找到水墨画对应的风格编号为101,向 Styles 传入:"101"。

风格多选(不建议):实际使用中发现对同一张图片叠加多种风格容易导致生成效果不稳定,因此,为了保障较好的效果,如果您在一次调用中同时传入了多个风格编号,接口将自动取第一个风格编号作为实际输入。例如您传入"101", "102", "103",将只取101。

代码语言:java
复制
请求频率限制为1次/秒,别搞快了我们就 3 秒一次就完事了 

注意⚠️:

如果选择“不限定风格”,模型将不固定生成的风格,大部分情况下将生成写实图片,也可能随机生成其他风格,此时您可以在 prompt 中输入风格特征描述来自定义风格,例如“一只小狗,xx风格”。

如果选择某一种特定风格,模型将固定生成该风格的图片,通过 prompt 较难改变其风格特征或自定义为其他风格。

风格大类

风格细项

风格编号

不限定风格

不限定风格

000

艺术绘画类

水墨画

101

概念艺术

102

油画1

103

油画2(梵高)

118

水彩画

104

像素画

105

厚涂风格

106

插图

107

剪纸风格

108

印象派1(莫奈)

109

印象派2

119

2.5D

110

古典肖像画

111

黑白素描画

112

赛博朋克

113

科幻风格

114

暗黑风格

115

3D

116

蒸汽波

117

游戏动漫类

日系动漫

201

怪兽风格

202

唯美古风

203

复古动漫

204

游戏卡通手绘

301

专业写实类

通用写实风格

401

好了我们就稍微了解一下文生图的一些注意事项和参数就行,还是刚才的页面我们直接进去 API 调试

img
img

API 在线 调试

这里调试好直接运行就完事了

img
img

我们可以看到输入参数很多但是具体可以实现图片生成的参数就一个其他的都是对其进行优化接下来我们来看看这些参数的意思吧, Prompt文本描述是必须传递的!!!

参数名称

描述

Prompt 必须传递

文本描述。 算法将根据输入的文本智能生成与之相关的图像。建议详细描述画面主体、细节、场景等,文本描述越丰富,生成效果越精美。 不能为空,推荐使用中文。最多可传256个 utf-8 字符。 示例值:雨中, 竹林, 小路

NegativePrompt

反向文本描述。 用于一定程度上从反面引导模型生成的走向,减少生成结果中出现描述内容的可能,但不能完全杜绝。 推荐使用中文。最多可传256个 utf-8 字符。

Styles.N

绘画风格。 请在 智能文生图风格列表中选择期望的风格,传入风格编号。 推荐使用且只使用一种风格。不传默认使用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。

RspImgType

返回图像方式(base64 或 url) ,二选一,默认为 base64。url 有效期为1小时。 示例值:base64

我们输入 Prompt 参数 旁边的代码生成器就已经把 Demo 搞好了

img
img

我们点击旁边的在线调用按钮发起生成测试 通过API发送请求等同于真实操作,请小心进行

img
img

请求成功没毛病返回了 以下的数据结构 其中 ResultImage 就是我们的图片信息,我们访问看看

data:image/jpeg;base64,加 ResultImage 返回的 base64 数据

代码语言:java
复制
"Response": {
    "RequestId": "dbee275e-03ad-4040-992c-4b0def7bce05",
    "ResultImage": "base64"
}
img
img

如果我想返回 URL 的图片信息并且水印自定义

在上面的请求参数我没说 LogoParam 这个参数

他的作用为 标识内容设置。 默认在生成结果图右下角添加“图片由 AI 生成”字样,您可根据自身需要替换为其他的标识图片 LogoParam 里面需要传递的是一个对象 LogoRect

名称

类型

必选

描述

X

Integer

左上角X坐标

Y

Integer

左上角Y坐标

Width

Integer

方框宽度

Height

Integer

方框高度

返回 Url

生成的图片返回给我 URL 形式的,上面我已经说过了给 RspImgType参数改成 url 他默认是 Base64

返回图像方式(base64 或 url) ,二选一,默认为 base64。url 有效期为1小时

调试进行测试

水印图片:
img
img

图片地址: https://cdn.nlark.com/yuque/0/2023/png/2426233/1702196852392-3083990a-0590-4299-b89c-6c915f2b8a7a.png

img
img
img
img

如果想右下角 计算方法就是 你需要生成的图片大小 - 你水印图片的大小

例如: 768:768 768 - 71 (水印宽) X 轴 、768 - 20 (水印高) Y轴

反正看你想咋调整了随便搞哈哈哈

img
img

经过上面的学习、调试我们就已经掌握基本的逻辑了现在我们开始对接搞一个我们自己的服务玩玩

文本生成图片的对接核心代码记得保存一下下哦

img
img

文生图测试类

代码语言:java
复制
@Test
void contextLoads() throws TencentCloudSDKException {
final Credential cred = new Credential(secretId, secretKey);

// 实例化一个http选项,可选的,没有特殊需求可以跳过
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("aiart.tencentcloudapi.com");
// 实例化一个client选项,可选的,没有特殊需求可以跳过
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
// 实例化要请求产品的client对象,clientProfile是可选的
AiartClient client = new AiartClient(cred, "ap-shanghai", clientProfile);

TextToImageRequest req = new TextToImageRequest();

// 根据文本描述生成对应的图片
req.setPrompt("3D,帮我生成一个在海边跳舞的小女孩,还里面有可爱的鱼群,天空上飞舞的百灵鸟");

// 图片的比例大小
ResultConfig resultConfig1 = new ResultConfig();
resultConfig1.setResolution("1920:1080");
req.setResultConfig(resultConfig1);

// 图片的水印
LogoParam logoParam1 = new LogoParam();
logoParam1.setLogoUrl("https://cdn.nlark.com/yuque/0/2023/png/2426233/1702196852392-3083990a-0590-4299-b89c-6c915f2b8a7a.png");
LogoRect logoRect1 = new LogoRect();
logoRect1.setX(697L); // 比例宽 - 水印的宽度
logoRect1.setY(748L); // 比例高 - 水印的高度
logoRect1.setWidth(71L); // 水印的宽度
logoRect1.setHeight(20L); // 水印的高度
logoParam1.setLogoRect(logoRect1);
req.setLogoParam(logoParam1);

// 返回的是URL
req.setRspImgType("url");
// 返回的resp是一个TextToImageResponse的实例,与请求对象对应
final TextToImageResponse resp = client.TextToImage(req);


// 输出json格式的字符串回包
// final String resultImage = "data:image/jpeg;base64," + resp.getResultImage();
System.out.println(TextToImageResponse.toJsonString(resp));

}

发起文生图请求

img
img

生成的效果图非常的唯美可爱

img
img

智能图生图接口

和文生图一样的操作,知识调用不同的请求而已

接口描述

接口请求域名: aiart.tencentcloudapi.com

智能文生图接口将根据输入的描述文本,智能生成与之相关的结果图。

输入:256个字符以内的描述性文本,推荐使用中文。

输出:对应风格及分辨率的 AI 生成图。

可支持的风格详见 智能文生图风格列表,请将列表中的“风格编号”传入 Styles 数组,建议选择一种风格。

智能图生图风格列表

风格大类

风格细项

风格编号

艺术绘画类

水彩画

106

2.5D

110

游戏动漫类

日系动漫

201

美系动漫

202

唯美古风

203

还是一样的操作我们去 API 调试工具测试,并且生成调用代码出来

API 在线 调试

前往智能图生图 API 调试 : https://cloud.tencent.com/document/product/1668/88066

⚠️ 上面我们已经详细讲解了参数的使用下面我们就不需要再次讲解了

img
img

img
img

我这里 InputUrl 使用了 URL 当作呗修改的图片,是一个小和尚,并且设置了返回结果是 url 给我

img
img
那么接下来我需要通过图生图给他加一顶头发,我们发起调用查看结果
img
img
img
img

不错给我的小和尚加了一顶头发,那么我们 api 调试就到这里,我们接下来进行 Java 程序来调用

图生图测试类

实现我们去随便找个图片,我这里用免费的请求了一张

img
img
代码语言:java
复制
@Test
void img2img () {
    final Credential cred = new Credential(secretId, secretKey);

    // 实例化一个http选项,可选的,没有特殊需求可以跳过
    HttpProfile httpProfile = new HttpProfile();
    httpProfile.setEndpoint("aiart.tencentcloudapi.com");
    // 实例化一个client选项,可选的,没有特殊需求可以跳过
    ClientProfile clientProfile = new ClientProfile();
    clientProfile.setHttpProfile(httpProfile);
    // 实例化要请求产品的client对象,clientProfile是可选的
    AiartClient client = new AiartClient(cred, "ap-shanghai", clientProfile);

    // 实例化一个请求对象,每个接口都会对应一个request对象
    ImageToImageRequest req = new ImageToImageRequest();
    //  小和尚图片
    req.setInputUrl("https://cdn.nlark.com/yuque/0/2023/png/2426233/1703693531198-0eb82442-3b49-4f93-9564-216b78908dff.png?x-oss-process=image%2Fresize%2Cw_768%2Climit_0");
    // 文本描述。 用于在输入图的基础上引导生成图效果,增加生成结果中出现描述内容的可能。 推荐使用中文。最多支持256个 utf-8 字符。
    req.setPrompt("给小和尚新增一顶头发");
    // 反向描述
    req.setNegativePrompt("扭曲、模糊");
    // 风格
    req.setStyles(new String[]{"201"});
    // 分辨率
    final ResultConfig config = new ResultConfig();
    config.setResolution("768:768");
    req.setResultConfig(config);
    // 返回格式
    req.setRspImgType("url");

    // 比例值
    String logoRect = config.getResolution();
    String[] logoRectArr = logoRect.split(":");

    // 图片的水印
    LogoParam logoParam1 = new LogoParam();
    logoParam1.setLogoUrl("https://cdn.nlark.com/yuque/0/2023/png/2426233/1702196852392-3083990a-0590-4299-b89c-6c915f2b8a7a.png");
    LogoRect logoRect1 = new LogoRect();
    logoRect1.setWidth(71L); // 水印的宽度
    logoRect1.setHeight(20L); // 水印的高度
    // 水印的位置
    logoRect1.setX(Integer.parseInt(logoRectArr[0]) - logoRect1.getWidth()); // 比例宽 - 水印的宽度
    logoRect1.setY(Integer.parseInt(logoRectArr[1]) - logoRect1.getHeight()); // 比例高 - 水印的高度
    logoParam1.setLogoRect(logoRect1);
    req.setLogoParam(logoParam1);
    log.info("请求参数: {}", new Gson().toJson(req));
    try {
        log.info("请求参数: {}", new Gson().toJson(req));
        // 返回的resp是一个ImageToImageResponse的实例,与请求对象对应
        ImageToImageResponse resp = client.ImageToImage(req);
        log.info("返回参数: {}", resp.getResultImage());
    } catch (TencentCloudSDKException e) {
        log.error("腾讯云 AIGC 图生成图片异常", e);
        throw new RuntimeException("腾讯云 AIGC 图生成图片异常");
    }

}
编写发起图生图请求
img
img
img
img

哈哈哈,给小和尚新增了一顶斜刘海非常不错.

好啦,我们就到这里结束啦!!!

扩展

后面就是对接前端,如果有感兴趣的同学可以跳转到我写的一篇文章现在已经有 1.5k 的浏览量啦

《这次不从零了五万字带您,从负零玩转腾讯AI绘画图像生成搭建前后端分离项目!!!!》

如果可以的话麻烦点个赞支持一下!!!谢谢您

最后

本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 智能文生图(Text-to-Image Generation)
    • 绘画风格
    • 智能图生图 (Intelligent Graph Generation)
      • 绘画风格
        • 智能文生图风格列表
    • 福利
    • 接入
    • 智能文生图接口
      • API 在线 调试
        • 如果我想返回 URL 的图片信息并且水印自定义
        • 返回 Url
        • 调试进行测试
      • 文生图测试类
        • 智能图生图风格列表
    • 智能图生图接口
      • API 在线 调试
        • 图片
        • 图生图测试类
        • 扩展
        • 最后
        相关产品与服务
        大模型图像创作引擎
        大模型图像创作引擎是一款提供 AI 图像生成与处理能力的 API 技术服务,可以结合输入的文本或图像智能创作图像内容,具有更精美的绘图品质、更强大的中文理解能力、更多样的风格选择与更广泛的应用场景,为高质量的图像内容创作、内容运营提供技术支持。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档