Datawhale X 魔搭 AI夏令营 - AIGC方向(task01条记)

金歌  金牌会员 | 2024-9-12 19:22:23 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 578|帖子 578|积分 1734

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
  
  

前言

赛题介绍

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

一、底子知识

1.文生图的历史:
文生图(Text-to-Image Generation)是一种通过文本生成图像的技能,历史发展阶段如下:
1.1早期探索(20世纪60年代-20世纪90年代)
上风:图像生成技能重要依赖规则和模板匹配,通过预定义的规则将文本转换为简朴的图形。
缺点:由于盘算能力和算法的限制,生成的图像质量较低,应用场景也非常有限
1.2基于统计模子的方法(2000年-2010年)
上风:使用概率图模子统计语言模子来生成图像。
缺点:模子的复杂性和盘算资源的限制,生成的图像仍然较为粗糙,不够传神
1.3深度学习的崛起(2010年-2020年)
发展:卷积神经网络(CNN)和生成对抗网络(GAN)的发展,文生图技能取得了突破性进展。2014年,Goodfellow等人提出的GAN模子通过生成器和判别器的对抗练习,提拔了图像生成的质量。随后,各类变种GAN模子被提出,如DCGAN、Pix2Pix等,使得文生图技能在生成传神图像方面达到了亘古未有的高度。
1.4大规模预练习模子(2020年-至今)
发展:大规模预练习模子如OpenAI的CLIP、DALL-E以及Stable Diffusion等的出现,标志取文生图技能进入了一个新的时代。
1)CLIP通过大规模的文本和图像配对数据练习,能够理解和生成高度同等的文本和图像;
2)DALL-E和Stable Diffusion进一步提拔了生成图像的创意和细节体现能力,使得通过简朴的文本描述生成高质量、复杂图像成为大概。
应用场景:艺术创作、广告计划与辅助医疗诊断。
二、实现步调

1.底子知识:
1)提示词(重要)
一般写法:主体描述,细节描述,修饰词,艺术风格,艺术家
【例】
【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
2)Lora
Stable Diffusion中的Lora(LoRA)模子是一种轻量级的微调方法,它代表了“Low-Rank Adaptation”,即低秩适应。Lora不是指单一的具体模子,而是指一类通过特定微调技能应用于底子模子的扩展应用。在Stable Diffusion这一文本到图像合成模子的框架下,Lora被用来对预练习好的大模子进行针对性优化,以实现对特定主题、风格或使命的精致化控制。
1.克隆存储库:

复制以下代码,下载baseline文件
  1. git lfs install
  2. git clone https://www.modelscope.cn/datasets/maochase/kolors.git
复制代码
2. 安装环境,然后重启kernel

Data-Juicer:数据处置处罚和转换工具,旨在简化数据的提取、转换和加载过程
DiffSynth-Studio:高效微调练习大模子工具
  1. #下载数据集
  2. from modelscope.msdatasets import MsDataset
  3. ds = MsDataset.load(
  4.     'AI-ModelScope/lowres_anime',
  5.     subset_name='default',
  6.     split='train',
  7.     cache_dir="/mnt/workspace/kolors/data"
  8. )
  9. import json, os
  10. from data_juicer.utils.mm_utils import SpecialTokens
  11. from tqdm import tqdm
  12. os.makedirs("./data/lora_dataset/train", exist_ok=True)
  13. os.makedirs("./data/data-juicer/input", exist_ok=True)
  14. with open("./data/data-juicer/input/metadata.jsonl", "w") as f:
  15.     for data_id, data in enumerate(tqdm(ds)):
  16.         image = data["image"].convert("RGB")
  17.         image.save(f"/mnt/workspace/kolors/data/lora_dataset/train/{data_id}.jpg")
  18.         metadata = {"text": "二次元", "image": [f"/mnt/workspace/kolors/data/lora_dataset/train/{data_id}.jpg"]}
  19.         f.write(json.dumps(metadata))
  20.         f.write("\n")
复制代码
3. 调整prompt

设置你想要的图片风格,依次修改8张图片的描述。
正向描述词:你想要生成的图片应该包含的内容
反向提示词:你不希望生成的图片的内容
  1. torch.manual_seed(0)
  2. image = pipe(
  3.     prompt="二次元,一个紫色短发小女孩,在家中沙发上坐着,双手托着腮,很无聊,全身,粉色连衣裙",
  4.     negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
  5.     cfg_scale=4,
  6.     num_inference_steps=50, height=1024, width=1024,
  7. )
  8. image.save("1.jpg")
复制代码

总结

这是我第一次写条记,写的不好,多多见谅。希望各人一起学习!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表