在当今数字化浪潮汹涌澎湃的时代,人工智能生成内容(AIGC)领域正以令人瞩目的速度不断演进与拓展。 其中,AIGC 生图技术作为一颗璀璨的明星,正逐渐改变着我们对于图像创作与生成的传统认知。从艺术设计到商业广告,从影视特效到游戏开发,AIGC 生图技术都展现出了其独特的魅力与巨大的潜力。 本文将深入剖析 AIGC 生图的技术原理,通过详细的代码示例揭示其背后的技术奥秘,并展示一系列丰富多样的应用案例,带领读者全面领略 AIGC 生图技术所构建的奇妙视觉世界,探寻其如何在各个领域中掀起创新变革的浪潮,为技术爱好者、创作者以及相关从业者提供一份全面而深入的 AIGC 生图技术指南。

AIGC 生图主要基于深度学习和生成式模型,特别是生成对抗网络(GAN)和扩散模型(Diffusion Model)等先进技术。通过学习大量图像数据中的规律和模式,能够生成具有高度真实感和多样性的图像。
1.深度学习:
利用神经网络技术模拟人脑学习过程,在 AIGC 图像生成中,通过学习大量图像数据掌握生成图像所需的特征和规律。
深度学习是机器学习的一个重要分支,它采用神经网络结构来模拟人脑的学习方式。在 AIGC 图像生成领域,深度学习模型通过对海量的图像数据进行学习,逐步理解图像的各种特征,如颜色、纹理、形状等,以及更高层次的语义信息。这些模型能够从数据中自动提取特征,并利用这些特征来生成新的图像。
2.生成式模型:
根据输入数据生成新数据的模型,在 AIGC 图像生成中,捕捉训练数据中的分布信息,生成与真实图像相似的图像。
生成式模型是一类能够根据输入数据生成新数据的模型。在 AIGC 图像生成中,生成式模型的作用是捕捉训练数据中的分布信息,从而能够生成与真实图像相似的图像。这些模型可以接受各种类型的输入,如文本、噪声等,并通过学习数据的分布规律,生成具有特定特征和风格的图像。
1.生成对抗网络(GAN):
由生成网络和判别网络组成,两者在训练过程中相互对抗,不断优化,直至生成网络能生成足够真实的图像以欺骗判别网络。
生成对抗网络(GAN)是 AIGC 图像生成中一种重要的模型。它由生成网络(Generator)和判别网络(Discriminator)两部分组成。生成网络的任务是生成逼真的图像,而判别网络则负责判断输入的图像是真实的还是由生成网络生成的。在训练过程中,生成网络和判别网络相互对抗,不断优化自身的性能。生成网络试图生成更加真实的图像来欺骗判别网络,而判别网络则努力提高自己的辨别能力。通过这种对抗训练,生成网络逐渐能够生成足够真实的图像,以骗过判别网络。
2.扩散模型(Diffusion Model):
分为去噪和采样两个阶段,通过不断优化去噪过程,从噪声中生成高质量的图像。
扩散模型也是 AIGC 图像生成中的一种重要模型。它分为去噪和采样两个阶段。在去噪阶段,模型通过学习如何从噪声中去除干扰,逐步还原出图像的信息。在采样阶段,模型根据去噪后的结果生成高质量的图像。通过不断优化去噪过程,扩散模型能够从噪声中生成具有高度真实感和多样性的图像。
1.数据学习:
学习大量图像数据,为模型提供丰富的视觉信息。
在训练阶段,AIGC 图像生成模型会学习大量的图像数据。这些数据涵盖了各种风格、场景和对象的图像,为模型提供了丰富的视觉信息。通过对这些图像数据的学习,模型能够掌握不同图像的特征和规律,为后续的图像生成做好准备。
2.特征提取:
自动提取图像中的特征和规律。
通过深度学习技术,模型能够自动提取图像中的特征和规律。这些特征包括颜色、纹理、形状等低层次特征,以及更高级别的语义特征。低层次特征描述了图像的基本视觉属性,而语义特征则反映了图像的内容和含义。通过提取这些特征,模型能够更好地理解图像,并在生成图像时利用这些特征来创造出更加逼真和有意义的图像。
3.图像生成:
根据输入的数据生成新的图像,生成过程通常涉及随机性。
在生成阶段,模型会根据输入的数据生成新的图像。输入数据可以是文本描述、噪声等。生成过程通常涉及随机性,这是为了确保生成的图像具有多样性。通过引入随机性,模型可以在生成图像时产生不同的结果,从而满足用户对多样化图像的需求。
4.优化调整:
通过 GAN 或扩散模型的优化调整,生成的图像不断接近真实图像的质量,并进行合规检测。
生成的图像会通过 GAN 或扩散模型进行优化调整。在这个过程中,模型会不断地改进生成的图像,使其质量不断接近真实图像。同时,模型还会进行合规检测,确保生成的图像不包含违法和不良信息。合规检测是非常重要的一步,它可以保证生成的图像符合法律法规和道德规范,避免出现不良影响。

