Hugging Face SpacesのShare via Linkのボタンを削除したい & privateにしていてもアクセスができる?
Q&A
聞きたいこと
- outputタブの下にあるShare via Linkを削除する方法を知りたい
- privateに設定したspaceは自分のアカウントだけしかアクセスできない、という認識でよいのか?それともURLさえ知っていれば誰でもアクセスして利用できるのか?
状況
- hugging face spacesにspaceを作り、app.pyをデプロイし、spaceはprivateで稼働している状況
- 画面の下部に、Share via Linkというボタンが存在している(これは今まで見たことない)
- ボタンをクリックすると、リンク(URL)がクリップボードにコピーされる
- そのリンクをブラウザのアドレスバーに貼り付けてアクセスすると、このspaceが開かれる
- 異なるブラウザやシークレットモードブラウザに貼り付けてもアクセスできてしまう(現状、自分のアカウントとか関係なく誰でもアクセスできてしまう)
- という状況のため、現在の状況を理解しつつ、Share via Linkというボタンを削除したい & 自分自身のみでしかアクセスできないようにしたい
URLの内容(かなり長いので一部だけ)
- ドメイン:https://アカウント名-作ったspace名.hf.space/ という形
- ドメイン以降に "/?__theme=system&__sign="が書かれており、それ以降はランダムな文字の羅列
自分で確認したこと
- spaceの設定はprivateに設定している
- シークレットブラウザや違うブラウザ(Safari)から上記URLでアクセスすると、privateにしているspaceのアプリが開く
- シークレットブラウザからアプリが使えてしまう
- 異なるPC(開発アカウントとはなんら無関係)でも上記のアドレスでアクセスができてしまう
- https://アカウント名-作ったspace名.hf.space/ というアドレスでアクセスした場合、404のページが開く
- spaceの下部に"設定"という項目があり、そこの説明ではプログレッシブウェブアプリということが書かれていた
- spaceを削除し、ローカルリポジトリのgitを削除し、最初からspaceを作り直し、git pushでデプロイしたが、解決せず
- https://www.gradio.app/guides/sharing-your-app gradioの機能でSharing Demosの記事を見つけ、意図的にshare=Falseを追加したが、ボタンは消えず、URLも未だ有効の状態
- Gradioについて調べたり、URLの内容を見る限り、https://アカウント名-作ったspace名.hf.space/ というふうに.hr.spaceと書かれている以上、これはhugging face側の問題だと結論づける
- spaceを意図的に再起動→結果として解決せず
- Google検索で,https://アカウント名-作ったspace名.hf.space/ というのは埋め込みに使うということがわかった。だったらprivateになっていたら、自分以外がアクセスできて使えるのはおかしくね?
- 埋め込み制御ができるという話が公式に書いてあるが、Embed This Spaceの選択項目がない?(明日以降確認する)
https://huggingface.co/docs/hub/spaces-embed
- 他の人が作ったgradioを見る限り、Share via Linkのボタンが表示されているものもあった。しかしどういう条件なのか、https://アカウント名-作ったspace名.hf.space/ というふうにコピーできるものもあれば、ドメイン以降に "/?__theme=system&__sign="が書かれているものもある
- publicの状態で推論を実行して、画像生成したのち、Share via Linkをクリックするとhttps://アカウント名-作ったspace名.hf.space/?deep_link=??????????? というURLがコピーされていた。これにアクセスした画像生成した際の画像が表示される(誰にでも共有できる状況).....昨日とURLが変わってる???????
- publicからprivateに変更し、上記URL(deep_link)に再度アクセスした場合、404に遷移する
- privateの状態で、画像生成を実行し、入力した元画像と生成した画像が表示されている状態で、Share via Linkをクリックするとhttps://アカウント名-作ったspace名.hf.space/?__theme=system&__sign=.... がコピーできる。そのURLをもとに、第三者としてブラウザのアドレスバーからアクセスすると、画面上に入力した元画像と生成した画像が表示されている状態のページが表示される。よくわからないが、現状、Hugging Face Sapcesが新たに実装した共有用の機能だと思っているが、そもそもprivate状態のspaceで外部へ画像情報をURL共有ができて、そのままprivate状態のspaceの機能を使えるのはどうなのか.....❓
- これ以上はShare via Linkを削除する方法やprivateの仕様について対処するのは時間の無駄と判断.....
補足
すでに2つほど同じ形式のapp.pyをデプロイしており、今回それらのうちの一つをコピーし、3つ目を作成したものをspaceにデプロイしています。他の2つに関してはShare via Linkのボタンは表示されておらず、3つ目のみ表示されています。特段、Share via Linkのボタンを表示するような制御は設けていません。
インターフェースのソースコード
app
iface = gr.Interface(
fn=upscale_images,
inputs=gr.Image(type="pil"),
outputs=[gr.File(), gr.File(), gr.Image(type="pil")],
title="タイトル",
description="説明文",
)
if __name__ == "__main__":
iface.launch(share=False)
0 likes