【Datawhale X 魔搭 AI夏令营】AIGC方向——Task01笔记

赛事解读

赛程说明

报名与组队:即日起—2024年8月31日 23:59

  1. 参赛者通过天池平台进行报名,确保报名信息准确有效,否则会被取消参赛资格及激励;
  2. 参赛组织可以单人或者多人自由组队,每队限最多5人,每人只能参加1支队伍;如果是多人团队,则需指定1名队长,负责沟通事宜;
  3. 本赛道所有选手需在8月31日23:59前完成实名认证(实名认证入口:天池网站-个人中心-认证-支付宝实名认证),未按要求完成实名认证队伍,将被取消参赛资格。

特别提醒:
每个队伍中,队长与队员都需要进行实名验证才符合“队伍完成实名认证”的需求。组队成功后,点击左侧「我的团队」即可查看本队伍实名情况。
初赛:报名后-2024年8月31日23:59
决赛入围通知:2024年9月2日,从初赛作品中结合专业技术评委+人气投票筛选30组选手入围决赛(客观评分+评委主观评分)
决赛:2024年9月5日答辩展示,线上决出一二三等奖(评委主观评分)
颁奖:2024年9月19日~9月21日,线下云栖大会颁奖及展示

赛题内容

参赛者需在可图Kolors 模型的基础上训练LoRA 模型,生成无限风格,如水墨画风格、水彩风格、赛博朋克风格、日漫风格…
基于LoRA模型生成 8 张图片组成连贯故事,故事内容可自定义;基于8图故事,评估LoRA风格的美感度及连贯性

  • 选手在天池平台后,需在魔搭平台上提交作品。步骤如下:
    1、将训练好的LoRA 模型上传到魔搭模型库
    LoRA模型命名为:队伍名称-可图Kolors训练-xxxxxx
    LoRA 上传地址:https://modelscope.cn/models/create?template=text-to-image-lora
    2、作品发布在比赛品牌馆讨论区,https://modelscope.cn/brand/view/Kolors?branch=0&tree=11
    发布标题格式为:天池平台报名队伍名称+LoRA模型链接地址+作品图(8图故事)
  • 评分标准
    本次比赛通过客观评分判断选手提交作品的有效性,但最终评分以主观评分为准。
    1、主观评分
    由评委对参赛作品进行投票,评审标准可以从技术运用(40%)、组图风格连贯性(30%)、整体视觉效果(30%)几方面进行评判投票。
    2、客观评分
    美学分数仅作评价提交是否有效的标准,其中美学分数小于6(阈值可能根据比赛的实际情况调整,解释权归主办方所有)的提交被视为无效提交,无法参与主观评分。

此外,我们会核实选手上传的模型文件,赛选手需提交训练的LoRA 模型文件、LORA 模型的介绍、以及使用该模型生成的至少8张图片和对应 prompt,以便我们能够复现生成效果,对于生成效果明显无法复现的,取消获奖资格。

文生图有关知识

文生图是一种结合了自然语言处理和计算机图形学技术的创新应用。
它的工作原理是利用深度学习模型,对输入的文本进行理解和分析,提取关键信息和语义特征,然后根据这些特征生成与之对应的视觉图像。
接下来将介绍一些有关知识点。

promts

文生图的 prompt是指用于引导和描述所需生成图像的文本提示。
它通常包含了对图像的各种详细描述,比如主题、对象、场景、色彩、风格、构图 等元素。一个好的 prompt 能够为文生图模型提供清晰明确的指导,从而生成更符合预期的图像。我们可以设置prompt(正向提示词——想要什么),也可以设置负向prompt(不想要什么)。

  • 举个例子
    【promts】Beautiful and cute girl, smiling, 16 years old, denim jacket, gradient background, soft colors, soft lighting, cinematic edge lighting, light and dark contrast, anime, super detail, 8k
    【负向prompts】(lowres, low quality, worst quality:1.2), (text:1.2), deformed, black and white,disfigured, low contrast, cropped, missing fingers