1.安装所需的库和工具,如 Data-Juicer、DiffSynth-Studio、peft、lightning、pandas、torchvision 等。
!pip install simple-aesthetics-predictor
!pip install -v -e data-juicer
!pip uninstall pytorch-lightning -y
!pip install peft lightning pandas torchvision
!pip install -e DiffSynth-Studio2.从魔搭数据集中下载数据集,并进行数据筛选过滤。
from modelscope.msdatasets import MsDataset
ds = MsDataset.load('AI-ModelScope/lowres_anime',subset_name='default',split='train',cache_dir="/mnt/workspace/kolors/data") import json, os
from data_juicer.utils.mm_utils import SpecialTokens
from tqdm import tqdm
os.makedirs("./data/lora_dataset/train", exist_ok=True)
os.makedirs("./data/data-juicer/input", exist_ok=True)
with open("./data/data-juicer/input/metadata.jsonl", "w") as f:
for data_id, data in enumerate(tqdm(ds)):
image = data["image"].convert("RGB")
image.save(f"/mnt/workspace/kolors/data/lora_dataset/train/{data_id}.jpg")
metadata = {"text": "二次元", "image": [f"/mnt/workspace/kolors/data/lora_dataset/train/{data_id}.jpg"]}
f.write(json.dumps(metadata))
f.write("\n")
# 配置文件定义与数据清洗
data_juicer_config = """
# global parameters
project_name: 'data-process'
dataset_path: './data/data-juicer/input/metadata.jsonl' # path to your dataset directory or file
np:4 # number of subprocess to process your dataset
text_keys: 'text'
image_key: 'image'
image_special_token: '<__dj__image>'
export_path: './data/data-juicer/output/result.jsonl'
# process schedule
# a list of several process operators with their arguments
process:
- image_shape_filter:
min_width: 1024
min_height: 1024
any_or_all: any
- image_aspect_ratio_filter:
min_ratio: 0.5
max_ratio: 2.0
any_or_all: any
"""
with open("data/data-juicer/data_juicer_config.yaml", "w") as file:
file.write(data_juicer_config.strip())
!dj-process --config data/data-juicer/data_juicer_config.yaml
# 清洗后数据集处理
import pandas as pd
import os, json
from PIL import Image
from tqdm import tqdm
texts, file_names = [], []
os.makedirs("./data/data-juicer/output/images", exist_ok=True)
with open("./data/data-juicer/output/result.jsonl", "r") as f:
for line in tqdm(f):
metadata = json.loads(line)
texts.append(metadata["text"])
file_names.append(metadata["image"][0])
df = pd.DataFrame({"text": texts, "file_name": file_names})
df.to_csv("./data/data-juicer/output/result.csv", index=False)3.下载可图模型,如 Kolors、SDXL-vae-fp16-fix。
from diffsynth import download_models
download_models(["Kolors", "SDXL-vae-fp16-fix"])4.使用不同的工具和技术进行图像生成,如 Stable Diffusion、腾讯云的大模型图像创作引擎等,包括创建虚拟环境、搭建 torch 环境、使用特定的函数模块进行线稿生图等。
# 注册账号并开通服务
# 在使用大模型图像创作引擎服务前,需要先注册腾讯云账号。
# 注册并通过实名认证后,登录腾讯云大模型图像创作引擎控制台,阅读和同意服务条款,单击立即开通,即可获得大模型图像创作引擎的 API 接口调用权限。
# 新建/查看云 API 密钥
# 在控制台访问管理中,点击访问密钥菜单栏,进入 API 密钥管理页面,新建或查看密钥,保存 secretId 和 secretKey。
# 新建项目文件夹并安装依赖
# 进入项目目录,打开终端,输入以下命令安装依赖:
npm install tencentcloud-sdk-nodejs-aiart
# 新建云 API 函数模块 tencentCloudApi.js 文件
import tencentcloud from "tencentcloud-sdk-nodejs-aiart";
const AiartClient = tencentcloud.aiart.v20221229.Client;
const clientConfig = {
credential: {
secretId: "AKIDjIcgU1HI2VhcHxxxxxxxxxxxxxxxxxxxxx",
secretKey: "KOBhwykFagX8UaS5Sxxxxxxxxxxxxxxxx",
},
region: "ap-shanghai",
profile: {
httpProfile: {
endpoint: "aiart.tencentcloudapi.com",
},
},
};
const client = new AiartClient(clientConfig);
export async function sketchToImage(prompt, inputImage) {
const params = {
"Prompt": prompt,
"InputImage": inputImage,
"RspImgType": "url",
};
try {
const response = await client.SketchToImage(params);
if (!response.RequestId) {
throw new Error(`HTTP error!`);
}
return response;
} catch (error) {
console.error(`Error fetching`, error);
throw error;
}
}
# 新建保存 Url 图片功能函数 saveImageFromUrl.js
import https from 'https';
import fs from 'fs';
export async function saveImageFromUrl(url, outputFilePath) {
return new Promise((resolve, reject) => {
const file = fs.createWriteStream(outputFilePath);
https.get(url, (response) => {
if (response.statusCode!== 200) {
reject(new Error(`Failed to get image, status code: ${response.statusCode}`));
return;
}
response.pipe(file);
file.on('finish', () => {});
});
});
} # 注册账号并开通服务
# 在使用大模型图像创作引擎服务前,需要先注册腾讯云账号。
# 注册并通过实名认证后,登录腾讯云大模型图像创作引擎控制台,阅读和同意服务条款,单击立即开通,即可获得大模型图像创作引擎的 API 接口调用权限。
# 新建/查看云 API 密钥
# 在控制台访问管理中,点击访问密钥菜单栏,进入 API 密钥管理页面,新建或查看密钥,保存 secretId 和 secretKey。
# 新建项目文件夹并安装依赖
# 进入项目目录,打开终端,输入以下命令安装依赖:
npm install tencentcloud-sdk-nodejs-aiart
# 新建云 API 函数模块 tencentCloudApi.js 文件
import tencentcloud from "tencentcloud-sdk-nodejs-aiart";
const AiartClient = tencentcloud.aiart.v20221229.Client;
const clientConfig = {
credential: {
secretId: "AKIDjIcgU1HI2VhcHxxxxxxxxxxxxxxxxxxxxx",
secretKey: "KOBhwykFagX8UaS5Sxxxxxxxxxxxxxxxx",
},
region: "ap-shanghai",
profile: {
httpProfile: {
endpoint: "aiart.tencentcloudapi.com",
},
},
};
const client = new AiartClient(clientConfig);
export async function sketchToImage(prompt, inputImage) {
const params = {
"Prompt": prompt,
"InputImage": inputImage,
"RspImgType": "url",
};
try {
const response = await client.SketchToImage(params);
if (!response.RequestId) {
throw new Error(`HTTP error!`);
}
return response;
} catch (error) {
console.error(`Error fetching`, error);
throw error;
}
}
# 新建保存 Url 图片功能函数 saveImageFromUrl.js
import https from 'https';
import fs from 'fs';
export async function saveImageFromUrl(url, outputFilePath) {
return new Promise((resolve, reject) => {
const file = fs.createWriteStream(outputFilePath);
https.get(url, (response) => {
if (response.statusCode!== 200) {
reject(new Error(`Failed to get image, status code: ${response.statusCode}`));
return;
}
response.pipe(file);
file.on('finish', () => {});
});
});
}
1.设计提效:
缩短概念风格、设计初稿和设计终稿的反复沟通时间,提升效率 25 - 55%。
当未使用 Midjourney 和 Stable Diffusion 时,设计师在设计参考阶段需要花费大量时间找参考图,还需绘制设计草图,然后与业务确认风格和草图,接着进行设计建模和细化设计,最后确定设计定稿。而有了 AIGC 工具的辅助,如使用 Midjourney 生成设计参考图,可快速与业务确认设计风格,绘制线稿草图后,通过 Stable Diffusion 直接生成设计图,设计师再做细节优化,极大地缩短了整个设计流程的时间,提升了效率。
2.活动弹窗设计:
运用 ChatGPT 获取设计思路,通过 Stable Diffusion 生成更有质感和高级感的设计主体元素。
先运用 ChatGPT 获取弹窗的设计思路,从多角度切入设计,使设计方案更完善。通过 ChatGPT 分析后,提取关键词如黑金、高级感、精致、质感等,再具象延伸添加宝石、荣耀感、坚硬感和钻石等关键词,并转化为英文。将初稿中的钻石图放进 Stable Diffusion 图生图功能,输入关键词,重复幅度调到 5 以下,反复多批量产出后筛选出想要的结果,通过 Stable Diffusion 生成更有质感和高级感的设计主体元素,节省大量设计细节的时间。
3.勋章图标设计:
利用 Stable Diffusion 制作勋章图标,从简化版设计深入刻画精细版。
Midjourney 和 Stable Diffusion 可以制作勋章图标。勋章一般有简化版和精细版,用于不同尺寸的场景。以网易大神梦幻西游武神坛勋章为例,借助 Stable Diffusion,输出简化版本的设计,让 Stable Diffusion 深入刻画。从勋章自带荣誉感属性出发,得到宝石、金属质感、闪耀感和高级感等关键词,转化为英文后输入,得到设计图。然后用生成最满意的图继续下一轮刻画,以达到最贴合需求的出图效果。
4.IP 设计:
通过 Stable Diffusion 结合线稿和关键词生成 IP 形象,包括选择合适的模型和插件、设置 controlnet 面板等步骤。
在设计 IP 前期,确定 IP 的应用场景和角色动作。以网易大神 IP 霸哥为例,讲解如何用 Stable Diffusion 制作 IP 素材。首先绘制角色动作线稿,给角色设定动作如单手持玩具枪,眼神坚毅望向前方,注意草图线稿要干净连贯。然后选择并下载合适模型以及插件,结合 IP 形象特点,在 C 站选择相对应的模型,如大模型 MeinaMix,Lora 插件 blindbox。接着设置 controlnet 面板,在文生图界面找到 ControlNet 一栏,上传绘制好的线稿草稿,勾选启用,若线稿图片背景为白色,可勾选反色模式,并选择好预处理器和模型。最后输入关键词并设置参数,如描述霸哥形象特征的关键词,生成 IP 形象。
5.其他应用案例:
如模特宣传海报生成、表情包生成等,展示了 Midjourney 在不同领域的应用。