mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
* Implements rudimentary api * Fixes blocking in API * Adds UI to monorepo > src/frontend/ * Updates frontend/README * Reverts conda env name to `ldm` * Fixes environment yamls * CORS config for testing * Fixes LogViewer position * API WID * Adds actions to image viewer * Increases vite chunkSizeWarningLimit to 1500 * Implements init image * Implements state persistence in localStorage * Improve progress data handling * Final build * Fixes mimetypes error on windows * Adds error logging * Fixes bugged img2img strength component * Adds sourcemaps to dev build * Fixes missing key * Changes connection status indicator to text * Adds ability to serve other hosts than localhost * Adding Flask API server * Removes source maps from config * Fixes prop transfer * Add missing packages and add CORS support * Adding API doc * Remove defaults from openapi doc * Adds basic error handling for server config query * Mostly working socket.io implementation. * Fixes bug preventing mask upload * Fixes bug with sampler name not written to metadata * UI Overhaul, numerous fixes Co-authored-by: Kyle Schouviller <kyle0654@hotmail.com> Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
55 lines
1.7 KiB
TypeScript
55 lines
1.7 KiB
TypeScript
import { Flex } from '@chakra-ui/react';
|
|
import { createSelector } from '@reduxjs/toolkit';
|
|
import { useAppDispatch, useAppSelector } from '../../app/hooks';
|
|
import { RootState } from '../../app/store';
|
|
import SDNumberInput from '../../components/SDNumberInput';
|
|
import SDSwitch from '../../components/SDSwitch';
|
|
import InitImage from './InitImage';
|
|
import {
|
|
SDState,
|
|
setImg2imgStrength,
|
|
setShouldFitToWidthHeight,
|
|
} from './sdSlice';
|
|
|
|
const sdSelector = createSelector(
|
|
(state: RootState) => state.sd,
|
|
(sd: SDState) => {
|
|
return {
|
|
initialImagePath: sd.initialImagePath,
|
|
img2imgStrength: sd.img2imgStrength,
|
|
shouldFitToWidthHeight: sd.shouldFitToWidthHeight,
|
|
};
|
|
}
|
|
);
|
|
|
|
const ImageToImageOptions = () => {
|
|
const { initialImagePath, img2imgStrength, shouldFitToWidthHeight } =
|
|
useAppSelector(sdSelector);
|
|
|
|
const dispatch = useAppDispatch();
|
|
return (
|
|
<Flex direction={'column'} gap={2}>
|
|
<SDNumberInput
|
|
isDisabled={!initialImagePath}
|
|
label='Strength'
|
|
step={0.01}
|
|
min={0}
|
|
max={1}
|
|
onChange={(v) => dispatch(setImg2imgStrength(Number(v)))}
|
|
value={img2imgStrength}
|
|
/>
|
|
<SDSwitch
|
|
isDisabled={!initialImagePath}
|
|
label='Fit initial image to output size'
|
|
isChecked={shouldFitToWidthHeight}
|
|
onChange={(e) =>
|
|
dispatch(setShouldFitToWidthHeight(e.target.checked))
|
|
}
|
|
/>
|
|
<InitImage />
|
|
</Flex>
|
|
);
|
|
};
|
|
|
|
export default ImageToImageOptions;
|