bigghuggs commited on
Commit
216fada
·
verified ·
1 Parent(s): 4ac7b48

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -2
app.py CHANGED
@@ -529,6 +529,21 @@ def updateItemDisplay(seshid, budget=False):
529
  else: #except:
530
  return sesh.updated_display
531
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
532
  def isJSONSerialiazable(obj):
533
  try:
534
  json.dumps(obj)
@@ -593,8 +608,9 @@ def updateItemDisplay(seshid, budget=False):
593
  getSampleIndexes = lambda lngth: sorted(set([int(i) for j in [2,3,4] for i in [np.clip(0,lngth-1,lngth//j), np.clip(0,lngth-1,lngth-(lngth//j))]] + [0,(lngth-1 if lngth > 0 else 0)]))
594
  item_idxs = [(pair[0], [] if pair[1] <= 0 else getSampleIndexes(pair[1])) for pair in item_lens]
595
  urls = [sesh.item_data[sesh.current_img_signature][sesh.room_type][sesh.room_style][sesh.price][sesh.Palette_ids[sesh.current_img_signature]][pair[0]][idx]['img'] for i,pair in enumerate(item_idxs) if pair[1] for idx in pair[1]]
596
- #responses = asyncio.run(main(urls))
597
- print('updateDisplay -- item_lens: ', urls)
 
598
  sesh.display_items_ = {img:[(-1 if item in ['Palette', 'Living Room', 'Bedroom'] or not sesh.item_data[img][sesh.item_data_keys[img]['room_type']][sesh.item_data_keys[img]['room_style']][sesh.item_data_keys[img]['price']][sesh.item_data_keys[img]['Paletteid']][item] else (random.sample(list(range(len(sesh.item_data[img][sesh.item_data_keys[img]['room_type']][sesh.item_data_keys[img]['room_style']][sesh.item_data_keys[img]['price']][sesh.item_data_keys[img]['Paletteid']][item]))), 1)[0]), item) for itemi,item in enumerate(sesh.items_layouts[img])] for img in sesh.item_data_keys}
599
 
600
 
 
529
  else: #except:
530
  return sesh.updated_display
531
 
532
+ def getMostUsedColors(img):
533
+ imgq = img // 48 * 48
534
+ clr_counts = {}
535
+ for i in range(0, imgq.shape[0], 7):
536
+ for j in range(0, imgq.shape[1], 7):
537
+ clr = tuple(imgq[i,j])
538
+ if clr not in clr_counts:
539
+ clr_counts[clr] = 0
540
+ clr_counts[clr] += 1
541
+ clr_counts_ = {v:k for k,v in clr_counts.items()}
542
+ counts_srtd = sorted(clr_counts_)[::-1]
543
+ counts_srtd_rgb = [[int(val) for val in clr_counts_[i]] for i in counts_srtd[:7]]
544
+ bestclr_keys = [color_maps[color_maps_keys[getBestMatch(color_maps_keys, rgb)]] for rgb in counts_srtd_rgb]
545
+ return bestclr_keys
546
+
547
  def isJSONSerialiazable(obj):
548
  try:
549
  json.dumps(obj)
 
608
  getSampleIndexes = lambda lngth: sorted(set([int(i) for j in [2,3,4] for i in [np.clip(0,lngth-1,lngth//j), np.clip(0,lngth-1,lngth-(lngth//j))]] + [0,(lngth-1 if lngth > 0 else 0)]))
609
  item_idxs = [(pair[0], [] if pair[1] <= 0 else getSampleIndexes(pair[1])) for pair in item_lens]
610
  urls = [sesh.item_data[sesh.current_img_signature][sesh.room_type][sesh.room_style][sesh.price][sesh.Palette_ids[sesh.current_img_signature]][pair[0]][idx]['img'] for i,pair in enumerate(item_idxs) if pair[1] for idx in pair[1]]
611
+ responses = asyncio.run(main(urls))
612
+ bestclr_keys = [getMostUsedColors(np.array(Image.open(io.BytesIO(r)))) for r in responses]
613
+ print('updateDisplay -- item_lens: ', bestclr_keys)
614
  sesh.display_items_ = {img:[(-1 if item in ['Palette', 'Living Room', 'Bedroom'] or not sesh.item_data[img][sesh.item_data_keys[img]['room_type']][sesh.item_data_keys[img]['room_style']][sesh.item_data_keys[img]['price']][sesh.item_data_keys[img]['Paletteid']][item] else (random.sample(list(range(len(sesh.item_data[img][sesh.item_data_keys[img]['room_type']][sesh.item_data_keys[img]['room_style']][sesh.item_data_keys[img]['price']][sesh.item_data_keys[img]['Paletteid']][item]))), 1)[0]), item) for itemi,item in enumerate(sesh.items_layouts[img])] for img in sesh.item_data_keys}
615
 
616