Separate conditionings back to positive and negative

This commit is contained in:
StAlKeR7779
2023-05-05 15:47:51 +03:00
parent 85c33823c3
commit 5012f61599
3 changed files with 18 additions and 8 deletions

View File

@ -34,7 +34,8 @@ class CompelOutput(BaseInvocationOutput):
# model: ModelField = Field(default=None, description="Model")
# src? + loras -> tokenizer + text_encoder + loras
# clip: ClipField = Field(default=None, description="Text encoder(clip)")
conditioning: ConditioningField = Field(default=None, description="Conditioning")
positive: ConditioningField = Field(default=None, description="Positive conditioning")
negative: ConditioningField = Field(default=None, description="Negative conditioning")
#fmt: on
@ -133,14 +134,20 @@ class CompelInvocation(BaseInvocation):
cross_attention_control_args=options.get("cross_attention_control", None),
)
name_cond = f"{context.graph_execution_state_id}_{self.id}_conditioning"
name_prefix = f'{context.graph_execution_state_id}__{self.id}'
name_positive = f"{name_prefix}_positive"
name_negative = f"{name_prefix}_negative"
# TODO: hacky but works ;D maybe rename latents somehow?
context.services.latents.set(name_cond, (c, uc, ec))
context.services.latents.set(name_positive, (c, ec))
context.services.latents.set(name_negative, (uc, None))
return CompelOutput(
conditioning=ConditioningField(
conditioning_name=name_cond,
positive=ConditioningField(
conditioning_name=name_positive,
),
negative=ConditioningField(
conditioning_name=name_negative,
),
)