Kaggle中使用SDXL

Kaggle中使用SDXL方法

如图先搜索sdxl模型,然后创建代码code或者直接使用他人的代码

在这里插入图片描述

安装依赖库

!pip install diffusers --upgrade
!pip install invisible_watermark transformers accelerate safetensors

查看依赖库版本

import diffusers
diffusers.__version__
# 获取对象帮助信息。ps:一切皆可help(有时候不知道参数的情况下)
from diffusers import DiffusionPipeline
help(DiffusionPipeline.from_pretrained)

一、文生图

# 加载模型
from diffusers import DiffusionPipeline
import torch

pipe = DiffusionPipeline.from_pretrained(
    "/kaggle/input/stable-diffusion-xl/pytorch/base-1-0/1", 
    torch_dtype=torch.float16, 
    use_safetensors=True, 
    variant="fp16"
)
pipe.to("cuda")
# pipe.enable_model_cpu_offload() # 允许将模型分担到cpu

# if using torch < 2.0
# pipe.enable_xformers_memory_efficient_attention()

# 开始生成
prompt = "Imagine a charming Korean woman, HanFu."
image = pipe(
              prompt=prompt,
              width=1024,
              height=1024,
              num_inference_steps=50
             ).images[0]
# 结果展示
image

二、调用refiner进一步处理图片

# 加载模型权重
from diffusers import (
        DiffusionPipeline,
        StableDiffusionXLPipeline,
        StableDiffusionXLImg2ImgPipeline
    )
import torch


# load both base & refiner
base = StableDiffusionXLPipeline.from_pretrained(
    "/kaggle/input/stable-diffusion-xl/pytorch/base-1-0/1", 
    torch_dtype=torch.float16, 
    variant="fp16", 
    use_safetensors=True
)
base.to("cuda")
# base.enable_model_cpu_offload()

# refiner = DiffusionPipeline.from_pretrained(
#     "/kaggle/input/stable-diffusion-xl/pytorch/base-1-0/1",
#     text_encoder_2=base.text_encoder_2,
#     vae=base.vae,
#     torch_dtype=torch.float16,
#     use_safetensors=True,
#     variant="fp16",
# ) # 等效下方代码

refiner=StableDiffusionXLImg2ImgPipeline(**base.components) # 共用权重节省内存
refiner.text_encoder_2=base.text_encoder_2
refiner.to("cuda")
# refiner.enable_model_cpu_offload()
# 生成图片
# Define how many steps and what % of steps to be run on each experts (80/20) here
n_steps = 40
high_noise_frac = 0.8

prompt = "A charming Korean woman wearing pink dress"

# run both experts
image = base(
    prompt=prompt,
    num_inference_steps=n_steps,
    denoising_end=high_noise_frac,
    output_type="latent",
).images[0]
image = refiner(
    prompt=prompt,
    num_inference_steps=n_steps,
    denoising_start=high_noise_frac,
    image=image,
).images[0]
# 查看结果
image

三、图生图

# 加载模型
from diffusers.utils import load_image
from diffusers import StableDiffusionXLImg2ImgPipeline
import torch

# load both base & refiner
refiner = StableDiffusionXLImg2ImgPipeline.from_pretrained(
    "/kaggle/input/stable-diffusion-xl/pytorch/base-1-0/1", 
    torch_dtype=torch.float16, 
    variant="fp16", 
    use_safetensors=True
)
refiner.to("cuda")
image = load_image("/kaggle/input/examples/download1.png")
prompt="a pretty Korean woman wearing green dress"
num_inference_steps=50
strength=0.8
guidance_scale=7

image=refiner(
    prompt=prompt,
    num_inference_steps=num_inference_steps,
    strength=strength,
    guidance_scale=guidance_scale,
    image=image
).images[0]
image

在这里插入图片描述

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Kaggle 是一个数据科学和机器学习社区平台,提供了丰富的数据集、竞赛和教程资源。下面是一个简单的 Kaggle 使用教程: 1. 注册一个 Kaggle 账号:访问 Kaggle 官网(https://www.kaggle.com/)并点击右上角的 "Sign Up" 进行注册。 2. 探索数据集:在 Kaggle 上有数千个开放的数据集可供使用。你可以通过搜索或浏览不同的领域和主题来找到感兴趣的数据集。 3. 下载数据集:一旦你找到了想要使用的数据集,你可以点击数据集页面上的 "Download" 进行下载。 4. 参加竞赛:Kaggle 上有举办各种机器学习竞赛,你可以选择参加感兴趣的竞赛。竞赛页面会提供详细的问题描述、数据集和评估指标等信息。 5. 提交结果:在竞赛页面上,你可以下载竞赛提供的训练和测试数据集。你需要使用训练数据集建立模型,并在测试数据集上进行预测。最后,你将提交你的预测结果,Kaggle 会根据评估指标对你的结果进行评估。 6. 加入讨论和社区:Kaggle 是一个活跃的社区平台,你可以加入不同的讨论组、论坛或组织,并与其他数据科学家、机器学习工程师交流和分享经验。 此外,Kaggle 还提供了大量的教程和内置的笔记本资源,用于学习和实践机器学习算法和数据分析技术。你可以在 Kaggle 上搜索并浏览相关的教程资源,以提升你的数据科学技能。 希望这个简单的教程能帮助你开始使用 Kaggle!如有更多问题,请继续提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值