[SUPPORT] blakeblackshear - Frigate


Recommended Posts

Just now, ich777 said:

So Unassigned Devices caused this? :D

 

What temperature are you currently on?

2022-06-26 21:37:04 Coral Temp: 39.80C
2022-06-26 21:37:19 Coral Temp: 39.80C
2022-06-26 21:37:34 Coral Temp: 39.80C
2022-06-26 21:37:49 Coral Temp: 39.80C
2022-06-26 21:38:04 Coral Temp: 39.80C
2022-06-26 21:38:19 Coral Temp: 39.80C
2022-06-26 21:38:34 Coral Temp: 39.80C
2022-06-26 21:38:49 Coral Temp: 40.05C
2022-06-26 21:39:04 Coral Temp: 39.80C
2022-06-26 21:39:19 Coral Temp: 40.05C
2022-06-26 21:39:34 Coral Temp: 39.80C
2022-06-26 21:39:49 Coral Temp: 40.05C
2022-06-26 21:40:04 Coral Temp: 40.05C

 

Mostly around 40*C

Even when detection is active.

 

I thought that maybe it was trying to read a file and couldn't access it correctly due to my wrong mounting of the unassigned drive and this crashed the process?

Link to comment
Just now, sillywalks said:

I thought that maybe it was trying to read a file and couldn't access it correctly due to my wrong mounting of the unassigned drive and this crashed the process?

I only can imagine that it got completely overloaded and actually run into the temperature limit, but I can't tell for sure if this was the case here.

Link to comment
1 minute ago, ich777 said:

I only can imagine that it got completely overloaded and actually run into the temperature limit, but I can't tell for sure if this was the case here.

Just to go exploring I set the unassigned drive back to the incorrect read/write state (not slave read write)

Currently its still running.

Link to comment
13 minutes ago, sillywalks said:

Just to go exploring I set the unassigned drive back to the incorrect read/write state (not slave read write)

Please never do that...

 

This can cause other various issues, for example when you update the plugin the share could go missing inside the container...

Link to comment

Hi - quasi-nubie here. (read: I know enough about unraid to get things done but just.)

 

Running UNRAID: 

Version 6.9.2 2021-04-07

Base distro:

docker: version 20.10.5

fuse3: version 3.10.2

nginx: version 1.19.9

samba: verson 4.12.14 (CVE-2020-27840 CVE-2020-27840)

Linux kernel:

version 5.10.28

include all CONFIG_NF_* modules

oot: realtek r8125: version 9.005.01

 

I have a Coral USB TPU and I installed the Coral plugin (error free).  From the system log:

Coral-log.thumb.jpg.989f6bc505cf69d0c83f335e6cf8d773.jpg

 

When I go to the Coral plug in I get this:

Corol-Screen.thumb.jpg.a38b880a63645b7225e144c5d11ad0af.jpg

 

Might I trouble y'all for a hint?

 

Thanks

 

GSN

Link to comment
On 6/10/2022 at 8:38 PM, Soulflyzz said:

Hello,

 

Generic question, I am running blakeblackshear/frigate:stable-amd64nvidia and everything is working as I want it to with Frigate.
But in homeassistantcore (Docker), when I try to Set up a new integration, i add the Frigate info  IP address http://***.***.***.***:5000/ which i use to view Frigate and it comes up with "Failed to connect".

 

I have read that the integration requires Version 10.*.* and this docker image is Version 9.*.* has anyone else ran into this issue or is it just me?

Is there a known solution?

 

Also i will add this integration did work at one time before that big update the broke frigate and I had to update the .yaml.

 

Sorry if this was long winded but I wanted to supply as much info as I could.

Ypu are totally right, I see that tag names changed and now "Latest" is not a valid tag. I will change it ASAP. Sorry for the inconvenience.

Link to comment
On 6/11/2022 at 5:12 AM, Todd Swanson said:

Could someone help me figure out why my recordings are being stored until the drive fills up? I want to record 24/7 for 20 days. This was working at one time.

 

