有奖:语音产品征文挑战赛火热进行中> HOT
文档中心 > 大模型图像创作引擎 > 最佳实践 > 深入理解腾讯云 AI 绘画并实际运用

前言

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

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

智能文生图(Text-to-Image Generation)是人工智能生成内容(AIGC)的一个主要方向。它是一种前沿的图像生成方法,通过输入文字描述,即可生成相对应的图片。文生图技术在内容生产等领域有着广泛的应用前景,例如艺术创作、设计、媒体等。
文生图融合了扩散算法、神经网络和提示技术的创新图像生成方法。通过稳定的逐步扩散过程,结合文本提示和微调技术,它能够生成高质量、创意性的图像。这一方法不仅在艺术创作中具有巨大潜力,还在设计、媒体等领域有着广泛的应用潜力。随着技术的不断演进,文生图将在图像生成领域发挥越来越重要的作用,为创作者们带来更多的创作灵感和可能性。
智能文生图的应用场景非常广泛,以下是一些常见的应用场景:
内容创作:文生图可以帮助用户快速生成与文字描述相对应的图片,提高内容创作的效率和质量。
广告宣传:生成的图片可以用于广告宣传,如 PPT、短视频、文案、社交媒体宣传图或广告宣传图片等。
教育培训:文生图可以用于制作教育课件、教材插图等,帮助学生更好地理解和记忆知识。
游戏开发:在游戏开发中,文生图可以用于生成游戏场景、角色设计、道具设计等,提高游戏的吸引力和沉浸感。
电商行业:文生图可以用于生成商品图片、店铺装修等,提高电商平台的用户体验和转化率。
设计行业:文生图可以用于平面设计、UI 设计、建筑设计等,帮助设计师快速生成创意草图和设计方案。
艺术创作:文生图可以用于生成艺术作品,如绘画、雕塑等,为艺术家提供新的创作灵感和工具。
总之,智能文生图可以应用于各种需要生成图像的场景,提高生产效率、降低成本,并为创作者提供更多的创意自由。

操作流程

您可以前往 腾讯云官网体验 AI 绘画功能,目前腾讯云大模型图像创作引擎每个月拥有20次的体验机会,点击参与 腾讯云大模型图像创作引擎特惠活动

1. 进入腾讯云 智能图像创造平台
2. 请选择您想创作的图片风格,在描述词框输入您想要的画面进行简单描述,例如,飞流直下三千尺,疑是银河落九天 | 水墨画、一只酷酷的狗 | 厚涂风格 | 一幅优美的风景画,风吹麦浪,远处是连绵的山脉 | 插图。

img



img


3. 单击高级参数,我们可以进行设置生成的图片的大小,以及生成图片当中不希望出现的瑕疵。如下图所示:

img


4. 我这里输入的描述:飞流直下三千尺,疑是银河落九天 | 水墨画,即可出现很形象的水墨画,那么我们可以将生成出来的图片进行二次改造。接下来就要使用图生图的模式进行改造了。




智能图生图 (Intelligent Graph Generation)

智能图生图是一种利用人工智能技术,根据给定的图片和提示词生成新的图片的过程。在这个过程中,AI 会学习参考图片的信息,例如颜色、纹理等,并结合提示词生成与参考图片相似但具有不同细节和内容的新图片。
智能图生图的原理:通过“加噪”和“去噪”的过程,使 AI 能够从参考图片中获取特征,并将其反映到最终生成的图片中。这使得生成的图片与参考图片具有足够的相似性,同时也具有新的细节和内容。
智能图生图的使用场景:智能图生图的应用范围广泛,可以用于创作漫画、插画、设计等,也可以用于图像修复、去水印等场景。


操作流程

现在我们使用文生图的图片对进行图生图进行体验并优化一下图片效果。选择您需要设置的参数后,单击生成图片
辅助文本描述: 粉色,汉服,高清,唯美,漂亮,不要太白,正常。
反向词语:模糊,扭曲,损坏。

img


您可以看到我们输出的图片很精致。这归功于腾讯云大模型图像创作引擎强大的中文理解能力可以更好地支持中文元素的图像生成。

截至到现在我们已了解了腾讯云大模型图像创作引擎的能力,目前腾讯云大模型图像创作引擎训练营免费的给学员提供了文生图、图生图各50次的 API 调用能力,现在我们开始体验吧!


领取福利

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

img



接入流程

