joeygambino commited on
Commit
b45b3cc
·
verified ·
1 Parent(s): bc354c2

v2.1: clear Studio LoRA defaults; RiftCast fallback widgets hide when a Style node is wired

Browse files
Files changed (1) hide show
  1. riftcast_generator.py +32 -4
riftcast_generator.py CHANGED
@@ -745,8 +745,18 @@ class RiftCast_CharacterDesigner:
745
  "age": (AGE, {"default": "mid twenties"}),
746
  "ethnicity": (ETHNICITY,),
747
  "skin": (SKIN, {"default": "pale"}),
748
- "hair_color": (HAIR_COLOR, {"default": "dark brown"}),
749
- "hair_style": (HAIR_STYLE, {"default": "long and loose"}),
 
 
 
 
 
 
 
 
 
 
750
  "height": (HEIGHT, {"default": "average height"}),
751
  "build": (BUILD, {"default": "average build"}),
752
  "voice": (VOICE, {"default": "a clear voice, natural and unforced"}),
@@ -755,10 +765,14 @@ class RiftCast_CharacterDesigner:
755
  "24fps. British/Australian render natively at 25/30fps "
756
  "(the fps-accent law) - or at 24fps they lean on the "
757
  "wording alone."}),
758
- "wardrobe": ("STRING", {"default": "a plain dark crewneck shirt"}),
 
 
759
  "distinguishing": ("STRING", {"default": "", "tooltip":
760
  "optional: thin-framed glasses, a small nose "
761
- "stud, freckles across the nose..."}),
 
 
762
  },
763
  "optional": {
764
  "style_block": ("STRING", {"forceInput": True, "tooltip":
@@ -799,6 +813,20 @@ class RiftCast_CharacterDesigner:
799
  # makeup would contradict it in the same sentence
800
  if _sb.get("has_makeup"):
801
  realism = realism.replace(", no makeup", "")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
802
  except Exception as _e:
803
  print(f"[RiftCast] style_block unreadable ({_e}); using the "
804
  f"Designer's own hair/wardrobe fields.", flush=True)
 
745
  "age": (AGE, {"default": "mid twenties"}),
746
  "ethnicity": (ETHNICITY,),
747
  "skin": (SKIN, {"default": "pale"}),
748
+ # FALLBACK FOUR. These four duplicate widgets on the Style node and
749
+ # are used ONLY when style_block is unwired (Designer used alone).
750
+ # Wiring a Style node discards them - which was silent, and silent
751
+ # dead controls are the exact "dropdowns appear to do nothing" trap
752
+ # called out at AUDITION ISOLATION below. design() now says so out
753
+ # loud when a wired style overrides one you actually changed.
754
+ "hair_color": (HAIR_COLOR, {"default": "dark brown", "tooltip":
755
+ "FALLBACK - ignored when a Style node is wired to "
756
+ "style_block; set hair colour on the Style node."}),
757
+ "hair_style": (HAIR_STYLE, {"default": "long and loose", "tooltip":
758
+ "FALLBACK - ignored when a Style node is wired to "
759
+ "style_block; set hair shape on the Style node."}),
760
  "height": (HEIGHT, {"default": "average height"}),
761
  "build": (BUILD, {"default": "average build"}),
762
  "voice": (VOICE, {"default": "a clear voice, natural and unforced"}),
 
765
  "24fps. British/Australian render natively at 25/30fps "
766
  "(the fps-accent law) - or at 24fps they lean on the "
767
  "wording alone."}),
768
+ "wardrobe": ("STRING", {"default": "a plain dark crewneck shirt",
769
+ "tooltip": "FALLBACK - ignored when a Style node is "
770
+ "wired to style_block; set wardrobe on the Style node."}),
771
  "distinguishing": ("STRING", {"default": "", "tooltip":
772
  "optional: thin-framed glasses, a small nose "
773
+ "stud, freckles across the nose... FALLBACK - "
774
+ "ignored when a Style node is wired; the Style "
775
+ "node has its own distinguishing field."}),
776
  },
777
  "optional": {
778
  "style_block": ("STRING", {"forceInput": True, "tooltip":
 
813
  # makeup would contradict it in the same sentence
814
  if _sb.get("has_makeup"):
815
  realism = realism.replace(", no makeup", "")
816
+ # Say it out loud, but only when it MATTERS: a field left at its
817
+ # default was never a choice, so warning about it would be noise
818
+ # everyone learns to ignore.
819
+ _shadowed = [n for n, v, dflt in
820
+ (("hair_color", hair_color, "dark brown"),
821
+ ("hair_style", hair_style, "long and loose"),
822
+ ("wardrobe", wardrobe, "a plain dark crewneck shirt"),
823
+ ("distinguishing", distinguishing, ""))
824
+ if (v or "").strip() != dflt]
825
+ if _shadowed:
826
+ print(f"[RiftCast] Style node is wired, so the Designer's "
827
+ f"{', '.join(_shadowed)} {'is' if len(_shadowed)==1 else 'are'} "
828
+ f"IGNORED. Set {'it' if len(_shadowed)==1 else 'them'} "
829
+ f"on the Style node instead.", flush=True)
830
  except Exception as _e:
831
  print(f"[RiftCast] style_block unreadable ({_e}); using the "
832
  f"Designer's own hair/wardrobe fields.", flush=True)