cameras:
  Front_Door:
    ffmpeg:
      inputs:
        - path: rtsp://xyz/cam/realmonitor?channel=1&subtype=0
          roles:
            - detect
            - record
    detect:
      width: 2688
      height: 1520
      fps: 5
    objects:
      track:
        - person
        - dog
      filters:
        person:
          threshold: 0.65
    snapshots:
      enabled: true
      timestamp: false
      bounding_box: true
      retain:
        default: 20
    record:
      enabled: true
      expire_interval: 120
      retain:
        days: 20
        mode: all
      events:
        retain:
          default: 20

This is related to config, I'm just the maintainer o the frigate template, please read the docs and and for help on github.

Link to comment
On 6/27/2022 at 10:31 AM, yayitazale said:

Ypu are totally right, I see that tag names changed and now "Latest" is not a valid tag. I will change it ASAP. Sorry for the inconvenience.

@Soulflyzz As you can read here the actual latest tag is pointing to 10.1 so if you are running version 9 in docker, you must have a pending update or you have modified the repository link on the template.

 

https://github.com/blakeblackshear/frigate/issues/3389

Edited by yayitazale
Link to comment

Education request.  I have a Coral USB TPU.  When it's plug into the Unraid server (6.9.2) it shows up in the system device list as "Bus 002 Device 003:ID 1a6e:089a Global Unichip Corp."  In the Frigate setup I have the TPU Mapping set to: /dev/bus/usb

 

Bottom line is I can't tell the difference between when the Coral TPU is plugged in and when it's not.   I am running a 

Intel® Core™ i5-7400 CPU @ 3.00GHz and all 4 CPU's are always in the high 90's.

 

What should I see or more to the point, how to tell the TPU is working?

 

GSN

 

Link to comment
On 6/29/2022 at 4:30 AM, OrangeLoon said:

Education request.  I have a Coral USB TPU.  When it's plug into the Unraid server (6.9.2) it shows up in the system device list as "Bus 002 Device 003:ID 1a6e:089a Global Unichip Corp."  In the Frigate setup I have the TPU Mapping set to: /dev/bus/usb

 

Bottom line is I can't tell the difference between when the Coral TPU is plugged in and when it's not.   I am running a 

Intel® Core™ i5-7400 CPU @ 3.00GHz and all 4 CPU's are always in the high 90's.

 

What should I see or more to the point, how to tell the TPU is working?

 

GSN

 

It depend of your architecture and configuration. How many cameras are you using? Witch resolution do you have on the feed of each camera? Did you configured hardware acceleration using intel or nvidia GPU?

 

Without this information I can't tell you what is going on. You can see if the TPU is recognized by frigate on the logs at the startup of the container, and if it is recognized and you have object detection, you can track if there is any error on the logs.

 

Anyway, the mayor difference reducing CPU usage can be achieved using hardware acceleration as you can read here: https://docs.frigate.video/hardware

 

 

Link to comment

Thanks for the reply, yayitazale.

 

To clarify, I just want to know if Frigate is using the USB TPU or not.  I do not see any errors in the log and no real difference between having the TPU plugged in, restarted Frigate, and pulling it out and restart.  Not sure what I am looking for.  This is the log with the TPU plugged in and Frigate restarted:

 

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[2022-06-30 08:22:35] frigate.app INFO : Starting Frigate (0.10.1-83481af)
Starting migrations
[2022-06-30 08:22:35] peewee_migrate INFO : Starting migrations
There is nothing to migrate
[2022-06-30 08:22:35] peewee_migrate INFO : There is nothing to migrate
[2022-06-30 08:22:35] frigate.app INFO : Output process started: 225
[2022-06-30 08:22:35] frigate.app INFO : Camera processor started for Front_Yard: 227
[2022-06-30 08:22:35] detector.cpu INFO : Starting detection process: 223
[2022-06-30 08:22:35] frigate.edgetpu WARNING : CPU detectors are not recommended and should only be used for testing or for trial purposes.

                                              
[2022-06-30 08:22:35] frigate.app INFO : Camera processor started for Front_Entry: 228
[2022-06-30 08:22:35] frigate.app INFO : Capture process started for Front_Yard: 230
[2022-06-30 08:22:35] ws4py INFO : Using epoll
[2022-06-30 08:22:35] frigate.app INFO : Capture process started for Front_Entry: 232
[2022-06-30 08:22:35] ws4py INFO : Using epoll
[2022-06-30 08:22:42] frigate.record WARNING : Discarding a corrupt recording segment: {'cache_path': '/tmp/cache/Front_Yard-20220630082047.mp4', 'start_time': datetime.datetime(2022, 6, 30, 8, 20, 47)}