当 AI 接收到 prompt 后,其工作原理通常包括以下几个主要步骤:

  1. 文本理解:AI 会运用自然语言处理技术对 prompt 进行分析。它会解析词汇、语法结构,并尝试理解文本中的语义和意图。例如,对于“绘制一幅秋天的森林,树叶金黄,地上铺满落叶”的 prompt,AI 会识别出“秋天”“森林”“金黄树叶”“落叶”等关键元素。
  2. 特征提取:将理解后的文本转换为可供模型处理的特征向量。这些特征向量包含了关于文本描述的关键信息。
  3. 模型推理:利用预训练的模型,根据提取的特征进行计算和推理。模型会根据之前在大量数据上学习到的模式和知识,尝试生成与 prompt 相关的输出。
  4. 生成初步结果:基于推理结果,生成一个初步的图像或其他形式的输出。这个初步结果可能还不够完善或准确。
  5. 优化和调整:对初步生成的结果进行评估和优化。可能会根据一些评估指标,如清晰度、与 prompt 的匹配度等,对生成的结果进行调整和改进。
  6. 最终输出:经过多次优化和调整后,生成最终的输出结果,即符合 prompt 描述的图像、文本等。
    图片来源于https://blog.csdn.net/cyj972628089/article/details/138200858?ops_request_misc=&request_id=&biz_id=102&utm_term=prompt&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-4-138200858.142v100pc_search_result_base4&spm=1018.2226.3001.4187
    图片来源于 Prompt之美:如何设计提示词让大模型变“聪明”

Lora

LoRA 即 Low-Rank Adaptation,是一种轻量级的模型微调技术。
它的主要作用是在不改变大型预训练模型的主体结构和大部分参数的情况下,通过向模型中添加少量的可训练参数,来实现对特定任务或数据的优化和适应。
LoRA 的优点在于它的高效性和灵活性。与完全重新训练整个模型相比,LoRA 所需的计算资源和时间更少,同时能够在不同的任务和数据集之间快速切换和适应。

  • 原理:
    对于一个预训练好的模型(如语言模型、图像生成模型等),它在原始权重基础上,将模型中特定层(比如注意力层等)原本待更新的权重矩阵分解为两个低秩矩阵( A A A B B B),数学表达为 h = W 0 x + Δ W x = W 0 x + B A x h=W_0x+\Delta Wx=W_0x+BAx h=W0x+ΔWx=W0x+BAx ,其中 B ∈ R d × r , A ∈ R r × d B \in \mathbb{R}^{d \times r}, A \in \mathbb{R}^{r \times d} BRd×r,ARr×d ,( d d d远大于 r r r)。这样在训练微调的时候,不是直接更新大的权重矩阵,而是更新这两个小得多的低秩矩阵,大大减少了需要训练的参数数量。
    具体原理可以看这个文章->LORA详解(史上最全)

ComfyUI

ComfyUI 是一个强大的图形用户界面(GUI),主要用于控制和管理 AI 图像生成流程。
它为用户提供了一种直观且灵活的方式来定制和组合各种节点,以实现复杂的图像生成任务。
特点和优势包括:

  1. 高度可定制性:用户可以根据自己的需求和创意,自由搭建图像生成的流程和参数设置。
  2. 丰富的节点选项:涵盖了从模型选择、提示处理、条件控制到图像后处理等多个环节的节点,为生成高质量图像提供了丰富的工具。
  3. 直观的操作界面:通过拖拽和连接节点的方式,使得操作变得简单易懂,即使对于非技术背景的用户也相对友好。
  4. 支持多种模型:能够与多种流行的图像生成模型集成,如 StableDiffusion 等,扩展了其应用范围和能力。
    ComfyUI
    在ComfyUI平台的前端页面上,用户可以基于节点/流程图的界面设计并执行AIGC文生图或者文生视频的pipeline。

参考图控制

AI 的参考图控制是指在使用 AI 进行图像生成或处理时,利用参考图像来引导和影响生成结果的过程。 其中有一个重要的工具ControlNet 。它能够为图像生成模型(如 StableDiffusion 等)提供更精确的控制和引导,使得生成的图像更加符合用户的特定需求。
具体知识点可以看这篇文章->万字干货!一口气掌握14种 ControlNet 官方控图模型的使用方法!(下图来自这篇文章)
参考图控制分类

