「text」を含む日記 RSS

はてなキーワード: textとは

2022-10-26

音楽生成サービス、MubertのAPIを利用したMubert-Text-to-Musicを使ってみたが、かなり色んなパターン音楽を生成することが可能だった。

現時点では、お絵描きAIと違って細かい指定による調整はできない。入力した言葉音楽ジャンルタグに置き換え、その音楽ジャンル構成するサウンド(事前に登録されているサウンドファイル?)を組み合わせて曲が生成されているようだ。

あと一歩進み、部品であるサウンド自体の生成が違和感なく行われるようになれば、細かい指定による調整が可能になるだろう。

特にデジタルサウンドによって構成される音楽歌声アコースティック楽器音を含まない音楽は、自動生成の一歩手前の状態に来ているらしい。

2022-10-22

AUTOMATIC1111に追加された「Clip Aesthetic」わからん

AUTOMATIC1111のgithubのやり取り、リクエスト元のforkの説明なども見たがわからん


取り敢えず出来てることは、「laion_7plus」入れて、「Aesthetic weight」「Aesthetic steps」を振ると、出力は変わる。

bilibiliの記事を参考にすると、「Aesthetic weight」を0.2以上より上げていくと、プロンプトとは異なる絵が出てくるということで、やってみたら変わった。

https://www.bilibili.com/read/cv19102552?from=articleDetail


「Aesthetic steps」は効いてるのかよくわからん

コマンドプロンプトログを見てると、画像生成前に実行しているらしく、「Aesthetic steps」×4回処理が追加入るので、1枚あたりの生成時間が長くなる。

画像生成時よりit/sが大きいので、最大の50にしてもすぐではあるのだが、効いてるかわからん


より謎なのは

  1. 「Slerp interpolation」
  2. 「Aesthetic text for imgs」
  3. 「Slerp angle」

で、「Aesthetic text for imgs」になんのテキストを入れるのかさっぱりだ。

他は振ってみたが効果はわからなかった。


.ptファイル自分で作ることも出来るらしく、ソースとなる画像フォルダ指定して、Createボタンを押すと一瞬で作成される。

.ptファイルサイズは4KB。

数秒で終わるらしく、これまでのhypernetwork、TIだと数十分~はかかってたので、すぐ終わるのがわからん

Batch sizeも振ってみたが、どうなっているかからない。

作成した物を使うと、たしかに変わるが目の色が変わる程度。

「laion_7plus」だと大きく変わるので、差が何処で生まれてるのかがわからない。


みんなよくついていけてるな・・・

NovelAI界隈見てると、リーク版をわりとオープンに使っている中国の方が進むのだろうか

中国国内でも、リーク版は駄目だとか、NovelAI自体danbooru学習しているか絵師仕事を奪うので反対という意見は出ている


NovelAIの良いプロンプトを集めたドキュメント元素法典」が日本でも話題になった。

NovelAIを使ったことがない人にはわからないだろうが、NovelAIリーク版のプロンプトとなっている。

初版だと最初のページに記載があったが途中から削除)

真面目にNovelAI本家を使っている人が、「元素法典」をコピペしても上手く動かず、有志が作ったリーク版からNovelAI本家へのプロンプト変換サイトで変換しなければならない。

個人的には、タグdanbooruタグを並べていて特に変わったものではないし、手当たり次第に強調しているように見えて好きになれないし、

Prompt Editing/Mixingを使った事例がないことなから、あまり好きではないが、Twitterなどの反応を見る限り、需要はある。


でだ、本家NovelAIにはできず、リーク版で出来ることがある。

例えば下は、AUTOMATIC1111の機能を使っており、リーク版でしか動作しない。

試す人は18禁画像が出るので注意だ。乳首が透けている絵が出る。

[lewd:assertive:0.3] small sweat [nude::0.8] [nipple::0.95] 1girl with disheveled messy atmosphere cherry bloom hair sitting in white [((((translucent)))):((transparent)):0.9] [hoodie:trench coat :0.4] liquid crystal [((transparent)) sailor dress::0.7] indoor inside [vehicle], [downpour raining:0.5] [nightclub:cyberpunk:0.3] city, public crowd

Negative prompt: ugly, fat, obese, chubby, (((deformed))), [blurry], bad anatomy, disfigured, poorly drawn face, mutation, mutated, (extra_limb), (ugly), (poorly drawn hands fingers), messy drawing, morbid, mutilated, tranny, trans, trannsexual, [out of frame], (bad proportions), (poorly drawn body), (poorly drawn legs), worst quality, low quality, normal quality, text, censored, gown, latex, pencil

引用元https://gist.github.com/crosstyan/f912612f4c26e298feec4a2924c41d99


簡単説明すると、途中まで乳首で描画し、途中で止めるので、衣装が透けているという描画になる。

「::0.8」というのが、全ステップの8割まで描画して、そこで描画を止めるという意味だ。

[nude::0.8] [nipple::0.95] で8割までヌードを描画し、9割5分まで乳首を描画し、残りで衣装を描画することで、衣装の透け感を出す。

衣装が透けているというのは、danbooruにもあるが、上記を考案した人はよほど乳首を描画したかったのだろう。


他に [nightclub:cyberpunk:0.3]いうのも、AUTOMATIC1111の機能だ。

最初ナイトクラブで3割、残りをサイバーパンクで描画という意味になる。



なにより、リーク版はタダで、本家は有料でしか英語ってことで、バズるのが中国より日本の方が早かったが、リーク版が出てからは一瞬だった。

マンパワーが違う。

リーク版を動かす為、中国語での解説記事がバズり、

NovelAIサイトUIを丸々パクったサイトが出来、「元素法典」が生まれている。

日本話題になっているTwitter中国語にすぐ翻訳され、ノウハウ取り込まれているのが現状だ。


日本人はもうSNSで投げっぱなしという感じだが、中国場合記事ドキュメントを書いてまとめること、

タグなどは網羅的に収集するといった人がまだ多い。


これからもNovelAIにかぎらずAIは出てくるだろうが、こんな感じになるんだろうか。

2022-10-16

NovelAIが重すぎるからローカル環境にNAI環境を構築する(2022年10月16日版)(追記あり)

せっかく課金したのにユーザが増えまくっているのか滅茶苦茶重くなっていて最悪。

から流出したモデルを使ってローカルでNAI環境を構築する。

ネットには情報もだいぶ転がってるけど陳腐化した情報があまりに多いため増田にまとめることにした。

しかたらこ記事もすでに陳腐化しているかもしれないが…単純に間違ってたらトラバで教えてほしい。

もちろん自己責任。この記事を見て導入した結果何かあっても増田は何も保証しない。

英語がわかる人はこっちを見た方が早いと思う。今は導入RTAができるくらい導入は楽になっている。

https://rentry.org/nai-speedrun

推奨環境

VRAMが2GB以上あるNVIDIA製のグラフィックボードがあればローカル環境を構築できる。

GPU世代はGTX700シリーズ以降。なので一昔前のミドル級ボードでも動作するらしい。

IntelオンボードGPUでも実行する方法があるらしい(stable_diffusion.openvino)が今回は割愛する。自分で探してね。

その他の推奨環境は以下の通り。

対応OSWindows7以上(と言うがM1Macでも動作する方法があるとかなんとか)

必要な空きストレージ容量:20GB以上

インメモリ:16GB以上(VRAMもたくさん必要だが起動時にメインメモリも大量に食う。WebUI起動時にタスクマネージャを見ているとよくわかる)

スマホしか持ってないような人やこういうのがよくわからない人はNovelAIを使った方が良いと思う。

今は重いけど、きっとそのうちみんな飽きてサーバも軽くなるかもしれないし。

(追記)NovelAIリソースを確保してサーバが軽くなったかリスクを背負ってまで導入しなくても良いか

手順1:PythonGitを導入する

(追記)Pythonは当然3系。最新の奴を入れれば問題無い。

導入方法はいちいち書かないけど、「python --version」や「git -v」で

正常にバージョン情報が出る(パスがきちんと通っている)ことはちゃん確認しよう。

手順2:Stable Diffusion web UI(AUTOMATIC1111)を導入する

Stable Diffusion web UIはStable Diffusionやそれをベースとした画像生成AIを利用するためのフロントエンド

その中でも特に開発が活発でデファクトスタンダードとなっているのがAUTOMATIC1111版だ。

導入したい適当ディレクトリに対してPowerShellなどで

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

とやってやれば必要ファイルの導入が行われる。

なお、AUTOMATIC1111版は数時間単位コミットが行われるから

定期的に「git pull origin master」で更新しよう。

手順3:BitTorrent流出モデルダウンロードする

クライアントはqBitTorrentが一番楽だと思う。

ここにはさすがにmagnetリンクは書かないか各自ググって欲しい。

結構誤解されがちなことだが流出データ50GBを全部ダウンロードする必要は無い。