[2022-06-30 08:22:43] frigate.record WARNING : Discarding a corrupt recording segment: {'cache_path': '/tmp/cache/Front_Yard-20220630082047.mp4', 'start_time': datetime.datetime(2022, 6, 30, 8, 20, 47)}
 

Link to comment
2 minutes ago, OrangeLoon said:

Thanks for the reply, yayitazale.

 

To clarify, I just want to know if Frigate is using the USB TPU or not.  I do not see any errors in the log and no real difference between having the TPU plugged in, restarted Frigate, and pulling it out and restart.  Not sure what I am looking for.  This is the log with the TPU plugged in and Frigate restarted:

 

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[2022-06-30 08:22:35] frigate.app INFO : Starting Frigate (0.10.1-83481af)
Starting migrations
[2022-06-30 08:22:35] peewee_migrate INFO : Starting migrations
There is nothing to migrate
[2022-06-30 08:22:35] peewee_migrate INFO : There is nothing to migrate
[2022-06-30 08:22:35] frigate.app INFO : Output process started: 225
[2022-06-30 08:22:35] frigate.app INFO : Camera processor started for Front_Yard: 227
[2022-06-30 08:22:35] detector.cpu INFO : Starting detection process: 223
[2022-06-30 08:22:35] frigate.edgetpu WARNING : CPU detectors are not recommended and should only be used for testing or for trial purposes.

                                              
[2022-06-30 08:22:35] frigate.app INFO : Camera processor started for Front_Entry: 228
[2022-06-30 08:22:35] frigate.app INFO : Capture process started for Front_Yard: 230
[2022-06-30 08:22:35] ws4py INFO : Using epoll
[2022-06-30 08:22:35] frigate.app INFO : Capture process started for Front_Entry: 232
[2022-06-30 08:22:35] ws4py INFO : Using epoll
[2022-06-30 08:22:42] frigate.record WARNING : Discarding a corrupt recording segment: {'cache_path': '/tmp/cache/Front_Yard-20220630082047.mp4', 'start_time': datetime.datetime(2022, 6, 30, 8, 20, 47)}

[2022-06-30 08:22:43] frigate.record WARNING : Discarding a corrupt recording segment: {'cache_path': '/tmp/cache/Front_Yard-20220630082047.mp4', 'start_time': datetime.datetime(2022, 6, 30, 8, 20, 47)}
 

Did you configured TPU as detector?

 

https://docs.frigate.video/configuration/detectors

Link to comment
On 6/26/2022 at 8:42 PM, ich777 said:

I only can imagine that it got completely overloaded and actually run into the temperature limit, but I can't tell for sure if this was the case here.

This is pretty much the case. I opend this issue a while ago and closed it thinking my issue was fixed.

https://github.com/blakeblackshear/frigate/issues/3283

 

Appears like it is not. now it is pretty much clear the the sudden hike in the coral module temperature is causing shutdown of TPU and this is leading frigate to crash. i am almost sure it is not caused by an unassigned device because i don't have one and it still fails. am scratching my head to figure out what triggers the sudden increase of TPU temperature.. In my case, am using a mini PCIE module attched on a miniPCIE to PCI express card (specifically this one). This is a cheap device so it could be the reason (possibily).. waiting for some more people facing this issue to come up with their theory..

My system is well ventilated and have 5 FANS running to keep things under low temp.. my CPU/MoBo, Disks etc, run below the threshoulds.. it is just this TPU going crazy at times. 

Link to comment
2 minutes ago, ich777 said:

Have you yet tried the User Script that I've linked multiple times in the GitHub Issue that you've linked?

You mean the temperature monitoring ? yes i have that installed. for now it is running fine and the temperature is shown below 50 most times.

 

