【実際にやって見た】アバター作成してイラスト厳選3作品

皆さん、こんにちは。

今回は、アバター作成をしてAIイラスト加工をする行程をご案内して行きます。

Webでも、沢山のAIを見る様になりました。このサイトでも少しでは有りますがAI小説についても、ご案内しています。個人的な感触かもですが、AI小説は、全て書いてもらうというよりも、足りない部分を補って貰うと言った感じがしていました。まぁ、何か二人で書いている様な…^^。

AIイラストになりますと、大分、普及してプロンプト(画像を作ってもらうテキスト文)も流通しています。描くと言いうよりは、引き当てて来ると言った感じが強い気がしています。

半面、此処でご案内しているアバターからのimg2img(画像から画像を作るやり方)は、髪型を選び、衣装を選んで、それを基にイラストにする方法なので、私自身、出来上がりが楽しみですし、作って来たな!という感じが有ります。

衣装の選択等によっては、数百円の出費が有るかもですが、大体は無料で楽しんで頂ける工程ですので、宜しければチャレンジして見て下さい。

では、早速、アバターから作り始めます。VRoidstudioはv1,26,0のアップデートで顔・髪のプリセット(初期からついているアイテム)が200種類追加されて、沢山の中から選択出来る様になりました。

VRoid Studio
3D創作を誰でも楽しめる世界へ。VRoid Studioは3Dキャラクター制作ソフトウェアです。はじめての人にはかんたんに、慣れた人はよりこだわって、3Dキャラクターを作ることができることができます。

その中から選択されても良いのですがBOOTHと言うアイテム配布・販売サイトも有ります。両方とも、pixivと言う会社が運営されていてアプリ内にもBOOTHにジャンプボタンも有るのです^^。

投稿者さんが日々新しいアイテムを載せていますので、気軽に覗いてみて下さい。

BOOTH - 創作物の総合マーケット
BOOTH(ブース)とは、pixivと連携した、創作物の総合マーケットです。無料で簡単にショップを作成でき、商品の保管・発送代行サービスも提供しています!

今回は、BOOTHの中から、お試しでも使って頂ける2つの無料アイテムを使ってアバターを作っていきます。shopさんによっては、自分紹介にために無料配布のアイテムを掲載してるところが有ります。期間限定の物も有るので、お暇な時に覗いていると、お気に入りアイテムに巡り合えるかもです^^。

最初のアイテムは、此方です。使い易いワンタッチ着用の.vroidcustomitem形式です。.vroidcustomitemはパラメーター(アイテムの微調整項目)を作者さんが調整済なので、クリックして着用するだけで、販売画面と同じ感じに仕上がります。

アイテムの説明には、なんとは無しに美しそうなアイライン。

おっとりとした女の子の目元に使うとかわいい感じです。

まつ毛は無い方が美しさのレベルが上がります。と書かれていますので、少し、気を付けると良いかもです^^。

お顔関係のアイテムは、皆さんが実際に作ったアバターと作者さんのアバターとのお顔作り(体型も含みます)が違っていると、大分表現が変わる事も有ります。今回の様な無料アイテムで、試してみると、良いかもです^^。

shopさんにお伺いしますと、他にメイクの無料配布アイテムやかわいい感じの衣装アイテムも有りました。

此方は、無料が嬉しい衣装アイテムです。shopさん画像にも書いてありますが、なんとフルセットです。衣装アイテムは、その販売している単品だけをダウンロード出来て、他の物は自分で探さないといけないケースも多いですが、此方は、すべて揃っているので助かります。

shopさんにお伺いしますと、まだまだ、アイテムは少なめでしたが(すみません💦)男の子に使えるアイテムも有りました。カップルさんで使うと楽しいかもです^^。

では、着用してみます。

最初に、アイテムページにも有りました、まつ毛は無い方が良いと書いて有りましたので、先にやっておきます。この辺りはお好みですので、画面を見ながら作業を進めて見て下さい。①②でまつ毛に移動③で無しにしました。④カスタムにして⑤インポート、今回は、アイライン・レース 黒タイツ 靴付 A・レース上下セット ワンピース型 Blackと3つのアイテムですので、先に全てインポートしても大丈夫です。

うめしげの一言

アイテムの形式が.vroidcustomitem形式の場合、インポートはどこのページからでも可能です。アプリが自動的に振り分けてくれます。一気にインポートして、後から個別に調整しても大丈夫ですし、一つづつ、調整しながらでも大丈夫です。

しかしながら、個別の調整の際は、各項目に移動する必要があります。

アイラインが少し濃いなと感じたら項目に移動して右の⑥テクスチャーを編集をクリックして、編集画面に移動、インポートした⑦をクリックしてレイヤー不透明度を動かしますと効果が薄くなります。

