import { h, Component } from 'preact' import { bindActionCreators } from 'redux' import { connect } from 'react-redux' import util from '../../../util' import * as pix2pixhdActions from '../pix2pixhd.actions' import * as pix2pixhdTasks from '../pix2pixhd.tasks' import { Loading, FileList, FileRow, Select, SelectGroup, Group, Param, Button, TextInput, NumberInput, CurrentTask, TaskList, AugmentationGrid, } from '../../../common' import DatasetForm from '../../../dataset/dataset.form' import NewDatasetForm from '../../../dataset/dataset.new' import UploadStatus from '../../../dataset/upload.status' import DatasetComponent from '../../../dataset/dataset.component' import SequenceEditor from './sequence.editor' import pix2pixhdModule from '../pix2pixhd.module' class Pix2PixHDTrain extends Component { state = { dataset: 'PLACEHOLDER', epoch: 'latest', augment_name: '', augment_take: 100, augment_make: 20, processed: false, } constructor(props){ super(props) this.handleChange = this.handleChange.bind(this) } componentDidMount(){ const id = this.props.match.params.id || localStorage.getItem('pix2pixhd.last_id') const dataset = localStorage.getItem('pix2pixhd.last_dataset') console.log('load dataset:', id, dataset) const { match, pix2pixhd, actions } = this.props if (id === 'new') return if (id) { if (parseInt(id)) localStorage.setItem('pix2pixhd.last_id', id) if (! pix2pixhd.folder || pix2pixhd.folder.id !== id) { actions.load_directories(id) } } else { this.props.history.push('/pix2pixhd/new/') } if (dataset) { this.setState({ dataset }) } } componentDidUpdate(prevProps, prevState){ if ((!prevProps.pix2pixhd.data && this.props.pix2pixhd.data) || (prevProps.pix2pixhd.data && prevState.dataset !== this.state.dataset)) { const dataset = this.props.pix2pixhd.data.datasetLookup[this.state.dataset] if (dataset) { const processed = dataset.input .map(f => this.props.pix2pixhd.data.fileLookup[f]) .reduce((a,b) => { return b.processed || a }, false) dataset.processed = processed this.setState({ processed }) } } if (prevState.dataset !== this.state.dataset) { localStorage.setItem('pix2pixhd.last_dataset', this.state.dataset) this.setState({ epoch: 'latest', }) this.props.actions.list_epochs(this.state.dataset) this.props.actions.count_dataset(this.state.dataset) } } handleChange(name, value){ console.log('name', name, 'value', value) this.setState({ [name]: value }) } interrupt(){ this.props.actions.queue.stop_task('gpu') } render(){ if (this.props.pix2pixhd.loading) { return } const { pix2pixhd, match, history } = this.props const { folderLookup, datasetLookup } = (pix2pixhd.data || {}) const folder = (folderLookup || {})[pix2pixhd.folder_id] || {} const { checkpoint } = pix2pixhd // console.log(pix2pixhd) const sequenceGroups = Object.keys(folderLookup).map(id => { const folder = this.props.pix2pixhd.data.folderLookup[id] if (folder.name === 'results') return const datasets = folder.datasets.map(name => { const dataset = datasetLookup[name] if (dataset.isBuilt && dataset.checkpoints.length) { return name } return null }).filter(n => !!n) return { name: folder.name, options: datasets.sort(), } }).filter(n => !!n && !!n.options.length).sort((a,b) => a.name.localeCompare(b.name)) // console.log('state', this.props.pix2pixhd.data.epochs) // console.log(this.state.dataset, this.state.epoch) // console.log(queue) return (

pix2pixhd training