As part of the troubleshooting, I have moved the frigate.db to nvme (it was on the share before and the share was setup with cache enabled). Now the DB should always stay on the nvme, hopefully it will make some differance. 

Link to comment
2 hours ago, Domotics said:

You mean the temperature monitoring ? yes i have that installed. for now it is running fine and the temperature is shown below 50 most times.

This should be fine, since the SHUTDOWN temperature is set to ~105 °C I think...

 

The shutdown is only triggered to my knowledge when the shutdown temperature is reached and it is recommended to reboot after it was triggered, not to reset the device.

 

Anyways, keep me updated...

 

BTW You can of course set the Shutdown temperature to something insanely high but keep in mind that these Coral devices can be a fire hazard (even the official documentation mentions this) when used wrong. Keep in mind I won't recommend to do this because if it really runs sometimes too hot it can simply catch on fire.

Link to comment
On 7/6/2022 at 3:06 PM, ich777 said:

This should be fine, since the SHUTDOWN temperature is set to ~105 °C I think...

 

The shutdown is only triggered to my knowledge when the shutdown temperature is reached and it is recommended to reboot after it was triggered, not to reset the device.

 

Anyways, keep me updated...

 

BTW You can of course set the Shutdown temperature to something insanely high but keep in mind that these Coral devices can be a fire hazard (even the official documentation mentions this) when used wrong. Keep in mind I won't recommend to do this because if it really runs sometimes too hot it can simply catch on fire.

I don't know if it really helped, but since i moved the frigate.db from share to cache , it is running fine so far. haven't crashed since last few days. of course i don't consider it as stable yet. i will monitor for another week or so... 

Link to comment

I am not able to make the FRIGATE detect my GOOGLE CORAL USB, for all the attempts I made it always appears written: No EdgeTPU was detected. If you do not have a Coral device yet, you must configure CPU detectors.

What I noticed in some forums was the detail referring to the HARDWARE ID of the pendrive is different from what FRIGATE looks for when it tries to locate a GOOGLE CORAL USB, the ID that is searched for would be the number: 18d1:9302 , since what is detected in my PC (I use UNRAID SERVER system) is the number : 1a6e:089a Global Unichip Corp.

How can I make FRIGATE be able to locate the GOOGLE CORAL USB flash drive plugged into the machine?


Version

Current version: 3.1

 

Frigate config file

   mqtt:
     host: 192.168.0.213  
     port: 1883
     topic_prefix: frigate
     client_id: frigate
     user: roger561
     password: roger561
     stats_interval: 60

detectors:
  coral:
     type: edgetpu
     device: usb

database:
   path: /media/frigate/frigate.db
     cameras: 
       back:
    ffmpeg:

inputs:
- path: rtsp://admin:[email protected]:554/Streaming/Channels/102/
     roles:
     - detect
 

Link to comment
3 hours ago, Roger Maciel de Souza said:

I am not able to make the FRIGATE detect my GOOGLE CORAL USB, for all the attempts I made it always appears written: No EdgeTPU was detected. If you do not have a Coral device yet, you must configure CPU detectors.

What I noticed in some forums was the detail referring to the HARDWARE ID of the pendrive is different from what FRIGATE looks for when it tries to locate a GOOGLE CORAL USB, the ID that is searched for would be the number: 18d1:9302 , since what is detected in my PC (I use UNRAID SERVER system) is the number : 1a6e:089a Global Unichip Corp.

How can I make FRIGATE be able to locate the GOOGLE CORAL USB flash drive plugged into the machine?


Version

Current version: 3.1

 

Frigate config file

   mqtt:
     host: 192.168.0.213  
     port: 1883
     topic_prefix: frigate
     client_id: frigate
     user: roger561
     password: roger561
     stats_interval: 60

detectors:
  coral:
     type: edgetpu
     device: usb

database:
   path: /media/frigate/frigate.db
     cameras: 
       back:
    ffmpeg:

inputs:
- path: rtsp://admin:[email protected]:554/Streaming/Channels/102/
     roles:
     - detect
 

Can you attach the configuration of the container?

Link to comment
14 hours ago, yayitazale said:

Can you attach the configuration of the container?

Thank you very much in advance for your help and attention, the prints are below, if that is not what you want, please let me know where I am looking for the information you need, very grateful!

12.png

13.png

11.png

Edited by Roger Maciel de Souza
Link to comment
On 7/15/2022 at 10:43 PM, Roger Maciel de Souza said:

Thank you very much in advance for your help and attention, the prints are below, if that is not what you want, please let me know where I am looking for the information you need, very grateful!

12.png

13.png

11.png

I don't see anything wrong. Can you try to use the coral in another computer with one of the example projects https://coral.ai/examples/

 

We found some corals are factory defective.

Edited by yayitazale
  • Thanks 1
Link to comment
6 hours ago, yayitazale said:

I don't see anything wrong. Can you try to use the coral in another computer with one of the example projects https://coral.ai/examples/

 

We found some corals are factory defective.

Thank you immensely for your attempt to help, I managed to make the G. CORAL USB work on my server using the UNRAID system, what I did to correct it was to change information within the config.yml file that is located in the frigate/config folder.

Basically the G. Coral USB is not identified as long as FRIGATE does not present ZERO ERRORS when the service is started, while the service cannot start google coral continues to appear as unidentified, as long as there is no longer any error in the configuration of the file config.yml the pendrive will be detected and will even change the HARDWARE ID of the pendrive without the need to make any changes to the system, the frigate itself will identify the PEN DRIVE google CORAL with the ID 18d1:9302,
I saw several reports of people who were having problems with FRIGATE seeing only the HARDWARE ID as: 1a6e:089a Global Unichip Corp, this actually happens, but it only happens if the command lines in CONFIG.YML still have errors.

 

At least that was my experience with the UNRAID system using the frigate via DOCKER, I don't know if this is replicated for other systems, but here, as soon as the configuration of the config.yml file was completely correct and I restarted the MQTT and FRIGATE service and both were in GREEN status constantly the google flash drive was detected correctly and started to work automatically changing to the ID and recognition form of the GOOGLE CORAL USB flash drive.


The correct thing is to analyze all the lines of the FRIGATE LOG and excluding the lines that are showing errors to minimize as much as possible the amount of configurations necessary to load the frigate and start the system. One detail I noticed is that FRIGATE via DOCKER on UNRAID SERVER requires much less configuration in the config.yml because they are already available in DOCKER's EDIT via UNRAID, not being necessary to be declared and configured again in config.yml, below I will list how my CONFIG.YML is currently and now everything works perfectly loading GOOGLE CORAL and identifying all objects perfectly.

The biggest problem I faced was to get the FRIGATE service on UNRAID (via DOCKER) to start, it started quickly, turning green in the status, after a few seconds the service was automatically turned off, because there were coding errors in its config.yml file,
another detail that I realized that I needed to EDIT the FRIGATE Docker in UNRAID and change its connection type from Bridge to HOST , this way also made it easier for the system to stay online permanently.


I'm going to change only the passwords and login part by putting generic values, only in the password I don't know if this is really necessary or mandatory but I followed a pattern that I saw in a documentation where it describes that the password must start with the syntax: FRIGATE_*********   (**** enter your password here).

I configured the MQTT service password by creating and editing the passwords.txt file inside the MQTT folder and put
typeyourusernamehere:FRIGATE_yourpasswordhere   , then save the file as passwords.txt and put on directory /MQTT the password will work from this moment on. Then use this same username and password in the config.yml file

 

 

mqtt:
 host: 192.168.0.50
 user: insert your username here
 password: FRIGATE_mypasswordhere
 stats_interval: 5

cameras:
  doorcam:  #camera name
    ffmpeg: 
      inputs:
        - path: rtsp://admin:[email protected]:554/Streaming/Channels/101/
               
    snapshots:
     enabled: true
     bounding_box: true
     retain:
       default: 1
    objects:
      track:
        - person
        - bird
        - cat
        - dog
        - motorcycle
        - bicycle
        - car
    zones:
      zone_0:
        coordinates: 1280,720,1280,280,0,281,0,720,289,720

detectors:
  coral:
    type: edgetpu
    device: usb