Data-Juicer 和 DiffSynth-Studio

  • Data - Juicer
    数据处理方面:
    是一个用于大模型数据清洗和预处理的工具。
    提供了系统化且可复用的80 + 核心算子,20 + 配置菜谱和20 + 专用工具池。
    支持多种数据格式(如jsonl、parquet、csv 等),可以灵活地组合算子来处理数据,还支持自定义算子以实现定制化的数据处理。
    能以配置文件路径作为参数来运行处理数据集 ,并且具有高效并行化的数据处理流水线,能减少内存占用和 CPU 开销。
    对于使用第三方模型的算子,在配置文件中可声明其所需内存等情况来优化性能。
    分布式处理
    基于 ray 实现了多机分布式数据处理,不过在多机使用 ray 执行数据处理时,需要确保所有节点都能访问对应的数据路径(比如挂载在共享文件系统)。
    数据分析和可视化
    可以通过配置文件路径为参数运行工具来分析数据集,还可以在浏览器中通过运行特定程序来可视化数据集。
    沙盒实验室
    提供数据沙盒实验室(dj - sandbox),用户可以基于小规模数据集和模型对数据菜谱进行快速实验、迭代和优化,具有低开销、可迁移、有指导性等特点。
    具体见文章 Data-Juicer:阿里巴巴荣誉出品的大模型数据清洗框架

  • DiffSynth - Studio
    功能定位方面
    是一个创新的扩散引擎,专门用于实现图片和视频的风格转换。
    架构与性能
    对架构进行了重大重组以提升性能和用户体验,在保持与开源社区模型兼容同时大幅提高计算性能、降低硬件资源消耗。处理速度更快、生成的图像和视频质量更高。
    模型支持与兼容性
    支持多种先进的扩散模型,如 stable diffusion、control net 、animatediff 等。具有良好的兼容性,可以与多种操作系统(包括 Windows、Linux 和 MacOS 等主流操作系统)和硬件平台无缝对接。
    技术创新方面
    采用了diffutoon渲染技术,结合深度学习和计算机图形学实现高质量的图像和视频渲染。其核心在于独特的扩散过程(从随机噪声向量开始逐步添加噪声再去噪生成目标图像)。支持control net 与 animatediff 模型的结合使用,control net 用于控制生成过程中的细节和风格,animatediff 专注于生成流畅自然的动画效果。具备生成高分辨率图像的能力,通过结合超分辨率技术和深度学习模型(如esrgan等),能生成细节丰富、清晰度极高的高分辨率图像。
    应用场景
    核心功能之一是长视频合成,利用 stable diffusion 模型和 animatediff 模型的强大能力突破传统视频生成中帧数限制,生成高质量长视频。
    具体见文章 DiffSynth-Studio全面解析与应用示例

baseline 实践过程

下面操作在魔搭社区创建PAI实例中运行

  1. 下载baseline文件(大约需要2分钟)
git lfs install
git clone https://www.modelscope.cn/datasets/maochase/kolors.git

在这里插入图片描述
在这里插入图片描述

  1. 进入文件夹,打开baseline文件
    在这里插入图片描述
    在这里插入图片描述

  2. 安装环境,然后重启kernel
    在这里插入图片描述
    在这里插入图片描述

  3. 调整prompt,设置你想要的图片风格,依次修改8张图片的描述
    我的8个prompt分别是:

torch.manual_seed(0)
image = pipe(
    prompt="二次元,一个棕色长发小女孩,在海边沙滩上刚刚苏醒,懵懂无措的表情,全身,白色连衣裙",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("1.jpg")
torch.manual_seed(1)
image = pipe(
    prompt="二次元,海边的沙滩,一个棕色长发小女孩穿着白色连衣裙坐在没有别人的海滩,她看到了附近的一艘残船,背面",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("2.jpg")
torch.manual_seed(2)
image = pipe(
    prompt="二次元,一个棕色长发小女孩穿着白色连衣裙坐在没有别人的海滩,露出恍然大悟的神情",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度,色情擦边",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("3.jpg")
torch.manual_seed(5)
image = pipe(
    prompt="二次元,一个棕色长发小女孩穿着白色连衣裙站在海滩的残船旁边,开始努力修理残船,擦汗",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度,扭曲的手指,多余的手指",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("4.jpg")
torch.manual_seed(0)
image = pipe(
    prompt="二次元,一个棕色长发小女孩穿着白色连衣裙站在海滩的刚刚修好的船旁边",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("5.jpg")
torch.manual_seed(1)
image = pipe(
    prompt="二次元,一个棕色长发小女孩穿着白色连衣裙站在刚刚放入海中的船旁边,紧张,一只脚踏入船",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("6.jpg")
torch.manual_seed(7)
image = pipe(
    prompt="二次元,一个棕色长发小女孩穿着白色连衣裙站在海旁边的船中,开心",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("7.jpg")
torch.manual_seed(0)
image = pipe(
    prompt="二次元,一个棕色长发小女孩穿着白色连衣裙坐在船中,在海中航行,背影",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("8.jpg")

八张图片是这样的:

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值