feat(gui): add row and column tokens for X/Y prompts
This commit is contained in:
parent
f3d1b16c8c
commit
e5a9d5772d
|
@ -13,6 +13,31 @@ export interface PipelineGrid {
|
||||||
rows: PipelineVariable;
|
rows: PipelineVariable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function replacePromptTokens(grid: PipelineGrid, params: Txt2ImgParams, columnValue: string | number, rowValue: string | number): {prompt: string} {
|
||||||
|
const result = {
|
||||||
|
negativePrompt: params.negativePrompt,
|
||||||
|
prompt: params.prompt,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (grid.columns.parameter === 'token') {
|
||||||
|
result.prompt = result.prompt.replace('__column__', columnValue.toString());
|
||||||
|
|
||||||
|
if (doesExist(result.negativePrompt)) {
|
||||||
|
result.negativePrompt = result.negativePrompt.replace('__column__', columnValue.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (grid.rows.parameter === 'token') {
|
||||||
|
result.prompt = result.prompt.replace('__row__', rowValue.toString());
|
||||||
|
|
||||||
|
if (doesExist(result.negativePrompt)) {
|
||||||
|
result.negativePrompt = result.negativePrompt.replace('__row__', rowValue.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line max-params
|
// eslint-disable-next-line max-params
|
||||||
export function buildPipelineForTxt2ImgGrid(grid: PipelineGrid, model: ModelParams, params: Txt2ImgParams, upscale?: UpscaleParams, highres?: HighresParams): ChainPipeline {
|
export function buildPipelineForTxt2ImgGrid(grid: PipelineGrid, model: ModelParams, params: Txt2ImgParams, upscale?: UpscaleParams, highres?: HighresParams): ChainPipeline {
|
||||||
const pipeline: ChainPipeline = {
|
const pipeline: ChainPipeline = {
|
||||||
|
@ -21,13 +46,16 @@ export function buildPipelineForTxt2ImgGrid(grid: PipelineGrid, model: ModelPara
|
||||||
|
|
||||||
let i = 0;
|
let i = 0;
|
||||||
|
|
||||||
for (const column of grid.columns.values) {
|
for (const row of grid.rows.values) {
|
||||||
for (const row of grid.rows.values) {
|
for (const column of grid.columns.values) {
|
||||||
|
const prompt = replacePromptTokens(grid, params, column, row);
|
||||||
|
|
||||||
pipeline.stages.push({
|
pipeline.stages.push({
|
||||||
name: `cell-${i}`,
|
name: `cell-${i}`,
|
||||||
type: 'source-txt2img',
|
type: 'source-txt2img',
|
||||||
params: {
|
params: {
|
||||||
...params,
|
...params,
|
||||||
|
...prompt,
|
||||||
...model,
|
...model,
|
||||||
[grid.columns.parameter]: column,
|
[grid.columns.parameter]: column,
|
||||||
[grid.rows.parameter]: row,
|
[grid.rows.parameter]: row,
|
||||||
|
|
Loading…
Reference in New Issue