目錄

引言

一、AIGC 生圖技術原理

(一)技術基礎

1.深度學習:

2.生成式模型:

(二)主要模型

1.生成對抗網絡(GAN):

2.擴散模型(Diffusion Model):

(三)工作原理

1.數據學習:

2.特徵提取:

3.圖像生成:

4.優化調整:

二、AIGC 生圖代碼示例

三、AIGC 生圖應用案例


引言

在當今數字化浪潮洶涌澎湃的時代,人工智能生成內容(AIGC)領域正以令人矚目的速度不斷演進與拓展。

其中,AIGC 生圖技術作為一顆璀璨的明星,正逐漸改變着我們對於圖像創作與生成的傳統認知。從藝術設計到商業廣告,從影視特效到遊戲開發,AIGC 生圖技術都展現出了其獨特的魅力與巨大的潛力。


本文將深入剖析 AIGC 生圖的技術原理,通過詳細的代碼示例揭示其背後的技術奧秘,並展示一系列豐富多樣的應用案例,帶領讀者全面領略 AIGC 生圖技術所構建的奇妙視覺世界,探尋其如何在各個領域中掀起創新變革的浪潮,為技術愛好者、創作者以及相關從業者提供一份全面而深入的 AIGC 生圖技術指南。

一、AIGC 生圖技術原理

探索 AIGC 生圖:原理、案例與代碼示例_API

編輯

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 或擴散模型進行優化調整。在這個過程中,模型會不斷地改進生成的圖像,使其質量不斷接近真實圖像。同時,模型還會進行合規檢測,確保生成的圖像不包含違法和不良信息。合規檢測是非常重要的一步,它可以保證生成的圖像符合法律法規和道德規範,避免出現不良影響。

二、AIGC 生圖代碼示例

探索 AIGC 生圖:原理、案例與代碼示例_json_02

編輯

1.安裝所需的庫和工具,如 Data-Juicer、DiffSynth-Studio、peft、lightning、pandas、torchvision 等。

  • 安裝過程可以參考以下步驟:首先安裝 simple-aesthetics-predictor;接着以開發模式安裝 data-juicer;然後卸載 pytorch-lightning;再安裝 peft、lightning、pandas 和 torchvision;最後以開發模式安裝 DiffSynth-Studio。具體命令如下:
!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-Studio

2.從魔搭數據集中下載數據集,並進行數據篩選過濾。

  • 從魔搭數據集中下載名為 “AI-ModelScope/lowres_anime” 的數據集,代碼如下:
from modelscope.msdatasets import MsDataset
    ds = MsDataset.load('AI-ModelScope/lowres_anime',subset_name='default',split='train',cache_dir="/mnt/workspace/kolors/data")

  • 對下載的數據集進行預處理,將圖像轉換為 RGB 格式並保存,同時將每張圖像的路徑和對應的標籤寫入 metadata.jsonl 文件。然後定義配置文件,對數據集進行清洗,包括圖像尺寸和寬高比的篩選。清洗後的數據處理包括讀取結果文件,提取文本描述和圖像路徑,保存為 CSV 文件。代碼如下:
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 環境、使用特定的函數模塊進行線稿生圖等。

  • 使用 Stable Diffusion 進行圖像生成需要安裝相關軟件和依賴,如 Python、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', () => {});
            });
        });
    }

三、AIGC 生圖應用案例

探索 AIGC 生圖:原理、案例與代碼示例_json_03

編輯

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 在不同領域的應用。

  • 模特宣傳海報生成:利用 Midjourney 生成模特宣傳海報。首先通過 Midjourney 的圖生文功能獲取關鍵詞靈感,生成模特素材,如 “Full body photo of a Chinese female model standing in front of a bright wall, Asian style, Product photography, Sophisticated and high-end, Panoramic view, 100mm lens, Super details of the highest quality, 8K --ar 9:16 --v 5.2”。然後生成服飾素材,用服裝名稱作為關鍵詞,如 “a Plaid cardigan, White background, 8K --v 5.2 --no people”。接着把衣服素材摳圖後疊到選好的模特圖上,上傳初步融合的模特圖,通過墊圖 + 關鍵詞的方法批量生成模特圖。最後挑選合適的模特圖進行後期微調排版,完成海報。
  • 表情包生成:使用 Midjourney 生成表情包。首先通過 Midjourney 的圖生文功能獲取關鍵詞靈感,結合關鍵詞描述的基本句式,如 “畫面主體:企鵝卡通貼紙;畫面修飾:企鵝的各種表情和動作,快樂的,生氣的,悲傷的,失望的,吃驚的等;細節描述:白色背景,九宮格佈局,插畫設計,皮克斯風格;參數後綴:--niji 5”,生成一大批小企鵝。然後可以通過 Variations 升頻控制等方法保持表情包的一致性。