必要ファイルはanimefull-final-prunedディレクトリの中身とanimevae.ptから5GBちょっとくらいなんじゃないかな。

もし余裕があるならmoduleディレクトリの中身もダウンロードすればいいけど、ぶっちゃけ必要無いんじゃないか

手順4:ダウンロードした各ファイルリネーム・移動

まずはanimefull-final-prunedの中身のファイルリネーム

model.ckpt」を「animefinal-full-pruned.ckpt」のようなわかりやす名前にして、

「animevae.pt」を例えば「animefinal-full-pruned.vae.pt」のような拡張子以外は同じファイル名にする。

WebUI起動フォルダ配下の\models\Stable-diffusionリネームしたファイルを移動させれば配置はOK

ちなみにmoduleディレクトリの中身は\models\hypernetworksに移動させて使う。

それらのファイルを設定で適用させると画風が結構変わるがNovelAI再現とは関係無いみたいだ。

(追記)moduleディレクトリの中身の.ptファイルはhypernetworksという技術によって画風などを学習したものらしい。

すでに複数イラストレーターの画風を学習したptファイル作成されており議論を呼んでいる。

手順5:webui-user.batの中身に設定を追加する

自分グラボのVRAMが4GB未満の場合は「set COMMANDLINE_ARGS=」の後に

4GB未満の場合は「--medvram」、2GB未満の場合は「--lowvram」とパラメータを追加しておこう。

自分の持ってるグラボのVRAMがわからないときGPU-Zなどで調べよう。

またGTX1600系固有のバグ(単色の画像が出力される)があるらしいので

その場合は「--no-half-vae」もしくは「--no-half」や「--precision full」とパラメータを追加。

ちなみにパラメータに「--xformers」を追加してxformersを導入・使用すると

消費VRAMが減って画像生成処理時間も短縮されるので是非導入しよう。

画像からdanbooruタグAI調査するdeepdanbooruを利用する場合は「--deepdanbooru」を追加。

これらの設定は同時に複数適用させることもできる。例えば

set COMMANDLINE_ARGS=--medvram --xformers --deepdanbooru

のようになる。

手順6:webui-user.bat起動、設定変更

ターミナルPowerShellなどでwebui-user.batを起動しwebUIの初期導入と起動を行う。

過去には手動でCUDA等を導入する必要があったが、現在はこの初期導入でだいたいの導入が行われる。

ずいぶん楽にはなったがその分初期導入の時間結構長い。10分~20分くらいかかるかもしれない。

途中で導入処理がエラーで止まってしまった場合管理者権限で実行するなどして対応して欲しい。

起動ができたらSettingで以下の設定を変更してNovelAIに近づける。

Stop At last layers of CLIP modelを2に、

Eta noise seed deltaを31337にする。

これで設定は完了

おまけ:アスカテスト

設定を合わせて完全にNovelAIと同じ内容になったのかを確認するテストがある。

出力結果から海外じゃHallo Asuka Testなんて呼ばれている。

これは初期SEEDをはじめとする設定内容が完全に一致していれば同じ出力結果を得られる仕組みを利用している。

プロンプトの内容:masterpiece, best quality, masterpiece, asuka langley sitting cross legged on a chair

ネガティブプロンプトの内容:lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts,signature, watermark, username, blurry, artist name

サンプリングステップ数:28

サンプリング形式:Euler

CFG Scale(プロンプトの強度):12

初期Seed2870305590

この内容で見事下の画像と全く同じ画像が出力されれば合格だ。

https://i.imgur.com/Bfl5qJB.jpg

なお、このテストはAUTOMATIC1111のバージョンやxformersの適用状態によっては微妙に違う画像が出力されることがあるらしい。

xformersを適用させている増田環境だと確かに二つ並べると間違い探しレベルの違いがあった。

正直このテストクリアしなくても十分だと個人的には思う。

おまけ2:その他便利になる設定や拡張機能

「Booru tag autocompletion for A1111」を導入すればNovelAIのように自動danbooruタグを保管してくれる。

注意

画像生成AIモデルはStable DiffusionOSSのため派生結構多い。

自前で追加学習もできるため自前で学習した追加AIモデル4chanのような掲示板などで共有する人もいるらしい。

しかしそのようなモデルの中にウィルスのような悪意のある動作を行うものもあるらしい。

FBIペドフィリア一網打尽にするためにIPアドレスなどの個人情報を抜き出す動作を行うロリ特化AIモデル掲示板で配布していて

しかもそれには本物の児童ポルノ教師データとして使われている…などという都市伝説的な話が今界隈を賑わせている。

それが本当の話かどうかはわからないが、とにかく変なところからモデルダウンロードするのは危険なのでやめよう。

自己矛盾溢れる注意喚起かもしれないが…

2022-10-08

anond:20221008233144

生成に関しては、本当に教師なし学習なんてできんのかって気がするけどな(今のtext to image系はタグテキスト画像ペアを使ってるという意味教師あり)。

だって結局生成した絵が良いかどうかって「チンコが反応するかどうか」でしかないわけで、それは人間じゃないと判断できないでしょ。

囲碁とかはゲーム勝敗という基準があるから自己対戦で学習できるけど、絵の生成でそんなことできんのかね。エーアイが興奮するけど人間はピクリとも来ない画像を出されても困る。

2022-10-07

anond:20221007013303

まず5%近くいる中卒が完全に抜けてるグラフだし、中退で最終学歴高卒就職した人間もそこからは見えへんで

これ年齢階層別の最終学歴

ソース提示されてるから不審に思ったら自分グラフ書き直してなー

http://www.garbagenews.net/archives/2371027.html#:~:text=%E5%B9%B4%E9%BD%A2%E9%9A%8E%E5%B1%A4%E5%88%A5%E3%81%AE%E6%9C%80%E7%B5%82%E5%AD%A6%E6%AD%B4%E5%AE%9F%E6%83%85(%E6%9C%80%E6%96%B0),-2022%2F06%2F16&text=%E7%B7%8F%E5%8B%99%E7%9C%81%E7%B5%B1%E8%A8%88%E5%B1%80%E3%81%8C,%E3%81%8C%E5%85%AC%E9%96%8B%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82

2022-10-02

anond:20221002233305

「font jumps」 とか「text size jumps」で検索すれば出て来るよ

2022-09-27

https://anond.hatelabo.jp/20220914223600

日本人女性写真を生成するプロンプトについて私なりに試行錯誤した結果を示します。

画像は4つ以下に貼り付けました。

https://imgur.com/a/x8TOFla

約2週間経過しているため、既に何らかの結論を得られているかもしれませんが、どなたかの参考にでもなれば幸いです。

1.結論

(1)安定させるwordについて

actressを付けると安定すると書かれていましたが、正にその通りだと思います

actressだけでなく、2つの言葉を重ねると表情や顔の作りが安定するように思います

例として

actress×Japanese idol

AKB48 ×Japanese idol

AKB48 × a famous Japanese girl in Instagram

などです。

今回のpromptで、日本人を示す言葉はこの部分くらいだったのですがそれなりに日本人ぽくなっていると思います。(ちなみにAKB48とnogizaka46で素人目に大きな差は出ませんでした。)

また結果(1)と(2)に含まれているAya Kodaのように適当女性名前を入れると結果が安定する傾向も見られました。

(私は適当に、北条政子幸田文など、歴史上の女性名を使ってみましたが特にその名前の方々の特徴が取り入れられている訳ではなさそうです)

結果(3)は特定名前を使わない代わりに、女性らしさが出るかと思ってmuscular arm, cleavage of breasts, detailedなどを入れています

(2)CFG scale

CFG scaleは5~22で振ってみましたが、数値を大きくしすぎると光を強く当てたようなギラついた雰囲気になるようです。

5~7くらいが自然な気がしました。

