【実践】アイコンメーカーで少しえちな雰囲気に作ってみます。

皆さん、こんにちは。

どんなアニメにも、女の子が登場人物にいますと、1クールに1回ぐらいは、グラビア系のセクシーカットが多くある話が有りますよね^^。

seaart ai にも、クイックAIに投稿ユーザーの作品が出る様になって、面白いフィルターも増えました。その辺りを上手く利用して、少しだけ、えちな雰囲気のアバターを作ってみます。

BOOTH内にも、水着や少し露出の有る衣装アイテムも有りますので、ご案内しながら進めていきますね^^。

普段使いとは違いますが、実際にBOOTH内でも、セクシー系の衣裳アイテムも販売・配布されています。自分好みの水着を買って、アニメのグラビアカットにしてみたら、こんな感じになります!と言う様な雰囲気でご覧下さい。

ポイント① AIが作ったプロンプトの最初に”汗をかいている”をプラスする。

詳細は、後半のイラスト加工の項目に記載していきます。

最初は、定番のチェック柄ビキニとサンダルの女の子です。(AI加工の際に、チェックの水着が花柄になってしましましたがご容赦下さい💦)使用させて頂いたアイテムは、此方の2種類、両方とも無料配布の有りがたいアイテムです^^。

左の水着ですが、今回使わせて頂いたアイテムもパターンが6種類有って、選択出来るので有難いです。

Type2の方には、個性的なカラーも有りますし、色も変えられるようですので、一つ、持っておくと良いかもです^^。右のサンダルですが、いつも、見ているshopさんのアイテムです。水着に合わせて、カラーも6色ありますから、使い易いアイテムです^^。

では、早速着用してみます。

今回は、水着ですのでインナー(ボディースーツ)に着用します。①②上半身インナーに来ました。③テクスチャーを編集から、編集画面に移動して、レイヤー横の小さなをクリックして、レイヤー1を作ります。④作ったレイヤーで右クリック、別窓が出ますので⑤インポートして、ダウンロードファイルのお好きなカラーを選んで下さい。

うーさん
うーさん

カラーに迷ったら、レイヤーを重ねて作って、👁マークで後から調整しても、だいじょうぶです。上のレイヤが優先して表示されています。

⑥基本色に✔が入っているか確認して、をクリックしますと⑦カラーピッカーが出ますので2か所の印を移動してカラーを変更する事も出来ます。

サンダルは、vroidcustomitemなので、簡単です。⑧カスタムから⑨インポート、編集画面の部分の👁マークを調整して、ご希望のカラーにして下さい。

全体が、出来上がりましたら、左上の3本線から、名前を付けて保存、右上の↑からVRMエクスポート(他のアプリで使用する場合)を行います。

VRoidstudioで元画像を作ってしまう場合ですと📷マークから、撮影モードに移動して、元画像を作って下さい。

seaart ai で画像を作ってみる

無料AI画像ジェネレーター:テキストでAIアートを創造 - SeaArt AI
SeaArt AI 画像ジェネレーターを使用して、驚くほどのAIアート作品を無料で創造しましょう。30万以上のモデルやスタイルを体験し、AIツールを使って創造性を発揮し、コミュニティで交流しよう。

画像を作る際に、一番悩むのがmodelとLoRAの選択だと思います。私が作った画像に関しては、参考に掲載していますが、今回は、簡単にやれる方法(ing2img)を、ご案内してみます。

此処まで読まれた皆さんは、既にVRoidstudioで作った元画像をお持ちだと思います。クイックAIというワンクリックで創作可能なフィルターも有りますが、今回は、modelとLoRAを使ってやって見ます。

seaart aiに行きますと、沢山の投稿作品が有ります。(どちらかと言うと、素敵な女性が多いです💦)

お顔の雰囲気や画調などを見ながら、これ良いなと思ったら、右上の赤い創作()、スマホですとそのまま画像をタップします説明画面に移動します。

説明画面に来ますとの部分、スマホですと画面がさらに切替わりまして、この投稿者さんが使用したmodelやLoRAが出て来ます。

説明画面のアイコンをクリックしますと、model(LoRAも)詳細が出ますので、そこでお気に入りに入れておきます。

もし可能で有れば、最初は、入力されている数字も控えておくと良いです。(ノイズ除去強度やLoRAの数字)

