• 【diffusion model】扩散模型入门


    写在最前,参加DataWhale 10月组队学习。
    参考资料
    HuggingFace 开源diffusion-models-class

    1.扩散模型介绍

    2.调用模型生成一张赛博风格的猫咪图片

    2.1 安装依赖包

    %pip install -qq -U diffusers datasets transformers accelerate ftfy pyarrow==9.0.0
    
    • 1

    2.2 notebook登录huggingface账号

    from huggingface_hub import notebook_login
    
    notebook_login()
    
    • 1
    • 2
    • 3

    建议创建可写token,后续如果要上传模型的话有write权限
    https://huggingface.co/settings/tokens
    在这里插入图片描述

    2.3 配置命令

    %%capture
    !sudo apt -qq install git-lfs
    !git config --global credential.helper store
    
    • 1
    • 2
    • 3

    这两个命令用于在Jupyter Notebook中运行Shell命令,并将输出捕获(capture)起来,而不直接在Notebook中显示输出。

    %%capture是一个Jupyter Notebook的魔法命令(magic command),它会捕获后续单元格中所有命令的标准输出(stdout)和标准错误输出(stderr),并将其保存在一个变量中,以便进一步处理或分析。

    !sudo apt -qq install git-lfs用于在Shell中以sudo权限(管理员权限)安装git-lfs(Git Large File Storage)。-qq参数表示安装过程中不显示详细信息。

    !git config --global credential.helper store用于在Shell中设置git的全局配置,将认证信息存储在文件中,而不是在内存中。这可以使得git在每次需要认证时都不再询问用户名和密码,而是从文件中读取认证信息。

    请注意,sudo命令需要输入密码来确认你有权限进行系统级的安装。在Jupyter Notebook中执行这些命令时,你可能需要手动输入密码。如果你使用的是虚拟环境,你可能不需要使用sudo权限来安装包。请根据你的需求和系统权限进行相应的调整。

    2.4 引入依赖

    import numpy as np
    import torch
    import torch.nn.functional as F
    from matplotlib import pyplot as plt
    from PIL import Image
    # Mac users may need device = 'mps' (untested)
    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.5 下载模型

    from diffusers import StableDiffusionPipeline
    import torch
    model_id = "prompthero/openjourney"
    pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
    pipe = pipe.to("cuda")
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.6 输入提示词出图

    prompt = "A cat wearing smart sunglasses, holding a laser, wearing a space suit, cyberpunk style"
    image = pipe(prompt).images[0]
    image.save("./cat1.png")
    image
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

  • 相关阅读:
    使用C#编写一个.NET分析器(一)
    python基于django的学生在线考试自动阅卷系统(含错题本功能)
    ASP.NET Core MVC应用模型的构建[3]: Controller的收集
    C/C++数据结构题目(2022)
    linux 性能优化
    【Flink 实战系列】Flink on yarn 为什么 Allocated CPU VCores 显示不正确?
    【系统架构设计】架构核心知识: 3.3 DSSA和ABSD
    NC14695 不可名状之物
    【Unity3D日常开发】Unity3D中打包WEBGL后读取本地文件数据
    《Java编程思想》读书笔记(四)
  • 原文地址:https://blog.csdn.net/weixin_42914989/article/details/133955648