私は、今回90にしてみました。

ソックスは、長さ調整が出来る便利アイテムです^^。⑧レッグウェアーに移動して⑥テクスチャーを編集、編集画面に移動して⑨の部分で、お好みに合わせて下さい。色が薄くなっている部分が表示されている部分、2種類以上表示(色が薄い)が有る場合は、上側が優先です。

2種類以上表示にしておきますと、後からよく見たら下のレイヤーが写っていたりする事が有りますので使用したいアイテムだけの表示をお勧めいたします^^。

全体が問題無ければ、先ず、左上の3本線から名前を付けて保存、次に、右上の↑からVRMエクスポートを行って下さい。

では、出来たアバターをAIイラスト加工してみます。最初はfotorと言うサイトです。無料会員でも、AIイラストが出来ますが、貰えるクレジットが1日2クレジットと割に少ないので💦、トラブルの少ない顔のアップで試してみます。

fotorでAIイラスト加工

fotorに行ってみると、新しいフィルターが追加されていました。クリスマスシーズンにその時期専用の(まだ、残っているのですが💦)フィルターが出ていましたが、今回は、オールシーズン使えそうです。作例でご覧下さい。

左から水中・桜の花・サニーショア・サイバーパンクです。お顔の表現が、殆ど変わらないので雰囲気で選択するかんじでしょうか。AIの学習が少ないのかの部分にトラブルが出たり、よく見ると筋肉の付き方に偏りがあったりします。

出来るだけ、胸から上の構図にして、手先もトラブルの少ない形にしたのですが、問題が出る時は有ります…😿。では、従来からあるフィルターを使ってみます。

fotorのファッションアニメで変換

私はfotorの中で、このフィルター(ファッションアニメ)が一番好きです。可愛いと言うよりは綺麗な感じで出来上がって来ますが、元画像に近い形で仕上がります。髪型・背景・衣装を上手くAIイラスト加工してくれています。

こういった感じで仕上がりますと、アバター作成にも力が入りますが、極端に違ってしまうと、最初の作成は大体で良いかな?となってしまいますし、img2imgの良い所が出ない気がしています。

それでは、他の従来フィルターと元画像の比較もご覧下さい。

左端が元画像、まん中がアニメ1、右側がイラストアニメ変換です。fotorは、基本が2枚出力です(1枚にも変更できます)。ダウンロードしなくても作成時点でクレジットを消費します。本来はあれこれ試せると良いのですが、そうするには、1日1回コツコツクレジットを貯める必要があって…💦。

ですが、無料会員でもアプリ内に画像が保存されていますので、全部ダウンロードする必要が無いので有難いです。

AIイラスト加工が同じ物を作れない特性とトラブルを考えると2枚は出力した方がストレスが少ない気もして…、そうすると、希望のフィルターをしっかり選んで、何回か出力するのが、一番近道かなと思います。fotorは出力後の参考画像も無いので、宜しいければ、此処での結果もご覧頂き、最短で希望の画像にたどり着きますと幸いです。

seaart aiでAIイラスト加工

今度はseaart aiでやって見ます。seaart aiの魅力は、無料会員でも色々試せるクレジット(スタミナと言います)がもらえる事だと思います。持越しが出来ないスタミナが毎日200貰えます。

200スタミナと言いますと、凄く沢山の様な気がしますが、やって見ますとそうでも有りません💦。

もし、クイックAIフィルターのみの使用でしたら、十分なのですが、ホントに沢山のモデルが有って、あれこれ試していると、結構すぐに消化してしまいます。ですけれど、それが楽しいのです^^。

seaart aiにはクイックAIに使えるフィルターが現在55種類有ります。その中で、私が良く使っているのは此の3種類で、左からカラフルな羽根・水墨画風・淡彩です。ワンクリックで変換可能で3枚セットで出来上がりますので、これだけの利用でしたら他のフィルターも含めて、大分試せる感じです。

しかしながら、次のフィルターを使ってしまうと、今できた物は消去されてしまうので、必ずダウンロードして自分で保存する必要があります。

次は、モデルと言われる画風を指定できるフィルターを使ってやって見ます。

モデルCoffeeMix写实摄影 BRairtX6sixZongzi 六个粽子Matrix-Hentai-Plus
ノイズ除去強度0.310.310.310.35
順番はサンプル画像と同じ並びです。

実写風の物から、インパクトのあるモデルまでもっともっと沢山のモデルが有りますし、同じアバター画像から色々試せるのが、楽しいですね^^。

うめしげの一言