查看调用资源

1. 点我前往腾讯云大模型图像创作引擎 API 服务,单击产品控制台,即可进入腾讯云大模型图像创作引擎控制台。



2. 进入 腾讯云大模型图像创作引擎控制台 后,单击左侧菜单资源包管理,进入资源包管理页面,查看我们的资源包使用情况。



3. 单击控制台右上角的接口文档,直接查看接口文档进行对接。



4. 腾讯云大模型图像创作引擎提供在线的 API 调试器,我们可以参考详细的 API 接口文档 进行调试。


智能文生图接口

接口描述

接口请求域名: aiart.tencentcloudapi.com
接口描述:智能文生图接口将根据输入的描述文本,智能生成与之相关的结果图。
输入:256个字符以内的描述性文本,推荐使用中文。
输出:对应风格及分辨率的 AI 生成图。
可支持的风格详见 智能文生图风格列表,请将列表中的“风格编号”传入 Styles 数组,建议选择一种风格。

智能文生图风格列表

官方建议我们进行风格的单选,后面我们继续单选即可。

智能文生图可支持的风格详见下表,若需选择风格,请将下表中的风格编号传入接口入参中的 Styles 数组。
风格单选(建议):让一张生成图具备某一种风格的特征,为提高效果稳定性,建议选择且只选择一种风格。取值示例:如果您想生成一张水墨画风格的图片,请在下表中找到水墨画对应的风格编号为101,向 Styles 传入:"101"。
风格多选(不建议):实际使用中发现对同一张图片叠加多种风格容易导致生成效果不稳定,因此,为了保障较好的效果,如果您在一次调用中同时传入了多个风格编号,接口将自动取第一个风格编号作为实际输入。例如您传入"101", "102", "103",将只取101。
请求频率限制: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 在线调试

1. 您可以在 智能文生图接口文档 页面,单击在线调试,进行调试。



2. 调试完成后,直接去云 API 进行运行。

img


3. 我们可以看到输入参数很多,但是具体可以实现图片生成的参数就一个,其他的都是对其进行优化。 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
4. 我们输入 Prompt 参数,右侧的代码生成器就已经把 Demo 生成了。

img


5. 单击右侧的在线调用,发起生成测试,通过 API 发送请求等同于真实操作,请谨慎进行操作。

img


6. 请求成功的话即可返回以下 数据结构 ,其中 ResultImage 就是我们的图片信息,我们访问查看 data:image/jpeg;base64,加 ResultImage 返回的 base64 数据。
{
"Response": {
"ResultImage": "/ashadaisojdad",
"RequestId": "b429894a-d0e5-4d5c-8dcf-6be8d05ef484"
}
}

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小时。

调试进行测试

水印图片如下:


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





img


如果想右下角计算方法:您需要生成的图片大小即您水印图片的大小。 您可以按照实际需求进行调整。
例如:768:768 768 - 71 (水印宽) X 轴 、768 - 20 (水印高) Y 轴。

img


经过上面的学习、调试,我们已经掌握基本的逻辑,现在我们开始尝试对接创建我们自己的服务。
注意:
文本生成图片的对接核心代码记得手动保存。

img



文生图测试类

@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



智能图生图接口

文生图一样的操作,知识调用不同的请求而已。
接口描述:智能图生图接口将根据输入的图片及辅助描述文本,智能生成与之相关的结果图。
接口请求域名: aiart.tencentcloudapi.com
输入:256个字符以内的描述性文本,推荐使用中文。
输出:对应风格及分辨率的 AI 生成图。
可支持的风格详见 智能文生图风格列表,请将列表中的“风格编号”传入 Styles 数组,建议选择一种风格。

智能图生图风格列表

风格大类
风格细项
风格编号
艺术绘画类
水彩画
106
2.5D
110
-
游戏动漫类
日系动漫
201
美系动漫
202
-
唯美古风
203
-

API 在线调试

1. 您可以在 智能图生图接口文档 页面,单击在线调试,进行调试。



2. 调试完成后,直接去云 API 进行运行。

img


3. 这里 InputUrl 使用了 URL 当作被修改的图片为一个小和尚,并且设置了返回结果为 URL。

img


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

img


5. 我的小和尚加了一顶头发, API 调试先进行到这里,我们接下来进行 Java 程序来调用。

img



图生图测试类

我们可以随便找个图片,我这里用免费的请求生成了一张图片。

img


@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