gradio/guides/02_building-interfaces/04_advanced-interface-features.md

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

105 lines
6.2 KiB
Markdown
Raw Normal View History

Live website changes (#1578) * fix audio output cache (#804) * fix audio output cache * changes * version update Co-authored-by: Ali Abid <aliabid94@gmail.com> * Website Tracker Slackbot (#797) * added commands to reload script * catch errors with git pull * read new webhook from os variable * correcting bash * bash fixes * formatting * more robust error checking * only sends success if git changes * catching error from script * escaping error text to send with curl * correct text escaping for error message * fix search bug in guides (#809) * Update getting_started.md (#808) * Fix type of server returned by `Launchable` (#810) * `Launchable` returns a FastAPI now * Update .gitignore * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 Former-commit-id: bce6f9c4c5254301eb73e76eb47cddab3e132c24 * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]]]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 Former-commit-id: bce6f9c4c5254301eb73e76eb47cddab3e132c24 Former-commit-id: feba0888e3d488b82a3518343f607517d0836f13 * Add a missing line to getting started (#816) * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 Former-commit-id: 0d80e6a056abad1c4d1fd6f162eb725e0db5fb4f * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 Former-commit-id: 0d80e6a056abad1c4d1fd6f162eb725e0db5fb4f Former-commit-id: 20523b05194438209cf64cb688008b4599eb847e * changes * changes * Homepage: header image size (#1347) * image size * image in local assets * add dall-e mini banner * undo ui changes * changes * changes * updates * updates * changes * changes * changes * h11 dependency * add npm build-mac * expand demo button to all classes * add demos to docstrings * add anchor tags to headers * add required tag to param table * add consistent styling for headers * skip param beginning with underscore from docs * skip kwargs param from docs * remove types in param docstring * override signature to reflect usage * add supported events * add step-by-step guides * fix guide contribution link * add related spaces * fix img styling on guides * pin quickstart, advanced, and block guides to top * margin fix * autogenerated copy buttons for all codeblocks * changes * documentaiton * format * launch * formatting * style changes * remove backticks * changes * changes Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com> Co-authored-by: Julien Chaumond <julien@huggingface.co> Co-authored-by: Ömer Faruk Özdemir <farukozderim@gmail.com> Co-authored-by: Ali <ali.abid@huggingface.co> Co-authored-by: Victor Muštar <victor.mustar@gmail.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
2022-07-07 07:22:10 +08:00
# Advanced Interface Features
There's more to cover on the [Interface](https://gradio.app/docs#interface) class. This guide covers all the advanced features: Using [Interpretation](https://gradio.app/docs#interpretation), custom styling, loading from the [Hugging Face Hub](https://hf.co), and using [Parallel](https://gradio.app/docs#parallel) and [Series](https://gradio.app/docs#series).
2022-07-25 09:18:42 +08:00
## Interpreting your Predictions
Most models are black boxes such that the internal logic of the function is hidden from the end user. To encourage transparency, we've made it very easy to add interpretation to your model by simply setting the `interpretation` keyword in the `Interface` class to `default`. This allows your users to understand what parts of the input are responsible for the output. Take a look at the simple interface below which shows an image classifier that also includes interpretation:
Live website changes (#1578) * fix audio output cache (#804) * fix audio output cache * changes * version update Co-authored-by: Ali Abid <aliabid94@gmail.com> * Website Tracker Slackbot (#797) * added commands to reload script * catch errors with git pull * read new webhook from os variable * correcting bash * bash fixes * formatting * more robust error checking * only sends success if git changes * catching error from script * escaping error text to send with curl * correct text escaping for error message * fix search bug in guides (#809) * Update getting_started.md (#808) * Fix type of server returned by `Launchable` (#810) * `Launchable` returns a FastAPI now * Update .gitignore * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 Former-commit-id: bce6f9c4c5254301eb73e76eb47cddab3e132c24 * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]]]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 Former-commit-id: bce6f9c4c5254301eb73e76eb47cddab3e132c24 Former-commit-id: feba0888e3d488b82a3518343f607517d0836f13 * Add a missing line to getting started (#816) * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 Former-commit-id: 0d80e6a056abad1c4d1fd6f162eb725e0db5fb4f * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 Former-commit-id: 0d80e6a056abad1c4d1fd6f162eb725e0db5fb4f Former-commit-id: 20523b05194438209cf64cb688008b4599eb847e * changes * changes * Homepage: header image size (#1347) * image size * image in local assets * add dall-e mini banner * undo ui changes * changes * changes * updates * updates * changes * changes * changes * h11 dependency * add npm build-mac * expand demo button to all classes * add demos to docstrings * add anchor tags to headers * add required tag to param table * add consistent styling for headers * skip param beginning with underscore from docs * skip kwargs param from docs * remove types in param docstring * override signature to reflect usage * add supported events * add step-by-step guides * fix guide contribution link * add related spaces * fix img styling on guides * pin quickstart, advanced, and block guides to top * margin fix * autogenerated copy buttons for all codeblocks * changes * documentaiton * format * launch * formatting * style changes * remove backticks * changes * changes Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com> Co-authored-by: Julien Chaumond <julien@huggingface.co> Co-authored-by: Ömer Faruk Özdemir <farukozderim@gmail.com> Co-authored-by: Ali <ali.abid@huggingface.co> Co-authored-by: Victor Muštar <victor.mustar@gmail.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
2022-07-07 07:22:10 +08:00
$code_image_classifier_interpretation
In addition to `default`, Gradio also includes [Shapley-based interpretation](https://christophm.github.io/interpretable-ml-book/shap.html), which provides more accurate interpretations, albeit usually with a slower runtime. To use this, simply set the `interpretation` parameter to `"shap"` (note: also make sure the python package `shap` is installed). Optionally, you can modify the `num_shap` parameter, which controls the tradeoff between accuracy and runtime (increasing this value generally increases accuracy). Here is an example:
```python
gr.Interface(fn=classify_image,
inputs=image,
outputs=label,
interpretation="shap",
num_shap=5).launch()
```
This will work for any function, even if internally, the model is a complex neural network or some other black box. If you use Gradio's `default` or `shap` interpretation, the output component must be a `Label`. All common input components are supported. Here is an example with text input.
Live website changes (#1578) * fix audio output cache (#804) * fix audio output cache * changes * version update Co-authored-by: Ali Abid <aliabid94@gmail.com> * Website Tracker Slackbot (#797) * added commands to reload script * catch errors with git pull * read new webhook from os variable * correcting bash * bash fixes * formatting * more robust error checking * only sends success if git changes * catching error from script * escaping error text to send with curl * correct text escaping for error message * fix search bug in guides (#809) * Update getting_started.md (#808) * Fix type of server returned by `Launchable` (#810) * `Launchable` returns a FastAPI now * Update .gitignore * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 Former-commit-id: bce6f9c4c5254301eb73e76eb47cddab3e132c24 * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]]]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 Former-commit-id: bce6f9c4c5254301eb73e76eb47cddab3e132c24 Former-commit-id: feba0888e3d488b82a3518343f607517d0836f13 * Add a missing line to getting started (#816) * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 Former-commit-id: 0d80e6a056abad1c4d1fd6f162eb725e0db5fb4f * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 Former-commit-id: 0d80e6a056abad1c4d1fd6f162eb725e0db5fb4f Former-commit-id: 20523b05194438209cf64cb688008b4599eb847e * changes * changes * Homepage: header image size (#1347) * image size * image in local assets * add dall-e mini banner * undo ui changes * changes * changes * updates * updates * changes * changes * changes * h11 dependency * add npm build-mac * expand demo button to all classes * add demos to docstrings * add anchor tags to headers * add required tag to param table * add consistent styling for headers * skip param beginning with underscore from docs * skip kwargs param from docs * remove types in param docstring * override signature to reflect usage * add supported events * add step-by-step guides * fix guide contribution link * add related spaces * fix img styling on guides * pin quickstart, advanced, and block guides to top * margin fix * autogenerated copy buttons for all codeblocks * changes * documentaiton * format * launch * formatting * style changes * remove backticks * changes * changes Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com> Co-authored-by: Julien Chaumond <julien@huggingface.co> Co-authored-by: Ömer Faruk Özdemir <farukozderim@gmail.com> Co-authored-by: Ali <ali.abid@huggingface.co> Co-authored-by: Victor Muštar <victor.mustar@gmail.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
2022-07-07 07:22:10 +08:00
$code_gender_sentence_default_interpretation
So what is happening under the hood? With these interpretation methods, Gradio runs the prediction multiple times with modified versions of the input. Based on the results, you'll see that the interface automatically highlights the parts of the text (or image, etc.) that contributed increased the likelihood of the class as red. The intensity of color corresponds to the importance of that part of the input. The parts that decrease the class confidence are highlighted blue.
2022-07-25 09:18:42 +08:00
You can also write your own interpretation function. The demo below adds custom interpretation to the previous demo. This function will take the same inputs as the main wrapped function. The output of this interpretation function will be used to highlight the input of each input component - therefore the function must return a list where the number of elements corresponds to the number of input components. To see the format for interpretation for each input component, check the Docs.
Live website changes (#1578) * fix audio output cache (#804) * fix audio output cache * changes * version update Co-authored-by: Ali Abid <aliabid94@gmail.com> * Website Tracker Slackbot (#797) * added commands to reload script * catch errors with git pull * read new webhook from os variable * correcting bash * bash fixes * formatting * more robust error checking * only sends success if git changes * catching error from script * escaping error text to send with curl * correct text escaping for error message * fix search bug in guides (#809) * Update getting_started.md (#808) * Fix type of server returned by `Launchable` (#810) * `Launchable` returns a FastAPI now * Update .gitignore * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 Former-commit-id: bce6f9c4c5254301eb73e76eb47cddab3e132c24 * Add a missing line to getting started (#816) Former-commit-id: 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 81e271ca22e838e1ee618d48cdb0e904fd233cf3 [formerly 96f203108bf1222fe333a0175687293abdc669d7]]]] Former-commit-id: eaff13262853078e0c6c0baa54c731d9e56bc73f Former-commit-id: b5112c3f425c0ea961461854efae9c28a73aea01 Former-commit-id: bce6f9c4c5254301eb73e76eb47cddab3e132c24 Former-commit-id: feba0888e3d488b82a3518343f607517d0836f13 * Add a missing line to getting started (#816) * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 Former-commit-id: 0d80e6a056abad1c4d1fd6f162eb725e0db5fb4f * Clean-History - Remove 51MB file with this commit Former-commit-id: 34b6a2325d613eeef622410f2d1ff3d869d3133c Former-commit-id: dd700c33cca3f560621219530444b631b7767392 Former-commit-id: 0d80e6a056abad1c4d1fd6f162eb725e0db5fb4f Former-commit-id: 20523b05194438209cf64cb688008b4599eb847e * changes * changes * Homepage: header image size (#1347) * image size * image in local assets * add dall-e mini banner * undo ui changes * changes * changes * updates * updates * changes * changes * changes * h11 dependency * add npm build-mac * expand demo button to all classes * add demos to docstrings * add anchor tags to headers * add required tag to param table * add consistent styling for headers * skip param beginning with underscore from docs * skip kwargs param from docs * remove types in param docstring * override signature to reflect usage * add supported events * add step-by-step guides * fix guide contribution link * add related spaces * fix img styling on guides * pin quickstart, advanced, and block guides to top * margin fix * autogenerated copy buttons for all codeblocks * changes * documentaiton * format * launch * formatting * style changes * remove backticks * changes * changes Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com> Co-authored-by: Julien Chaumond <julien@huggingface.co> Co-authored-by: Ömer Faruk Özdemir <farukozderim@gmail.com> Co-authored-by: Ali <ali.abid@huggingface.co> Co-authored-by: Victor Muštar <victor.mustar@gmail.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
2022-07-07 07:22:10 +08:00
$code_gender_sentence_custom_interpretation
Learn more about Interpretation in the [docs](https://gradio.app/docs#interpretation).
2022-07-25 09:18:42 +08:00
## Custom Styling
If you'd like to have more fine-grained control over any aspect of your demo, you can also write your own css or pass in a filepath to a css file, with the `css` parameter of the `Interface` class.
```python
gr.Interface(..., css="body {background-color: red}")
```
If you'd like to reference external files in your css, preface the file path (which can be a relative or absolute path) with `"file="`, for example:
```python
gr.Interface(..., css="body {background-image: url('file=clouds.jpg')}")
```
Converting the website into sveltekit (#3437) * index page * demos page * guides gallery page * guides * some docs work * changes * changes * docs work * refactor some to ssr * more refactoring * add metatags * add special docs pages and improve nav * fix prev next in combining * add changelog * Site slugs for new website (#3431) * safe slugs for docs * add slugs to guides * changes * add flagging --------- Co-authored-by: aliabd <ali.si3luwa@gmail.com> * make anchor tags visible on hover * add anchor tags to docs * fix @html in codeblocks * fix demos in guides * syntax highlighting code in example usage * fix @html in changelog * fix contributing lin * fix assets in guides * fix broken assets on build * error page * fix meta tags updating * move guides to be /guides/[guide] instead of /[guide] * add headers to sections and make them linkable - freddy feedback * add guides section to docs * tighten width and add second nav bar * styling second nav bar * smooth scrolling in docs and guides * make components clickable in event listener graph * load latest gradio.js * menu bar on docs mobile * scrolling highlight menu and remove base docs page * vercel * refactor guides * fix slugs in docs * fix &lt; and code formatting in guides * added search * redirect all old links * fix bad merge * fix paths * Fix css issue with spaces logo * add status page link to footer * add themes to docs * fix new documentation.py path * add python client docs * make docs faster * add clients ot docs * colors * convert to adapter static * prerender * fix broken paths in guides * fix broken slugs * Aliabd/website sveltekit test (#4572) * fixes to paths * fixes * typechecking * fix * fix * fix * types lib * more type fixes * extends fix * typing fix * typing fix * json typing fix * add jsons * rollup * tweak * fix lockfile * fix maybe * fix maybe * changes * ui functional fix * oops * pnpm version * fix app --------- Co-authored-by: pngwn <hello@pngwn.io> Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
2023-07-04 21:33:22 +08:00
**Warning**: Custom CSS is *not* guaranteed to work across Gradio versions as the Gradio HTML DOM may change. We recommend using custom CSS sparingly and instead using [Themes](/guides/theming-guide/) whenever possible.
2022-07-25 09:18:42 +08:00
## Loading Hugging Face Models and Spaces
Gradio integrates nicely with the [Hugging Face Hub](https://hf.co), allowing you to load models and Spaces with just one line of code. To use this, simply use the `load()` method in the `Interface` class. So:
- To load any model from the Hugging Face Hub and create an interface around it, you pass `"model/"` or `"huggingface/"` followed by the model name, like these examples:
```python
gr.Interface.load("huggingface/gpt2").launch();
```
```python
gr.Interface.load("huggingface/EleutherAI/gpt-j-6B",
inputs=gr.Textbox(lines=5, label="Input Text") # customizes the input component
).launch()
```
- To load any Space from the Hugging Face Hub and recreate it locally (so that you can customize the inputs and outputs for example), you pass `"spaces/"` followed by the model name:
```python
gr.Interface.load("spaces/eugenesiow/remove-bg",
inputs="webcam",
title="Remove your webcam background!").launch()
```
One of the great things about loading Hugging Face models or spaces using Gradio is that you can then immediately use the resulting `Interface` object just like function in your Python code (this works for every type of model/space: text, images, audio, video, and even multimodal models):
```python
io = gr.Interface.load("models/EleutherAI/gpt-neo-2.7B")
io("It was the best of times") # outputs model completion
```
2022-07-25 09:18:42 +08:00
## Putting Interfaces in Parallel and Series
Gradio also lets you mix interfaces very easily using the `gradio.Parallel` and `gradio.Series` classes. `Parallel` lets you put two similar models (if they have the same input type) in parallel to compare model predictions:
```python
generator1 = gr.Interface.load("huggingface/gpt2")
generator2 = gr.Interface.load("huggingface/EleutherAI/gpt-neo-2.7B")
generator3 = gr.Interface.load("huggingface/EleutherAI/gpt-j-6B")
gr.Parallel(generator1, generator2, generator3).launch()
```
`Series` lets you put models and spaces in series, piping the output of one model into the input of the next model.
```python
generator = gr.Interface.load("huggingface/gpt2")
translator = gr.Interface.load("huggingface/t5-small")
gr.Series(generator, translator).launch()
# this demo generates text, then translates it to German, and outputs the final result.
```
And of course, you can also mix `Parallel` and `Series` together whenever that makes sense!
Learn more about Parallel and Series in the [docs](https://gradio.app/docs#parallel).