Spaces:
Sleeping
Sleeping
| title: Gradio User History | |
| sdk: gradio | |
| sdk_version: 5.34.1 | |
| app_file: app.py | |
| emoji: 🖼️ | |
| colorFrom: gray | |
| colorTo: indigo | |
| pinned: false | |
| fullWidth: true | |
| hf_oauth: true | |
| space_ci: | |
| trusted_authors: | |
| private: auto | |
| secrets: | |
| - SPACE_CI_SECRET | |
| - HF_TOKEN | |
| hardware: cpu-basic | |
| # Bring User History to your Spaces 🚀 | |
| **Gradio User History** is a plugin (and package) that caches generated images for your Space users. | |
| ## Key features: | |
| - 🤗 **Sign in with Hugging Face** | |
| - **Save** generated image, video, audio and document files with their metadata: prompts, timestamp, hyper-parameters, etc. | |
| - **Export** your history as zip. | |
| - **Delete** your history to respect privacy. | |
| - Compatible with **Persistent Storage** for long-term storage. | |
| - **Admin** panel to check configuration and disk usage . | |
| - **Progress bar** to show status of saving files | |
| - Choose between images or video **Gallery** | |
| - Compatible with **Gradio 4.0+** and **Gradio 5.0+** | |
| Want more? Please open an issue in the [Community Tab](https://huggingface.co/spaces/Wauplin/gradio-user-history/discussions)! This is meant to be a community-driven implementation, enhanced by user feedback and contributions! | |
| ## Integration | |
| Integrate *Gradio User History* in just a few steps: | |
| **1. Enable OAuth to your Space** | |
| Simply edit your Space metadata in your `README.md` file: | |
| ```yaml | |
| # README.md | |
| hf_oauth: true | |
| ``` | |
| **2. Update your `requirements.txt`** | |
| ```bash | |
| # requirements.txt | |
| git+https://huggingface.co/spaces/Surn/gradio-user-history | |
| filetype @ git+https://github.com/h2non/filetype.py.git | |
| gradio[oauth] | |
| mutagen | |
| tqdm | |
| torch==2.6.0 --extra-index-url https://download.pytorch.org/whl/cu124 | |
| torchaudio>=2.0.0,<2.6.2 --extra-index-url https://download.pytorch.org/whl/cu124 | |
| ``` | |
| **3. Integrate into your Gradio app** | |
| ```py | |
| # app.py | |
| import gradio as gr | |
| import gradio_user_history as gr_user_history | |
| (...) | |
| # => Inject gr.OAuthProfile | |
| def generate(prompt: str, profile: gr.OAuthProfile | None): | |
| image = ... | |
| # => Save generated image(s) | |
| gr_user_history.save_image(label=prompt, image=image, profile=profile) | |
| # => Save generated image, video, audio, document, metadata | |
| gr_user_history.save_file(profile=profile,image=image, video=video, audio=audio, document=document,label=string, metadata=metadata) | |
| # => Render user history | |
| with gr.Blocks() as demo: | |
| (...) | |
| with gr.Accordion("Past generations", open=False): | |
| # => OPTIONALLY display images or videos in the history gallery with display_type: "image_path" or "video_path" | |
| gr_user_history.setup(display_type="image_path") | |
| gr_user_history.render() | |
| ``` | |
| **4. (optional) Add Persistent Storage in your Space settings.** | |
| Persistent Storage is suggested but not mandatory. If not enabled, the history is lost each time the Space restarts. | |
| And you're done! | |
| ## Useful links | |
| - **Demo:** https://huggingface.co/spaces/Wauplin/gradio-user-history | |
| - **README:** https://huggingface.co/spaces/Wauplin/gradio-user-history/blob/main/README.md | |
| - **Source file:** https://huggingface.co/spaces/Wauplin/gradio-user-history/blob/main/src/gradio_user_history/_user_history.py | |
| - **Questions and feedback:** https://huggingface.co/spaces/Wauplin/gradio-user-history/discussions | |
| - **Development Updates**: https://huggingface.co/spaces/Surn/gradio-user-history/ | |
| ## Preview | |
|  |