Once again, thank you very much for your help, I just have one question left: the organization of the code in relation to the syntax structure must be all organized according to the text above or the config.yml can be edited without spaces and tabs? Is it necessary for each command line to have the exact position to start the text? Thanks and hugs, your software is amazing.

Edited by Roger Maciel de Souza
Link to comment
16 minutes ago, Roger Maciel de Souza said:

Thank you immensely for your attempt to help, I managed to make the G. CORAL USB work on my server using the UNRAID system, what I did to correct it was to change information within the config.yml file that is located in the frigate/config folder.

Basically the G. Coral USB is not identified as long as FRIGATE does not present ZERO ERRORS when the service is started, while the service cannot start google coral continues to appear as unidentified, as long as there is no longer any error in the configuration of the file config.yml the pendrive will be detected and will even change the HARDWARE ID of the pendrive without the need to make any changes to the system, the frigate itself will identify the PEN DRIVE google CORAL with the ID 18d1:9302,
I saw several reports of people who were having problems with FRIGATE seeing only the HARDWARE ID as: 1a6e:089a Global Unichip Corp, this actually happens, but it only happens if the command lines in CONFIG.YML still have errors.

 

At least that was my experience with the UNRAID system using the frigate via DOCKER, I don't know if this is replicated for other systems, but here, as soon as the configuration of the config.yml file was completely correct and I restarted the MQTT and FRIGATE service and both were in GREEN status constantly the google flash drive was detected correctly and started to work automatically changing to the ID and recognition form of the GOOGLE CORAL USB flash drive.


The correct thing is to analyze all the lines of the FRIGATE LOG and excluding the lines that are showing errors to minimize as much as possible the amount of configurations necessary to load the frigate and start the system. One detail I noticed is that FRIGATE via DOCKER on UNRAID SERVER requires much less configuration in the config.yml because they are already available in DOCKER's EDIT via UNRAID, not being necessary to be declared and configured again in config.yml, below I will list how my CONFIG.YML is currently and now everything works perfectly loading GOOGLE CORAL and identifying all objects perfectly.

The biggest problem I faced was to get the FRIGATE service on UNRAID (via DOCKER) to start, it started quickly, turning green in the status, after a few seconds the service was automatically turned off, because there were coding errors in its config.yml file,
another detail that I realized that I needed to EDIT the FRIGATE Docker in UNRAID and change its connection type from Bridge to HOST , this way also made it easier for the system to stay online permanently.


I'm going to change only the passwords and login part by putting generic values, only in the password I don't know if this is really necessary or mandatory but I followed a pattern that I saw in a documentation where it describes that the password must start with the syntax: FRIGATE_*********   (**** enter your password here).

I configured the MQTT service password by creating and editing the passwords.txt file inside the MQTT folder and put
typeyourusernamehere:FRIGATE_yourpasswordhere   , then save the file as passwords.txt and put on directory /MQTT the password will work from this moment on. Then use this same username and password in the config.yml file

 

 

mqtt:
 host: 192.168.0.50
 user: insert your username here
 password: FRIGATE_mypasswordhere
 stats_interval: 5

cameras:
  doorcam:  #camera name
    ffmpeg: 
      inputs:
        - path: rtsp://admin:[email protected]:554/Streaming/Channels/101/
               
    snapshots:
     enabled: true
     bounding_box: true
     retain:
       default: 1
    objects:
      track:
        - person
        - bird
        - cat
        - dog
        - motorcycle
        - bicycle
        - car
    zones:
      zone_0:
        coordinates: 1280,720,1280,280,0,281,0,720,289,720

detectors:
  coral:
    type: edgetpu
    device: usb


Once again, thank you very much for your help, I just have one question left: the organization of the code in relation to the syntax structure must be all organized according to the text above or the config.yml can be edited without spaces and tabs? Is it necessary for each command line to have the exact position to start the text? Thanks and hugs, your software is amazing.

Ok, thanks for the explanations.

 

Yes, you must respect the hierarchy of the elements.

 

By the way, I'm only the maintainer of the Unraid template, I'm not the developer of the software.

  • Like 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.