玩耍记录

发布于 2023-03-26  407 次阅读


玩耍收获

记录下今晚玩了些啥。之前其实玩了很多有关 Linux 的东西,但像我这样想玩什么就玩什么的随心所欲派如果不像这样记录下自己玩了些什么的话,恐怕收获是十分有限的,所以我现在决定养成习惯记录下自己玩了些什么,方便今后自己重装系统后参考。(我装系统时信了网上的邪,把 //home 分开装了,关键是 / 还划得贼小 TT,今后大概率要重装下自己的 Ubuntu 了)。我尽量写清参考文章,尊重作者创作不易,如果又奆佬有缘看到我的文章也不妨交流留下友链,虽然友链功能还没用过 (X)(如果太简单了就懒得标了。。。)

2023-3-26

  • 首先成功完成了 Github 的学生认证,美滋滋地用上了 copilot ( ^_^ )

  • 自己真的还对 docker 非常不熟悉qwq,所以又再次转向 VSCode 寻求帮助,安装了 docker 插件。最初报错,无法连接,我知道肯定是因为只有 root 权限才能使用 docker 的缘故。所以输入下面的命令允许本地用户使用 docker。

    sudo groupadd docker # add docker group, high probability already exists
    sudo usermod -aG docker $USER # replace the $USER by your user name
    newgrp docker # update the docker group

    然后重启电脑即可。其实不重启电脑终端里普通用户也可以用 docker 了,但我要会在终端里用 docker 用得着这?所以我选择重启。

  • 在 Linux 上安装 Anaconda 。首先去官网下载 .sh 文件,然后赋予文件可执行权限 chmod +x Anaconda3-2023.03-Linux-x86_64.sh ,然后终端运行 Anaconda3-2023.03-Linux-x86_64.sh 一定记得每一步询问输入 yes 不然后面配置环境变量又是件麻烦事(这里我没用管理员权限安装,因为用虚拟环境时一般都是我自己在跑 Python 文件,要不要用 root 权限就智者见智了)

  • 在 docker 容器里安装 cuda 环境。因为我跑 docker 里的文件时发现用不了 GPU,用 CPU 硬跑,这谁顶得住。。。,想了想应该是 cuda 的问题,就先试试吧。去官网选择适配版本,复制粘贴命令行进终端,跑就完事了。(不得不说大厂的服务真的挺周到的,点个赞)但是安装完还是用不了qwq,后面再想办法吧,是在不行先 CPU 硬跑下试试。

  • 然后还尝试了本地部署 stable diffusion ,安装 Anaconda 就是为了这个,拜托,AI 画的话超级好看的诶,多看看美图养养眼img

    参考文章 虽然是 Windows 的教程,但环境搭建完全可以自己解决,Linux 还方便些。git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git 后,仓库文件里也有 webui-user.sh ,只需要赋予它个执行权限基本操作就大同小异了。

  • 还有如何读取视频中的每一帧,然后又把每一帧合成视频。这个直接上代码吧。(第一次感受到 copilot 起飞版的实力,tql )

    读取视频中的每一帧:

    import cv2
    import numpy as np
    
    # Read video
    cap = cv2.VideoCapture('/home/ljy/视频/SRTP/video.mp4')
    
    def save_image(image, path, m):
      # Save image
      cv2.imwrite(path + str(m) + '.jpg', image)
      print('Saved frame%d.jpg' % m)
    
    success, frame = cap.read()
    i = 0
    # set frame rate
    frame_rate = 10
    count = 0
    while success:
      i += 1
      if i % frame_rate == 0:
          count += 1
          # Save frame as JPG file
          save_image(frame, './img_frame_rate/', count)
    
      # Read next frame
      success, frame = cap.read()
      print('Read a new frame: ', success)

    把图片合成视频:

    import cv2
    import numpy as np
    import time
    
    # create a video writer object, avi uses *'MJPG' codec
    fourcc = cv2.VideoWriter('output.mp4', cv2.VideoWriter_fourcc(*'mp4v'), 75, (2560, 1440))
    
    for i in range(1, 667):
      img = cv2.imread('./image/' + str(i) + '.jpg')
      img = cv2.resize(img, (2560, 1440))
      count = 0
      # write the fps of each frame
      while count < 1:
          fourcc.write(img)
          count += 1
    
    fourcc.release()
  • 以及调用 replicate 的 api 跑 CLIPasso(可是这玩意只能用一次,不免费啊 qwq ):

    import replicate
    import os
    os.environ["REPLICATE_API_TOKEN"] = "your_api_token"
    output = replicate.run(
      "yael-vinker/clipasso:9890b0260cd82faa230db114406dc5a3b26fc0f940fb6057158b4747e22bf320",
      input={"target_image": open("./img_frame_rate/26.jpg", "rb")}
    )
    print(output)

2023-3-27

  • 继续记录搭建 stable diffusion 时踩的坑。创建 Python 虚拟环境时会出现没法 activate 的情况。

image-20230327103046916

################################################################
Repo already cloned, using it as install directory
################################################################

################################################################
Create and activate python venv
################################################################

################################################################
ERROR: Cannot activate python venv, aborting...
################################################################

输入 source venv/bin/activate 会提示找不到文件或目录。大概率是虚拟环境没建好吧。参考了 github 上的讨论,参考页面,输入 python3 -m venv venv/ 解决问题。之前先安装了 sudo apt install python3-venvsudo apt install virtualenv ,我觉得理论上没啥影响,如果不行的话可以安装个 python3-venv ,可能会有影响。

  • 因为目前找不到用 GPU 跑 CLIPasso 的办法,所以只能用 CPU 硬跑着,但用 CPU 硬跑我很担心 CPU 的温度(因为并不确定散热器性能咋样,反正现在风扇跑得呜呜呜的)

    image-20230327110401459

    所以我就想看看 CPU 温度咋样。通过安装传感器的监视器实现 sudo apt install lm-sensors 。然后终端输入命令 sensors 就可以看到温度了。

    image-20230327110647603

    虽然我不知道哪个是哪个的温度,但肯定是有 6 个核的是 CPU,因为我的 CPU 是 12400f,6核12线程。然后看见温度都挺正常的,就安心了。

    PS: 这就是为啥我觉得 AI 很 nice 的地方了,可以心安理得地摸鱼哩 ^_^

    image-20230327111159211


整天不想事儿,就想着干饭