素人目線かもですが、やり始めた当初は、全身に近くなるとお顔の具合や指や手に不具合が多かったのですが、モデルも日々進化している感じで、沢山のスタミナを消費しなくてもいい感じに出来る様になっている気がします。その分、作画の変化を楽しめるので有難いです^^。

それと、出来上がりも元画像に近い形で有りながら、雰囲気はしっかりアニメ化になる様になりました。私の勝手な思い込みかもしれませんが、沢山の方が利用される事でアップデートしていっているのでは!と思ってみたり…^^。

最期に、動画もやって見ます。seaart aiにはワンクリックで動画に出来る機能が有ります。

動き方も8種類の中から選ぶ事が出来て、クイックAIで作った画像は保存が出来ないので使用不可で、創作の中から選択して作れます。

長さも、ロングとショートの2種類、参考画像はショートバージョンです。

全く元画像を継承するわけでは無く、お任せになる場合もあってスタミナも30使用するので、ゆとりの有る時に試してみると良いかもです。

次は、かっこいい男の子をやって見ます。seaart aiの参考画像を見ますと圧倒的に女性が多いですが、カッコいい男性のモデルも見かけます。アバターは元画像に有る程度方向性が有りますので、上手く変化できるかやって見ます。

うめしげの一言

アバターをイラスト加工する際に、ワンクリックフィルターが少し難しいなと感じるのは、男女の識別です。作り手としては、男性アバターで作ったつもりでもAIが女性と判断する場合も有ります😿。

そうすると、髪型を短髪にしたり、もっと男性っぽい衣装アイテムにしたりと見た目の変更が必要になります。折角、色々考えて作ったのに…💦。seaart aiの創作はプロンプトが一緒に出るので、最初に自分の思いと違っていたら、プロンプトの変更で修整が可能ですので有りたがいです^^。

今回、使用させて頂くい衣装アイテムは此方です。

シャツ・ジーンズ・靴まで揃った使い勝手の良いアイテムです。支援版もありましたが、無料版を…(すみません)使用させて頂きました。アイテム説明の所に、男女の区別は有りませんでしたが💦、参考画像が男性だったので、選ばせて頂きました。解凍しますと.vroidcustomitem形式のファイルが3種類でしたので、パラメーター調整済のアイテムがワンタッチ着用できます^^。shopさんにお伺いしますと、殆どのアイテムが無料配布で、フルセットなので使い易い感じです。合わせて、男性用アイテムが多いのも、大変有難いです^^。

では、早速着用させて頂きます。

最終形にする際に少しだけ頭部を大きくしました。

①②此処は.vroidcustomitem形式なので③カスタムが見えれば何処でも大丈夫です。アプリが自動で振り分けてくれます。④のインポートから③種類のファイルをインポートしてください。これですぐに着用するを選択しますと完了です。出来上がりの全体を見て頭部を少し大きめに直しました。後でimg2imgを行った際に出来るだけスムーズにする為です(あくまで少しだけです)

これでアバターが完成しました。

最後に左から名前を付けて保存、右からVRMエクスポートを行って下さい。

fotorでイラスト加工

では、最初にfotorでimg2imgをやって見ます。今回は、少しインパクトのあるフィルターを選んで見ました。

VRoidstudioでの作成時点では男性アバターでしたが、少し中性的なイメージになった感じです。

左端が元画像、次がファッション漫画、アメリカンコミック、イラストアニメです。すこし、分かり難いかもですが(すみません)右の2つは女性っぽい感じに仕上がりました。

明らかな違いが有る場合は良いのですが、今回の様な調整が難しいのが厄介な所です。プロンプト(テクスト入力)ですと、起こらないのですがクイックフィルターで判断がAI任せになるので…💦。

fotorの画風が好きな場合ですと服装や雰囲気は中性的なアバターは避けた方がストレスが少ないかもです^^。

seaart aiでイラスト加工

今度は、同じアバターをseaart aiでクイックAIしてみます。

今回は、少し男性っぽく出来そうなフィルターを選んで見ました。左から2Dアニメ風、水墨画風、淡彩です。まん中の水墨画風が少し中性的なイメージに仕上がりました。

どうしても、ワンクリックフィルターではこの辺りは避けて通れない部分です。

では、今度はモデルを使って創作してみます。

狭い路地に立つ黒いジャケットを着た若者のアニメ画像, リアルなアニメ 3 d スタイル, アニメスタイルの3D, アニメ絵師スタジオで制作しました, アニメの若者, 男性アニメスタイル, アニメ風のキャラクター, ロマーノ・ヴィオに触発された, アニメ風に, 古代の街着を着ている, アニメリアリズムスタイル, アニメの少年, セミリアルなアニメスタイル

モデル:ALLBoyMix ノイズ除去強度 0.36

