2022年 09月 07日

Stable Diffusion 日記 #1

https://lowreal.net/2022/09/02/1 の元画像から、色を変えて img2img したりいろいろ

Stable Diffusion 日記 #2

関連エントリー (画像)

Stable Diffusion 日記 #3

関連エントリー (画像)

Stable Diffusion 日記 #4


縦位置 AIが描いたサインが入っている (時々入ってきておもしろい)

2022年 09月 02日

Stable Diffusion (AI画家) に描いてもらった絵の顔を修正する (半手動)

AI画家はもちろん顔を描くことはできるのだが、大きなシーンに含まれる顔を描くのは手を抜いた感じになってしまう。これは顔のピクセル数が少なすぎ、情報量が不足していることに起因していると思われる。人間が絵を見るときは特定領域に注視するが、AIは全体を構成する。

顔がそれっぽくなるまで生成しまくるという手や、そもそも後ろ姿にするという手もあるが、どうしても「この構図がいい」という場合に顔だけ修正することを試してみた。

やってることは

  1. 元画像をアップスケールする
  2. 顔の部分を周辺を多少含めて切り抜く
  3. 切り抜きを元に img2img で顔ガチャする
  4. 当たりが出たら Photoshop で合成する

いわゆる inpainting を手動でやるという方法になっている。inpainting がうまくできるものがあれば良さそうだけど、とりあえず見つけられなかった。(basujindal/stable-diffusionにinpainting機能が含まれているがあまり良い成果がでなかった)

元画像

こういう感じで顔がほぼ描画されいない。この画像では試していないが、こうなると steps 数を増やしても時間がかかるだけであまり改善しないことが多い。

アップスケール

約8倍にアップスケールし (NightmareAI/Real-ESRGANをつかっている)、顔部分を周囲を含めて切りにく。

img2img

切りぬいた画像を元に、prompt はあまり変えずに顔を描いてもらう。face close-up とかつけたほうがいいと思うけど、顔ならプロンプトそのままでも割と良さそう。

strength (元画像をどのぐらい残すか) は 0.75 でやった。

合成

アップスケールした画像に顔を乗せる。

Photoshop もこういった合成が進化しており手動でやっても早い。合成写真をすばやく自然に仕上げる方法 というチュートリアルもある。

うまく img2img ができていれば頑張って馴染ませなくても若干ぼかすだけでなじむ。

感想

  • 作風によっては難しいかもしれない
  • 顔だけ大量生成するので効率が良い
  • 顔だから上手くいくが、指の本数が多いとか足が多いとかは無理な気がする
2020年 10月 27日


関連エントリー (画像)

2020年 02月 28日

GPSDO 10MHz 実装


こういう感じでケースにおさめた。

基板

あまり部品はないので片面基板を自力で切削加工して作った。1度目はいろいろとリワークが発生してしまったので2度目の基板。しかし 1PPS の出力をつけわすれていたので、あとからつけくわえている。

MCP4725 だけ少し厳しいピッチだが問題なかった。切削の場合デザインルールで0.3mmぐらいにしないと厳しいが、どうしてもルールをやぶらざるを得ない部分が出てきたりする。

電源に村田製作所製のフルモールド2出力降圧DC-DCコンバータを使っている。MCU など用の 5V と、OCXO 用の 12V を十分余裕を持って出力できる。ただし入力電圧が16V〜40Vと若干高い。24V入力で使っている。

ケース

YONGU Enclosure というところのケース 145*54*150 を
Aliexpress で買った。割と安い。買ったあと「3D CAD ファイルある?」と聞いたらすぐ送ってくれて便利。まぁこれはサイトに載せといてくれれば手間にならないんだけど。

こういう前後パネルがフラットな板のタイプだと加工しやすいので、好んで使っている。

3Dモデルづくり