プロンプトから作る場合はを変更したら良いだけですが、img2imgの場合は、AIが自動的に新しいmodelとLoRAを選択するので、もう一度、先程のmodelとLoRAを選択し直します。

うーさんの一言

私の場合ですが、最初は、お気に入りを使うのですが、組み合わせは適当💦、入力数字も適当な感じで、希望するイメージにするのに、かなりスタミナを消費しました。

投稿作品のデーターを完全にコピーする様にしたら、大分、安定した様に感じました。

プロンプトに汗をかいている” をプラスする。

すこし、繰り返していると、自分なりの選択が出来る様になりますし、ストレスも少なくなってくると思います^^。

此処まで来ると、modelとLoRAが決まっていると思います。今回、AIが、作ったプロンプトがこちらです。

ビキニ, 写真のようにリアルな完璧なボディ, 全身:: 晴れた天気::, かわいい3Dアニメの女の子のレンダリング, リアルな陰影の完璧なボディ, リアルなアニメ 3D スタイル, 滑らかなアニメCGアート, アニメ風3D,ビーチの近くに立っている, 太陽が輝くビーチで

そのままでも、全然よいのですが、正面向きのポースは、どうしても、女性らしい体のラインが出にくい感じになりやすいです。

そういった時に、プロンプトの最初に汗をかいていると言うワードを入れますと、肌に光沢感が出て、よりラインが強調されて、良い感じです^^。

model CityEdge_StyleMix

ノイズ除去強度 0.55

LoRA 百花缭乱/midjourney 二次元/midjourney anime style Lora 0.5

LoRA 水彩 | watercolor 0.5

今回は、ノイズ除去強度をいつもより、少し高めにしてみました(いつもは0.5)。

同じ、アバターを使って、もう1枚、作ってみました。model、LoRAは全て同じ条件にしています。

うーさんの一言

水着アバターをimg2imgする場合、肌の露出が多いと判断されるとseaart aiが読み込まない(規約違反と出ます)場合が、有りますので覚えておかれると良いかもです。後姿のアバターも実際はひざ下位まで構図がありましたが、この形に修整して、読み込んでくれました。

ポイント② 既存のポーズを使う場合は少し回転させる。

二人目は、アラビア風衣装の美少女です。何の先入観も無くても、アラビア風衣装の美少女と言うだけで、少しえちな雰囲気を想してしまうのは、私だけでしょうか💦💦。

あれこれ、衣裳アイテムを探していますと、丁度、良い感じの物を見つける事が出来ましたので、今回は、そちらを使わせて頂きます。

左の衣裳アイテムのshopさんですが、いつも、配布開始から1か月間は、無料配布して下さっています。今回は、えちな感じと言う事で、あれこれ探していまして見つけえたのですが、期間は、過ぎていました💦。それでも、200円で購入出来ますし、vroidcustomitemなので、簡単着用です。

それと、これを購入すれば、靴まで、全て揃っているのも有りがたい点です。右のVRoidstudioポーズ集ですが、VRoidstudioはアバターの静止ポーズを付けるのが少し難しいと感じますし、デフォルトのポーズの数も少ないです💦。

ですので、こういったポーズ集は有難いですし、今回の分は、全体の半分以上が座ったポーズなので、目的に対して有効だと思います。

では、早速、着用してみます。

①②は、③カスタムが見えていれば自由な場所で良いので④からインポートして下さい。

全部で5種類のvroidcustomitemファイルが有りますので、実際に付けながら、お好みに合わせて使用して下さい。一度、インポートしたファイルは、トップスのカスタムアイテムの保存されていますので、何度でも、やり直す事が出来ます。着用が終わりますと、編集ページに移動していますので、👁マーク(色が薄い物が表示されています)で調整しながら、お好みに合わせて下さい。

うーさん
うーさん

調整ページから、他のアイテムに移動したい場合は、左側のパーツアイコンをクリックすると移動が可能です^^。

何かの操作で、基本画面に戻ってしまったら⑤から調整画面に移動出来ます。

うーさんの一言

今回は、vroidcustomitemファイルとは別に、pngファイルも入っていました。細かいレイヤー操作で、お好みに合わせていきたい方には、有難いですね^^。

