もじょえんじにあ……共感できる?

日常のメモ。日々これ共感。へたれでしょほてきなIT?

ローカルGPUが使える WatermarkRemover-AIで、フォルダ一括変換!!

ローカルGPUでWatermarkを消すPython Codeを見付けました。

github.com

すごい、ちゃんとGPUがまわります。

でも、イメージファイルを一つづつ指定しないといけないのでちょっと不便。

    for x in in/*.jpg; do python3 remwm.py in/$x out/$x; done

こんな感じにすれば、まぁ、動くけど、起動時のオーバーヘッドが大きい気がするDeath。

      def main():
      # Parse command line arguments
+     from pathlib import Path
      import argparse

      parser = argparse.ArgumentParser(description='Watermark Remover')

pathlibを入れて

      input_image_path = args.input_image
      output_image_path = args.output_image

+     input_image_list = [input_image_path,]
+     output_image_list = [output_image_path,]
      # Check if input image exists
      if not os.path.exists(input_image_path):
          print(f"Input image {input_image_path} does not exist.")
          sys.exit(1)
!     if os.path.isdir(input_image_path):
!         items = sorted([str(x).split('/')[-1]  for x in Path(input_image_path).glob('*')])
!         input_image_list = ['/'.join([input_image_path,x]) for x in items]
!         output_image_list = ['/'.join([output_image_path,x]) for x in items]
!
!     for input_image_path, output_image_path in zip(input_image_list, output_image_list):
!         # Load the image

list化して、inがフォルダだったらoutもフォルダと見なして画像ファイルのlistを作って "# Load the image" 以降をインデントしてあげれば、フォルダの内部をまるっと変換できます。out側はmkdirだけしておけばオッケーdeath。

    python3 remwm.py in out

うん、GPUも絶賛活用中!!

taskmgr

ただ、理想の結果になるとは限りませんので悪しからずDEATH!!

旧正月もおわったし

そろそろあけおめ。今年はなにしようかな。あいかわらず、GCPの資格は挑戦してます。

超絶テキトーなSolver....

まぁ

動くか動かないかで言えば動くと思いマスが……ウルトラいいかげんです。6回はやっぱり85%くらいデスね。最大9回で解けてマス。

#!/bin/env python3
from random import seed, choice
import sys
from string import ascii_lowercase

def main():
  with open("./dict.txt") as f:
    wdic = [x.strip() for x in f.readlines()]
  freq = dict(zip(ascii_lowercase,[0,]*26))
  for w in wdic:
    for c in w: freq[c] += 1
  sdic = dict()
  for w in wdic:
    l = len(set(w))
    sc = sum([freq[x] for x in w])
    sdic[w] = l * sc
  seed()
  ans =choice(wdic)
  adic = sorted(sdic.items(), key=lambda i:i[1], reverse=True)
  print('ANS:', ans)
  for i in range(99):
    print(i, len(adic),adic[:10])
    a = adic[0][0]
    if i == 0: a = 'trace'
    k = ''
    for b,c in zip(ans, a):
      m = '_'
      if b == c: m = 'G'
      elif c in ans: m = 'Y'
      k +=m
    print('\n'.join([k, a]))
    if k == 'GGGGG':
      print(i+1, "times. You win!")
      break
    for j in range(len(k)):
      if k[j] == '_': adic = [x for x in adic if a[j] != x[0][j]]
      elif k[j] == 'G': adic = [x for x in adic if a[j] == x[0][j]]
      elif k[j] == 'Y':
         adic = [x for x in adic if a[j] in x[0]]
         adic = [x for x in adic if a[j] != x[0][j]]

if __name__ == "__main__": main()

いまさらWordleにハマる

とりえあずソルバーもどきの練習デス

あくまで習作なのでこれでは解ききれまセン。というか遊ぶほうデス。

でも、2300語くらいしかないみたいなので文字の出現頻度と単語中の文字種数で点数リストにして残ったうちの一番大きいやつみたいなダメアルゴリズムでも真面目に深さ優先検索とかしたのの85%くらいの成績でるかもデス。

#!/bin/env python3
from random import seed, choice

def main():
  #print("hello")
  with open("./dict.txt") as f:
    wdic = [x.strip() for x in f.readlines()]
  #print(wdic)
  seed()
  ans =choice(wdic)
  adic = list(wdic)
  print(ans)
  for i in range(9):
    print(i, len(adic))
    print(adic)
    a = input()
    k = ''
    for b,c in zip(ans, a):
      m = '_'
      if b == c: m = 'G'
      elif c in ans: m = 'Y'
      k +=m
    print()
    print(k)
    print(a)
    if k == 'GGGGG': break
    for j in range(len(k)):
      if k[j] == '_': adic = [x for x in adic if a[j] != x[j]]
      elif k[j] == 'G': adic = [x for x in adic if a[j] == x[j]]
      elif k[j] == 'Y':
         adic = [x for x in adic if a[j] in x]
         adic = [x for x in adic if a[j] != x[j]]

if __name__ == "__main__": main()

某国家資格

合格しちゃった。登録証もきちゃったし、過去のもの消さないといけないかな……



 

円安で苦しいけど、それでも安いWindowsのキー

以前、Consogameというところで「安い」Windows 10 Proのkeyを売っている記事を書きました。$10程度、当時1100円、今だと1400円程度でしょうか。

しかしもっとすごいのあった。

おーい、安いぞ。

3ユーロしない。つまり500円しないのDEATH!
Consoよりも普通にクレジットカードの認証も通ります。

サブドメインで、Google Workspaceを使う

タイトル通りdeath!

Google Workspace Admin画面

一般的にはGoogle Workspaceはそれ用にドメインを一つ用意するのがベストプラクティスですが、試験的に使うくらいなら、自分のドメインがあればサブドメインで使えます。

ジツはGoogle Workspace Professional Administrator という資格をとろうとしていて、必要になった、ということです。

吉例に従って、example.comのサブドメイン、gws.example.comで説明しますね。

といってもDNSを設定するだけなのでとってもカンタン!

$TTL 3600
$ORIGIN example.com ;このあたり省略。既存のzoneに追加でOK
gws IN A 1.2.3.4; 別のエントリで使っているIPでもOK
gws IN MX  1 aspmx.l.google.com
gws IN MX  5 alt1.aspmx.l.google.com
gws IN MX  5 alt2.aspmx.l.google.com
gws IN MX 10 alt3.aspmx.l.google.com
gws IN MX 10 alt4.aspmx.l.google.com
gws IN MX 15 xxxxxxxxxxxxx.mx-verification.google.com
;ここは申し込みの途中で指示される長~い文字列を入力

これで、GWSの無料トライアルに申し込めmath!

移譲してzoneファイルを別に作る必要もないdeath!

もうbindの書式忘れちゃったというひとはこの際、どこかのフリープランに移行してもいいかも。