「アンダースコア」を含む日記 RSS

はてなキーワード: アンダースコアとは

2023-11-15

オブジェクト指向人類の退化の象徴

オブジェクト指向とかかっこいい言い方をしても無駄だ。従来の構造プログラミングから進歩したことなど一つもない。オブジェクト指向がなぜダメであるのか、それを今から話すぜ。

 

1. データと処理をまとめるという発想。

データと処理をまとめてクラスとして置くという発想がある。しかし、このようなことをしなくとも、モジュールという単位で利用データと処理の集合をまとめればよかったので、クラスを使う必要はない。しかクラスインスタンス化のときに、不要情報まで持ってくるのでメモリ効率が明らかに悪い。コンピュータ進化しているかメモリのことはあまり考える必要がないとはいえ必要ない処理をまとめて閉じ込めるのは無駄が多い。なぜクラスという名詞概念分類できると考え始めたのかは不明だが、アルゴリズムデータ構造という構造プログラミング手法を、クラスと型というパラダイムに変換することで型にうるさいC++馬鹿を生み出し、彼らが発狂することになってしまった。しかデータと処理にわざわざ依存関係を持たせて、変更に対する柔軟性を失わせている。

 

2. 継承

継承によって既存構造を持ってこようとする必要性が全く無い。それどころか、継承を使うことによってプログラムスパゲティ化し、依存関係グラフがややこしくなってしまう。継承など使わず必要情報スコープの限られた共通変数、または関数引数として用意しておけば良い。もしクラスをどうしても使いたければ、共通インターフェイスをもたせたほうがマシであるインターフェイスを使えば、クラス利用者意識すべきpublicメソッドがなんであるか把握できる。

 

3. カプセル化

オブジェクト指向の中で役立つ概念カプセル化だけであるしかし、カプセル化クラスなしで構造プログラミング方法実装できる。pythonでは、モジュールの中でアンダースコアから始まる関数を用意しておけば、それがprotectedやprivateと似たように機能させることができる。オブジェクト指向がなぜカプセル化独自概念だと言い始めたかは謎。

 

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-07-24

バンド名っぽいIT用語をたくさん教えてクレークレー

ITエンジニアとかが見ると「アレ?」って思う、でもバンド名としてもアリっちゃアリ、という言葉を探してます

自分バンドつけます。今んとこ思いついたのは

 

 

とか

 

追記

朝起きてはてブ見たらホテントリにこの記事があってのけぞった(笑)

みんなありがとう、案はゆっくり拝見しま

2021-12-03

アンダースコアの思い出

ラクダcamelが嫌いで名前をつける時にはアンスコで繋いでいたんですよ。

たいていの言語アンスコは使えるから問題なかったんだけど

ある時、Mathematica を使うことになってね。

そしたら意味不明な結果になったのであった

もうよく覚えてないけど、エラーはでなくて結果がおかしかった。

Mathematicaでは名前アンスコは使わない方がいい

まあ、Mathematica 使うようなエライ人はこんなこと言わなくても分かると思うけど。

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