問題が無ければ、左上の3本線から名前を付けて保存、右上の↑からVRMエクスポート(他のアプリで使用する場合)して下さい。

次は、ポーズの読み込みをやって見ます。簡単です!

アバターが完成したら、右上の📷マークから撮影ページに移動します。①左のポーズ・アニメーションを選択しますと、右が女性アニメーションになっていますのでをクリックして、ポーズに変更して下さい。

③でダウンロードしたファイルの好きなポーズを選んだら、④で撮影可能です。

うーさん
うーさん

読み込む際にファイルを見ても、どんなポーズか分からない事が多いですが、殆どpngの画像が付属していますので、別窓で見ながら進めると良いです^^。

既存のポーズを使う場合は少し回転させる。

既存ポーズを使用する際に、選択しますと正面とか横向きとか、方向がハッキリしている物が多いですが、実際に読み込んだら、少しゆっくりと観察して、一番良い向きに変えるだけでも、雰囲気は大分変って来ます。

折角、此処まで仕上がっていますので、最終の画像を作る際に、より女性らしく見えるラインを選んで見て下さい。元画像を使って仕上げるimg2imgの手法ですと、こういった体の向きなども、しっかりと最終の仕上げに反映されてきますので、より自分好みに仕上がって来ます。

2枚目は、綺麗め系のmodelとLoRAを使ってみました。同じアバターからでも、選択次第で、大分イメージを変える事が出来ます。

model CamelliaMIx_2.5D ノイズ除去強度 0.55

LoRA 头像设计-京剧女孩 1.0

今回も、正面向きの時に結果が良かったので、ノイズ除去強度は少し高めにしました。

ポイント③ 光源(太陽の方向)を、横からの形にする。

3人目は、デニム水着の美少女です。おとなしめの雰囲気の中で、少しえちな感じが出せればと思っています。

うーさんの一言

今回も使用させて頂くアイテムは、2種類です。肌テクスチャーは、普段、余り使う事が有りませんが、水着など肌の露出が多いアイテムを使用する時に、既に出来上がったアバターを着替えようとすると、現在、着ているアイテムによっては、肌の貫通(衣装アイテムから肌が浮き出てしまう)などの関係で、肌の一部が無い時が有って、そんな時に重宝します^^。

では、早速着用してみます。今回の場合は、ビスチェデザイン、ホルターネックデザインの変更や、カラーの変更も、一旦は、ベースになる衣装アイテムをvroidcustomitemファイルで着用して、後からテクスチャーを上書きする事で変更するタイプです。

①②は自由な場所で③カスタムが見えましたら④インポートして下さい。ファイルは、上からビキニのスカート部分、ビキニ本体、パーカーとなっています。

画像は、全てを着用した状態ですので、ホルターネックデザインに変更する場合やカラーの変更も、同梱されているテクスチャーを使用して行います。

変更が確定している時は、そのまま既存レイヤーの上にインポートしても良いですが、お試しで、色々見てみたい場合は、ボタンでレイヤーを追加してインポートされると良いです^^。

ビキニのスカート部分やパーカーは、非表示に出来ますので、各レイヤーの👁マークで調整して下さい。調整ページに移動出来ない場合は、各項目のから、移動出来ます。

肌マスクもやって見ます。すこし、強引に状況を作っていますので、ご了承下さい💦。

着用していた衣装を非表示にしたら、体の一部が無くなってしまったら、方法は、いくつか在りますが、無くなった部分を足したら良いよね!と言うシンプルなやり方です^^。

①肌マスクをクリックして、レイヤーを追加したら先程ダウンロードしたファイルをインポートしますと、足りない部分が追加されます。

うーさん
うーさん

肌マスクは、小麦色や筋肉質など、有料で他の作家さんも販売されています。こだわりの肌、使ってみたいなと思ったら、で検索してみて下さい。

光源の方向(太陽の向き)を横からの形にする

此方も少しの工夫では有るのすが、太陽の向きの調整です。VRoidstudio内で、最終出力の際にも、光の向きが調整可能ですし、他のポーズアプリを使う際も同様の調整が可能です。

上に見えている作例を見ましても、アバターの元画像の光の向きが、しっかりとAIイラスト加工にも反映されています。

少しの工夫では有りますが、結果は必ず良くなりますので、良かったら、お試し下さい。