(なお、自然光を当てた写真にするため、「on the beach」としましたので室内の設定だと異なると思います

(3)Step

STEPは100にしてもそれほど良い結果にならなかったため40~70にしています

2.条件と結果

使用しているツールは、下記のstable-diffusion-webui(by Automatic1111)です。

https://github.com/AUTOMATIC1111/stable-diffusion-webui

なお本稿では以降stable-diffusion-webuiと記載します。

「Restore faces」と「Highres,fix」はONにした状態とし、Samplerは「Euler a」を基本としています

また「Negative prompt」も使用しました。

stable-diffusion-webui(Automatic1111)の機能については下記をご参照ください。

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features

美人なんだけどなんか複数人うつってる」みたいな変な写真がたまに出ること(これを解消できるワードが欲しい)

「Highres,fix」がその一助になると思いますのでもしお使いで無ければお試しください。

(1)grid-0015-18523803

◆prompt:

Photo of a young female wearing a T-shirt and jeans, Aya Koda, (((beauty bright eyes))), cute face, Angel face, short hair, small nose, on the beach, ((perfect face)), detailed, photorealistic, cute slight smile, Medium Shot, actress, Japanese idol,

Negative prompt:

ugly, fat, obese, chubby, (((deformed))), [blurry], bad anatomy, disfigured, poorly drawn face, mutation, mutated, (extra_limb), (ugly), (poorly drawn hands), messy drawing, penis, nose, eyes, lips, eyelashes, text, red_eyes, (((nipples))),(skinny), (((underbite))), long jaw, long hair,
Steps: 70, Sampler: Euler a, CFG scale: 6.5, Seed: 18523803, Face restoration: GFPGAN, Size: 576x768, Denoising strength: 0.4
(2)grid-0009-1585211664

◆prompt:

Photo of a young female wearing a T-shirt and jeans, Aya Koda, (((beauty bright eyes))), cute face, Angel face, short hair, small nose, on the beach, ((perfect face)), detailed, photorealistic, cute slight smile, Medium Shot, actress, Japanese idol,

Negative prompt:

ugly, fat, obese, chubby, (((deformed))), [blurry], bad anatomy, disfigured, poorly drawn face, mutation, mutated, (extra_limb), (ugly), (poorly drawn hands), messy drawing, penis, nose, eyes, lips, eyelashes, text, red_eyes, (((nipples))),(skinny), (((underbite))), long jaw, long hair,
Steps: 50, Sampler: Euler a, CFG scale: 16, Seed: 1585211664, Face restoration: GFPGAN, Size: 576x768, Denoising strength: 0.4
(3)grid-0001-3339383866

◆prompt:

portrait of an attractive talent wearing a T-shirt and jeans,  (((beauty bright eyes))), cute face with elegant hairstyle, face to the left, on the beach, ((perfect face)), muscular arm, cleavage of breasts, detailed, intricate, photorealistic, a famous Japanese girl in Instagram, cute slight smile, Medium Shot, akb48, Japanese idol,

Negative prompt:

ugly, fat, obese, chubby, (((deformed))), [blurry], bad anatomy, disfigured, poorly drawn face, mutation, mutated, (extra_limb), (ugly), (poorly drawn hands), messy drawing, penis, nose, eyes, lips, eyelashes, text, red_eyes, (((nipples))),(skinny)
Steps: 55, Sampler: Euler a, CFG scale: 9, Seed: 3339383866, Face restoration: GFPGAN, Size: 576x768, Denoising strength: 0.25
(4)xy_grid-0401-1729711779

※これはsamplerとCFG Scale についての比較用です。

◆prompt:

Photo of a young female wearing a T-shirt and jeans, (((beauty bright eyes))), cute face, Angel face, short hair, small nose, on the beach, ((perfect face)), detailed, photorealistic, cute slight smile, Medium Shot, actress, Japanese idol,

Negative prompt:

ugly, fat, obese, chubby, (((deformed))), [blurry], bad anatomy, disfigured, poorly drawn face, mutation, mutated, (extra_limb), (ugly), (poorly drawn hands), messy drawing, penis, nose, eyes, lips, eyelashes, text, red_eyes, (((nipples))),(skinny), (((underbite))),
Steps: 70, Sampler: Euler a, CFG scale: 5.0, Seed: 1729711779, Face restoration: GFPGAN, Size: 512x768

3.補足・雑感

Negative promptは以下くらいに省略しても問題は無さそうです。

ugly, fat, obese, chubby, (((deformed))), bad anatomy, disfigured, poorly drawn face, mutation, mutated

ただしpromptもNegative promptは、あまりシンプルにし過ぎるとハズレ率が高くなるかもしれません。

またseedを固定してCFG Scaleを変えた方が効果が出るケースも多いような気がしています

結果(3)の「talent」の部分は、適当職業名に変えても成立しました。

例:swimmer、fireman、golfer

4.終わりに

面白い課題を与えていただきありがとうございました。

もう少し早く投稿たかったのですが、色々やっているうちにあっという間に時間が経ってしまいました。

また、日本人(というかモンゴロイド)に多い頬骨が張っていない丸顔を作るのは結構難しいと感じました。

以上

2022-09-12

イラスト向けAI絵描き「Waifu Diffusion」を使ってみて感じた限界

Danbooruの素性に注目が集まっているが、ここでは議論しない。


promptを英語で書く必要があり、闇雲に入力しても意図した画像が出てこない。

promptチェッカーのような、正しいpromptが書けているのかどうかをコンパイラ確認できず、自身画像を見て反映されているか判断する必要がある。

promptに記載した内容が1枚の画像に全て反映されているわけではなく、複数枚の画像を出力してみて、promptがなんとなく反映されているかな、といったものになる。


Danbooruタグが使えるということが正しいように広まっているが、半分正解で半分間違っている。

「bow」というタグがあるが弓を表しているわけではなく、女の子キャラクターの髪の毛が弓なりの形状をしていることを示すのに、Danbooruではタグ付けされている(ように見える)。

「hair_bow」というタグもあり、こちらも髪留めリボンのことを示す。「Waifu Diffusion」に書いて出てくるのはこちらになる。一般的に使われるのもこちらだろう。

面倒なのがここからなのだが、「Waifu Diffusion」は修飾子がどこにかかっているのか曖昧判断をする。

弓を描きたいわけではないので、何かしら髪にまつわる単語が「bow」の近くにあることになるが、「Waifu Diffusion」はリボンを描く。

どうも「Waifu Diffusion」は英文法を知っているわけではなさそうだ。

また「hair_bow」をつけたキャラクター代表的なのが東方霊夢なのか、霊夢要素がそこかしこに現れる。


もう一つ例を出そう。

Danbooruタグに「small_breasts」という胸の小さいタグがあるが、「Waifu Diffusion」は胸の大きな描写をする。

xxxx, small_breasts, xxxx」といったようなpromptを書くと、胸の小さいキャラを描きたいのだなと判断すると思うが、

「Waifu Diffusion」は胸という単語があるから胸を描画した、となる。

どうもアンダースコアでつながっている単語を1単語とは認識してない。

breasts」という単語が入っている限り、巨乳が描かれ、さらに胸をさらけ出した描画がなされるので重々注意されたし。

小さい胸のキャラクターを描きたい場合は「breasts」という単語をpromptに入れてはいけない。


上記のこともあり、Danbooruタグはあまり効かない。!!!やカッコ( ) で括った単語は強調されるらしいが、あまり意味がない。

またDanbooruタグの詳細を見てみるとわかるが、1kを超えるような数の多いタグ曖昧ものが多くなり、詳細な分類がなされたものは数が少なくて効かない。


他に、髪の指定英語で行うのはかなり困難だ。

ロングやショートくらいはすぐ指定出来るが、それくらいだ。

「floating_hair」というイラストでよくある髪束をウネウネさせるタグがあるが、「Waifu Diffusion」は認識せず、キャラクターは空を飛ぶ。

「short_hair_with_long_locks」という、ショートだが頬の横の髪が長いというタグがあるが、まず認識されない。

では日本人女性現実でしている髪型対応する英語があるかというと、Google検索して出てくるような和製英語入力しても描画されない。

アイドル系だとツインテールメジャーだと思うが、英語圏の人は「twintail hair は pigtail hair」だというが、pigtail hairは日本人感覚からすると編み込みが多くリボンが沢山付き、どうも違うとなる。

ゆるふわアレンジなんてのは、かなり難しい。


他に、現状「Waifu Diffusion」では指を描くのがかなり苦手だ。

promptを工夫すれば出来るのかもしれないが、色々試した結果、顔との両立が出来ない。

先の事例と同様に、手を隠すといったpromptは指定しようとしても、promptに指や手といった単語が入っているだけで問答無用で画面に出てくる。

「何かを消す」といった指定はほぼ無効になる。


promptの参考書についても課題に感じる。

「Stable Diffusion」では本当に効くかどうかはさておき、検索できるサイトがいくつか出てきている。

しかし「Waifu Diffusion」で、アニメを描きたい場合の参考はない。

「Waifu Diffusion」を作った人達Discordtext-to-imageがあり、画像とpromptが載っているが、多くがクオリティの低いものであり、高速で流れるチャットから見つけるのは困難だ。

SNS記事でまとめている人も少ない。


Danbooruデータベース学習しているということで、実際にダウンロードして中を見てみたが、

玉石混交というか、説明がしにくいが、少なくとも自分の描きたいものとは違っていた。

テイストが揃ってないので、同じ単語が示す物でも画像ごとに違い、そりゃアーティスト名で絞りたくなるよなってのは気持ちはわかる。

(「Waifu Diffusion」でDanbooruアーティスト名を入れても、狙ったテイストにはならないが。絵が多いアーティスト名でもならない。)


また「Waifu Diffusion」はキャラクターの顔については崩れないので凄いと言われるが、

実際に使うと、「full body」といった全身を描きたいと思っても顔のアップばかりが出力され、全身が描けたと思っても顔が崩れて描写されない。


アニメのような演出をしようと思った場合エフェクトをどう指定するか、という問題にぶち当たる。

Danbooruタグにはエフェクトに関するタグはない。

アニメならではの光の演出があるわけだが、どう指定するのかわからない。

英語名前がついているのだろうか。

最近イラストで多い、逆光で顔の前面は薄い影で、なぜか鼻の高い所にはハイライトが入っているが、前髪の影は額に落ちているという、

どこから光が入っているんだ?というのも指定できるのだろうか?

まだ3Dでやっているような顔前面セル塗りの方が指定やすかろう。


「Waifu Diffusion」には70ワードという制限があり、細かく指定していくと軽く超えていく。

超えた分は無視され、絵を文字表現するとなるのは難しいのを実感する。

img2imgによって、ポーズ指定、髪の毛をどこで括るかといった指定はしやすくなるが、それでもpromptが必要となる。

Danbooruタグが反映されない問題解決されたとしても、タグの細分化はされているようでいて、実際使うとなると足りてない。


使いこなせる人はいるのだろうか?

2022-08-31

今気づいたんだが

増田個別記事ページで、記事の囲みの下にある「記事への反応」の横のanond:1234567890ってところをクリックすると、input type="text" になってコピペやすい!!

anond.hatelabo.jp##div.section:has-text(イラストレーター)

anond.hatelabo.jp##div.section:has-text(投資)

anond.hatelabo.jp##div.section:has-text(AI)

anond.hatelabo.jp##div.section:has-text(diffusion)

anond.hatelabo.jp##div.section:has-text(mimic)

anond.hatelabo.jp##li:has-text(イラストレーター)

anond.hatelabo.jp##div.section:has-text(投資)

anond.hatelabo.jp##li:has-text(AI)

anond.hatelabo.jp##li:has-text(diffusion)

anond.hatelabo.jp##li:has-text(mimic)

とりあえずこのくらい追加しとけばいいか

2022-08-15

[]はてなトップページ特定エントリーをuBlock Originで隠す方法を補足

[はてブ]uBlock Origin特定エントリーを隠す方法メモ anond:20180523215832

に対する補足。

このエントリーにこのようなブコメが付いていた。

これはてなトップページには効かないんだな

https://b.hatena.ne.jp/entry/364655312/comment/m7g6s

はてなトップページ(https://www.hatena.ne.jp/)ははてブの各種リストページとHTML構造が異なっていて、これに対応するには別途トップページ用の行を追加する必要がある。

増田エントリーブロックしたい場合はuBlock Originの設定に次のような行を追加する。anond.hatelabo.jpの部分を別ドメインに変えると別ドメインのページをブロックできる。

hatena.ne.jp##.EntryList_entryListItem__1vXtf:has(a[href*="anond.hatelabo.jp"])

タイトルに「転職」を含むエントリーブロックしたい場合は次のような行を追加する。

hatena.ne.jp##.EntryList_entryListItem__1vXtf:has-text(転職)

iOS版のはてブアプリにこの手のブロック機能が付いたみたいだからWebページに対してもそろそろはてな公式対応してくれるかもな。

2022-08-05

anond:20220805141553

Sublime Text「まず出てきたんがワイや! 基本シンプルやけどプラグインを追加してどんどん機能拡張できるんや!」

Atom「ワイはGithub謹製UIも綺麗やろ! 基本機能が充実している上に、Sublimeを参考にしてプラグインによる機能追加もできるようにしたで!」

VS Code大正義Microsoftのワイで決まりや! Atom以上の拡張性を備えているのに、Sublimeと同じくらい軽量なんや!」

というイメージ

2022-08-01

anond:20220731183342

自動安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋) 

/**************************************

以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 <h3>o- *************************************/</h3>

//CSVファイルが置かれてるディレクトリパス投稿前にエラー出たら大体ここの設定ミス。 例:"C:\\Users\\sakuraimasahiro\\Documents\\iMacros\\Macros\\rentou\\";

const CSV_DIR =

'C:\\Users\\USER\\Desktop\\iMacros\\Macros\\rentou\\';

//ファイルパスCSV絶対パスで、拡張子必要。iimは相対パスでよく、拡張子不要

const FILE_PATHS = {

//投稿文が書かれたCSVファイル

textCsv: CSV_DIR + 'textNoAnker.csv',

//レス投稿文が書かれたCSV。通常とレス用で分けないなら同じファイルを使えばいい。

replyTextCsv: CSV_DIR + 'textReply.csv',

};

const SETTINGS = {

//投稿後の基本待ち時間

baseWaitTime: 5,

//baseWaitTime+0~waitTimeRange(ランダム)だけ待つ

waitTimeRange: 5,

//連投しすぎだと忠告された場合に処理を一時停止させる時間(秒)

waitTimeForAvoidingPunishment: 60 * 30,

//メール

mail: 'sage',

//名前設定

nameSettings: {

//名前名無しなら''。

name: '',

//以下、偽装ワッチョイ設定。浪人ワッチョイを非表示にしてるときだけtrueにしてね。

//妙なニックネーム(ワッチョイ、アウアウウーなど)をランダムで決めて付加するかどうか。true=付加する。false=付加しない。

nickname: false,

//妙なニックネームの後に付く8桁の文字列ランダムで決めて付加するかどうか。

korokoro: false,

//IPランダムで決めて付加するかどうか。

ip: false,

//地域ランダムで決めて付加するかどうか。

area: false,

},

postSettings: {

//アンカー無し投稿をするならtrue。しないならfalse。noAnkerPostかreplyPostのどちらかはtrueにすること(両方trueでもOK)。

noAnkerPost: false,

//アンカー付き投稿(返信)をするならtrue。しないならfalse。もしnoAnkerPostとreplyPostの両方がtrue場合投稿は返信が優先され、返信対象が見つからなくなったらアンカー無し投稿をする。

replyPost: true,

//最初に取得するアンカー無し投稿CSVファイルの行番号。もし返信用と同じCSVファイルを使うなら-1と入力

noAnkerPostTextCsvStartRow: 1,

//最初に取得する返信用投稿CSVファイルの行番号。もしアンカー無しと同じCSVファイルを使うなら-1と入力

replyPostTextCsvStartRow: 1,

//テキストCSV/返信用テキストCSVの取得行が最終行に達したら最初の行まで戻るかどうか。true=戻る。false=マクロ終了。

textCsvLoop: true,

//返信する場合、これより小さなレス番には返信しない。返信を投稿すると、この数値は前回の返信先のレス番に更新される。

minAnker: 895,

//返信する場合名前に以下の文字列を含む投稿アンカーをつけて返信する(ワッチョイやIPなど名前フィールドにあるものならなんでも可)。配列複数指定可能指定無しなら空配列([])。filterNamesとfilterNamesNotIncluded共に無指定ならレス番1から順に返信していく(minAnkerが設定されてればそこから順に)。以下のfilter系は全て併用可能

filterNames: [],

//↑とは逆に、名前に以下の文字列を含まない投稿アンカーをつけて返信する。↑と併用も可能

filterNamesNotIncluded: [],

//返信する場合、本文に以下の文字列を含む投稿アンカーをつけて返信する。

filterText: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '>>660', '自演擁護', '最後' ,'あいうえお', 'かきくけこ', 'さしすせそ', 'なにぬねの', 'はひふへほ', 'まみむめも', 'やいゆえよ', 'やゆよ', 'らりるれろ', 'わいうえを', 'わをん', 'わいうえをん'],

},

//自分IPアドレス確認VPNとかでIPを変更してマクロを動かしてるとき、突然VPN作動しなくなってIPが元に戻ったときマクロを止めるためのもの

ipSettings: {

//自分現在IPアドレス確認をする。

checkIp: true,

//以下の文字列自分現在IPアドレスに含まれている場合マクロを一時停止する。基本的自分の本当のIPアドレス入力

avoidTheIp: '133.206.99.224',

},

//浪人設定。最後動作確認したのは5年くらい前で、今も同じように動作するかは、浪人を持ってないか確認できずわからない。

roninSettings: {

//浪人ログインしてるかどうかをチェックするかどうか。trueらするfalseならしない。trueにしていてもし浪人ログインしていないことを確認したらログインしにいく。

checkLogin: false,

//浪人ログインメールアドレス

mailAdress: 'abc@def.com',

//浪人ログインパスワード

password: '1234',

},

//false: run()実行させず(デバッグ用)

run: true,

//true: 投稿処理だけしない デバッグ

skipPost: false,

};

