写在前面
随着人工智能技术的不断发展,越来越多的应用场景被发掘。其中,AI绘画是一种新兴的领域,其应用范围涵盖了数字媒体、游戏设计、动画制作、艺术创作等多个领域。在本文中,我们将介绍AI绘画的基本概念、发展历程、技术原理以及应用前景。
基本概念
AI绘画是利用人工智能技术进行图像生成和图像编辑的过程。它主要包括两个方面,一个是基于机器学习的图像生成,另一个是基于计算机视觉技术的图像编辑。其中,基于机器学习的图像生成包括了GAN、VAE、PixelRNN等多个模型,可以通过学习大量真实图片的样本,生成出具有类似特征的虚拟图片。而基于计算机视觉技术的图像编辑则是在生成的图像上进行编辑,包括风格迁移、超分辨率等技术,可以对图像的颜色、纹理、清晰度等方面进行调整。
技术原理
AI绘画的技术原理是基于机器学习的算法和神经网络模型。这些模型可以学习和识别图像中的特征,并且可以自动生成新的图像。
(图片源于网络)
以下是一些常用的AI绘画技术和它们的技术原理:
- 基于规则的方法:这种方法是最早的AI绘画技术之一,它基于一系列预定义的规则来生成图像。这些规则可以是关于颜色、形状、纹理、线条、角度等方面的规则。计算机程序员将这些规则编码到算法中,然后程序通过这些规则生成图像。虽然这种方法可以产生一些简单的图像,但它们通常缺乏创造性和想象力。
- 基于神经网络的方法:这种方法是目前最流行的AI绘画技术之一。它基于深度神经网络模型,通过学习大量的图像数据集来生成新的图像。神经网络模型可以自动识别图像中的特征,例如轮廓、颜色、纹理等。通过这种方式,神经网络可以自动学习生成新的图像。常用的神经网络模型包括卷积神经网络(CNN)、循环神经网络(RNN)和生成对抗网络(GAN)等。
- 生成对抗网络(GANs):这是一种基于神经网络的技术,它可以生成逼真的图像。GANs由两个神经网络组成:生成器和判别器。生成器负责生成图像,判别器负责判断生成的图像是否真实。这两个网络不断交互,生成器通过学习从判别器反馈的信息中改进生成的图像,直到生成的图像足够真实。
- 风格迁移技术:这是一种基于神经网络的技术,它可以将一种图像的风格应用到另一种图像上。它通过将输入图像和风格图像传入神经网络模型,学习如何将输入图像的内容和风格合成到一起生成新的图像。这种方法可以生成非常有趣的艺术品。
(图片源于网络)
AI 绘画教程
AI 绘画渠道
目前有三种渠道:
1.AI绘画模型发布的官网(外国公司,网站访问速度较慢,大都需付费)
2.使用github上已开源AI绘画模型(门槛较高,显卡要求较高)
3.接入 APISpace AI 绘画 API (简单,最易上手,开箱即用)
AI 绘画 API 接入教学
- 登录注册 APISpace(apispace.com),获取 API 使用密钥
- 注册成功后,我们在页面导航菜单点击 【我的 API】进入 【访问控制】页面,即可看到平台提供的密钥。
- 在线测试 AI 绘画 API
打开 AI 绘画 API 详情页 ,点击【免费试用】
试用成功后系统自动进入测试界面
AI 绘画教学
这些 AI 绘画最基本的两种玩法是 “文生图” 和 “图生图”
文生图:用户输入文本描述,即 prompt,AI 就会根据用户输入的文字生成符合文本描述的图像。
这个 prompt 可是非常有讲究的,举个例子,比如你要使用 AI 生成一只猫的图片,你不能只简单地输入“一只猫”。如果你这样做,生成的图片可能不会十分美观。相反,你需要考虑许多因素。
例如,你要生成的猫是什么颜色?什么品种?你要生成的是全身照还是特写某个部位?它的姿势是正面、侧面还是背面?你要的风格是速涂、草稿、线稿、油画、设计图、概念设计、速写、立绘还是厚涂?你要使用的是 2D 还是 3D 技术?光效方面,你需要全局光照、柔和光照、边缘照明、体积照明还是电影照明。。。
如下图:
图生图:就是用户输入图片和文本描述,生成符合图片参考和文本描述的图像。举个实用的例子,你可以只画一个线稿,然后让AI在你的线稿上的基础上继续作画,达到成品的效果。
详细的 prompt 教程可以参考以下网站:
Prompt: 关键词(Prompt 知识)
AI绘画 API代码接入
Java
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{"task":"txt2img.sd","params":{"model":"art","text":"玫瑰花","w":512,"h":512,"guidance_scale":7.5,"negative_prompt":"cropped","sampler":"k_euler","seed":-1,"num_steps":20},"model":"art","text":"玫瑰花","w":512,"h":512,"guidance_scale":7.5,"negative_prompt":"cropped","sampler":"k_euler","seed":-1,"num_steps":20,"notify_url":""}");
Request request = new Request.Builder()
.url("https://23329.o.apispace.com/aigc/txt2img")
.method("POST",body)
.addHeader("X-APISpace-Token","替换成自己的 API 密钥")
.addHeader("Authorization-Type","apikey")
.addHeader("Content-Type","application/json")
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
PHP
<?php
$client = new http\Client;
$request = new http\Client\Request;
$body = new http\Message\Body;
$body->append("{"task":"txt2img.sd","params":{"model":"art","text":"玫瑰花","w":512,"h":512,"guidance_scale":7.5,"negative_prompt":"cropped","sampler":"k_euler","seed":-1,"num_steps":20},"model":"art","text":"玫瑰花","w":512,"h":512,"guidance_scale":7.5,"negative_prompt":"cropped","sampler":"k_euler","seed":-1,"num_steps":20,"notify_url":""}");
$request->setRequestUrl("23329.o.apispace.com/aigc/txt2img");
$request->setRequestMethod("POST");
$request->setBody($body);
$request->setHeaders(array(
"X-APISpace-Token" => "替换成自己的 API 密钥",
"Authorization-Type" => "apikey",
"Content-Type" => "application/json"
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
AI 绘画作品与关键词示例
[]()
高品质3d渲染,超现实主义非常可爱,柔和的色彩蓬松!皮卡丘混血猫,高度细致,vray 平滑,侦探皮卡丘风格,hannah yata charlie immer,柔和的室内光线,低角度,uhd 8 k,清晰对焦,高清
[]()
Prompt: 穿着华丽纹路复杂的银饰铠甲,拟人化的兔子,对称,灵性的眼睛,史诗感美丽,华丽,超细节,超清晰,电影级滤镜,16k,徕卡50mm定焦镜头
[]()
Prompt: 令人惊叹的河边小屋,artstation冠军,Victo Ngai、Kilian Eng 和 Jake Parker的艺术品,充满活力的漩涡色彩线,获奖杰作,极其艳丽,美学,辛烷值渲染,8K 高清分辨率,高度详细