では、使用したmodelとLoRAを見ていきます。

model Animagine XL V3.1 ノイズ除去強度 0.51

LoRA anime cute girlXL 1.0

seaart ai で実験してみる

今回は、一つ、実験を💦してみたいと思います。

AIイラストを作る際の、img2imgとプロンプト(テキスト)入力の違いです。

公園の芝生の上にしゃがんでいる青い下着を着たアニメの女の子, 滑らかなアニメCGアート, 写真のようにリアルな完璧なボディ, キャラクターは自然なポーズをとっている, リアルなアニメ 3D スタイル, しゃがんでいる美しいアニメの女の子, 座りポーズ, リアルなビキニ, リアルな陰影の完璧なボディ, アニメの女の子がしゃがんでいる, リラックスしたポーズ, 魅力的なポーズ, 全身:: 晴れた天気::

此方が、今回のAIイラストを作る際にseaart aiが作ったプロンプトです。では、これをそのまま使って、プロンプト入力で創作したらどうなるかやって見ます。modelとLoRAは同じ物を使用します。

プロンプトに沿った形で出来てはいますが、自分のイメージとは少し違いました💦。プロンプト入力は、どんな物が出来るのだろうと言う楽しみが有りますが、自分にイメージが有ると、たどり着くのが大変な事が多い気がします。

うーさん
うーさん

一度、希望のイメージが出来ると、バリエーションと言う項目が有るので、そこから近い変化が可能です。

img2imgは、最初のアバター作りに少し時間と手間が掛かりますが、AIイラストにする際には、直線的に自分のイメージに近づける事が出来ると感じます^^。

実際の創作となりますと、作成には、少々時間が掛かりますし、その間、どんなイラストが出来るかをAIに委ねながら、楽しく待つのか、自分の期待通りに出来るのかを待つのかは、其々のお考えですので、いろいろ試しながら自分に合った方法でご利用頂けますと幸いです。

使用しましたモデルとLORAを記載します。

model GhostMix ノイズ除去強度 0.55

LoRA WLOP Style LoRA 1.0

ポイント①~③について

本日、ご案内したポイント①~③ですが、AIイラスト加工する際に、ノイズ除去強度を上げ過ぎると仕上げがAI任せの方向に大きく偏って来るので、反映されにくいかもです。私の感覚では、ノイズ除去強度が6.0以上になりますと、元画像と大分違ってプロンプト重視になってくる気がします。

良かったら、参考になさって下さい。

皆さんのアイコン作成の一助になれば、幸いです。

お疲れ様でした。

コメント