/**************************************

設定箇所終わり。

書き込めない時の早見表 - 5ちゃんねるwiki

https://info.5ch.net/index.php/%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%81%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E6%97%A9%E8%A6%8B%E8%A1%A8 <h3>o- *************************************/</h3>

/**************************************

メモ

クラスフィールド宣言できない。

・NULL演算子(??)は使えない。論理積(&&)は使える。

オブジェクトの分割代入はできない。

・importはできない。 <h3>o- *************************************/</h3>

/**************************************

関数 <h3>o- *************************************/</h3>

/**

* ここから始まる。

*/

function run() {

//設定ミスがないか調べる。

checkSettings();

var _TextCsvCursors = new TextCsvCursors(

new TextCsvCursor(

SETTINGS.postSettings.noAnkerPostTextCsvStartRow > 0

? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1

: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,

FILE_PATHS.textCsv,

SETTINGS.postSettings.textCsvLoop,

),

new TextCsvCursor(

SETTINGS.postSettings.replyPostTextCsvStartRow > 0

? SETTINGS.postSettings.replyPostTextCsvStartRow - 1

: SETTINGS.postSettings.replyPostTextCsvStartRow,

FILE_PATHS.replyTextCsv,

SETTINGS.postSettings.textCsvLoop,

),

);

var _LoopStatuses = new LoopStatuses(0, SETTINGS.postSettings.minAnker);

const _MyPosterName = new MyPosterName({

name: SETTINGS.nameSettings.name,

});

//スレURL指定

const _ThreadUrl = openPromptThreadUrl();

//ループ

while (true) {

//IP確認する設定なら、それをする。

SETTINGS.ipSettings.checkIp && checkCurrentIpNotTheIp();

//スレを開く

openUrl(_ThreadUrl.fullUrlHttps());

//浪人ログインする設定なら、浪人ログインしているかどうかを確認し、していなければログインしにいく。

if (SETTINGS.roninSettings.checkLogin) {

if (!checkRoninLogin()) {

loginRonin();

continue;

}

}

//投稿に使うテキスト取得。

const p = (function () {

if (SETTINGS.postSettings.replyPost) {

//返信あり設定の場合。返信対象が無いか調べる。

const targetAnkerNumber = createPostDOMList()

.filterPostnumberHigher(_LoopStatuses.currentMinAnker())

.filterByPostername(SETTINGS.postSettings.filterNames)

.filterByPosternameNotIncluded(

SETTINGS.postSettings.filterNamesNotIncluded,

)

.filterByText(SETTINGS.postSettings.filterText)

.lowestPostNumber();

if (targetAnkerNumber !== null) {

//返信対象があったのでアンカー付き投稿文を作る。

const r = _TextCsvCursors.takeNextRowTextAsReply(targetAnkerNumber);

messageDisplay(`返信対象有り。アンカー先: ${targetAnkerNumber}`);

return {

...r,

updatedLoopStatuses:

_LoopStatuses.updateMinAnker(targetAnkerNumber),

};

}

}

if (SETTINGS.postSettings.noAnkerPost) {

//返信対象無し、或いは返信しない設定の場合アンカー無し投稿文を作る。

const r = _TextCsvCursors.takeNextRowTextAsNoAnker();

messageDisplay('返信対象無し。アンカー無し投稿。');

return {

...r,

updatedLoopStatuses: _LoopStatuses,

};

}

return null;

})();

if (p) {

//投稿

postThenCheckError(

_ThreadUrl.serverName(),

_MyPosterName.randomize({

nickname: SETTINGS.nameSettings.nickname,

korokoro: SETTINGS.nameSettings.korokoro,

ip: SETTINGS.nameSettings.ip,

area: SETTINGS.nameSettings.area,

}),

SETTINGS.mail,

p.text,

);

//_TextCsvCursorsと_LoopStatusesを更新

_TextCsvCursors = p.updatedTextCsvCursors;

_LoopStatuses = p.updatedLoopStatuses.incrementPostCount();

messageDisplay([

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

} else {

messageDisplay([

`返信対象が現われるのを待機中...。`,

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

}

//短時間で連投しまくると規制されるので一定時間待機。

wait(SETTINGS.baseWaitTime + randomRange(0, SETTINGS.waitTimeRange));

}

}

/**

* 投稿処理と投稿結果を見てリトライしたりマクロ終了したり。

* @param {string} serverName サーバー

* @param {MyPosterName} _MyPosterName

* @param {string} postMail メール

* @param {MyText} _MyText

* @param {number} retryTimes

* @returns {void}}

*/

function postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes = 0,

) {

const r =

retryTimes === 0

? new ValuesOfPost(serverName, _MyPosterName, postMail, _MyText).post(

postTo5chTread,

postConfirm,

)

: new ValuesOfPost(

serverName,

_MyPosterName,

postMail,

_MyText,

).postSubstring(retryTimes, postTo5chTread, postConfirm);

if (r) {

back();

return;

}

//エラーページに飛ばされた。エラー情報取得。

wait(7);

const error = createPostErrorMessage().analyze();

messageDisplay(error.message);

if (error.order === 'KILL') {

kill();

} else if (error.order === 'SKIP') {

return;

} else if (error.order === 'TRUNCATE') {

back();

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes + 1,

);

} else if (error.order === 'WAIT') {

wait(SETTINGS.waitTimeForAvoidingPunishment);

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

} else if (error.order === 'LOGIN') {

//動作未確認

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

}

return;

}

/**

* 現在IPアドレスに、SETTINGS.ipSettings.avoidTheIpの値が含まれていないことを確認する。含まれていたらマクロを一時停止。

* @returns

*/

function checkCurrentIpNotTheIp() {

//IP確認ページへ飛ぶ

openUrl('https://www.cman.jp/network/support/go_access.cgi');

const _IpAdress = createIpAdressFromCMan();

if (_IpAdress.includes(SETTINGS.ipSettings.avoidTheIp)) {

pause('現在IP指定した値が含まれていることを確認。');

//ポーズ解除したならもう一度確認しに。

checkCurrentIpNotTheIp();

}

return;

}

/**

* 設定に致命的な問題が無いか検査

* @returns

*/

function checkSettings() {

if (

SETTINGS.postSettings.noAnkerPost === false &&

SETTINGS.postSettings.replyPost === false

) {

return kill('設定エラー。noAnkerPostとreplyPost両方ともfalseになってる。');

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow < 0 &&

SETTINGS.postSettings.replyPostTextCsvStartRow < 0

) {

return kill(

'設定エラー。noAnkerPostTextCsvStartRowとreplyPostTextCsvStartRow両方とも-1になってる。',

);

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow === 0 ||

SETTINGS.postSettings.replyPostTextCsvStartRow === 0

) {

return kill(

'設定エラー。noAnkerPostTextCsvStartRow/replyPostTextCsvStartRowの初期値は-1或いは1以上で。',

);

}

}

/**

* 入力フォームを表示して入力されたスレURLを受け取る。

* @returns {ThreadUrl}

*/

function openPromptThreadUrl() {

const url = prompt('スレURL入力');

return new ThreadUrl(url);

}

/**

* 開いてるスレレス全て読み取ってPostListインスタンスを作って返す。

* 重すぎるので使うのやめ。どうやらインスタンスの大量生成が原因な模様。

* createPostDOMListを使う。

* @returns {PostList}

*/

function createPostList() {

const posts = window.document.getElementsByClassName('post');

return new PostList(Array.from(posts).map((e) => new Post(e)));

}

/**

* 開いてるスレレス全て取得してPostDOMListに格納して返す。

* @returns

*/

function createPostDOMList() {

const posts = window.document.getElementsByClassName('post');

var arrPostDOMList = [];

for (let index = 0; index < posts.length; index++) {

//HTMLCollectionからElementを1つずつ抽出して配列に。

arrPostDOMList.push(posts.item(index));

}

return new PostDOMList(arrPostDOMList);

}

/**

* 開いてる投稿結果画面に表示されてるエラーを読み取ってPostErrorMessageインスタンスを作って返す。

* @returns {PostErrorMessage}

*/

function createPostErrorMessage() {

return new PostErrorMessage(

window.document

.g Permalink | 記事への反応(0) | 15:40

2022-06-08

anond:20220608181343

Abstractしか読んでいない疑惑自身ダブスタな態度など他増田ブコメによる都合の悪い指摘に無視または言い訳を続ける増田果たして他人知的誠実さを偉そうにジャッジする資格()を満たすだけの知的誠実さは備わっているか

結論に「反する」論文を「無視」と語気を強めて言い切っていた増田の論旨は変わってるんだが、それはそれとして)

かい論点だとか論旨には影響しませんで言い逃れできるなら手嶋の記事だって前後の総説論文メタアナリシス否定されない以上は記事全体としての論旨には大して影響しないだろうに、記事全体のキャンセルを試みるのは無理があるって自分でも薄々分かってるよな

自分に都合の良い方向にねじ曲げた誤訳にしても査読の持つ意味合いにしても最初に強い言葉で耳目を集めてから後で軌道修正すればよしっていう怠惰姿勢から知的誠実さなんて欠片も感じられないんだけど?

ブコメでもお前の印象操作オタクヘイター表現規制派の方々が釣られまくってるんだから相手印象操作を責めるなら自分記事全体の論旨は否定できませんと明言して釣られた馬鹿の後始末しとけ

つい適当なこと言っちゃったけど相手だって同じなんだとか全く言い訳にもなってないからな

その相手をお前は「学問への冒涜であり、科学と対極に位置するものです」「論文を読む、ましてやそれを基に文章を書く資格などありません」「知的怠慢であり、知的誠実さの欠如でしょう」と切り捨てたんだから

他人より先にまず自分をその立派に研ぎ澄ました鎌で断罪してはどうか

(Full-Textを読まずにAbstractだけで済ませる怠惰も刈り取れないナマクラみたいだから研ぎ直すのが先か?)




アレな評論家の得意技モット・アンド・ベイリー論法

http://www.anlyznews.com/2017/10/blog-post_15.html

2022-06-05

uBlock Originの設定

自分で設定できることを知って快適なブックマークライフを遅れるようになった

b.hatena.ne.jp##.js-keyboard-selectable-item:has-text(弱者男性)
b.hatena.ne.jp##.js-keyboard-selectable-item:has-text(ジェンダー)
b.hatena.ne.jp##.js-keyboard-selectable-item:has-text(フェミ)
b.hatena.ne.jp##.js-keyboard-selectable-item:has-text(note.com/wakari_te)
b.hatena.ne.jp##.js-keyboard-selectable-item:has-text(twitter.com/63cities) 

2022-05-21

[]関連ページ・RSS一覧

はてブについて、情報検索したりクエリを投げたりして調べてまとめてみた。自分メモとして書いたもので、極少数の人しか興味を持たない内容かと思うが、読んでいただければ幸い。

公式等[1・2(参照したページURL最後記載。以下同様)]で詳細を確かめられず素人憶測説明した箇所がいくつもあり、簡潔明瞭でも網羅的でもない解説だがご容赦を。

トップページ

ホットエントリと新着エントリの一覧への導線がある。

URL

1. https://b.hatena.ne.jp/

1a. https://b.hatena.ne.jp/hotentry/{1}(引数に"all"を入力した場合、1のエイリアス

1b. https://b.hatena.ne.jp/ctop/{1}(カテゴリトップ[3]が過去存在していた場合、1aにリダイレクト

1c. https://b.hatena.ne.jp/hotentry/{1}/{2}

1d. https://b.hatena.ne.jp/hotentry/{1}/daily(1cにリダイレクト。前々日か前日の分が表示される)

1e. https://b.hatena.ne.jp/hotentry/{1}/{3}(?page={4})(()内のパラメータは省略可。以下同様)

1f. https://b.hatena.ne.jp/hotentry/{1}/{3}(?of={5})

2a. https://b.hatena.ne.jp/hotentry.rss

2b. https://b.hatena.ne.jp/hotentry/{1}.rss("all"を入力した場合、2aのエイリアス

2c. https://b.hatena.ne.jp/hotentry?mode=rss(2aのエイリアス

2d. https://feeds.feedburner.com/hatena/b/hotentry(2aのエイリアス)[4]

3. https://b.hatena.ne.jp/entrylist/{1}(/{3}?page={4})(ブクマ登録数の閾値を設定するオプションがあったが、2018年3月廃止された[5])

4a. https://b.hatena.ne.jp/entrylist.rss

4b. https://b.hatena.ne.jp/entrylist/{1}.rss("all"を入力した場合、4aのエイリアス

4c. https://b.hatena.ne.jp/entrylist?mode=rss(4aのエイリアス

引数
概要
{1}カテゴリID省略するとカテゴリ総合」のページが表示される
{2}エントリ登録"YYYYMMDD"の形式入力。当該月日の24から一定時間経過後に利用可能になる。有効な最古の値は20050210
{3}特集特集[6]は不定期に改廃されるため、値が有効か注意
{4}ページ番号
{5}オフセット表示結果の先頭が、指定した値だけ後ろにずれる。1ページ分表示可
カテゴリ

エントリは、8種類あるカテゴリ[7]のどれか1つに自動区分される。そのアルゴリズム不定期に更新されているようだ[8]。区分に異議がある場合ユーザが変更申請することもできる[8・9]。

カテゴリ2013年2月現在名称・分類になった[10]。分類が現在と同じ8種類になったのは、2008年11月[11]。

なお、2011年以前のエントリはほぼ全て「暮らしカテゴリ区分されている[12]。2017年から2019年の間に何らかの障害が起きたためと思われる[13・14・15]。

エントリページ

別名、ブックマークコメント一覧ページ[16]。

なお「(ブックマークエントリ」という呼称は、一般的用法はてブ登録されたURLとその付帯情報エントリページの情報等、多様な意味で使われる。

URL

1a. https://b.hatena.ne.jp/entry/(s/){1}("s/"はセキュアサイトのエントリページURLに付加される[16])

1b. https://b.hatena.ne.jp/entry/{2}(正しく処理された場合、1aにリダイレクト

1c. https://b.hatena.ne.jp/entry/{3}(1aにリダイレクト

1d. https://b.hatena.ne.jp/entry?url={2}(1aのエイリアス

1e. https://b.hatena.ne.jp/entry?eid={3}(1aのエイリアス

2. (b:)id:entry:{3}(はてな記法[17・18])

引数
概要
{1}URLブクマされたURL原則として、パーセントエンコード[19]されたもの)の一部を入力
{2}URLURL(同上)全体を入力
{3}エントリID下記参照
エントリID

はてブ登録されたURLIDと1対1対応する。IDは、当初は1から始まる連番だったが、2018年12月頃から62bit以上の乱数値になった[20]。

余談だが、かつては番号が桁繰上りするたびにキリ番ゲッターブクマしに集っていたようだ。理由不明だが、欠番になったキリ番もある(キリ番前後エントリページ参照)。

エントリ統合

URLwebページは1対1対応するとは限らない[21][22]ため、エントリブコメは容易に分散する。

その改善のため2019年2月はてブ仕様が変更され、一定規則エントリが収斂されるようになった[23]。現在エントリページは、複数エントリと1対多対応していて、対応するどのIDURL引数にしてもアクセスできる。

1対多対応の例

参考[1]のエントリページに対応するIDを昇順にし、各ID確認できる最古のエントリをまとめた。非公開や削除済のブクマがあるせいか、完全な日付昇順ではない。

エントリID
ブクマ
ユーザ
URL
262005/2/10nabesohttp://b.hatena.ne.jp/help
2522982005/5/24nobodyhttp://b.hatena.ne.jp/help#tag
2613692005/5/26anotherhttp://b.hatena.ne.jp/help#favorite
3084552005/6/9naoyahttp://b.hatena.ne.jp/help?mode=design
3618202005/6/23superartlifehttp://b.hatena.ne.jp/help#collection
3685602005/6/24kurimaxhttp://b.hatena.ne.jp/help?mode=button
3690592005/6/24takeshi-shttp://b.hatena.ne.jp/help?mode=button#jugem
4613062005/7/18kidaglasshttp://b.hatena.ne.jp/help?mode=button#livedoor
5402192005/8/9kei-shttp://b.hatena.ne.jp/help?mode=tipjar
9907322006/1/14takefhttp://b.hatena.ne.jp/help?mode=tipjar#autodiscovery
10213852005/12/27tosch0718http://b.hatena.ne.jp/help#note_about_title
10510402006/1/7junky0http://b.hatena.ne.jp/help?mode=button#seesaa
11487292010/7/8b01012109http://b.hatena.ne.jp/help/
17854752006/4/20eiichimanhttp://b.hatena.ne.jp/help?mode=design#module
23618012006/7/19yamifuuhttp://b.hatena.ne.jp/help#keybind
46701350558056662742020/1/7aoyamayukihttps://b.hatena.ne.jp/help/
IDが正しく認識されない場合

以下に該当するIDURL引数として入力すると、エントリの一部または全ての情報の取得に失敗する



ブックマークコメントページ

コメントと、それに付けられたスター情報が表示される。

URL

1. https://b.hatena.ne.jp/{1}/{2}#bookmark-{3}

2. https://b.hatena.ne.jp/entry/{4}/comment/{1}

引数
概要
{1}ユーザID
{2}ブクマ"YYYYMMDD"の形式で、当該ユーザブクマした日付を入力
{3}エントリID当該ユーザブクマしたURLID入力
{4}エントリIDエントリページに対応するどのIDでも入力


検索ページ

はてブの全エントリから検索可能[29]。ただし単語の区切の判定が完璧でないため、連語複合語等が関わると上手く動かない場合がある(例えば、「更年」で検索したら「更年期障害で欠勤、認められず」というタイトルがヒットしなかった)。

URL

1a. https://b.hatena.ne.jp/search/{1}?q={2}(&sort={3}&users={4}&safe={5}&date_begin={6}&date_end={7}&page={8}&mode={9})

1b. https://b.hatena.ne.jp/t/{2}(1aにリダイレクト

2a. https://b.hatena.ne.jp/site/{10}(?sort={11}&page={8})

2b. https://b.hatena.ne.jp/entrylist?url={10}(2aにリダイレクト

引数
概要
{1}検索範囲"tag""title""text"のいずれかを入力
{2}検索文字ブクマに付帯するタグ・ページタイトル・ページ本文中のいずれかで、指定した文字列を検索する。複数文字列を"%20""|""-"で連結すると、AND・OR・NOT検索できる[30]。"site:{URL}"の形式入力すると、URL絞込検索できる
{3}表示順"popular"を指定すると、結果がブックマーク登録数降順で表示。デフォルトは新着順
{4}ブクマ件数指定件数以上のエントリで絞込検索する。デフォルト値は3
{5}セーフサーチの有無"off"を指定できる。デフォルトはオン
{6}検索期間の始め"YYYY-MM-DD"形式指定した日付以降のエントリで、絞込検索
{7}検索期間の終り"YYYY-MM-DD"形式指定した日付以前のエントリで、絞込検索
{8}ページ番号
{9}"rss"を指定できる
{10}URL指定URLで絞込検索
{11}表示順"count""hot"を指定すると登録数降順、"eid"で新着順で表示。デフォルトは、ブクマ3件以上のエントリのみ新着順


ユーザブックマークページ

ユーザブクマしたエントリが一覧表示される。

URL

1a. https://b.hatena.ne.jp/{1}/(?page={2})

1b. https://b.hatena.ne.jp/{1}/?tag={3}(&tag={3}&page={2})

1c. https://b.hatena.ne.jp/{1}/{3}(/{3})(1bエイリアス

1d. https://b.hatena.ne.jp/{1}/{4}

1e. https://b.hatena.ne.jp/{1}/?url={5}(&page={2})

1f. https://b.hatena.ne.jp/{1}/bookmark(1aのエイリアス

2a. https://b.hatena.ne.jp/{1}/bookmark.rss(?page={2})

2b. https://b.hatena.ne.jp/{1}/bookmark.rss?tag={3}(&tag={3}&page={2})

2c. https://b.hatena.ne.jp/{1}/bookmark.rss?date={4}

2d. https://b.hatena.ne.jp/{1}/bookmark.rss?url={5}(&page={2})

2e. https://b.hatena.ne.jp/{1}/rss(2aにリダイレクト

3. https://b.hatena.ne.jp/{1}/search.data(?limit={6}&offset={7}) [31]

4. (b:)id:{1}(:{4}) [17]

引数
概要
{1}ユーザID
{2}ページ番号
{3}タグ指定タグで絞込検索。2件以上指定するとAND検索できる
{4}ブクマ"YYYYMMDD"形式指定した日付で絞込検索
{5}URL指定URLで絞込検索。部分一致検索可能だが、URIスキームから入力しないと無効
{6}最大取得件数デフォルト値は全件
{7}オフセット表示結果の先頭が、指定した値だけ後ろにずれる


イブクマークページ

前節とほぼ同様だが、利用可能オプションが多い[32・33]。

はてなスター

ログインすると、スター情報を閲覧できる。

余談だが、カラースター価値は緑5円・赤12円・青110円・紫890円程度のようだ[34]。

URL

1. https://s.hatena.ne.jp/

2. https://s.hatena.com/(1のエイリアス

3. https://s.st-hatena.com/(1にリダイレクト



参考URL

ブクマされてるURLにはIDを付記。

タイトル
URL
エントリID
1ヘルプトップ - はてなブックマークヘルプhttps://b.hatena.ne.jp/help/4670135055805666274
2はてブAPIwebサービスを作りたい全ての人に向けて書きましたhttps://syncer.jp/hatebu-api-matome264997023
3カテゴリトップテクノロジー」を新設し、グローバルナビゲーションの挙動を変更しました - はてなブックマーク開発ブログhttps://bookmark.hatenastaff.com/entry/2015/11/05/1512214667408542014962466
4はてブホットエントリーのRSS一覧 - まんとるぽっとhttps://www.mantol.net/entry/20120601/13385179414699737458651148386
5追記ありトップページカテゴリページなどのメディア面をリニューアルしました - はてなブックマーク開発ブログhttps://bookmark.hatenastaff.com/entry/2018/03/22/1611104667408571006016450
6編集ユーザ活動エンジニアリングを融合した「特集機能」を始めます - はてなブックマーク開発ブログhttps://bookmark.hatenastaff.com/entry/2015/08/17/1506544667408546846804962
7[FAQ]はてなブックマークの「総合カテゴリーと「一般カテゴリーの違いはどこにある?https://anond.hatelabo.jp/20200108201212
8自由研究はてなブックマークにおける自動カテゴリ分けの傾向と所感 - AQMhttps://aqm.hatenablog.jp/entry/2019/08/06/1801004672608930549728738
9フィードバックフォームおよびカテゴリ変更依頼フォーム設置のお知らせ - はてなブックマーク開発ブログhttps://bookmark.hatenastaff.com/entry/2018/12/11/1634534667408557584232770
10新しいトップページの一覧性を高めました - はてなブックマーク開発ブログhttps://bookmark.hatenastaff.com/entry/2013/02/06/000000
112008-11-07 - はてなブックマーク開発ブログhttps://bookmark.hatenastaff.com/entry/2008/11/07/000000
12はてなブックマーク - 人気エントリー - 総合 - 2011年12月5日https://b.hatena.ne.jp/hotentry/all/20111205
13はてなブックマーク - 人気エントリー - 2008年11月1日https://web.archive.org/web/20170815132626/http://b.hatena.ne.jp/hotentry/20081101

anond:20220521221139 に続く

2022-04-24

スマホは何年で入れ替わるのか

1985年スーツケースに受話器をつけたクソデカ携帯電話から23年後に日本iPhoneが発売された。

携帯電話一般的に広まった時期※3から考えると10年程しか活躍しなかった。勿論スマホが発売され今もガラケーを使っているユーザーはいるが。

スマホ自体1992年に開発、94年に販売※されているが、世界的に普及したのは2007年iPhone存在が大きい。

それから10年以上経った今もスマホ主流こ世界は変わらず、グーグルグラス(まだ法人向けしかない)やVRゴーグル流行兆しはないが、まだスーツケースに受話器がついているクソデカ携帯電話みたいなレベルなのだろうか?それともARVR以外の新しい技術があって、それがクソデカ携帯電話なのだろうか?

いずれにせよ、次の新しい何かができるのをとても楽しみにしている。

がんばって。世界技術者。

※1

https://mobile.nuro.jp/mvnolab/articles/202012_87/

※2

https://www.discoveryjapan.jp/news/n1c7_4yvz/#:~:text=%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%81%AE%E8%AA%95%E7%94%9F&text=1994%E5%B9%B4%E5%A4%8F%E3%81%AB%E3%81%AF,%E3%81%9F%E3%81%A8%E8%A8%80%E3%82%8F%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82

2022-03-22

天安門」元リーダーNYで惨殺…犯人女性中国の“刺客”説が浮

フェミの正体みたりって感じだな

被害者の方はご冥福をお祈りいたしま

あなたたちの求めて戦った民主の力は我々日本台湾欧州アメリカオーストラリアインドが引き継ぎます

天安門」元リーダーNYで惨殺…犯人女性中国の“刺客”説が浮上

天安門事件」の学生リーダーのひとりだった弁護士・李進進Photo: 対話中国(Dialogue China Think Tank

天安門事件」の学生リーダーのひとりだった弁護士・李進進

Photo: 対話中国(Dialogue China Think Tank

画像ギャラリー

田中淳

田中淳

Text by Jun Tanaka

1989年の「天安門事件」につながる民主化運動の中で学生リーダーのひとりだった弁護士が白昼のニューヨークで惨殺された。犯人の女は現行犯逮捕されたが、不可解な動機言動から北京から刺客としてニューヨークへ放たれたのではないかと疑う者も多い。

22ヵ月間投獄され、亡命

天安門事件」の学生リーダーのひとりだった弁護士・李進進(リィ・ジンジン米国ジム・リー、66)が、3月14日正午前、米ニューヨーククイーンズ区・フラッシング39番街にあるビル4階の事務所で刺殺された。享年66だった。

当日、李進進の事務所には、3日前に来訪したばかりの中国女性・張暁寧(ヂャン・シァオニン、25)がケーキを持参し訪れた。11時44分ごろ張は突然、「今日法律の用件で来たわけではない」と言いつつ李の背後から彼の首を片腕で強くロックし、コートの内ポケットから素早くナイフを取り出して、ためらい無く李の頸動脈を一撃。続けて頸部、胸部、腹部をメッタ刺しにした。

目撃者によると、張は素早くナイフを取り出しためらい無く頸動脈を一撃したことから、相応の訓練を受けたとみられる。

瀕死の李はニューヨークプレスティリアン・クイーンズ病院搬送されたが、12時8分に出血多量で死亡が確認された。

湖北省武漢市生まれの李進進は1970年、15歳で中国人民解放軍に入隊し、除隊後、文民警察組織中華人民共和国人民警察に勤務。1979年湖北経学院(現・中南財経政法大学)に入学し、のち北京大学博士課程で学ぶ。

1989年の「天安門事件」期間中デモ重要役割を果たした労働者団体北京工人自治連合会法律顧問を務めた。同年6月4日人民解放軍天安門広場のデモ隊を虐殺したあとは故郷武漢へ逃げ帰るが、人民煽動した容疑で逮捕され、22ヵ月間投獄される。

釈放後は起訴を免れ、1993年に渡米。コロンビア大学ウィスコンシン大学で学び、レストラン下働きしつつ法学博士号を取得。卒業後、ニューヨーク州で弁護士資格を取得した。

北京警官レイプされ無一文と訴え

犯人の張暁寧は現行犯逮捕された。張は1997年河北省邯鄲市生まれで、北京大学で学び、2021年8月下旬にF-1学生ビザ米国入国。渡米直後の2021年9月14日国連通常総会の開会日当日に張は、国連本部の外でプラカードを持ち、北京市内の精神病院強制入院させられたことを非難し、彼女レイプした北京市公安局の警官厳罰に処すよう訴えるデモンストレーションを繰り返した。

国連本部の外で通常総会当日にプラカードを持ちデモンストレーションをする張

国連本部の外で通常総会当日にプラカードを持ちデモンストレーションをする張

Photo: 美国之声粵語網(VOA Cantonese

その後、李の存在を知った張は、李が法的な手助けをしてくれるものと期待し、3月11日、李の事務所を訪れた。

李の親友弁護士・朱偉は「後の祭りだが、李進進はあの女に関わるべきではなかった。11日に事務所に来た女は泣きながら、数日前に米国移民帰化局(BCIS)の移民面接に落ち、貧しく無一文同然で、中国警官レイプをされたと訴え、庇護を求めた。李は心優しい男。彼女無償で助けるつもりでいた。あとで女は李に、自分から受信したメールを全部削除しろ要求したが、彼は削除しなかったようだ」と悔しがった。

李進進弁護士事務所かい保険会社職員11日の凶行について、「たまたま開いていたドアから事務所内を見たところ、女性が興奮して、物凄い形相で李弁護士に詰め寄っていた。李弁護士はとても物腰の柔らかな紳士で、事務所女性職員が慌てて、興奮している女性を彼から引き離した」

「李弁護士が静かにオフィスで騒がないで。必要なら一緒に警察へ行ってあげましょう』と話すと、女性はその3倍を言い返していた。暴力的な態度で大騒ぎするのを見かねた職員警察通報したため、警官が2人来た。李弁護士警官に、大丈夫から彼女逮捕しないでと言うと、女性はそのまま逃げるように事務所を立ち去った」

天安門事件が起きた1989年当時、中国人民解放軍女性記者だった江林 Photo: The New York Times天安門事件から30年目の初証言──元「人民解放軍女性記者」が見た“地獄

カメラの前で逆上

張暁寧は殺人罪起訴され、3月14日19時37分、警察官によってニューヨーク警察109分署から勾留先に移送された。その際、「なぜ殺したのか?」「悔いてはいないのか?」などメディアから中国語で問われた張は激昂しながら、叫んだ。

「後悔なんかしてねーーわッ!」

「後悔しているとしたらお前らの裏切りだ! 中国人なのに反共産主義者を叫びやがって!」

最後に後悔するのはお前ら裏切り者だ!」

おまえらは無数の学生を傷つけてきたのに、まだ学生を傷つけるのか!」

【#中国

米国に住む中国出身女性、张晓宁 が、天安門学生運動の指導者であった李进进氏(66歳)をナイフ殺害女性は「おまえら中国人でありながら、中国共産党に背いている!」と叫んでいる。

米国に住んでいてもこれか。共産党洗脳、恐ろしすぎる…????

pic.twitter.com/o9MS0fTa8x

— NEKO????‍⬛????????????????‍⬛????????????????‍⬛ (@usapepe) March 16, 2022

暴言を吐きながら連行される張

在米華人メディアへの敵視発言から、張暁寧が中国共産党の熱烈な支持者ということが明らかになった。そして留学生である自身は、思うような庇護が与えられない被害者というスタンスだ。

だが、計画的に成人男性を刺殺するような根性の据わった女が、自身レイプしたという中国警官ではなく、たった一度しか会ったことのない弁護士を刺し殺すというのは説得力に欠ける。

張は学生ビザで渡米したが、これまで一度も通学した形跡が無い。そもそも新型コロナウイルス蔓延している時期に、中国当局は一般人民の出国許可は出さない。

張は李進進の前に、在米民主団体中国民主人権連盟に、中国ニューヨーク総領事館から警告があり、圧力を受けていると語り、庇護を求めたという。

殺人罪銃刀法違反起訴された張暁寧は3月18日クイーンズ区刑事裁判所に初出廷する予定だったが、精神不安定理由に出廷を拒否した。地元紙によると、最高25年の実刑判決終身刑が科される可能性があるという。

李進進はこれまで、中国政府に迫害されて来た多くの中国人を助けて来た。経済的に困窮している移民からはいかなる代金も受け取らなかったという。筆者にはこの李自身同胞への献身が命取りの引き金になったような気がする。

北京中央美術学院学生によって天安門広場に建てられた「民主女神」像(1989年6月1日撮影天安門事件を風化させたい中国共産党─追悼日直前に香港の記念館が休館した背景とは

反腐敗運動邪魔者

李進進は、「天網行動」「猟狐行動」(海外逃亡中の知能犯経済犯の逮捕不正取得された資産没収する中国政府の特別捜査キャンペーン)のターゲットになったり、指名手配されたりした人民米国での法的保護提供してきた。

特権を利用して実際に不正蓄財収賄した党員公務員汚職事件容疑者などの国外逃亡者逮捕されるのはともかく、「天網行動」「猟狐行動」は、中国政府の意に沿わない経営者弁護士学者研究者作家ジャーナリストNGO非政府組織関係者アーティストなどの罪をでっちあげて中国強制送還する口実にも使われているからだ。李もたびたび「『天網~』『猟狐~』は反腐敗運動ではなく、反体制弾圧手段」と批判してきた。

李進進は、2008年中国当局に香港逮捕され、金融詐欺罪起訴された「天安門事件」の学生リーダーのひとり、周永潤(ヂョウ・ヨンルン、55)の弁護を担当した。

また、中国政府が政敵逮捕するために、 国際刑事警察機構インターポール)が加盟国申請に応じて発行する国際手配書「レッド・ノーティス」を濫用することに反対していた。

中国逮捕状が出ている被疑者などについて人物特定し、海外発見し次第、中国強制送還するよう要請できるものからだ。

「李進進が“天安門”の元リーダーから殺された」という憶測的外れだろう。今年は「天安門事件から33年。当時、民主化へのうねりを作った学生運動リーダーたちは既に政治的影響力を持たず、中国共産党の脅威ではない。

今になって李進進が「消された」とすれば、「33年前のリーダー」だったからではなく、習近平政権が本気で取り組んでいるキャンペーン「天網行動」「猟狐行動」を邪魔する存在とされたからにほかならないからだろう。

在米弁護士仲間は、李が弁護活動中に得た中国共産党の特務(諜報・謀略・秘密機関)の活動資料米連邦捜査局FBI)に提出するのを阻止するために殺したと疑っている。

李進進が惨殺された2日後の3月16日、米司法省は、中国情報機関国家安全部の指示を受けて米国在住反体制中国人に監視嫌がらせを行っていたスパイ容疑で王書軍、劉藩、林啓明、孫強、マシュー・ツブリスの5人を逮捕し、起訴したと発表した。

暗殺犯の張暁寧は、北京で特務の訓練を受けた捨て駒刺客だろう。渡米後の反中パフォーマンステレビカメラの前の支離滅裂な絶叫は、精神に異常があることを印象づけるための演技と思われる。

李進進の葬儀事務所近くのチュンフック葬儀場で27日午後に挙行される。関係者は既に、FBIに対し、李殺害事件捜査要請した。FBI捜査によって、李進進が「消された」真相は明らかになるのだろうか。(Text By Jun Tanaka)

ログイン ユーザー登録
ようこそ ゲスト さん