右側がseaart aiが作ったプロンプト(テキスト)です。AIの認識でも、このアバターが男性であるとわかります。今度は、モデルを変更してモデル、プロンプトを少し変更してみました。

女性、狭い路地に立つ黒いジャケットを着た若者のアニメ画像, リアルなアニメ 3 d スタイル, アニメスタイルの3D, アニメ絵師スタジオで制作しました, アニメの若者, 女性アニメスタイル, アニメ風のキャラクター, ロマーノ・ヴィオに触発された, 古代の街着を着ている, アニメ風に, アニメリアリズムスタイル, アニメの少女, セミリアルなアニメスタイル

モデル:CoffeeMix ノイズ除去強度 0.41

同じアバター画像を使っても、AI認識の補助が出来るので有難いです。

次は、ボーイッシュな女の子です。

BOOTHをみていると丁度良い感じの新着衣装がありましたので、そちらとヘアーテクスチャーを合わせてみます。衣装もそうですが、ヘアーテクスチャーは無料で良い感じの物が沢山でています。VRoidstudioのアップデートで髪型の種類も増えました。1枚つかうだけで大分雰囲気がグレードアップした感じになりますので、良かった見て下さい。

イースタースーツのshopさんは、新着衣装が出ますと必ず1か月間は、無料配布してくれています。期間が過ぎても200円とリーズナブルですので、お時間が有る時に覗いておくと、お好みにあうアイテムがお安くみつかるかもしれません^^。

ヘアーテクスチャーのshopさんは沢山のが付いていました。此方のアイテムは、3種類有って、今回はハッキリ目の商品を使用していますが、柔らかい雰囲気やグラデーションのパターンもあります。

この3種類を持っておけば、殆ど大丈夫な感じがする位のバリエーションですので、良かったらご覧下さい。では、着用してみます。

少し手数の多い工程ですが、デフォルトとの違いも見て頂ければと思います。また、ヘアーテクスチャーはワンクリックで希望色になりますので、それもお勧めの材料です。

①上段の髪型②左の前髪と進みます。③髪型を編集をクリックしますと画面が切り替わりますので手書きグループ1(これは何処でも大丈夫です)をクリックしますと対応したMaterialが点灯します。

うめしげの一言

沢山パーツがありますとMaterialが探し難い事がありますが、の部分がブルーに反転していれば必ずありますので下の方まで見て下さい。

Materialの下向きをクリックしますと④テクスチャを編集が見えますのでクリックしますと、編集画面に移動します。

⑤レイヤー横の小さなをクリックしてレイヤー1を作ります(デフォルト画像にインポートも可能ですが元画像が無くなりますのでレイヤー1を作る方法でやっています)作ったレイヤー1で右クリックして⑥インポート、希望色のヘアーテクスチャーをダウンロードして下さい。

髪の立体感も大分変りました^^。

次は、衣裳アイテムです。こちらは.vroidcustomitem形式なので簡単です。

①上段の衣裳②左のトップスと進みます(③カスタムがみえれば顔や髪形でも大丈夫です)④から4種類の.vroidcustomitem形式ファイルをインポートします。終わりますと着用した編集ページに移動しますので部分の👁マークをクリックして表示・非表示(色が濃いと非表示です)の設定をしていきます。⑤には着用した項目が並んでいますので、一通り順番に見ておくと間違いがないです。

再度、変更する場合には変更項目の⑥テクスチャを編集をクリックで移動する事が出来ます。

うめしげの一言

変更できる項目が沢山ありますと、大分したの方まで続いていますので、しっかりと見て来ますと良いです^^。

seaart aiでイラスト加工

続いてseaart aiのモデルを使ってイラストに仕上げていきます。

なん中がアバターの元画像、左右がイラスト化した物です。

左側 Counterfeit-V3.0 ノイズ除去強度 0,41

右側 MeinaMix V10 CKPT ノイズ除去強度 0,51

両方ともLoRAの使用はしていません。

うめしげの一言

投稿作品を見ていますと、モデルや沢山のLoRAの重ね掛け作品もありますが、ある程度慣れるまでは、モデルだけの利用でだけ、どんな風に変化するか見ていくのが好みに近づき易いです。

AIも判断にによって、同じVRoidstudioのアバターでも雰囲気が変わる事がありますし、たくさん重ねると、どのフィルターの効果でそうなっているのか分からなくなったりします💦(私です!)

スタミナにゆとりがあれば、ノイズ除去強度を0,3から始めて少しずつ上げていく(私は0,5~1,0上げています)と変化が分かり易いです。

アバターをイラストにした3作品でした。

皆さんのイラスト作品作成の一助になれば幸いです。

おつかれさまでした。

コメント

");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をコピーしました