");const o=ie?ie.createHTML(e):e;if(nt===tt)try{t=(new W).parseFromString(o,at)}catch(e){}if(!t||!t.documentElement){t=le.createDocument(nt,"template",null);try{t.documentElement.innerHTML=ot?ae:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),nt===tt?ue.call(t,Ie?"html":"body")[0]:Ie?t.documentElement:i},bt=function(e){return ce.call(e.ownerDocument||e,e,H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},St=function(e){return e instanceof B&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof z)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Rt=function(e){return"function"==typeof b&&e instanceof b},wt=function(e,t,n){pe[e]&&u(pe[e],(e=>{e.call(o,t,n,ut)}))},Ct=function(e){let t=null;if(wt("beforeSanitizeElements",e,null),St(e))return _t(e),!0;const n=st(e.nodeName);if(wt("uponSanitizeElement",e,{tagName:n,allowedTags:Ne}),e.hasChildNodes()&&!Rt(e.firstElementChild)&&_(/<[/\w]/g,e.innerHTML)&&_(/<[/\w]/g,e.textContent))return _t(e),!0;if(e.nodeType===J)return _t(e),!0;if(Me&&e.nodeType===Q&&_(/<[/\w]/g,e.data))return _t(e),!0;if(!Ne[n]||Ce[n]){if(!Ce[n]&&Dt(n)){if(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n))return!1;if(we.tagNameCheck instanceof Function&&we.tagNameCheck(n))return!1}if(Ye&&!qe[n]){const t=re(e)||e.parentNode,n=oe(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=X(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,$(e))}}}return _t(e),!0}return e instanceof R&&!Et(e)?(_t(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!_(/<\/no(script|embed|frames)/i,e.innerHTML)?(ke&&e.nodeType===Z&&(t=e.textContent,u([fe,de,he],(e=>{t=g(t,e," ")})),e.textContent!==t&&(p(o.removed,{element:e.cloneNode()}),e.textContent=t)),wt("afterSanitizeElements",e,null),!1):(_t(e),!0)},Lt=function(e,t,n){if(Be&&("id"===t||"name"===t)&&(n in r||n in mt))return!1;if(ve&&!Le[t]&&_(ge,t));else if(De&&_(Te,t));else if(!Se[t]||Le[t]){if(!(Dt(e)&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,e)||we.tagNameCheck instanceof Function&&we.tagNameCheck(e))&&(we.attributeNameCheck instanceof RegExp&&_(we.attributeNameCheck,t)||we.attributeNameCheck instanceof Function&&we.attributeNameCheck(t))||"is"===t&&we.allowCustomizedBuiltInElements&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n)||we.tagNameCheck instanceof Function&&we.tagNameCheck(n))))return!1}else if(Ze[t]);else if(_(Ae,g(n,Ee,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!Ke[e]){if(Oe&&!_(ye,g(n,Ee,"")));else if(n)return!1}return!0},Dt=function(e){return"annotation-xml"!==e&&h(e,_e)},vt=function(e){wt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=st(a);let p="value"===a?c:y(c);if(n.attrName=s,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,wt("uponSanitizeAttribute",e,n),p=n.attrValue,n.forceKeepAttr)continue;if(At(a,e),!n.keepAttr)continue;if(!xe&&_(/\/>/i,p)){At(a,e);continue}if(Me&&_(/((--!?|])>)|<\/(style|title)/i,p)){At(a,e);continue}ke&&u([fe,de,he],(e=>{p=g(p,e," ")}));const f=st(e.nodeName);if(Lt(f,s,p)){if(!We||"id"!==s&&"name"!==s||(At(a,e),p=Ge+p),ie&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(f,s)){case"TrustedHTML":p=ie.createHTML(p);break;case"TrustedScriptURL":p=ie.createScriptURL(p)}try{l?e.setAttributeNS(l,a,p):e.setAttribute(a,p),St(e)?_t(e):m(o.removed)}catch(e){}}}wt("afterSanitizeAttributes",e,null)},Ot=function e(t){let n=null;const o=bt(t);for(wt("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)wt("uponSanitizeShadowNode",n,null),Ct(n)||(n.content instanceof s&&e(n.content),vt(n));wt("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(ot=!e,ot&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Rt(e)){if("function"!=typeof e.toString)throw A("toString is not a function");if("string"!=typeof(e=e.toString()))throw A("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Ue||ft(t),o.removed=[],"string"==typeof e&&(je=!1),je){if(e.nodeName){const t=st(e.nodeName);if(!Ne[t]||Ce[t])throw A("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=Nt("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===V&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Fe&&!ke&&!Ie&&-1===e.indexOf("<"))return ie&&ze?ie.createHTML(e):e;if(n=Nt(e),!n)return Fe?null:ze?ae:""}n&&Pe&&_t(n.firstChild);const c=bt(je?e:n);for(;i=c.nextNode();)Ct(i)||(i.content instanceof s&&Ot(i.content),vt(i));if(je)return e;if(Fe){if(He)for(l=se.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(Se.shadowroot||Se.shadowrootmode)&&(l=me.call(a,l,!0)),l}let m=Ie?n.outerHTML:n.innerHTML;return Ie&&Ne["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&_(q,n.ownerDocument.doctype.name)&&(m="\n"+m),ke&&u([fe,de,he],(e=>{m=g(m,e," ")})),ie&&ze?ie.createHTML(m):m},o.setConfig=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ft(e),Ue=!0},o.clearConfig=function(){ut=null,Ue=!1},o.isValidAttribute=function(e,t,n){ut||ft({});const o=st(e),r=st(t);return Lt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&(pe[e]=pe[e]||[],p(pe[e],t))},o.removeHook=function(e){if(pe[e])return m(pe[e])},o.removeHooks=function(e){pe[e]&&(pe[e]=[])},o.removeAllHooks=function(){pe={}},o}();return oe}))
タイトルとURLをコピーしました