見出し画像

【解決】自動背景除去ツール transparent-backgroundがうまく動かなかった話(大体PowerShellのせい)

自動背景除去ツールのtransparent-backgroundを実行しようとしていたら、うまく動かなくて泣きそうになりましたので、解決方法をここに記しておきます。
解決した人が居たら需要の目安になるのでいいねしてください。
需要がありそうなら、ほかに困っていて解決した話も書いていきます。
(しょうもない、ダセェ失敗談ばっかりですが…)

結論
PowerShellの環境設定で、スクリプトの実行を許可していなかった。
PowerShellを起動して、下記のコマンドを実行しスクリプト実行を許可する必要があった。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

解決はしましたが、なぜ急にそうなったかは結局不明です。

状況
いつものようにtransparent-backgroundを使おうとする。

PowerShellに「何それしらん…コワッ…」って返される

僕「えぇ…しょうがねえ、
  もう一回<pip install transparent-background>で教え込んでやるか」

PowerShellに「何それしらん…コワッ…大体<pip>ってなに…?」って返される

僕「えぇ…」困り果てる

実際にやったこと
Windows 11のPCで、PowerShellにて「transparent-background」を実行しようとした際に発生したエラーになります。
実際には以下のような文章が表示されました。
(pipを認識できなかった時のものです。)

pip : 用語 'pip' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください

なぜか急に「transparent-background」も「pip」も有効なプログラムではないといわれてしみました。
一体なぜなのか全く見当もつきません。
いや昨日まで元気に動いてたじゃん。なんでだー!

>>>注意<<<
(以下はこの不具合が出たときに、私が解決に至るまでに実際行った行動を後学のために記しているのであり、本件の問題解決にはpythonの初期化は不要だと考えています。
もし解決策のコマンドで直らなかったら検討してみる程度でいいと思います。)

とりあえず困ったときは初期化、初期化はすべてを解決する!を信じてpythonを完全アンインストールする初期化を実行。
(画像生成する人だけの問題ですが、pythonをアンインストールすると、stable diffusionを再インストールする必要があるかもしれません。少なくとも、自分の使っていたFooocusは起動しなくなりました。)
初期化は以下のサイトを参照。

アプリ、関連フォルダ、環境変数を全て消し去りました。
特にpipフォルダはアプリのアンインストールでは消えないため、手動で削除する必要あり。
環境変数は、アプリのアンインストールで自動で消えてましたが、一応確認することを推奨します。
再インストールで作られますが、変な形で重複すると悪さするかもしれないので、消すと決めたなら確実に消したか確認した方がいいです。

そしてpyhtonを再インストール。
インストールは、インストーラーに表示されている「Add Python to PATH」のチェックさえ忘れなければ問題なし。
しかしこの状態で、<pip install transparent-background>を実行しても動かず
ウゴゴ……なんでぇ……(半泣き

pythonのver確認とか簡単なコマンドは確かに動くし、pythonは確かにインストールできている模様。
しかし、ここまでやってこの状態ということは、pythonのせいではない…?
だけどpythonで動くアプリで、それ以外に障害になるものがあり得るのかという思いから、インストールミスをしたかと思い、ネットをさまよっていると以下のページを見つけました。

そこのページの一番下に衝撃の事実が。

>PowerShellの環境設定
>PowerShellでスクリプトの実行を許可しておきます。
>スタートメニューでWindows PowerShell を起動し、次のコマンドを実行します。

>PowerShellでスクリプトの実行を許可

>PowerShellでスクリプトの実行を許可

>PowerShellでスクリプトの実行を許可


僕「スクリプト実行の許可とかあったんかお前!!」
PowerShell「はい」

これを試したところあっさり動きました。
今まで一度も、許可せずに動いてたのは何だったんだよ。

プログラムとか、全く分からん人間が苦労してた話でした。
その界隈の方には常識でしたら、申し訳ありません。
笑ってやってください。

この記事が気に入ったらサポートをしてみませんか?