We have added a max_file_size
size parameter to launch()
that limits to size of files uploaded to the server. This limit applies to each individual file. This parameter can be specified as a string or an integer (corresponding to the size in bytes).
The following code snippet sets a max file size of 5 megabytes.
import gradio as gr
demo = gr.Interface(lambda x: x, "image", "image")
demo.launch(max_file_size="5mb")
# or
demo.launch(max_file_size=5 * gr.FileSize.MB)
When a component encounters an error, the error state shown in the UI can now be cleared by clicking on the x
icon in the top right of the component. This applies to all types of errors, whether it's raised in the UI or the server.
Thanks @freddyaboulton!
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- #8042
92139f3
- refresh theImageEditor
UI. Thanks @pngwn! - #8059
074ce38
- ensure theImageEditor
works correctly with layers andchange
events. Thanks @pngwn! - #7845
dbb7373
- ensureImageEditor
events work as expected. Thanks @pngwn!
- #8046
d6c289b
- round [x, y, w, h] before cropping to avoid unexpected interpolation on pixel values. Thanks @ernestchu! - #7959
2a5cb97
- ensureImageEditor
always draws at the correct position. Thanks @hrrbay!
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- Updated dependencies [
8181695
]:- @gradio/[email protected]
- @gradio/[email protected]
- #7528
eda33b3
- Refactorsget_fetchable_url_or_file()
to remove it from the frontend. Thanks @abidlabs!
- Updated dependencies [
98a2719
]:- @gradio/[email protected]
- @gradio/[email protected]
- Updated dependencies [
f191786
]:- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- Updated dependencies [
065c5b1
,32b317f
]:- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- #7183
49d9c48
- [WIP] Refactor file normalization to be in the backend and remove it from the frontend of each component. Thanks @abidlabs!
- #7219
faead14
- Show label in interactive image editor. Thanks @hannahblair!
- Updated dependencies [
5727b92
,bc2cdc1
,c60ad4d
,be56c76
,8c355a4
]:- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- #6933
9cefd2e
- Refactor examples so they accept data in the same format as is returned by function, rename.as_example()
to.process_example()
. Thanks @abidlabs!
- #6885
640b7fe
- Fix issue with Webcam Recording. Thanks @dawoodkhan82!
- Updated dependencies [
b1b78c2
,f742d0e
,6c863af
,fb9c6ca
,459c5dc
,649cd4d
,8333db8
]:- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- Updated dependencies [
d406855
,15c97c6
]:- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- #6809
1401d99
- FixImageEditor
interaction story. Thanks @hannahblair!
- #6799
c352811
- Adds docstrings forgr.WaveformOptions
,gr.Brush
, andgr.Eraser
, fixes examples forImageEditor
, and allows individual images to be used as the initialvalue
forImageEditor
. Thanks @abidlabs!
- Updated dependencies [
5d51fbc
,34f9431
]:- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- Updated dependencies [
6a9151d
,21cfb0a
,d76bcaa
,67ddd40
,053bec9
,bdf81fe
,4d1cbbc
,5177132
]:- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- Updated dependencies [
b639e04
,206af31
]:- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
- Updated dependencies [
71f1a1f99
]:- @gradio/[email protected]
- @gradio/[email protected]
- @gradio/[email protected]
A brand new component, completely separate from Image
that provides simple editing capabilities.
- Set background images from file uploads, webcam, or just paste!
- Crop images with an improved cropping UI. App authors can event set specific crop size, or crop ratios (
1:1
, etc) - Paint on top of any image (or no image) and erase any mistakes!
- The ImageEditor supports layers, confining draw and erase actions to that layer.
- More flexible access to data. The image component returns a composite image representing the final state of the canvas as well as providing the background and all layers as individual images.
- Fully customisable. All features can be enabled and disabled. Even the brush color swatches can be customised.
gif.mp4
def fn(im):
im["composite"] # the full canvas
im["background"] # the background image
im["layers"] # a list of individual layers
im = gr.ImageEditor(
# decide which sources you'd like to accept
sources=["upload", "webcam", "clipboard"],
# set a cropsize constraint, can either be a ratio or a concrete [width, height]
crop_size="1:1",
# enable crop (or disable it)
transforms=["crop"],
# customise the brush
brush=Brush(
default_size="25", # or leave it as 'auto'
color_mode="fixed", # 'fixed' hides the user swatches and colorpicker, 'defaults' shows it
default_color="hotpink", # html names are supported
colors=[
"rgba(0, 150, 150, 1)", # rgb(a)
"#fff", # hex rgb
"hsl(360, 120, 120)" # in fact any valid colorstring
]
),
brush=Eraser(default_size="25")
)
Thanks @pngwn!