穴あけやパネルのデザインのため、できるだけ3Dモデルを作るようにしている。パーツごとの干渉を前もって知れたりするので便利。今回はケーブリングもモデリングするようにした。ここを省略すると曲げ半径的に無理があって蓋がしめられないということもあるので……

厳密でなくても良い汎用部品なんかだと、GrabCad で STEP ファイルが得られたりする。SMA コネクタとかは GrabCad からダウンロードしたものに手を加えて使ってる。

Fusion360 の場合、このモデルからさらにパネルのCNC切削Gコードまで持っていけるので楽。Engraving のパスがバグってて困るが……

切削など


文字は30°のVカッターで掘りこみ。これはZ精度が必要なので、加工箇所ごとにわけてGコードを作ってから、加工箇所ごとにZをぴったりあわせたほうが良さげだった。掘っただけで色は入れていないけど、もともと黒のアルマイト加工がされているので、地色を出すだけでコントラスト的に白色に見える。あと、やすりをかけられないのでカッターの切れ味がよくないとつらい。

他の加工はほぼ普通の穴あけ。ただしディスプレイのところだけ傾斜をつける加工をした。これは等高線で降りていく加工にした。0.03mmぐらいで降りるようにしてみたが一切加工段は見えないので、もうちょっと荒くてもよかったと思う。

2019年 11月 19日

SONY αをウェブカメラとして使う

↑この画像は静止画ではなく、録画のスナップショット (α7R II 2160p モードを CamLink 4K/30FPS NV12 でとりこみ)

Elgato Cam Link 4K [録画・配信用コンパクトHDMIキャプチャカード 1080p60 4K30 ビデオ会議/ホームオフィス/ゲーム配信向け OBS/Zoom/Teams連携 PC/Mac対応 - Elgato

Elgato

5.0 / 5.0

結論からいうと CamLink という HDMI → UVC 変換器 (キャプチャボードの一種) を使うのがおすすめ。カメラの HDMI 出力と繋ぎ、カメラ側は動画モードにして、HDMI INFO の設定 (HDMI に OSD を出さない) をするだけでよい。

カメラ側で HDMI 出力設定を変えて 1080p か 2160p かを選べる機種の場合は、カメラ側で設定を好みのほうに変える必要がある。デフォルトだと 4K でしかとれないので、1080p で十分なら下げたほうが負荷が低いと思う。

もっと安い HDMI USB キャプチャあるけど?

知ってるぞ! こういうのだろ!

HDMI → UVC 変換器もピンキリで、キャプチャできる解像度や、画質に差がある。しかし商品説明からは全くわからないことが多い。具体的に何が違うか

  • 解像度 2160p(4K) 1080p(Full-HD) 720p (HD)
    • 4K はパススルーだけでキャプチャできないのが大多数。
    • 1080p 対応と書いてあっても、実際の画質は 720p 相当のことがある
  • 圧縮方法 MJPEG YUY2(YUV422)
    • MJPEG はフレームごとに JPEG 圧縮する方法。扱うデータ量が大幅に減るので安い。画質は悪い
    • YUY2 は色差だけを間引いて若干圧縮する方法。USB3.0 でなければまともな fps がでない。画質は良い
  • 何かほかの要素
    • 単純な変換処理なのでは?と思っていたがどうも画質がちがうことがある

残念ながら買ってみるまで詳細なことはわからない。HDMI キャプチャについては安物を買わないほうが良い (安物を2台ほど買って失敗した人間の言っていることです)。

CamLink は以下のような仕様で、現状手に入る中では本当にベストだと思う。脳死でこれ買いましょう。

  • 2160i 30FPS: I420/NV12 - 4:2:0 interlaced
  • 1080p 60FPS: YUY2: 4:2:2

ref. https://www.reddit.com/r/ElgatoGaming/comments/a0y2c9/introducing_cam_link_4k_4k301080p60_camera/eaolvkb/

2019年 10月 07日

関連エントリー (画像)

2019年 10月 06日

関連エントリー (画像)