(このエントリの目的はhttps://ima.hatenablog.jp/entry/2020/12/31/170000#fromeditorをご参照ください)
APIで投稿したはてなブログの記事にcodocをつける正しい手順
ひとつ前のエントリ「FDM方式の3Dプリンタで出力するキーキャップの軸の設計」はいつものように、はてなブログライターを使って投稿した。そして初めてcodocと連携して、記事に投げ銭できるようにしようと思ったらこれがなかなか難しかった。
以下の手順以外だと「購入済の方はログインしてください」とだけ出て、有料部分の価格や「記事を購入」ボタンが表示されなくなることがある。
- 記事をいつものようにAPIを介して投稿。自分の場合ははてなブログライターを使う。このとき「====codoc_paywall: ここから下に有料部分を書いてください====」の行は含めない(有料部分を短い間でも公開したくない場合は、この時点では有料部分を含めない)
- 投稿した記事をはてなブログで表示し、「編集」ボタンをクリックして編集画面へ移動
- 投稿の入力フォームのカーソルを、以降を有料にしたい場所の最初の行(や記事の末尾)へ移動する
- 編集画面のサイドバーにある「¥」から「記事に有料部分を追加」をクリック。「====codoc_paywall: ……」が入力される
- 価格を入力し、「====codoc_paywall: ……」の行をコピーしてから「更新する」ボタンをクリック
- 記事を表示し、「この続きはcodocで購入」や記事のタイトル、価格などが出ていることを確認(codocにログインしている場合はいったんログアウトするかシークレットウィンドウを表示して確認)
- はてなブログライターのテキストファイルに「====codoc_paywall: ここから下に有料部分を書いてください====」と必要に応じて有料部分を追記し、はてなブログライターで更新
これではてなブログライターが管理するテキストファイルと実際の記事に齟齬がない状態で、記事の末尾に「この続きはcodocで購入」、有料部分の文字数、タイトルや価格、「記事を購入」ボタンが表示される。
記事の最初の登録時に「====codoc_paywall: ……」を含めていた場合、「記事に有料部分を追加」をクリックしてもその行が追加されるだけで価格を入力できない。その場合は以下のように操作する。
- 「記事に有料部分を追加」の下にある「codocの設定を開く」ボタンをクリック
- codocの記事編集画面が開く。「□編集を続行」のチェックボタンをオンにする
- 「単体販売」が「しない」になっているので「する」をクリック、価格を入力
- 「更新」ボタンをクリック
これでこんな感じに「この続きはcodocで購入」が表示される↓
FDM方式の3Dプリンタで出力するキーキャップの軸の設計
これは「キーボード アドベントカレンダー2023(#2)」の16日目の記事です。12月1日から25日まで、持ち回りでキーボードについて記事を書いています。
自分でモデリングしたキーキャップの出力は、DMM.makeの3Dプリントサービスなど外部の業者に依頼するか、光造形(SLA)方式の3Dプリンタを使うのが一般的でしょう。個人向けの安価な3DプリンタにはFDM(熱溶解積層)方式の機種も多くありますが細かな造形が苦手なので、既存のキーキャップの軸をそのままモデリングしても軸の部分をうまく出力できません。
- Cherry MXタイプのキーキャップの一般的な軸
- Cherry MXキーキャップの各種寸法
-
Developer Page - CherryMX
- 光造形(SLA)方式の3Dプリンタの例
SLA方式は光で硬化するレジンを材料にして造形します。
- FDM方式の3Dプリンタの例
FDM方式はプラスチックを熱で溶かして造形します。
FDM方式の3Dプリンタは、素材となるひも状のプラスチック(フィラメント)を熱で溶かして細く軟らかくし、3次元の形状を一筆書きで描きながら積み上げていきます。熱で細くなったフィラメントの太さはノズルの直径で決まり、一般的には0.4ミリです。一方キーキャップの軸は、太さ5.5ミリの円柱の中心に十字の穴が空いています。これは0.4ミリ幅のフィラメントで描くのが難しい細かさです。出力しても正しい形状にならず、キースイッチにうまく装着できません。
そこで形状を工夫し、比較的精度が低いFDM方式の3Dプリンタで出力してもキースイッチに装着できるキーキャップの軸を考案しました。こんな感じです。
- CAD画面での外観
- FDM方式の3Dプリンタで出力したもの
- キースイッチに装着したところ
コの字を向かい合わせにしたような軸なので名付けて「[ ]軸」としたいのですが、これでは名前があっても読めないので「FDM軸」にします。軸部分の寸法は以下の通りです。
- FDM軸の寸法
キースイッチの軸に接する部分の寸法は、お使いの3Dプリンタやフィラメントに合わせて調整が必要になるかもしれません。
キースイッチの中には、軸の周囲にカバーがついているものがあります。これだとFDM軸のキーキャップは装着できないかもと思いましたが、手持ちのKailh Box Royal(リンク先は遊舎工房)では装着できました。
一方、Durock Splash Brothers(リンク先は遊舎工房)のように軸の周囲がタイトなキースイッチにはおそらく装着できないでしょう。その点はご了承ください。
モデリングするのが面倒な方のために、STLデータとFusion360用のf3dデータを無償で公開しています。試してみてください。
- FDM_axis.stl…3Dプリンタに読み込めるSTL形式のデータ。Windowsでは「3Dペイント」でも閲覧できます
- FDM_axis.f3d…オートデスクの3D CAD「Fusion360」で作成したデータ。履歴が入っていて編集できます
上のデータはキーの高さを3.9ミリとごく低くしています。3Dプリンタでの出力時間を短くし、キースイッチとのはめ合いをすぐに確認できるようにするためです。
f3dデータではキーの高さをパラメトリックに変更できます。
- ①Fusion360で「FDM_axis.f3d」を開きます。履歴の2番目、「オフセット平面」のアイコンを右クリックして「フィーチャ編集」を選択します。
- ②「フィーチャ編集」の「距離」にキーの高さをミリメートル単位で入力します。たとえば「9」を入力して「OK」ボタンをクリックします。
- ③キーの高さが9ミリになりました。
- 軸の長さや面取りの位置は、キーの高さに合わせて自動的に変化します。
それからこのデータはキートップ部分が完全に平らです。少しへこませたデータも作ってみましたが、FDM方式の3Dプリンタは1層が0.1~0.2ミリ程度あるため、微妙な曲面をきれいに出力できませんでした。
3Dプリントもモデリングも面倒な方のために、我が家の3Dプリンタで出力したキーキャップを販売します…といきたかったのですが、3Dプリンタは調整が必要で無理でした。すみません。
最後に、キー部や天キーでFDM軸の話をしたところ、「この知見はぜひ公開するべきですよ!」と提案してくださった@takashicompanyさんに感謝します。
この記事はエレコムのTK-FBP044BKで書きました。自作キーボード界隈は長年追っていますが、自分が常用する自作キーボードはいつ完成するのでしょうか。
明日の記事はあるこさんの「2023年自作キーボード振り返り」です。自作キーボードはカスタマイズのパラメータが多すぎて、簡単に沼になるのがいいですよね!
本記事へ投げ銭したい方のためのリンクは以下です。お礼だけ書いてあります。よろしければお願いします。
今シーズンのサンシェードは終了
今年の夏は暑かった。11月に入っても東京で夏日があったりして、最高気温は11月24日に24.2度、28日には22.5度だった。このくらいの気温だと、午後から夕方にかけては外からの熱を窓で遮断したくなる。それでも今シーズンはもう20度を超えるような最高気温は来ないようだ。サンシェードをすべて上げて、太陽の熱をなるべく室内に取り込む状態にした。
これまでのサンシェードを片づけた日の記録をふり返ってみよう。
- 2014年11月9日(その日のツイート)
- 2015年11月13日(その日のブログ「サンシェードを片づける」)
- 2019年11月29日(その日のツイート)
- 2020年11月14日(その日のツイート)
- 2021年11月30日(その日のツイート)
- 2022年12月1日(その日のツイート)
- 2023年12月2日(今日「今シーズンのサンシェードは終了」)
今年は今までよりだいぶ遅かっただろうと思ったらそうでもなかった。確かに記録上一番遅い日ではあったが、去年やおととしもほぼ同じ日にサンシェードを片づけている。午後の日射しが十分弱くなるのがこの時期なのだろう。
サンシェードをかけた日の記録はどうだろうか。
- 2016年5月4日(その日のツイート)
- 2018年4月19日(その日のツイート)
- 2020年5月10日(その日のブログ「1年の半分以上がサンシェード生活と判明」)
- 2021年6月8日(その日のブログ「サンシェードを窓にかけた」)
- 2022年4月10日(その日についてふれたブログ「サンシェードを下ろして上げた話」)
- 2023年4月13日(その日のブログ「サンシェードを下ろす2023年」
こちらはけっこうばらつきがあって、4月にもう使い始めている年もあれば、6月まで使わなかった年もある。来年の春はどうなるだろうか。
自作キーボードのイベント「天キー5」に行ってきた
「天下一キーボードわいわい会vol.5」、略して「天キー5」へ行ってきた。コンピュータ用キーボードのイベントである。
- 天キー5のページ
- 天下一キーボードわいわい会 Vol.5 - connpass
- 中継録画
- Daihuku(@Daihuku0015)さんによる会場レポート
- 会場入口の案内看板はレゴで作られていた
そのほかは当日のツイートから。
- 12:34:50 #天キー の入場待ち行列が長ーいよ https://pic.twitter.com/vuWO69mete
- 13:14:52 #天キー にぎわっております https://pic.twitter.com/Xt0xVWsXxp
- 14:50:00 #天キー のおみやげノベルティは「天下一キーボードわいわい会」にちなんだわいわいキーキャップ。側面もわいわいしてる https://pic.twitter.com/Xx6cOGlS8J
- 16:31:41 #天キー で @takashicompany さんにそそのかされて登録。2はまだ自分しかいない■キーボード #2 Advent Calendar 2023 - Adventar https://adventar.org/calendars/8824 #自作キーボード https://pic.twitter.com/AXT4c7RYw7
- 16:45:04 衝撃の「キーボード付きトラックボールの試作」( @fairladyxy さん)。思いついたのでとりあえず作り、マウスポインタの動かし方はこれから考えるそうです #天キー https://pic.twitter.com/abbASCUoTH
- 17:08:23 いま発表されました。キーボード関係の即売会「キーボードマーケットトーキョー」が2024年3月2日に開催されるとのことです!■キーケット http://keeb-market.jp #天キー
奇抜なキーボードはほかにもあったけれど、どんどん写真を撮る気分ではなかったのでこれだけです。ハッシュタグ「#天キー」をたどるといろいろなキーボードを見られます。
セッションはサリチル酸(@Salicylic_acid3)さんの「自作キーボードとポインティングデバイス」(中継録画では14分40秒あたりから)などを拝見。サリチル酸さんのテンションがやや高めで、今日も寝不足なのかなと心配になったりした。
それからイベントの最後に、キーボード関連の即売会「キーボードマーケットトーキョー」(キーケット)の開催が発表された。「自作キーボードのコミケというイメージ」だそうで、来年の3月2日に浅草の東京都立産業貿易センター 台東館で行われるとのこと。
自作キーボードの店「遊舎工房」でフリーマーケットが行われることもあったが、キーケットは参加サークル30ともうちょっと規模が大きい。どんなものが出てくるか楽しみだ。
天キーのほうは次回、来年の5月4日に開催する予定で準備中だそう。「ここの会場を次回も借りられるかは今日の皆さんのお行儀にかかっています」だったので確定ではない。おお心配。
これまでに書いた天キーの記事
- Make: Japan | キーボードを愛し、キーボードを自分で作り出す人々「天下一キーボードわいわい会 Vol.1」
- アイデアを詰め込んだ自作キーボードたちの百花繚乱「天下一キーボードわいわい会 Vol.2」
(2023年11月7日記)
蛇口のアタッチメントがまたねじ切れた
台所の水道の蛇口にはアタッチメントをつけている。ジンバル(首ふり)機構があり、シャワー/ストレートの切り換えができるタイプである。
そのアタッチメントのヘッド部分がねじ切れてしまったため交換したところまたねじ切れた。前回ねじ切れて交換したのは2021年9月23日。2年しかもたなかった。その前も同じくらいだと思う。
今まで使っていたのはこれ。近所のホームセンターで条件に合うのはこれしかなかった。
- クリシャワースイング
- 後継製品「クリシャワースイング+」(asin:B0BPXZQGVH)の紹介ページ:シャワー蛇口 クリシャワースイング+ | ろ過・シャワー蛇口 | 家庭用品-水のプロフェッショナルが提案する浄水器-クリタック株式会社
今回は少し遠くのホームセンターでこれを買った。今度は長持ちするといいな。
- SANEI キッチンシャワー
(2023年11月2日記)
画像の一部をきれいに消せるLama Cleanerをインストールした
画像の一部を高精度に消去できる「Lama Cleaner」をインストールした。
- これを
- こうできるソフトです
インストール方法を調べると標準的な手法がないようで、CUDAに対応させつつ仮想環境(venv)にインストールする方法はこれというページが見つからなかった。自分用も兼ねてここにまとめておきたい。
ついでにNVIDIAのGPUがない人(ノートパソコンの人とか)向けのインストール方法も適宜解説します。
(「Windows 1click Installer – Lama Cleaner」という、Lama CleanerのWindows用インストーラのページはあるが有料だそうだ)
- インストールの手順
- Pythonのインストール
- CUDA Toolkitのインストール
- venvの仮想環境を作る
- PyTorchのインストール
- Lama Cleanerのインストール
- Lama Cleanerの起動
- Lama Cleaner起動用のバッチファイルを作る
- Lama Cleanerのアップデート
- Lama Cleanerのアンインストール
- Lama Cleanerで作ったGIFアニメーション
- 参考にした記事
- 追記:宣伝を忘れてた
インストールの手順
- Pythonのインストール
- CUDA Toolkitのインストール
- venvの仮想環境を作る
- PyTorchのインストール
- Lama Cleanerのインストール
順を追って解説します。
Pythonのインストール
Windows版のPythonは以下からダウンロードできる。
Pythonは「とりあえず一番新しいのを入れておけばいいんでしょ」とはならない。Pythonの最新安定版は3.11.5だが、Lama CleanerはPython3.10.x上で動くので、記事執筆時点でインストーラつきの一番新しい3.10.xである「Python 3.10.11 Windows installer (64-bit)」(27.7MB)をインストールする。
インストーラを起動して出てくる最初のダイアログボックスで、「Add python.exe to PATH」をオンにするのを忘れずに。
(3.10.9のインストーラ画面の使い回しで恐縮です)
CUDA Toolkitのインストール
NVIDIAのGPUがあるパソコンならLama Cleanerの実行を早くできる。そのためにCUDAというライブラリをインストールする。
(NVIDIAのGPUがない人向けのインストール方法もあとで解説します。次の項へ進んでください)
現在最新のCUDA Toolkitは12.2.2だが、PyTorchが対応しているのは11.8まで。CUDAが入っていない、あるいはバージョンが11.8でない人はインストールする。
「CUDA Toolkit Archive | NVIDIA Developer」から「CUDA Toolkit 11.8.0」をダウンロード、インストールする。
CUDA Toolkitをインストールしたかどうかやバージョンを忘れちゃったときは、コマンドプロンプトを開き「nvcc -V[Enter]」。「-V」のVは大文字で。自分の環境ではこういうのが出た。
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2022 NVIDIA Corporation Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022 Cuda compilation tools, release 11.8, V11.8.89 Build cuda_11.8.r11.8/compiler.31833905_0
venvの仮想環境を作る
仮想環境とはフォルダ内に作る独立した環境のことで、OS全体に影響を与えずにライブラリやアプリケーションをインストールできる。使わなくなったらフォルダごと削除してしまってよい。
Lama Cleanerをインストールするフォルダを作り、その中をエクスプローラーで表示する。たとえば「c:\LamaCleaner」など。
アドレスバーに「cmd[Enter]」と入力すると、コマンドプロンプトのウィンドウが開く。
コマンドプロンプトに以下のコマンドを入力し[Enter]。このコマンドでは、「venv_lama」が仮想環境のフォルダ名となる。
python -m venv venv_lama
少し待つとコマンドが完了する。コマンドプロンプトのウィンドウはそのままにしておく。
エクスプローラーで「c:\LamaCleaner」を見ると「venv_lama」フォルダができている。
PyTorchのインストール
PyTorchは、Pythonを使った機械学習のライブラリである。これをvenv内にインストールする。
venvに入るには、先ほどのコマンドプロンプトのウィンドウで以下のように入力し[Enter]。
venv_lama\scripts\activate.bat
下の画像のように、コマンドプロンプトが「(venv_lama)c:\LamaCleaner>」という表示になる。ここから先の操作は「venv_lama」フォルダの仮想環境内で完結しており、OS本体とは別に扱われる。
このあと使う「pip」コマンドをアップデートしておく。以下のコマンドをコマンドプロンプトに入力し[Enter]。
python -m pip install --upgrade pip setuptools
PyTorchのインストールコマンドを取得するためにPyTorchの公式サイトへ行く。少し下に「INSTALL PYTORCH」というセクションがある。その中の表は、インストール時の条件を選ぶとそれに合ったインストールコマンドを作ってくれるというもの。
これで出てくるインストールコマンドは以下。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
NVIDIAのGPUがない人は、「Compute Platform」を「CPU」にする。その場合のインストールコマンドは以下。
pip3 install torch torchvision torchaudio
いずれかのコマンドを入力し[Enter]キーを押して3~4分待つ(ここから先は、[Enter]キーを押す操作は明記しない)。
Lama Cleanerのインストール
これで準備は完了で、いよいよLama Cleanerのインストールに進む。入力するコマンドは以下。
pip install lama-cleaner
また2~3分待ってコマンド入力できるようになったら、Lama Cleanerのインストールは完了である。インストール後の「c:\LamaCleaner」フォルダの容量は約5.3GBだった。
Lama Cleanerの起動
Lama Cleanerの起動コマンドは以下の通り。これはNVIDIAのGPUがある人向け。
lama-cleaner --model=lama --device=cuda --port=8080
NVIDIAのGPUがない人は下のコマンドでLama Cleanerを起動する。「--device=cuda」を「--device=cpu」にする。
lama-cleaner --model=lama --device=cpu --port=8080
上のように「Running on http://127.0.0.1:8080」と表示されたら、Webブラウザで「http://127.0.0.1:8080」へアクセスする。
あとは画像をドラッグ&ドロップして、消したい範囲を塗ればすぐに処理が始まる。
- 画像をドラッグ&ドロップ
- 消したい範囲を塗る
- 塗り終えるとすぐに処理が始まり、塗った範囲が消去される
イラストだけでなく写真の一部も消去できる。
- SDXLで出力したオウム
- 右端のオウムを消した
Stable Diffusionで出力した画像に意図せず入ってしまったシグネチャも。
- こんなふうに文字が入ってしまっているのも
- きれいに消してくれた
Lama Cleanerの操作のポイント
- 消したい範囲を塗るときはわりとはみ出ても大丈夫。むしろ塗り残しがあると「そこは消さないんですね」と判断される
- 消し残された範囲があったらそこをもう一度塗って消すとよい
- マウスのホイールで画像表示の拡大/縮小、ホイールボタンのドラッグまたはスペースキーを押しながらのドラッグでパンする。[Esc]キーを押すと元の表示サイズで中央に戻る
- 複数の範囲を塗りたいときやブラシの太さを変えつつ塗りたいときなどは、[Ctrl]キーを押している間は消す処理が始まらない。[Ctrl]キーを押すのをやめると処理が始まる
- [S]キーを押すか右上の歯車アイコンで設定メニューを出し「Manual Inpainting Mode」を選んでもよい。下部ツールバーに出てくる消しゴムアイコンをクリックすると消去する処理が始まるようになる
- 消去の処理が完了したあと、目玉のアイコンを押すか[Tab]キーを押すとオリジナルの画像を見ることができる
- [H]キーを押すか右上のキーボードのアイコンをクリックするとショートカットキーが表示される
Lama Cleanerを終了する時はコマンドプロンプトのウィンドウで[Ctrl]+[C]を押す。コマンドを入力できる状態に戻ったらコマンドプロンプトのウィンドウは閉じてよい。
Lama Cleaner起動用のバッチファイルを作る
Lama Cleanerを使おうとするたびにコマンドプロンプトを開いてvenvに入って…とやるのは効率が悪い。起動用のバッチファイルを作っておく。
Lama Cleanerをインストールしたフォルダで右クリックし、「新規作成」-「テキストドキュメント」としてファイル名を「LamaCleaner.bat」などとする。「LamaCleaner」の部分は任意である。
バッチファイルの中身はこのようにする。NVIDIAのGPUがない人は「--device=cuda」を「--device=cpu」にする。
call .\venv_lama\scripts\activate.bat lama-cleaner --model=lama --device=cuda --port=8080
これで、バッチファイルを実行するとLama Cleanerが起動するようになる。
バッチファイルから起動したLama Cleanerを終了させようとコマンドプロンプトのウィンドウで[Ctrl]+[C]を押したとき、「バッチジョブを終了しますか(Y/N)」と表示されるようになる。「Y」を押す(実は「N」でも結果は同じ)。
Lama Cleanerのアップデート
上で「LamaCleaner.bat」を置いたフォルダに、以下のバッチファイルを「upgrade.bat」のような名前で保存し実行する。
call .\venv_lama\scripts\activate.bat pip install lama-cleaner --upgrade pause
Lama Cleanerのアンインストール
Lama Cleanerをインストールしたフォルダをそのまま削除すればよい。
なお、このフォルダは別の場所に移動するとlama-cleanerを見つけられず起動しなかった。
Lama Cleanerで作ったGIFアニメーション
Lama Cleanerをインストールしたのは、こういうアニメーションを作りたかったから。
Stable DiffusionにControlNetとAnimateDiffをインストールし、出力したGIFアニメーションのタイミングをGiamで調整して動きをダイナミックにした。
参考にした記事
Lama Cleanerのインストールで参考にしたのは以下。ありがとうございます。というより、この3つの記事を読んで1つにまとめたようなものである。
追記:宣伝を忘れてた
Stable Diffusionの解説本『Stable Diffusion AI画像生成ガイドブック』がソシムから出ています。ぜひご覧ください。