Feedback that can make improvements on OpenAI platform:
I’d like to propose adding GIF support to ChatGPT through a lightweight frame-based system instead of full video processing.
The idea is simple: when a user uploads a GIF, the system internally extracts frames, selects only useful ones, sends them to the model for analysis, and then automatically cleans them up after processing.
To keep the system efficient and safe for servers, this feature should include strict limits and session-based storage.
Suggested system design:
1. GIF duration limit
Only allow short GIFs, for example up to 5 seconds.
Longer GIFs should be rejected or trimmed automatically.
This prevents extremely large animated uploads from overloading the system.
2. Upload limits
Without subscription, users could have a small daily GIF limit, for example 3 to 4 GIFs per day.
With subscription, the limit could be higher or removed.
However, only 1 GIF should be allowed per message to avoid heavy multi-file abuse.
3. Frame extraction
When a GIF is uploaded, the system should decode it into frames.
Frames should be stored temporarily for processing only.
4. Duplicate-frame detection
If the GIF is effectively static, the system should detect identical or near-identical frames and keep only one or a few representative frames.
This reduces unnecessary processing.
5. Keyframe selection
If a GIF contains too many frames, the system should keep only meaningful or visually different frames.
This makes animation analysis efficient without sending all frames to the model.
6. Session-based isolation
Instead of storing all frames in one shared folder, each upload should create a unique session directory.
Example structure: frames/user123/session_abc456/
This prevents users from interfering with each other’s files and avoids accidental deletion of newer uploads.
7. Frame naming
Inside each session, frames can be named clearly, for example: frame_0_blink.png frame_1_blink.png frame_2_blink.png
This makes debugging and cleanup easier.
8. Automatic cleanup
After frames are sent to the model and processing is complete, the system should automatically delete only the contents of that session folder after a short delay, such as 10 seconds.
This avoids leftover files on the server while also preventing the system from deleting files belonging to another user or another active upload.
9. Internal session ID
Instead of exposing raw server paths, the API should use a session identifier.
For example: { “model”: “gpt-4o”, “prompt”: “Describe what happens in this GIF”, “gif_session”: “gif_8f29ab41”, “frame_count”: 24, “duration_seconds”: 3.8, “status”: “ready” }
But you can use hashed if anything happens to hide the ID.
The server can internally map gif_session to the correct user/session folder.
10. Benefits
This design keeps the feature lightweight, avoids unnecessary server load, prevents file collisions between users, and makes GIF analysis possible without requiring full video support.
Use cases include: analyzing UI animations, understanding short facial expressions like blinking, debugging animated visual bugs, and interpreting short GIF content naturally inside ChatGPT.
This would provide a practical bridge between static image support and full video support, while staying efficient, scalable, and safe for server-side processing.