commit 805dd5c30548080f75746d60371cf06e259e844a
parent 918ec834ea27304772a8eb032dd0efa647291115
Author: ajcoder13 <avnijhalani@gmail.com>
Date: Wed, 3 Dec 2025 02:19:40 +0530
Fixed Caption generation
Diffstat:
2 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/lib/ui/pages/canvas_board_page.dart b/lib/ui/pages/canvas_board_page.dart
@@ -122,6 +122,7 @@ class _CanvasBoardPageState extends State<CanvasBoardPage> {
// Detection Timer & AI Analysis
Timer? _inactivityTimer;
+ DateTime _lastAnalysisTime = DateTime.now();
final GlobalKey _canvasGlobalKey = GlobalKey();
String? _aiDescription;
bool _isAnalyzing = false;
@@ -469,9 +470,9 @@ class _CanvasBoardPageState extends State<CanvasBoardPage> {
}
void _handleGestureStart() {
- // Check if we need to capture a clean base image
if (_isMagicDrawActive) {
- if (!_isInpainting && _tempBaseImage == null) {
+ bool hasImageLayers = elements.any((e) => e['type'] == 'file_image');
+ if (hasImageLayers && !_isInpainting && _tempBaseImage == null) {
_ensureBaseImageCaptured();
}
return;
@@ -1407,6 +1408,15 @@ class _CanvasBoardPageState extends State<CanvasBoardPage> {
DrawingPoint(offset: details.localPosition, paint: Paint()),
);
});
+
+ // NEW: Throttle Analysis: Trigger "Describe" every 2.5s while actively drawing
+ if (_isMagicDrawActive &&
+ !_isAnalyzing &&
+ !_isInpainting &&
+ DateTime.now().difference(_lastAnalysisTime).inMilliseconds > 2500) {
+ _lastAnalysisTime = DateTime.now();
+ _analyzeCanvas();
+ }
}
Future<void> _onPanEnd(DragEndDetails details) async {
diff --git a/lib/ui/pages/canvas_toolbar/magic_draw_overlay.dart b/lib/ui/pages/canvas_toolbar/magic_draw_overlay.dart
@@ -81,13 +81,13 @@ class _MagicDrawToolsState extends State<MagicDrawTools> {
// --- 2. LIST FOR SKETCH TO IMAGE (When No Image Exists) ---
final List<AIModelOption> _sketchModels = [
- AIModelOption(id: 'sketch_fusion', name: 'Slider Fusion', badge: null),
+ AIModelOption(id: 'sketch_fusion', name: 'Sketch Model 1', badge: null),
AIModelOption(
id: 'sketch_advanced',
- name: 'Advanced Fusion',
+ name: 'Sketch Model 2',
badge: 'Fastest',
),
- AIModelOption(id: 'sketch_creative', name: 'Creative Flow', badge: 'New'),
+ AIModelOption(id: 'sketch_creative', name: 'Sketch Model 3', badge: 'New'),
];
@override